Welche Art von Projekt könnte einem Softwareingenieur helfen, mehr ein Elektronikingenieur zu werden? [geschlossen]


17

Ich bin ein Softwareentwickler mit praktisch keinem elektronischen Hintergrund, aber ich möchte darauf eingehen, da dies für meine Arbeit relevant ist (Entwicklung von Infotainmentsystemen). Ich bin ein Software-Ingenieur, kein Elektronik-Ingenieur, daher hat mein Hintergrund / meine Erfahrung mehr mit der Programmierung auf Anwendungsebene zu tun, und vielleicht ein bisschen mit der System- / Netzwerkprogrammierung.

Ich habe von Arduino als flexibler Projektplattform gehört und mich gefragt, welche Arten von Projekten jemandem mit meinem Hintergrund helfen könnten, den Weg in die Elektronik zu finden ... angefangen mit der Programmierung von Mikrocontrollern und vielleicht mit anderen Arten von Peripheriegeräten wie Bluetooth , zigbee, wifi, audio, video, ich weiß nicht ... vielleicht eine art projekt, das für elektroniker während ihrer kurse typisch ist.

Kurz gesagt, ich suche nach einer typischen / beliebten Art von Projekt (akademisch oder anderweitig), das einem Softwareentwickler dabei helfen könnte, Fähigkeiten in der Elektronikentwicklung auf Softwareebene zu entwickeln.


Möglicherweise handelt es sich um einen Technologie-Mapping-Algorithmus für das Iverilog-Back-End.
Standard Sandun

1
Ich würde empfehlen, mit 555 Timer-Projekten zu beginnen. Es gibt unzählige im Internet und sie vermitteln Ihnen ein grundlegendes Verständnis von Widerständen, Kondensatoren und in einigen Fällen Induktivitäten, mit denen Sie sich vertraut machen müssen, um tatsächlich zu wissen, was Sie mit den übergeordneten Dingen wie tun Mikrocontrollerprogrammierung und ähnliches. Danach können Sie mit Arduino, PICAXE oder einer anderen Plattform spielen, die Sie interessant finden. Dann arbeiten Sie mutig an einem etwas größeren Projekt, das Sie interessant finden, und geben Sie auf keinen Fall auf.
AndrejaKo


1
Ich bin in der gleichen Position, ich wollte nur mit Hardware basteln. Ich brachte einen Arduino und ein RC-Spielzeugauto mit und verband sie. Keine Ahnung wie, aber es funktioniert und es ist großartig :) Es ist nicht allzu schwierig, ich hatte noch nie zuvor eine Zeile mit C geschrieben (C # dev hier) und hatte in ein paar Stunden etwas Grundlegendes am Laufen.
TJHeuvel

Was für ein Projekt? Ich würde ein Elektronikprojekt vorschlagen.
Joeforker

Antworten:


10

Hier finden Sie einige Vorschläge für Projekte, die für einen Softwareentwickler nicht schwer zu finden sind. Sie mögen alle ziemlich schwer erscheinen, aber ich bin ein großer Fan von Projekten, die weit über meine Fähigkeiten hinausgehen. Wenn sie Spaß machen und überzeugende Projekte sind, werden sie Sie mit Freude durch den Lernprozess ziehen. Und denken Sie daran, wir sind alle hier, um zu helfen.


LED-Matrix

LED-Matrix

Dies ist ein vollständig digitales Projekt, das aber viel Spaß macht (wer keine LEDs mag). Sie benötigen Treiber wie den ULN2803 und einen Mikrocontroller. Lassen Sie die Matrix die Uhrzeit anzeigen oder zeigen Sie ein Bild. Ich konnte gerade ein Bild von Björk auf einer 16x16 grünen Matrix zeigen.


Gyro stabilisiertes Schaumflugzeug

Besorgen Sie sich ein Schaumflugzeug und ein paar Querruder :

Schaum Flugzeug Mikro Querruder

Sie benötigen außerdem einen MEMS-Kreisel mit einem analogen Ausgang und einigen winzigen OpAmps. Mischen Sie sie alle zusammen, um ein kreiselstabilisiertes Gummiband-Schaumflugzeug zu erhalten.


Roboter

Jeder liebt einen Roboter. Das Tolle an einem kleinen Roboter wie diesem ist, dass Sie mit etwas extrem Einfachem beginnen können (nur vorwärts fahren) und langsam mehr Funktionalität (Sensoren und Entscheidungsfindung) hinzufügen können, während Sie die ganze Zeit lernen.

Roboter


5

Wenn Sie bereits ein Softwareentwickler sind, sollte die Programmierung von Mikrocontrollern an sich keine echte Herausforderung sein, und es gibt wenig Elektronik. Zumindest nicht auf die Art und Weise, wie Sie mit verschiedenen Arten von Bauteilen umgehen müssten und Berechnungen von Spannungen und Strömen durchführen müssten, um etwas zum Laufen zu bringen.

Ein Mikrocontroller-Kit kann Ihnen jedoch dabei helfen, die Kontrolle zu behalten. Sie können mit allen Arten von digitalen und analogen Eingängen und Ausgängen arbeiten.
Probieren Sie zum Beispiel den allgegenwärtigen Thermostat .

Eingänge
Sie müssen sich mit Temperatursensoren (welcher Art auch immer), Verstärkern, Operationsverstärkern und möglicherweise Transistoren sowie mit Kondensatoren und Widerständen vertraut machen. Opamps und besonders Transistoren sind grundlegend, sie werden in jeder Schaltung verwendet.

Ausgang
Um ein Relais anzusteuern, müssen Sie wissen, wie ein Transistor als Schalter funktioniert (das ist die am einfachsten zu verstehende Anwendung).

Auf Mikrocontroller-Entwicklungsplatinen befindet sich häufig ein Display , ein LCD oder eine LED, oder sie können an ein Anzeigemodul angeschlossen werden. Dies ist zwar nützlich (z. B. zum Debuggen) und macht Spaß, hilft aber nicht, die Elektronik zu verstehen. Sie müssen Ihr eigenes Display wie eine LED-Matrix erstellen und lernen, wie Sie ein Multiplex-Display sowohl aus Software- als auch aus Hardwaresicht steuern.

Neben der Mikrocontrollerplatine besorgen Sie sich ein elektronisches Starterkit , das die meisten Basisteile enthält, um einfache Schaltungen herzustellen. Und natürlich ein gutes Handbuch . Die Kunst der Elektronik ist hier immens beliebt, obwohl ich sie das letzte Mal gesehen habe, als sie aktualisiert werden musste.


1
Und wenn Sie den Thermostat satt haben, können Sie auf die Implementierung eines PID-Reglers aufrüsten. :)
Nick Johnson

Gepflegte Projektidee mit einer Vielzahl elektrischer und elektronischer Konzepte. Sobald Sie dieses Projekt in diskreten Komponenten durchgeführt haben, können Sie sich mit einem
Mikrocontroller befassen

5

Besorgen Sie sich ein PSoC Development Kit . Der PSoC ist ein Mikrocontroller, der umkonfigurierbare digitale und analoge Blöcke enthält. Grundsätzlich können Sie digitale und analoge Schaltpläne mit der IDE verbinden. Diese Schaltpläne werden dann im PSoC-Chip implementiert.

PSoC-Ersteller

Sie können nach Herzenslust mit digitalen und analogen Schaltungsdesigns spielen und alles mit Software kombinieren, die in derselben IDE geschrieben wurde.


2
Dies ist ein ungewöhnlicher Ort, um anzufangen; Die PSoC ist ein sehr komplexes und ungewöhnliches System. Haben Sie Erfolg gehabt, andere zu trainieren, indem Sie dies als Ausgangspunkt genommen haben?
Kevin Vermeer

Es mag im Inneren komplex sein, aber es ist ein Traum, es zu benutzen. Sie haben alles reibungslos integriert und viele nette Tutorial-Videos und Dokumente erstellt.
Rocketmagnet

1
Die Tatsache, dass all diese Peripheriegeräte in einem PSoC integriert sind, spricht dagegen. Sie sollten diese Systeme selbst bauen, wenn Sie lernen möchten.
Stevenvh

2
@ stevenvh Überhaupt nicht. Was ist der Unterschied zwischen dem Verdrahten von Gattern in Chips und dem Verdrahten von Gattern in einem Schaltplan? Es ist konzeptionell identisch.
Rocketmagnet

@sandundhammika Keine Probleme. Ich denke, jeder sollte herausfinden, wie schön es ist, Anwendungen für diese Dinge zu entwickeln.
Rocketmagnet

5

Proteus ist eine hervorragende softwaregesteuerte Proptyping-Plattform. Sie können Leiterplatten und Schaltpläne mit den meisten, wenn nicht allen hier genannten MCUs erstellen. Und das Beste ist, Sie können Ihren Quellcode so simulieren, als ob er auf der realen Hardware selbst laufen würde!

Das Schönste an dieser Software ist, dass Sie Variablen wie Kristalle, Kondensatoren, Widerstände ändern können, ohne löten, entlöten, bestellen und warten zu müssen, um schließlich mit Protoboards oder Abschirmungen herumzuspielen. Es emuliert es perfekt.

Ebenfalls; Sie erhalten virtuelle Tools wie Osciliscopes. Wissen Sie, wie viel ein gutes Osciliscope kostet? Ein Vermögen! Es ist alles in nahezu jeder Menge anderer Funktionen und virtueller Tools enthalten.

Es ist nicht kostenlos, aber der Preis ist absolut angemessen für die Menge an Zeit und Frust, die Sie sparen können, anstatt mit der echten Hardware herumzuspielen.


Können Sie auf diese Weise echte Schaltkreise erstellen?
Rocketmagnet

Ja, ich mache meine Schaltung in Proteus zum Beispiel attiny 861 mit h-bride und verknüpfe sie mit einer Hex-Datei, die AVR Studio kompiliert. Jedes Mal, wenn ich die Quelle ändere und in AVRStudio kompiliere, animiere ich in Proteus und meine Änderungen werden sofort wirksam. Und ich kann die Ausgabe von h-bride mit einem Zielfernrohr, einer Sonde oder einem Voltmeter mit genauer Ablesung messen. Genau wie mein echter Proto. Es ist ziemlich gut
WillyWonka

3

Ich denke, dass der Versuch, alles zu lernen, nur zu viel Verwirrung und Zeitverlust führen wird. IMHO sollten Sie versuchen, Ihr Interesse zu fokussieren: Sie sagten, dass Sie es für Infotainmentsysteme brauchen, oder?

Ein Ansatz könnte darin bestehen, eine Vorstellung davon zu bekommen, was eines dieser Systeme ist:

  • Eine Verarbeitungseinheit (wahrscheinlich ein Mikrocontroller oder ein einfacher Computer);

  • Einige Treiber für das Display;

  • E / A-Schnittstelle für Benutzerinteraktion;

  • Kommunikationsschnittstellen (Vernetzung, Anbindung an andere Geräte ...)

Jede dieser Unterdomänen ist ein komplettes System, das als Projekt untersucht und entworfen werden kann. Einige von ihnen können auch auf einer niedrigeren Abstraktionsebene und bis auf Komponentenebene in mehrere Sub-Sub-Domänen unterteilt werden.

Mein Vorschlag ist also, diese komplexe Architektur in Blöcke zu unterteilen und zu versuchen, einfache Schaltungen zu erstellen (möglicherweise ausgehend von LED-Treibern), die dann in den größeren Plan eingefügt werden können. Sie werden die Motivation dazu haben, da dies Teil der Abschlussarbeit sein wird und Sie auf die Art und Weise etwas über Elektronik lernen werden.

Achten Sie einfach darauf, zu studieren und zu verstehen, was Sie tun, anstatt sich auf vorgefertigte Schaltpläne und allgemeine Faustregeln zu verlassen.


2

Ich war im selben Problem. Und irgendwann habe ich gelernt, dass es keine Abkürzung zum Erlernen der Elektronik gibt. Ein College-Abschluss kann Ihnen helfen.

Ansonsten können Sie folgende Bücher probieren:

Schritt 1.

Bildbeschreibung hier eingeben

Schritt 2.

Bildbeschreibung hier eingeben

Zusammen mit der Software NI Multisim .

Bildbeschreibung hier eingeben


1

Als Softwareentwickler verfügen Sie entweder über eine der beiden wichtigsten verfügbaren Plattformen.

PHP oder .NET?

Wenn Sie .NET sind, kann ich Ihnen .NET MicroFramework IDE und NetDuino empfehlen

Bildbeschreibung hier eingeben

Es gibt eine Menge anderer Hardware, aber ich schlage diese vor, da der Preis angemessen ist und das Design dem des Arduino und vieler anderer Prototyping-Boards sehr ähnlich ist, was dazu beiträgt, die Vertrautheit mit mehreren Kits zu verbessern.

Weder .NET noch PHP haben eine echte Verbindung zur eingebetteten Programmierung, aber die PHP-Syntax ist sehr ähnlich, Cwas gut zu wissen ist. .NET, nun, es ist schön, in einer vertrauten Umgebung zu bleiben, und Sie können mit Microsoft Learning auch Zertifizierungen dafür erhalten.

Eine andere Plattform, die ich vorschlagen würde, ist Atmels AVR XMega, das im Grunde genommen das Arduino ist, aber viel neuer und leistungsfähiger.

Das Wichtige an diesen beiden Jungs ist, dass die Entwicklungsumgebungen KOSTENLOS sind! Ja, Microsoft bietet Ihnen kostenloses Visual Studio für Micro Framework und Atmel verfügt über AVR Studio 5 (das auf Visual Studio ab Version 5 basiert).

Sie müssen auch die Fähigkeiten jedes Entwicklungskits erkennen.

Bildbeschreibung hier eingeben

Es basiert auf Atmega-Chips, verwendet jedoch langsame Taktraten (8 MHz, 16 MHz), ist aber durchaus in der Lage, verschiedene Bits und Bops auszuführen. Es ist ein guter Ausgangspunkt für das Erlernen der Elektrotechnik, da es eine kostenlose IDE und eine riesige Community mit tonnenweise Code und Bibliotheken hat. Wenn Sie von hier lernen, wird es einfacher sein, in Bezug auf Syntax und Code-Portierung auf andere AVR-basierte Chips umzusteigen.

Es ist sehr begrenzt auf das, was es kann. Erwarten Sie beispielsweise nicht, Videodaten über einen internen Micro-Webserver an das Internet weiterzuleiten. Diese MCUs können die Daten und die Menge der zu erledigenden Aufgaben nur einmal gleichzeitig verarbeiten Wenn Sie dieses Niveau erreichen, ist es ratsam, auf .NET- oder 32-Bit-AVRs umzusteigen.

  • AVR 32

Diese Jungs können mit LCDs, Videos, Webservern, WLANs und vielen anderen Dingen selbst umgehen. Sie beginnen auch, in der Verarbeitungsgeschwindigkeit viel schneller zu werden. Bevor Sie sich diese ansehen, müssen Sie sich jedoch darüber im Klaren sein, dass es mehrere Produkte gibt, die auch bestimmte Funktionen erfüllen. Einige sind gemischt und aufeinander abgestimmt und erfordern einen ordnungsgemäßen Forschungs- und Entwicklungsprozess diese bösen Jungs.

  • Texas Instruments

Sei sehr vorsichtig mit ihnen,

Sie bieten fantastische marktführende Chips, die erstaunlich sind, wenn Sie über sie lesen. Leider gibt es keine kostenlose IDE und sie kosten Tausende von Dollar an Lizenzgebühren. Einige Produkte wie der MSP430 haben zwar eine kostenlose IDE, aber viele Dinge sind grenzwertig und unklar. Auch das Erlernen der Bibliotheken für einige TI-Chips ist ein absoluter Albtraum. Aber es ist ein Nischenmarkt, und Sie können hier ein gutes Gehalt erzielen.

Es gibt jede Menge Devkits, ich habe Ihnen nur einige meiner eigenen Erfahrungen aus einer .NET-Zertifizierung erzählt. Ich habe mit einem Arduino Mega256 angefangen.

Heute fertige ich meine eigenen Leiterplatten mit einer Größe von nur 1,5 x 1,5 cm, auf denen bis zu zwei Jahre lang Münzzellen mit TIs erstaunlichen SystemOnChips betrieben werden. Aber es hat viel Zeit und Geduld gekostet, und ich habe immer noch das Gefühl, nichts über eingebettete Systeme zu wissen ...

Viel Glück :-)


10
... Sie meinen ernsthaft, dass jeder Softwareentwickler entweder .NET oder PHP verwendet?
Nick Johnson

@ NickJohnson in der Mehrheit .... Gehen Sie zum Webhost-Anbieter und Sie haben zwei Auswahlmöglichkeiten für den Servertyp. Windows .NET -OR- Linux LAMP mit PHP .. Es ist nicht nur ich .. Ich wette, Sie sind wie ein Rubin auf Schienen oder C ++? Ich weiß, ich beziehe mich nur auf Web-Technologien. Aber Anwendungen sind so gestern. Lassen Sie uns mithalten.
Piotr Kula

Es war eine nette Frage. Meine Hauptberufserfahrung liegt in (gut geschriebenem) PHP, aber ich spreche auch fließend Java, C & C ++ und Javascript.
Dukeofgaming

12
"... Anwendungen sind so gestern ..." - Sagen Sie das den Hunderttausenden von Nicht-Web-App-Entwicklern da draußen. Anstelle von "Lass uns mithalten", wie wäre es mit "Lass uns real sein"? Wenn .NET und PHP die einzigen Optionen zum Schreiben von Software wären, würde ich meinen PC über eine Brücke werfen. Webanwendungen sind nicht die einzigen Anwendungen.
Justin ᚅᚔᚈᚄᚒᚔ

1
@ppumkin, ich bin immer noch der festen Überzeugung, dass Benutzer lernen sollten, Assemblys zu lesen, um zu sehen, wann sie etwas Dummes tun.
Kortuk

1

Ihre Frage ist ziemlich weit gefasst und es wird viele gute Möglichkeiten geben. Wenn Sie sich mehr darauf konzentrieren, wie ein kleiner Computer mit physischen Dingen interagiert, schlage ich vor, dass Sie sich etwas wie das Lego Mindstorms-Kit ansehen . Damit können Sie Roboter bauen und programmieren. Dies wird ein hohes Maß an Plug-and-Play verschiedener Sensoren usw. sein.

Es gibt auch eine wesentlich grundlegendere Ebene der Elektrotechnik, in der ein "echter" EE Sensoren entwerfen und bauen würde. Die Verwendung eines Einplatinencomputers wie eines Arduino oder eines Netduino und eines Steckbretts, auf dem Sie verschiedene Komponenten wie Widerstände, LEDs usw. in das Steckbrett stecken, um Schaltkreise zu konstruieren, ist näher an dieser grundlegenderen Ebene. An dieser Stelle beschäftigen Sie sich mit Fragen wie "Welchen Widerstandswert sollte ich in Reihe mit der LED schalten, um den Strom zu begrenzen, damit meine LED und mein Mikrocontroller nicht in Rauch aufgehen?".

Mit dem Lego-Kit stecken Sie einfach die Komponenten zusammen und sie haben dafür gesorgt, dass es idiotensicher ist.


1
Eigentlich würde der "wahre" EE wahrscheinlich kein Ardunio und Steckbrett verwenden.
Jeanne Pindar

@Jeanne - Stimmt, aber wir können nicht alle Jeri Ellsworth sein und unsere eigenen Transistoren herstellen: youtube.com/watch?v=w_znRopGtbE
JonnyBoats

1

Ich würde vorschlagen, sich auf den Unterschied zwischen der für den PC geschriebenen Software und der für eingebettete Anwendungen geschriebenen Firmware zu konzentrieren. Mit der Popularität von embeddd linux nimmt der Unterschied zwischen einem Firmware-Entwickler und einem Software-Entwickler rapide ab. Verbringen Sie einige Zeit mit dem Betrachten eines Open Source Embedded-Treibers.

Ich würde etwas den Wunsch hinterfragen, mehr wie ein EE zu werden, da die beiden Disziplinen ziemlich verschieden sind. Ja, es gibt eine Menge Überlappungen, aber konzentrieren Sie sich auf die Fahrerseite und bleiben Sie nicht im Detail der Elektronik stecken.


Er sagt dir, dass er in die Elektronik will!
Stevenvh

Was ich vorschlage, ist ein Top-Down-Ansatz auf der Softwareseite, anstatt mit einem Schaltplan zu beginnen und von den E / A-Pins zurück zu arbeiten. Dies erscheint mir vernünftig, da ich "Fähigkeiten in der Elektronikentwicklung auf Software-Ebene" so interpretiere, dass ich mich auf die Firmware-Entwicklung konzentriere.
Spearson

1

zuallererst ist es wirklich in Ordnung, wenn Sie nicht aus der Elektronik kommen, werden Sie wirklich keine Chips entwerfen, oder?

Aber wenn du Elektronik lernen willst, würde ich dir empfehlen, zuerst die Grundlagen wie Widerstand, Dioden, Transistoren usw. zu erlernen. Ein Elektronik-Hobby-Kit von Radioshack oder einem anderen Anbieter würde das tun. Als nächstes würde Arduino zu den Mikrocontrollern übergehen Es ist wirklich einfach, aber ich rate Ihnen, etwas zu wählen, das noch nicht so einfach ist. Arduino ist wirklich einfach und stellt den Benutzer nicht vor große Herausforderungen. Beginnen Sie mit AVR-, PIC- oder 8051-Mikrocontrollern. Kaufen Sie einen Mikrocontroller Buch- und Srart-Codierung beginnend mit dem Blink-LED-Programm (der "Hallo-Welt" in der Elektronikabteilung) und wie Sie sehen werden, werden Sie in kürzester Zeit Matrix-Tastaturen und Sieben-Segment-Displays verwenden, um weitere Grundlagen zu erlernen arbeiten und Ihre Geräte mit anderen ICs und Sensornetzwerken verbinden, die sich auf Ihre Arbeit beziehen.Ihr Entwicklungsboard hätte bereits einige dieser Funktionen, und wenn Sie nicht immer problemlos Sheilds oder Breakout-Borads kaufen können, liegt das ganz bei Ihnen ...

Ich würde Ihnen auch raten, sich bei Ihrer Firma über die Plattform zu erkundigen, die sie verwenden. Dies würde Ihnen eine Anleitung zum Erlernen des Mikrocontrollers geben. Da Sie bereits Programmierer sind, sollte sich dies für Sie als sehr einfach erweisen und immer Hobbyprojekte wie Robot durchführen und LED-Matrix unter anderem, dies würde Sie auf das Thema konzentrieren, bei dem Sie sich nicht langweilen werden !!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.