Welche Art von Projekt könnte einem Software-Ingenieur helfen, mehr zu einem Elektronik-Ingenieur zu werden? [abgeschlossen]

Ich bin Softwareentwickler und habe praktisch keinen Elektronikhintergrund, aber ich möchte mich damit befassen, da es für meine Arbeit (Entwicklung von Infotainmentsystemen) relevant ist. Ich bin Softwareentwickler, kein Elektronikingenieur, daher hat mein Hintergrund/meine Erfahrung mehr mit der Programmierung auf Anwendungsebene und vielleicht ein wenig mit der System-/Netzwerkprogrammierung zu tun.

Ich habe von Arduino als flexibler Projektplattform gehört und mich gefragt, welche Art von Projekten jemandem mit meinem Hintergrund helfen könnte, sich in die Elektrotechnik zu graben ... angefangen bei der Mikrocontroller-Programmierung und vielleicht beim Herumspielen mit anderen Arten von Peripheriegeräten wie Bluetooth , Zigbee, Wi-Fi, Audio, Video, ich weiß nicht ... vielleicht eine Art Projekt, das für Elektroniker während ihres Studiums typisch ist.

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

kann ein Technologiezuordnungsalgorithmus zum Iverilog-Back-End sein.
Ich würde empfehlen, dass Sie mit einigen 555-Timer-Projekten beginnen. Es gibt unzählige im Internet und sie vermitteln Ihnen ein grundlegendes Verständnis von Widerständen, Kondensatoren und in einigen Fällen von Induktivitäten, mit denen Sie sich vertraut machen müssen, um tatsächlich zu wissen, was Sie mit den übergeordneten Dingen wie z Mikrocontroller-Programmierung und ähnliches. Danach können Sie mit Arduino, PICAXE oder einer anderen Plattform spielen, die Sie interessant finden. Dann fangen Sie mutig an, an einem etwas größeren Projekt zu arbeiten, das Sie interessant finden, und geben Sie dabei nicht auf.
Ich bin in der gleichen Position, ich wollte nur an Hardware herumbasteln. Ich brachte ein Arduino und ein Spielzeug-RC-Auto mit und schloss sie zusammen. Keine Ahnung wie, aber es funktioniert und es ist großartig :) Es ist nicht allzu schwierig, ich hatte noch nie eine Zeile C geschrieben (C# dev hier) und hatte in ein paar Stunden etwas Grundlegendes am Laufen.
Was für ein Projekt? Ich würde ein Elektronikprojekt vorschlagen.
Metadiskussion zu dieser Frage hier: meta.electronics.stackexchange.com/questions/1083/…

Antworten (10)

Hier sind einige Vorschläge für Projekte, die für einen Softwareentwickler nicht schwer zu erreichen sind. Sie mögen alle ziemlich schwierig erscheinen, aber ich bin ein großer Fan davon, Projekte zu versuchen, die weit außerhalb meiner Fähigkeiten liegen. Wenn es sich um unterhaltsame, überzeugende Projekte handelt, 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, und aber viel Spaß (wer keine LEDs mag). Sie benötigen einige Treiber wie den ULN2803 und einen Mikrocontroller. Holen Sie sich die Matrix, um die Uhrzeit anzuzeigen, oder zeigen Sie ein Bild. Ich konnte gerade noch ein Bild von Bjork auf einer grünen 16x16-Matrix zeigen.


Kreiselstabilisiertes Schaumflugzeug

Holen Sie sich ein Schaumflugzeug und ein paar Mikro-Querruder :

Schaumflugzeug 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 herzustellen.


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 und mehr Funktionalität hinzufügen (Sensoren und Entscheidungsfindung) und dabei die ganze Zeit lernen.

Roboter

Wenn Sie bereits Softwareentwickler sind, sollte die Programmierung von Mikrocontrollern an sich keine Herausforderung sein, und es gibt wenig Elektronik. Zumindest nicht so, dass Sie mit verschiedenen Arten von Komponenten umgehen und Berechnungen zu Spannungen und Strömen anstellen müssten, damit etwas funktioniert.

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

Eingänge
Sie müssen sich neben Kondensatoren und Widerständen mit Temperatursensoren (jeglicher Art), Verstärkern, Operationsverstärkern und vielleicht Transistoren vertraut machen. Operationsverstärker und insbesondere Transistoren sind einfach, 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).

Mikrocontroller-Entwicklungsplatinen haben oft ein Display , LCD oder LED, oder können an ein Displaymodul angeschlossen werden. Dies ist zwar nützlich (z. B. zum Debuggen) und macht Spaß, hilft Ihnen aber nicht dabei, Elektronik zu verstehen. Sie müssen Ihr eigenes Display wie eine LED-Matrix erstellen und lernen, wie man ein Multiplex-Display ansteuert, sowohl aus Software- als auch aus Hardware-Sicht.

Abgesehen von der Mikrocontroller-Platine erhalten Sie ein elektronisches Starter-Kit , das die meisten grundlegenden Teile enthält, um einfache Schaltungen zu erstellen. Und natürlich ein gutes Handbuch . The Art of Electronics ist hier ungeheuer beliebt, obwohl es letztes Mal, als ich es sah, für ein Update fällig war.

Und wenn Sie den Thermostat satt haben, können Sie auf die Implementierung eines PID-Reglers upgraden. :)
Saubere Projektidee, die eine breite Palette elektrischer und elektronischer Konzepte umfasst. Sobald Sie dieses Projekt in diskreten Komponenten durchgeführt haben, können Sie zu einem Mikrocontroller wechseln, um die gleiche Aufgabe zu erledigen, und so die Vor- (Flexibilität) und Nachteile (vergleichbare Kosten) von Mikrocontrollern kennenlernen

Holen Sie sich ein PSoC-Entwicklungskit . Der PSoC ist ein Mikrocontroller, der rekonfigurierbare digitale und analoge Blöcke enthält. Sie können mit der IDE grundsätzlich digitale und analoge Schaltpläne verdrahten. Diese Schemata 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.

Dies ist ein ungewöhnlicher Ausgangspunkt; Der PSoC ist ein sehr komplexes und ungewöhnliches System. Hatten Sie Erfolg damit, andere mit diesem Ansatz zu schulen?
Es mag innen komplex sein, aber es ist ein Traum zu bedienen. Sie haben großartige Arbeit geleistet, indem sie dafür gesorgt haben, dass sich alles reibungslos integriert, und viele nette Tutorial-Videos und Dokumente erstellt.
Die Tatsache, dass all diese Peripheriegeräte in einem PSoC integriert sind, spricht dagegen. Sie sollen diese Systeme selbst bauen, wenn Sie lernen wollen.
@stevenvh Überhaupt nicht. Was ist der Unterschied zwischen dem Verdrahten von Gates innerhalb von Chips und dem Verdrahten von Gates in einem Schaltplan? Es ist konzeptionell identisch.
@sandundhammika Keine Probleme. Ich denke, jeder sollte entdecken, was für ein Vergnügen es ist, Anwendungen für diese Dinge zu entwickeln.
hast du einen Link?
PSoC3 . Sie müssen nach unten scrollen, um die Liste der Geräte anzuzeigen. Es war nicht sofort ersichtlich, dass ich die ersten 10 Mal dort war.

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

Das Schöne an dieser Software ist, dass Sie Variablen wie Quarze, Kondensatoren, Widerstände ändern können, ohne löten, entlöten, bestellen und warten zu müssen, bis Sie schließlich mit Proto-Boards oder Abschirmungen herumspielen. Es emuliert es perfekt.

Ebenfalls; Sie erhalten virtuelle Werkzeuge wie Osziskope. Wissen Sie, wie viel ein gutes Osziskop kostet? Ein Vermögen! Es ist alles mit praktisch unzähligen anderen Funktionen und virtuellen Tools enthalten.

Es ist nicht kostenlos, aber der Preis ist absolut angemessen für die Menge an Zeit und Frustration, die es Ihnen ersparen kann, anstatt mit der echten Hardware herumzuspielen.

Kannst du auf diese Weise echte Schaltungen bauen?
Ja, ich mache meine Schaltung in Proteus, zum Beispiel attiny 861 mit h-bride, und verlinke sie mit der Hex-Datei, die AVR Studio kompiliert. Jedes Mal, wenn ich die Quelle ändere und in AVRStudio kompiliere, animiere ich in Proteus und meine Änderungen sind sofort verfügbar. Und ich kann die Ausgabe von H-Bride mit einem Oszilloskop, einer Sonde oder einem Voltmeter mit genauen Messwerten messen. Genau wie bei meinem echten Proto. Es ist sehr gut

Ich denke, dass der Versuch, alles zu lernen, nur zu viel Verwirrung und verlorener Zeit führen wird. IMHO sollten Sie versuchen, Ihr Interesse zu bündeln: Sie haben gesagt, dass Sie es für Infotainmentsysteme brauchen, oder?

Ein Ansatz könnte darin bestehen, sich eine Vorstellung davon zu machen, 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...)

Jeder dieser Teilbereiche ist ein vollständiges System, das als Projekt untersucht und gestaltet werden kann. Einige von ihnen können auch in weitere Sub-Sub-Domänen auf einer niedrigeren Abstraktionsebene und bis hinunter zur Komponentenebene unterteilt werden.

Mein Vorschlag ist also, diese komplexe Architektur in Blöcke zu zerlegen und zu versuchen, einfache Schaltungen zu erstellen (vielleicht ausgehend von LED-Treibern), aber das kann dann in den größeren Plan eingefügt werden. Sie werden die Motivation dazu haben, da es Teil der Abschlussarbeit sein wird, und in der Art und Weise, wie Sie etwas über Elektronik lernen.

Kümmern Sie sich einfach darum, zu studieren und zu verstehen, was Sie tun, anstatt sich auf vorgefertigte Schaltpläne und allgemeine Faustregeln zu verlassen.

Ich war im selben Problem. Und schließlich habe ich gelernt, dass es keine Abkürzung gibt, um Elektronik zu lernen. Ein Hochschulabschluss kann Ihnen dabei helfen.

Ansonsten können Sie die folgenden Bücher ausprobieren:

Schritt 1.

Geben Sie hier die Bildbeschreibung ein

Schritt 2.

Geben Sie hier die Bildbeschreibung ein

Zusammen mit der Software NI Multisim .

Geben Sie hier die Bildbeschreibung ein

Nun, als Softwareentwickler sind Sie auf einer der beiden wichtigsten verfügbaren Plattformen.

PHP oder .NET?

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

Geben Sie hier die Bildbeschreibung ein

Es gibt jede Menge andere Hardware, aber ich schlage diese vor, weil ihr Preis angemessen ist und sie im Design dem Arduino und vielen anderen Arten von Prototyping-Boards sehr ähnlich ist, was dazu beitragen wird, Vertrautheit mit mehreren Kits zu entwickeln.

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

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

Das Wichtige an diesen beiden Typen ist, dass die Entwicklungsumgebungen KOSTENLOS SIND! Ja, Microsoft gibt Ihnen kostenloses Visual Studio für Micro Framework und Atmel hat AVR Studio 5 (basiert auf Visual Studio ab Version 5)

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

Geben Sie hier die Bildbeschreibung ein

Es basiert auf Atmega-Chips, aber sie verwenden niedrige Taktraten (8 MHz, 16 MHz), sind aber durchaus in der Lage, verschiedene Bits und Bops zu machen. Es ist ein großartiger Ausgangspunkt für das Erlernen der Elektrotechnik, da es über eine kostenlose IDE und eine riesige Community mit Tonnen von Code und Bibliotheken verfügt. Wenn Sie von hier aus lernen, wird es einfacher sein, in Bezug auf Syntax und Codeportierung auf andere AVR-basierte Chips umzusteigen.

Es ist sehr begrenzt auf das, was es tun kann. Erwarten Sie beispielsweise nicht, Videodaten über einen internen Mikro-Webserver an das Internet weiterzuleiten. Diese MCUs können die Daten und die Menge der gleichzeitig zu erledigenden Dinge nur einmal verarbeiten Erreichen Sie dieses Niveau, dann ist es gut, entweder auf .NET oder 32Bit AVRs aufzusteigen.

  • AV 32

Diese Jungs können LCDs, Video, Webserver, Wireless und jede Menge Sachen in sich selbst handhaben. Sie beginnen auch viel schneller in der Verarbeitungsgeschwindigkeit zu gehen. Aber bevor Sie anfangen, sich diese anzusehen, müssen Sie sich darüber im Klaren sein, dass es mehrere Produkte gibt, die auch bestimmte Funktionen erfüllen.. Wie Berührungssinn, drahtlose Kommunikation, extrem geringer Stromverbrauch, einige sind gemischt und aufeinander abgestimmt, und dies erfordert einen angemessenen Forschungs- und Entwicklungsprozess hinter der Verwendung diese bösen Jungs.

  • Texas-Instrumente

Seien Sie sehr vorsichtig mit ihnen,

Sie bieten fantastische marktführende Chips, die erstaunlich sind, wenn man darüber liest. Leider gibt es keine kostenlose IDE und sie kosten Tausende von Dollar an Lizenzgebühren. Obwohl einige Produkte wie der MSP430 eine kostenlose IDE haben, sind viele Dinge damit grenzwertig und unklar. Außerdem ist das Erlernen der Bibliotheken für einige TI-Chips ein absoluter Albtraum. Aber es ist ein Nischenmarkt und Sie können hier ein gutes Gehalt bekommen.

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

Heute stelle ich meine eigenen Leiterplatten mit einer Größe von nur 1,5 cm x 1,5 cm her, die mit Knopfzellen bis zu 2 Jahre lang laufen, indem ich die erstaunlichen SystemOnChips von TI verwende. Aber es hat viel Zeit und Geduld gekostet, dorthin zu gelangen, und ich habe immer noch das Gefühl, nichts über eingebettete Systeme zu wissen ...

Viel Glück :-)

... Sie ernsthaft vorschlagen, dass jeder Softwareentwickler entweder .NET oder PHP verwendet?
@NickJohnson in der Mehrheit .... Gehen Sie zum Webhost-Anbieter und Sie haben zwei Auswahlmöglichkeiten für den Servertyp. Windows .NET -ODER- Linux LAMP mit PHP.. Das bin nicht nur ich.. Ich wette, Sie sind wie ein Ruby on Rails oder C++? Ich weiß, ich beziehe mich nur auf Web-Technologien ... aber Anwendungen waren gestern ... lass uns weitermachen.
Es war eine süße Frage. Meine hauptsächliche berufliche Erfahrung liegt mit (gut geschriebenem) PHP, aber ich beherrsche auch fließend Java, C & C++, Javascript.
@dukeofgaming Sie sollten kein Problem haben, dies von der Codeseite aus zu verstehen. Es gibt hier so viele Antworten, die beweisen, dass dieses Thema massiv ist. Ich fordere Sie auf, einige grundlegende Elektronikbücher zu lesen, mit grundlegenden Beispielen mit 555-Timern, einigen Logikgattern und Transistoren, was Dioden sind und wann Kondensatoren verwendet werden. Aber am wichtigsten ... Lesen und verstehen Sie das Ohmsche Gesetz! Ohmkreis ausdrucken :)
"...Anwendungen waren gestern..." - Sagen Sie das den Hunderttausenden von Nicht-Web-App-Entwicklern da draußen. Statt „Let’s keep up“ wie wäre es mit „let’s be real“? 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.
@ppumkin Kein Problem auf der Code-Seite, aber wenn ich anfange, Hex-Zahlen und Assembler-Code zu sehen, geht mein Verstand num
@dukeofgaming - Sie müssen sich sehr selten Assembler-Code ansehen. Deshalb schreiben wir in C, damit er in ASM oder HEX kompiliert wird. Hex und Binär (Bits und Bytes), Sie müssen sie nur lernen. Sie sind einfach, suchen fast ways to convert between binary, decimal and hexadaceimalSie einfach in Ihrem Kopf nach, ohne unordentliche Diagramme und Schreiben auf Papier.
@ppumkin, ich bin immer noch der festen Überzeugung, dass Benutzer lernen sollten, Assembly zu lesen, um zu sehen, wann es etwas Dummes tut.

Ihre Frage ist ziemlich weit gefasst, und es wird viele gute Möglichkeiten geben. Wenn Sie sich mehr darauf konzentrieren, wie man einen kleinen Computer dazu bringt, mit physischen Dingen zu interagieren, kann ich vorschlagen, dass Sie sich etwas wie das Lego Mindstorms-Kit ansehen . Damit können Sie Roboter bauen und programmieren. Dies wird auf hohem Niveau durch Plug and Play verschiedener Sensoren usw.

Es gibt auch eine wichtige, grundlegendere Ebene der Elektrotechnik, auf der ein "echter" EE Sensoren entwerfen und bauen würde. Die Verwendung eines Einplatinencomputers wie eines Arduino oder Netduino und eines Steckbretts, auf dem Sie verschiedene Komponenten wie Widerstände, LEDs usw. in das Steckbrett stecken, um Schaltkreise zu konstruieren, wird diesem grundlegenderen Niveau näher kommen. 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-Bausatz steckst du die Komponenten einfach zusammen und sie haben dafür gesorgt, dass es idiotensicher ist.

Tatsächlich würde der "wahre" EE wahrscheinlich kein Ardunio und Steckbrett verwenden.
@Jeanne - Stimmt, aber wir können nicht alle Jeri Ellsworth sein und unsere eigenen Transistoren herstellen: youtube.com/watch?v=w_znRopGtbE

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. Frischen Sie C auf. Da embeddd Linux immer beliebter wird, schrumpft der Unterschied zwischen einem Firmware-Ingenieur und einem Software-Entwickler rapide. Verbringen Sie einige Zeit damit, sich einen eingebetteten Open-Source-Treiber anzusehen.

Ich würde den Wunsch, mehr wie ein EE zu werden, etwas in Frage stellen, da die beiden Disziplinen ziemlich unterschiedlich sind. Ja, es gibt eine Menge Überschneidungen, aber konzentrieren Sie sich auf die Fahrerseite und verzetteln Sie sich nicht in den Details der Elektronik.

Er sagt dir, dass er in die Elektronik einsteigen will!
Was ich vorschlage, ist ein softwareseitiger Top-Down-Ansatz, anstatt mit einem Schaltplan zu beginnen und von den IO-Pins zurück zu arbeiten. Dies erscheint vernünftig, da ich "Elektronik-Fähigkeiten auf Softwareebene" als Fokus auf die Firmware-Entwicklung interpretiere.

Zunächst einmal ist es wirklich in Ordnung, wenn Sie keinen Elektronikhintergrund haben. Sie werden wirklich keine Chips entwerfen, oder?

Aber wenn Sie Elektronik lernen möchten, würde ich Ihnen vorschlagen, zuerst die Grundlagen wie Widerstand, Dioden, Transistoren usw. zu erwerben. Ein Elektronik-Hobby-Kit von Radioshack oder einem anderen Anbieter würde ausreichen. Als nächstes würde Arduino zu den Mikrocontrollern übergehen Es ist wirklich einfach, aber ich würde Ihnen raten, mit etwas zu gehen, das noch nicht einfach gemacht wurde. Arduino ist wirklich einfach und stellt seinen Benutzer vor keine große Herausforderung. Beginnen Sie mit AVR-, PIC- oder 8051-Mikrocontrollern, kaufen Sie einen Mikrocontroller, a Buch- und Srart-Codierung, beginnend mit dem blinkenden LED-Programm (das "Hallo Welt" in der Elektronikabteilung) und wie Sie sehen werden, würden Sie in kürzester Zeit Matrixtastaturen und Siebensegmentanzeigen verwenden, um weitere Grundlagen zu lernen, danach kommt die Realität arbeiten, indem Sie Ihre Geräte mit anderen ICs und Sensornetzwerken verbinden, die mit Ihrer Arbeit zusammenhängen.Ihr Entwicklungsboard verfügt bereits über einige dieser Funktionen, und wenn dies nicht der Fall ist, können Sie jederzeit leicht verfügbare Schilde oder Breakout-Boards kaufen, dann liegt alles bei Ihnen ...

Ich würde Ihnen auch raten, sich bei Ihrem Unternehmen nach der Plattform zu erkundigen, die es verwendet. Dies würde Ihnen eine Anleitung zum Lernen des Mikrocontrollers geben, und da Sie bereits Programmierer sind, sollte sich dies als sehr einfach für Sie erweisen und immer Hobbyprojekte wie Robot durchführen und LED-Matrix unter anderem, dies würde Sie in das Thema einbeziehen, Sie werden sich nicht langweilen !!