Arduino ist eine aus Hardware und Software bestehende Mikrocomputerplattform. Das Arduino-Projekt wurde im Jahr 2005 von einer Gruppe befreundeter Entwickler in Italien gestartet. Sie veröffentlichten die Pläne für ihr erstes Mikrocontroller-Board unter einer Open-Source-Lizenz und fertigten die ersten 200 Prototypen. Der Name „Arduino“ wurde von der Bar in Ivrea übernommen, in der sich einige der Projektgründer gewöhnlich trafen. Die Bar selbst war nach Ardun von Ivrea benannt, der von 1002 bis 1014 König von Italien war. Inzwischen befinden sich viele Millionen Boards auf der ganzen Welt im Umlauf. In Europa werden die Arduino-Boards auch unter dem Namen „Genuino“ vertrieben.
Die Arduino Hardware
Mittlerweile gibt es eine zweistellige Anzahl an Arduino-Boards zur Auswahl, wodurch sich für jeden Einsatzzweck der richtige Arduino finden läßt. Das typische Arduino-Board basiert auf einem Microchip-AVR-Mikrocontroller aus der megaAVR-Serie, wie etwa dem ATmega 328. Inzwischen sind auch Arduino-Boards mit Arm Cortex 32-Bit-Prozessoer (Arduino Due) erhältlich. Am unteren Ende der Preis-, Leistungs- und Größenskala befinden sich der Arduino Micro und der Arduino Nano. Am anderen Ende finden wir die Arduino Mega2560 und Arduino Due.
Alle Boards sind mit einem Bootloader vorprogrammiert, so daß die Programmierung direkt über die serielle Schnittstelle ohne externes Programmiergerät erfolgen kann. Das Arduino-Board stellt digitale Input-/Output-Pins und analoge Input-Pins bereit, die die Verbindung zur elektronischen Peripherie herstellen. Es können auch PWM-Signale ausgegeben werden.
Typischer Vertreter mit dem wohl alle Arduino-Einsteiger ihre ersten Schritte machen, ist der Arduino UNO.Seine Hauptkomponente ist der Microchip-Mikrocontroller ATmega 328P mit Bootloader-Software. Er verfügt über 14 digitale I/O-Pins, wovon 6 als PWM-Kanäle genutzt werden können. Sechs analoge Input-Pins sind ebenfalls verfügbar.
Einige Arduino-Boards sind Shield-kompatibel, haben also eine besondere Anordnung ihrer Pins. Shields sind eine besondere Erfindung der Arduino-Welt. Es sind Erweiterungsbaugruppen, z. B. Display-Shields, WiFi-Shields, Relais-Shields, die direkt auf das Arduino-Board aufgesteckt werden können.
Das Breadboard
Typisch für Arduino-Projekte sind die sogenannten Breadboards. Diese Steckplatine dient der mechanischen Befestigung und der elektrischen Verbindung von elektrischen Bauteilen für Versuchsschaltungen und Experimente. Der englische Begriff „Breadboard“ hat seinen Ursprung darin, daß elektronische Schaltungen früher gern auf Holzbrettern aufgebaut wurden.
Bei der Nutzung eines Breadboards werden die Bauteile nicht auf einer Leiterplatte verlötet, sondern in Federkontakte gesteckt. Die Verbindung zwischen den Bauteilen wird durch eine entsprechende Anordnung der Bauelemente auf dem Breadboard beziehungsweise durch eingesteckte Verbindungsleitungen hergestellt. Das Rastermaß beträgt in der Regel 0,1 inch (0,24 mm) und entspricht damit dem Pin-Abstand von DIL-Gehäusen. Durch Umstecken der Bauelemente und der Verbindungsleitungen kann die Schaltung auf einfache Weise geändert oder angepaßt werden.
Die Arduino Software
Arduino wird über eine eigene integrierte Entwicklungsumgebung (Arduino IDE) programmiert. Die Arduino-IDE beinhaltet einen Code-Editor und bindet gcc als Compiler ein. Programmiert wird in C++. Zusätzlich sind die avr-gcc-Library und weitere Arduino-Bibliotheken eingebunden, die die Programmierung vereinfachen.
Nach dem erfolgreichen Download (https://arduino.cc/en/Main/Software) und ihrer Installation kann man die Arduino-IDE öffnen und ein erstes Programm, als Sketch bezeichnet, schreiben.
In der Mitte der Arduino-IDE befindet sich das Texteditorfeld in das das Programm geschrieben wird. Wie üblich, findet man oben links die Dateioperationen. Unter „Werkzeuge>Board“ ist das passende Arduino-Board und unter „Werkzeuge>Port“ der aktive Port einzustellen. Über die Menü-Symbole auf der zweiten Zeile kann man einen Sketch auf den Arduino hochladen. Dabei gibt es die Möglichkeiten den aktuellen Sketch vom C++-Code in den Maschinencode zu compilieren und ihn gleichzeitig auf Sytaxfehler zu überprüfen oder zusätzlich den Sketch anschließend gleich auf den Arduino hochzuladen.
Jeder Arduino-Sketch besteht prinzipiell aus zwei Teilen: dem Setup-Teil und dem Loop-Teil. Im Setup-Teil befinden sich einmalige Festlegungen, wie die Definition der Variablen und die Initialiserung der I/O-Pins. Er wird deshalb nach dem Programmstart nur einmal ausgeführt. Im Loop-Teil steht das eigentliche Programm und er wird nach dem Start ständig durchlaufen.
Ein Programmbeispiel
Das Programm sorgt für eine am Pin 13 angeschlossene im 1-Sekunden-Takt blinkende LED.
1 2 3 4 5 6 7 8 9 |
void setup() { pinMode(13, OUTPUT); //Pin 13 Output } void loop() { digitalWrite(13, HIGH); //LED ein delay(1000); //1 Sekunde warten digitalWrite(13, LOW); //LED aus delay(1000); //1 Sekunde warten } |
Weiterführende Informationen
- Offizielle Arduino-Webpräsentation https://arduino.cc
- Programmierung Arduino mini
- Michael Bonacina: Arduino Handbuch für Einsteiger. ISBN978-1544255491
- Bezugsmöglichkeit Reichelt Elektronik: https://reichelt.de
- Conrad Electronic: Wissenswertes über Arduino
- Der Spiegel: Was ist eigentlich ein Arduino?
- Arduino-Anleitung für Anfänger und Fortgeschrittene
- Arduino Sprachreferenz in deutsch
Projekt Morse-Tutor
Was ist der Plan?
Beim Erlernen und Festigen des Morsealphabets ist das Geben und Hören der Morsezeichen in 5er-Gruppen üblich, weil früher im Funkverkehr die Funksprüche meist in 5er-Gruppen übermittelt wurden. Gewöhnlich wurden dabei Zifferngruppen oder Buchstabengruppen verwendet. Gemischte Gruppen aus Ziffern, Buchstaben und Sonderzeichen werden nur zu Übungszwecken eingesetzt.
Es soll ein kleines Gerät, im Zentrum ein Arduino, gebaut werden, das mittels Zufallsgenerator erzeugte Zifferngruppen, Buchstabengruppen oder aus Ziffern und Buchstaben gemischte 5er-Gruppen an einen Lautsprecher oder einen Kopfhörer ausgibt. Die Tonhöhe, die Geschwindigkeit und die Anzahl der Gruppen sollen wählbar sein. Nach dem Senden der Gruppen soll eine Kontrolle der Zeichenfolgen auf einem Display möglich sein.
Die Komplettlösung, bestehend aus Soft- und Hardware, soll das Endergebnis sein, welches über verschiedene Zwischenetappen erarbeitet wird.
Ideen, Verbesserungsvorschläge und Mitarbeit sind ausdrücklich erwünscht.
Erzeugung von Zufallszahlen
Die 5er-Gruppen sollen sich je nach Betriebsart aus zufällig ausgewählten Buchstaben, Ziffern oder Kombinationen aus beiden zusammensetzen. Dazu wird jeder Ziffer und jedem Zeichen ein Wert zugeordnet. Also 0 = 0 … 9 = 9, 10 = a … 20 = j … 36 = z. Es müssen also Zufallszahlen im Bereich 0 … 36 erzeugt werden, die dann zu 5er-Gruppen geordnet werden. Wiederholungen von Zeichenfolgen sollen nicht vorkommen. Der ARDUINO ist selbst nicht in der Lage echte Zufallszahlen zu erzeugen. Eine Zufallszahl wird durch mathematische Rechenverfahren erzeugt. Dazu ist ein Initialisierungswert erforderlich. Wenn der gleich bleibt, ergibt sich immer dieselbe Zahlenfolge. Das wollen wir nicht. Deshalb verwenden wir für die Initialisierung das stochastische Rauschen der Atmosphäre. Nachfolgend ein kurzes Testprogramm mit Ausgabe an die serielle Konsole der ARDUINO-IDE:
1 2 3 4 5 6 7 8 9 10 |
//Testprogramm Zufallszahlen von 0 ... 36 void setup() { randomSeed(analogRead(A2)); //Einlesen Rauschsignal an Pin A2 Serial.begin(9600); //Initialisierung Verbindung Konsole Serial.println("Zeichennummer: "); //Ausgabe an Konsole } void loop() { Serial.println(random(1,37)); //Ausgabe Zufallszahl 0 ... 36 delay(2000); //2 Sekunden Pause } |