Hallo, Ich möchte mich an die Mikrocontroller Programmierung wagen. Ich weiß leider nicht, wo ich am besten ansetzen soll und welche Lektüren und Internet Quellen, die besten Startpunkte sind für einen Anfänger. Beim Googlen werden zu viele Ergebnisse angezeigt, die mich nur mehr verwirren. Ich besitze einen Arduino und einen Raspberry Pi mit dem nötigen Starter-Set, um damit grob einzusteigen und bisher habe ich nur ein kurz mit LED's und Button Interrupts gespielt. Habe irgendwie nicht viel verstanden und seitdem liegt alles in der Ecke rum. Jetzt möchte ich es erneut versuchen und hatte gelesen, es macht mehr Sinn sich einen Mikrocontroller rauszupicken anstelle eines Boardes, um die Konzepte besser zu lernen und zu verstehen. Gibt es bei der Auswahl der Mikrocontroller Unterschiede, auf die man als Anfänger achten muss? Gibt es welche, die nicht einsteigerfreundlich sind? Gibt es eventuell Online Video Kurse, die den Anfang erleichtern und Schrittweise die ersten Basics näher bringen?
Daniel T. schrieb: > es macht mehr > Sinn sich einen Mikrocontroller rauszupicken anstelle eines Boardes, um > die Konzepte besser zu lernen und zu verstehen. Mag sein .... Daniel T. schrieb: > Arduino und einen Raspberry Pi Sollte man nicht in einen Topf werfen. Für den Pi gibts alle Sprachen, zumindest die wichtigsten Hundert. Auch hat es in der Regel ein OS. Arduino üblicher weise nicht. Und wenn die beiden schon in einem Pof landen, dann ist die Schnittmenge über alle möglichen Sprachen C und C++. Ich rate dir zu einem schönen dicken modernen C++ Buch. Das deckt beide Welten einigermaßen ab. Daniel T. schrieb: > Gibt es bei der Auswahl der Mikrocontroller Unterschiede, auf die man > als Anfänger achten muss? Gibt es welche, die nicht einsteigerfreundlich > sind? Ja, und ja.
Daniel T. schrieb: > Jetzt möchte ich es erneut versuchen und hatte gelesen, es macht mehr > Sinn sich einen Mikrocontroller rauszupicken anstelle eines Boardes, um > die Konzepte besser zu lernen und zu verstehen. Du kannst den Arduino (welchen eigentlich?) so behandeln, als wär’s ein nackter μC. Daniel T. schrieb: > Gibt es eventuell Online Video Kurse, die den Anfang erleichtern und > Schrittweise die ersten Basics näher bringen? Bestimmt gibt’s Videokurse, die’s versprechen. Sinnvoller wäre eigentlich textbasiertes Material. Tatsächlich gibt’s ein uraltes Medium, das für den Zweck des Lernens immer noch ungeschlagen ist: Das Buch. Und das Datenblatt des betreffenden Controllers – praktischerweise ist der im Falle eines ATmega328p (bekannt von Arduino Uno R3, Arduino Nano) ebenfalls: Ein Buch
Ich wundere mich soeben darüber, daß noch niemand das hauseigene Tutorial https://www.mikrocontroller.net/articles/AVR-Tutorial vorgeschlagen hat. Ich habe selbst damit begonnen und zu Beginn Assembler gelernt. Obwohl ich nun fast alles mit Arduino programmiere, hilft mir das Basiswissen aus diesem Tutorial enorm. Ich kann es nur empfehlen! Gruß, Nino.
Kannst Du eine Programmiersprache? Wenn nein, würde ich mich erst einmal da einarbeiten. Dafür brauchst Du noch keinen µC, sondern das geht am PC m.M. nach sogar besser. Und danach würde ich mich - wie schon erwähnt - nach einem guten Buch umsehen. Gerade für Grundlagenvermittlung finde ich ein Buch nach wie vor das Mittel der Wahl. Auch wenn die Volltextsuche nicht so performant ist ;) Aber darin kann ich auch mal Notizen reinschreiben, oder was markieren. Wenn die groben Grundlagen (µC + Sprache) einmal vorhanden sind, geht die Vertiefung der Kenntnisse quasi von selbst.
Ich bedanke mich für die Antworten. Der Arduino, den ich besitze, ist ein Arduino Uno R3. Ich bin schon mit den Grundlagen der Programmiersprachen C, Python, Javascript vertraut und mit Java habe ich auch Kenntnisse im Bereich der Objektorientierten Programmierung. Wenn ich die bisherigen Information richtig verwertet haben sollte, würde es also Sinn machen mit dem AVR Tutorial zu beginnen, dann anschließend mit Hilfe von Büchern und dem Datenblatt zum Arduino in die nächsten Schritte gehen?
Wenn du schon C kannst, und einen Uno da hast, böte sich https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial an. Es ist zwar bestimmt nicht verkehrt, auch den Assembler-Kram durchzugehen, aber wenn man schon Kenntnisse hat, an die man anknüpfen kann, wäre das wohl der sinnvollste Einstieg.
:
Bearbeitet durch User
Wenn man schon C kann, würde ich auch nicht mit Assembler anfangen. Viel wichtiger ist es zu lernen, wie man komplexe Aufgaben in einzelne Abläufe zerlegt (Top-down).
Daniel T. schrieb: > Habe irgendwie nicht viel > verstanden und seitdem liegt alles in der Ecke rum. Daran wird sich vermutlich nichts ändern wenn Du kein konkretes Ziel damit verfolgst. Tutorials oder dicke Lehrbücher motivieren selten. Also überlege Dir doch bitte zunächst mal was Du gerne bauen möchtest. Anregungen finden sich, nicht nur in diesem Forum, genug!
Jack V. schrieb: > Wenn du schon C kannst, und einen Uno da hast, böte sich > https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial an. Kann ich auch empfehlen. Nachdem du das gelesen hast, kennst du die Grundlagen der uC, insbesondere AVR Programmierung mit C. Das Datenblatt des Controllers liefert dann nurnoch weitere Register/Bit Bezeichnungen und Beschreibungen, sowie Hardwaredetails. -> Atmel Studio installieren, kompatiblen Programmer beschaffen. Tutorial, Datenblatt bereitlegen und beginnen.
:
Bearbeitet durch User
Daniel T. schrieb: > Ich besitze einen Arduino und einen Raspberry Pi mit dem nötigen > Starter-Set, um damit grob einzusteigen und bisher habe ich nur ein kurz > mit LED's und Button Interrupts gespielt. Habe irgendwie nicht viel > verstanden und seitdem liegt alles in der Ecke rum. > > Jetzt möchte ich es erneut versuchen und hatte gelesen, es macht mehr > Sinn sich einen Mikrocontroller rauszupicken anstelle eines Boardes, um > die Konzepte besser zu lernen und zu verstehen. Die Aussage, dass es mehr Sinn macht "sich einen Mikrocontroller rauszupicken anstelle eines Boardes" erscheint mir fragwürdig. Wo genau hast Du das gelesen? Mein persönlicher Einstieg in die Welt der Mikrocontroller war vor der Arduino-Zeit. Zum Einstieg habe ich mir einen AVR-Mikrocontroller herausgesucht, mir ein Arduino-ähnliches Board selbst geätzt und hergestellt, habe mich dann wie hier im Thread empfohlen zuerst mit dem AVR-Tutorial und später mit dem AVR-GCC-Tutorial beschäftigt. In der heutigen Zeit würde ich dieses Vorgehen einem Einsteiger in die Welt der Mikrocontroller aber nicht mehr empfehlen. Ich würde für den Einstieg stattdessen zu einem günstigen Arduino-Board und der Arduino-IDE raten - also im Prinzip genau das, was Du auch getan hast... Mit Assembler würde ich mich erst beschäftigen, wenn es wirklich nötig/sinnvoll ist; für den Einstieg macht C/C++ imho viel mehr Sinn. Und alle für eine Mikrocontroller-Schaltung benötigten Teile auf einem Breadboard selbst zusammenzustecken o.Ä., statt ein fertiges Board zu benutzen, würde ich nicht ganz am Anfang machen, sondern erst, wenn man die ersten Schritte bereits hinter sich und bis dahin alles gut verstanden hat. Kurzum: Ich glaube nicht so recht, dass Dein eigentliches Problem daran lag, dass Du ein fertiges Arduino-Board hast und vermutlich die Arduino-IDE nutzt. Ich denke, Dein Problem liegt eher woanders...
Nimm das Arduino Board. In das Arduino Framework oder Assembler würde ich mich an deiner Stelle nicht einarbeiten, sondern den MC mit Atmel Studio in C programmieren. Wichtig ist das Datenblatt und wie die Peripherie über die Register gesteuert werden zu verstehen. Fange einfach mit dem blinken einer Led mit einer Warteschleife an. Dann den Taster in Betrieb nehmen mit kurz drücken die Blinkfrequenz erhöhen und mit lang drücken erniedrigen. Dann hast schon mal die IO-Ports verstanden. Der nächste Schritt wäre dann einen Timer für die Blinkzeit zu verwenden. Dann die Serielle Verbindung zum PC und vom PC aus Blinkfrequenz ändern. Dann ein I2c oder SPI Display besorgen und Blinkfrequenz anzeigen. Den ADC in Betrieb nehmen und Werte anzeigen. usw bis du die ganze Peripherie durch hast. Stell dir Aufgaben die nicht einfach abtippen oder kopieren aus dem Internet bedeuten da lernst du nichts.
Hi Nino K.L. schrieb: > Ich wundere mich soeben darüber, daß noch niemand das hauseigene > Tutorial https://www.mikrocontroller.net/articles/AVR-Tutorial > vorgeschlagen hat. Ja, mit dem hauseigenen Tutorial habe ich auch angefangen. Doch wenn du (Daniel) kein Ziel hast, wird es sehr schwer, in eine Programmierung einzusteigen. Daher habe ich mein Buch mit dem Aufbau eines Programms geschrieben. Ganz klare Zielsetzung, ein Programm, welches die Arbeit mit einem Controller erleichtern soll. Damit mann erst einmal kostenlos ausprobieren kann, ob programmieren überhaupt liegt, hab ich das ganze mit Visual Basic begonnen. Da sind einige Versionen kostenlos im Download und damit bekommst du erst mal ein Gefühl für eine Programmiersprache und das daraus entstandene Programm. Erst der zweite Teil befaßt sich dann mit der Programmierung eines Atmega8. Es sind alle möglichen Übungen beschrieben, aber auch hier gibt es ein Ziel. Auch wenns vielleicht etwas abgegriffen ist, am Ende hat man eine Digitaluhr mit 7-Segmentanzeigen. Mit ein wenig Fleiß und Phantasie sind auch andere Ziele möglich. Und wenn andere Controller verwendet werden muß man halt ein wenig anpassen und in die Datenblätter schauen. Vielleicht schaust du dir das Buch mal an, kostet nix. Da es bei mir sowieso nur verstaubt ist, hab ich es zur Verfügung gestellt. https://www.makerconnect.de/media/user/oldmax/PC%20und%20Mikrocontroller%20Teil%201%20und%202%20Stand%2026.07.2019.pdf Unter diesem Link kannst du dir das runterladen. Viel Spaß Gruß oldmax
oldmax schrieb: > https://www.makerconnect.de/media/user/oldmax/PC%20und%20Mikrocontroller%20Teil%201%20und%202%20Stand%2026.07.2019.pdf > Unter diesem Link kannst du dir das runterladen. Viel Spaß > Gruß oldmax Ich hab nur mal kurz reingeschaut. Sehe ich das richtig? Du kannst mit Deinem Tutorial den AVR mit Visual-Basic programmieren? Da ins- besondere ältere schon Erfahrung mit Basic haben, könnte das den Einstieg sehr erleichtern.
Hi Nein, mit VB kannst du keinen Controller Programmieren, zumindest nicht mit dem Programm aus dem Buch. Aber du kannst dir die Inhalte der Variablen im Controller zur Laufzeit anzeigen lassen, um Fehler zu erkennen oder aber für andere Zwecke. Dafür sollte das Buch die Anleitung sein, um eigene Anwendungen zu schreiben, um bzw. Daten von einem Controller zu bearbeiten. Das steht aber alles im Buch. Lies einfach Mal im Inhaltsverzeichnis. Gruß oldmax
Daniel T. schrieb: > Jetzt möchte ich es erneut versuchen und hatte gelesen, es macht mehr > Sinn sich einen Mikrocontroller rauszupicken anstelle eines Boardes, um > die Konzepte besser zu lernen und zu verstehen. Ich empfehle, mit einem fertigen Board anzufangen. Diese Chips sind nicht gerade einfach zu löten und erfordern so oder so eine Platine. Man sollte nicht zu viele Baustellen gleichzeitig aufmachen. > Gibt es bei der Auswahl der Mikrocontroller Unterschiede, auf die man > als Anfänger achten muss? Gibt es welche, die nicht einsteigerfreundlich > sind? STM hat eine sehr breite Palette von Mikrocontrollern mit mehr oder weniger Funktionen. Je mehr Funktionen die Dinger haben, umso komplexer ist ihre Programmierung - insbesondere weil es dort mehr zu konfigurieren gibt und mehr Wechselwirkungen zwischen den Funktionseinheiten bestehen. Wenn du unbedingt mit einem STM32 anfangen willst, dann würde ich Dir zu den Serien STM32L0 oder STM32F3 raten. Die sind in der Liga der relativ einfachen Modelle einzuordnen - aber immer noch erheblich komplexer als die allermeisten 8bit Mikrocontroller. Ich würde Dir allerdings eher dazu raten, dich mit dem Arduino Uno weiter zu beschäftigen. Denn der ist durchaus überschaubar und im Internet extrem gut dokumentiert - auch bei Youtube. Mann muss es sich nur anschauen und ausprobieren. Schau Dir dazu diese Seiten an: http://stefanfrings.de/mikrocontroller_buch/index.html http://stefanfrings.de/stm32/index.html
So viele neue Beiträge, für die ich mich an dieser Stelle ebenfalls bedanken möchte. Ich werde alle eure Ratschläge beherzigen und mir die genannten Quellen anschauen und durcharbeiten. Dankeschön :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.