Wer in die Mikrocontrollerentwicklung einsteigen möchte, hatte bis vor ein paar Jahren noch mit relativ hohen Kosten und dann teilweise auch mit einer umständlichen Handhabung der Hardware zu kämpfen. Seit dem Arduino-Projekt ist vieles anders. Wir geben euch einen Überblick.
Mikrocontroller, bitte was?
Unter einem MiKrokontroller versteht man im weitesten Sinne einen Halbleiterchip, der neben einem Prozessor auch entsprechenden Arbeitsspeicher und Programmspeicher beherbergt. Zudem stellen moderne Mikroprozessoren diverse Schnittstellen bereit, um mit Peripheriegeräten kommunizieren zu können. Im Grunde handelt es sich also um einen Computer auf Fingernagelgröße.
Selbst einfachste Geräte des alltäglichen Lebens greifen in ihrer Funktion oft auf Mikrocontroller zurück, kostet entsprechende Chips heutzutage nur noch wenige Cent bis Euro – abhängig von der Ausstattung. Ein häufig im Zusammenhang mit Mikrocontrollern genannter Begrifft ist „System-on-a-Chip“ (kurz SoC), welcher nichts weiter als die Tatsache beschreibt, dass ein Mikrocontroller diverse Komponenten eines Computersystems auf einem physikalischen Bauteil vereint.
Ein Mikrocontroller ist ohne ein entsprechendes Software-Programm wertlos. Deshalb muss zur Inbetriebnahme, der entsprechend zu Problemstellung passende Softwarecode in den Speicher des Controllers geflasht werde. Umgangssprachlich ist hier auch oft von der „Firmware“ die Rede. Im Endeffekt handelt es sich dabei ganz einfach um das Programm, welches vom Mikrocontroller ausgeführt wird. Im weitesten Sinne könnte man das BIOS eines Computers ebenfalls als ein Programm bezeichnen, welches auf einem Mikrokontroller ausgeführt wird.
Der Flash-Vorgang ist, abhängig vom verwendeten Controller, mehr oder weniger aufwändig und basiert fast immer auf der Verwendung eines speziellen Programmiergerätes, dass den Computer mit dem Mikrokontroller verbindet.
Auch wenn man sich hauptsächlich mit Hardware befasst, lohnt es sich, näher auf die Software einzugehen. Software-Skills werden in vielen Unternehmen hoch geschätzt und können zum Beispiel bei der Jobsuche im Bereich der Hardware-Entwicklung ein entscheidender Vorteil sein.
Die Arduino Plattform
Hinter dem Namen Arduino versteckt sich eine mittlerweile ausgewachsene Entwicklungsumgebung, die Hardware- und Softwarekomponenten bereitstellt. Sowohl die Programmiersprache als auch die entsprechenden Mikrokontroller-Boards sind unter einer OpenSource-Lizenz verfügbar.
Der Softwareteil des Arduino Projekts ist die Arduino IDE. IDE (Integrated Development Environment) steht dabei für integrierte Entwicklungsumgebung. Diese Anwendung erlaubt das Schreiben von Programmcode, der anschließend auf den Mikrocontroller übertragen werden kann, damit dieser seine geplante Funktion ausführt.
Der gesamte Übertragungsvorgang zwischen Arduino IDE und den passenden Arduino Mikrocontroller-Boards wurde dabei so weit vereinfacht, dass sich die Arduino-Platine einfach per USB mit dem Computer verbinden lässt und die Software mit einem Knopfdruck kompiliert und auf den Controller gespielt werden kann. Die im Hintergrund nötigen Aktionen zum Flashen des Chips bleiben für den Anwender unsichtbar. Somit stellt Arduino das Entwickeln und Experimentieren an sich in den Vordergrund und nimmt Anfängern nicht die Motivation, wenn es um das grundsätzliche Überspielen von Programmen in einen Mikrocontroller geht.
Die Arduino IDE basiert auf der Processing Programmiersprache. Programmiert werden kann in C oder C++. Im Hintergrund kommt zudem der AVR-Assembler zum Einsatz, welcher sich um die Übersetzung des Programmcodes in für den Mikrokontroller verständlichen Code kümmert.
Anzeige:
Arduino Entwicklungsboards
Mikrokontrollerprogrammierung klingt zunächst einmal sehr abstrakt. Schaut man sich die zugrundeliegende Hardware jedoch einfach genauer an, wird einiges klarer. So besteht ein Arduino Board aus mehreren Komponenten. Gut zu erkennen ist der schwarze, längliche Mikrokontroller (Atmel ATmega328P), der die gesamte Rechenarbeit übernimmt. Zusätzlich verfügt beispielsweise das Arduino UNO Board über eine USB-Typ-B-Schnittstelle zur direkten Verbindung mit dem Computer. Außerdem ist ein Stromanschluss vorhanden, sollte der Arduino UNO später selbstständig und ohne USB-Verbindung seine Arbeit verrichten müssen.
Quelle: arduino.cc // Creative Commons Attribution ShareAlike 3.0
Seitlich sind mehrere Anschlussmöglichkeiten definiert. Dabei bietet der Arduino UNO insgesamt 14 digitale Signalein- bzw. Ausgänge, die mit externen Geräten kommunizieren können. Zusätzlich stehen sechs analoge Eingänge bereit, um beispielsweise Spannungspegel von Sensoren an den Controller zu übergeben und in nutzbare Werte innerhalb des Programms umzurechnen.
Die folgende Tabelle stellt die technischen Daten der drei beliebtesten Arduino-Boards dar:
Name |
Arduino UNO |
Arduino MICRO |
Arduino MEGA 2560 |
Mikroprozessor |
ATmega328P |
ATmega32U4 |
ATmega2560 |
Taktfrequenz |
16 Mhz |
16 Mhz |
16 MHz |
Digitale Ausgänge/Eingänge (IO) |
14 |
20 |
54 |
Analoge Eingänge |
6 |
12 |
16 |
Flashspeichergröße |
32 KB |
32 KB |
256 KB |
Spannungsbereich (Eingang) |
7 – 12 V (gewandelt auf Betriebsspannung von 5) |
7 – 12 V (gewandelt auf Betriebsspannung von 5) |
7 – 12 V (gewandelt auf Betriebsspannung von 5) |
Gewicht |
25 g |
13 g |
37 g |
Preis |
Signaleingänge? Ich versteh‘ nur Bahnhof!
Mikrokontroller sind als einzelnes Bauelement in den allermeisten Fällen wertlos. Sinnvoll werden die kleinen Computer erst, wenn sie als Teil in eine elektronische Schaltung integriert werden. Das kann zum Beispiel eine LED-Leuchte und ein einfacher Taster sein. Über die digitalen Ein- und Ausgänge können beide Komponenten mit dem Arduino-Board verbunden werden. Ein Port wird im Code definiert als Eingang und lauscht, ob der Taster gedrückt wird, der andere Port ist ein Ausgang und steuert bei Bedarf die LED an. Zusammen mit ein wenig Programmcode, kann nun beispielsweise die LED für 5 Sekunden zum Leuchten gebracht werden, sobald der Knopf gedrückt wird. Ermöglicht wird diese Aktion durch den Mikrokontroller, der das Programm entsprechende ausführt und so die definierten Ein- und Ausgänge anspricht.
Quelle: arduino.cc // Creative Commons Attribution ShareAlike 3.0
Dieses Beispiel ist zugegebenermaßen eines der simpelsten Anwendungs-Szenarien, die man mit einem Arduino Board umsetzen kann. Je nach Anforderungen und Können lassen sich mit Arduino auch deutlich kompliziertere Aufgaben umsetzen. Ein Beispiel hierfür ist das MultiWii-Projekt, bei dem ein Arduino-Board zur Steuerung eines Multicopters (Drohne) eingesetzt wird.
Beispiele und Hilfe zu diversen Arduino-Sketches (so nennen sich die Arduino-Programme), gibt es im Arduino Playground, einer Sammlung vieler nützlicher Codezeilen, die das eigene Projekt auf das nächste Level befördern können.
Schlusswort
Wer sich ein wenig für elektrotechnische Zusammenhänge interessiert und sich zudem mit der strukturierten Denkweise der Programmierung anfreunden kann, der sollte sich Arduino definitiv einmal näher anschauen. Den Möglichkeiten, die eigenen Bastel- und DIY-Projekte eine ganz neue Dimension zu verleihen, sind quasi unbegrenzt.
Mit * oder markierte Links sind „Affiliate-Links“. Mit dem Kauf über diesen Link erhalten wir eine Verkaufsprovision, ohne dass du mehr bezahlst.
Aus Gründen der besseren Lesbarkeit wird auf die gleichzeitige Verwendung männlicher, weiblicher und diverser Sprachformen (m/w/d) verzichtet. Alle Personenbezeichnungen gelten gleichermaßen für alle Geschlechter.
Kommentieren, Austauschen und Fragen... 2 Kommentare
Hallo Herr Waldmann,
ich danke Ihnen für die vernünftigen Überblicke der diversen Schnittstellen bei der PC-Technik und darüber hinaus! Wäre optimal, Sie als Nachbar zu haben!
Mit besten Grüßen Hans-Willi Schneider
Hallo Hans-Willi,
vielen Dank für dein Feedback. Freut mich sehr, dass dir die Infos geholfen haben.
Viele Grüße, Nils
Schreibe einen eigenen Kommentar