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.
quelle
Antworten:
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
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 :
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.
quelle
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.
quelle
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.
Sie können nach Herzenslust mit digitalen und analogen Schaltungsdesigns spielen und alles mit Software kombinieren, die in derselben IDE geschrieben wurde.
quelle
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.
quelle
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.
quelle
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.
Schritt 2.
Zusammen mit der Software NI Multisim .
quelle
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
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,
C
was 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.
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.
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.
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 :-)
quelle
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.
quelle
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.
quelle
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 !!
quelle