Arduino
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 22.04 Jammy Jellyfish
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Arduino / Genuino 🇬🇧 ist eine Physical-Computing-Plattform, also ein Verbund von Mikrocontroller (Board genannt) und dazugehöriger Software, die beide quelloffen sind. Das heißt, man kann sich die Pläne für die Minicomputer herunterladen und diese selbst herstellen. Programmiert wird in C/C++ und die Entwicklungsumgebung ist sehr einfach gehalten und somit für Einsteiger hervorragend geeignet, auch dank vieler integrierter Bibliotheken und Beispiele. Den Aufbau der elektronischen Schaltungen kann man mittels Fritzing erstellen.
Neben den Boards von Arduino werden offiziell 🇬🇧 Intel Edison, Intel Galileo Gen 2 und Samsung ARTIK unterstützt. Eine Liste weiterer inoffizieller Hersteller 🇬🇧 eröffnet ungeahnte Möglichkeiten.
Arduino-IDE (2.0.4) |
Installation¶
Voraussetzung ist ein installiertes Java. Die deutschsprachige Entwicklungsumgebung (Arduino Integrated Development Environment) ist in den offiziellen Paketquellen enthalten oder man kann es direkt von der Projektseite manuell herunterladen. In den Paketquellen steckt allerdings eine stark veraltete Version, selbst in neueren Ubuntus. Man sollte eher die neueste Version installieren, da diese dann auch neuere Boards kennt, welche von der alten Version nicht unterstützt werden.
Download von der Projektseite¶
Auf der offiziellen Arduino-Seite Download-Seite 🇬🇧 ⮷ gibt es zwei Versionen für Linux: ein AppImage und eine zip-Datei.
AppImage Version¶
Das AppImage kann man einfach herunterladen, der Datei die Rechte zum Ausführen geben und starten. Vorher muss man noch die Bibliothek libfuse2 installieren (wird für AppImages benötigt).
sudo apt install libfuse2
Die AppImage-Version enthält keinen Launcher/Desktop-Verknüpfung. Diese kann man sich aber, wie nachfolgend für die Zip-Variante beschrieben, manuell erstellen.
Zip-File¶
Man lädt sich die Linux-Version als Zip-Datei herunter und entpackt diese an den gewünschten Ort. Um das Programm zu starten, führt man das Programm arduino-ide aus. Das entpackte Programmverzeichnis kann man bspw. ins Homeverzeichnis nach
/home/user/arduino-ide
verschieben/umbenennen.
Damit man die IDE bequem über die Softwareliste starten kann und als Favorit anpinnen kann, legt man sich noch eine .desktop-Datei an. Die Datei
~/.local/share/applications/arduino-ide.desktop
mit folgendem Inhalt anlegen (Nutzername user durch eigenen Nutzernamen ersetzen):
[Desktop Entry] Name=Arduino IDE Exec=/home/user/arduino-ide/arduino-ide Icon=/home/user/arduino-ide/resources/app/resources/icons/512x512.png Terminal=false Type=Application Categories=Science;Engineering;Physics
Dieser Datei noch Ausführungsrechte geben und man kann nun die Arduino-IDE bequem starten.
Portable Version¶
Zur Erstellung einer portablen Version (z.B. auf einem USB-Stick) genügt es das Archiv 🇬🇧 ⮷ zu entpacken [2] und im Stammverzeichnis der aktuellen Version den Ordner portable zu erstellen. Nun werden alle Bibliotheken und Programme an diesem Platz abgelegt. Bei einer Aktualisierung kann dieser Ordner gesichert und in das neue Verzeichnis abgelegt werden. Alternativ kopiert man die Dateien der neuen Version ins bestehende Verzeichnis und ersetzt die alten Dateien.
Installation aus den Paketquellen¶
Entscheidet man sich trotzdem für die veraltete Version aus den Paketquellen, muss folgendes Paket installiert werden:
arduino (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install arduino
Oder mit apturl installieren, Link: apt://arduino
Einstellungen¶
Hinweis:
Beim erstmaligen Start der IDE kann diese noch in englischer Sprache starten. In den Einstellungen kann man auf Deutsch umstellen. Nachfolgend wird bei der Beschreibung von Menübefehlen von der deutschen Version ausgegangen.
Die Einstellungen erreicht man über "Datei → Voreinstellungen". Hier kann unter anderem der Speicherort für die Sketche (Programme), die Editor-Sprache, die Textgröße angepasst und weitere Adressen für den Bordverwalter hinterlegt werden.
2x16 LCD-Display an einem Arduino UNO |
Konfiguration¶
Hinweis:
Die Arduino-IDE wird beständig weiterentwickelt. Entsprechend kann es zu Änderungen/Umbenennungen im Menü kommen. Auch gibt es Unterschiede zwischen der alten 1.x und neuen 2.x Versionen. Die nachfolgenden Anleitungen sind daher nur als grobe Orientierung gedacht. Für die konkrete Nutzung der Arduino-IDE gibt es zahlreiche Informationsquellen im Internet, die hier genauere Informationen liefern.
Achtung!
Die Konfiguration der Gruppenzugehörigkeit des Nutzers ist wichtig, da sonst keine Verbindung zum Board hergestellt werden kann (siehe Beschreibung unten).
Bibliotheken¶
Die Entwicklungsumgebung bringt eine Vielzahl von Bibliotheken mit. Je nach verwendeter Hardware kann es jedoch nötig sein weitere Bibliotheken zu installieren. Über "Sketch → Bibliothek einbinden" kann man entweder über "ZIP-Bibliothk hinzufügen" eine passende Library aufspielen oder man sucht via "Bibliotheken verwalten..." nach dieser. Die Dateien werden nach der Auswahl herunter geladen und an die richtige Stelle kopiert. Diese sind unter ~/Arduino/libraries zu finden.
Über "Sketch → Bibliothek einbinden" wählt man die im Sketch zu nutzende Bibliothek aus der Liste. Der passende Code (z.B. #include <LiquidCrystal.h>
) wird im Quelltext eingefügt.
Board¶
Wenn das Programm gestartet ist, wählt man zuerst unter "Werkzeuge → Board" das passende Board (zB. "Arduino/Genuino Uno"). aus, bzw. sucht im "Boardverwalter..." nach einem verfügbaren Treiber. Falls der Port nach dem Verbinden des Boards per USB nicht automatisch ausgewählt wurde, wählt man ihn unter "Werkzeuge → Port" aus.
Hinweis:
Bei der Arbeit mit mehreren Boards werden unter Umständen, neben /dev/tty0
, weitere Ports angezeigt.
Inoffizielle Boards¶
Um inoffizille Boards/Microcontroller zu ergänzen öffnet man die Einstellungen. Unter "Zusätzliche Boardverwalter-URLs" ergänzt man die Adresse und wählt das Gewünschte anschließend im Boardverwalter aus. Ein entsprechende Liste mit Links ist unter Unofficial list of 3rd party boards support urls zu finden.
Hinweis:
Für den ODROID-GO Advance gibt es eine Anleitung unter odroid.com 🇬🇧.
Gruppe¶
Wurde das Programm aus den Paketquellen installiert, prüft beim ersten Start der Arduino Permission Checker, ob alle nötigen Berechtigungen vorhanden sind. Im Normalfall bemängelt er, dass der Nutzer nicht in der Gruppe dialout
ist [5]. Dies kann per Bestätigung auf "Add" und anschließender Eingabe des Benutzerpassworts nachgeholt werden. Bei der manuellen Installation erscheint erst ein Fehler, wenn man versucht, Code auf das Board zu laden. Per Terminal kann die Eintragung nachgeholt und das Problem somit gelöst werden [4] [6]:
sudo adduser $USER dialout
Programmierung¶
Bevor man mit der Programmierung anfängt sollte auf einem Breadboard die Bauelemente der Schaltung stecken. Der Vorteil ist, dass man Schaltungen immer wieder umbauen und anpassen kann bevor ggf. eine Platine geätzt wird. Einen kleinen Einstieg im Umgang mit diesen Steckbrettern findet man unter Das Laborsteckbrett 🇩🇪.
Code¶
In neueren Versionen wird bereits das zweiteilige Grundgerüst des Programms (Sketch genannt) angelegt, welches standardmäßig aus den Teilen setup()
und loop()
besteht:
1 2 3 4 5 6 7 8 9 | void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } |
Die Beispiele sind durch Kommentare gut beschrieben. Somit kann der Quellcode gut nachvollzogen werden. Im folgenden Beispiel 🇬🇧 wird ein LCD-Display, welches mit dem Treiber eines Hitachi HD44780 kompatibel ist, angesteuert und Hello World
ausgegeben:
HelloWorld.ino
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | /* LiquidCrystal Library - Hello World Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are compatible with the Hitachi HD44780 driver. There are many of them out there, and you can usually tell them by the 16-pin interface. This sketch prints "Hello World!" to the LCD and shows the time. The circuit: * LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * LCD VSS pin to ground * LCD VCC pin to 5V * 10K resistor: * ends to +5V and ground * wiper to LCD VO pin (pin 3) Library originally added 18 Apr 2008 by David A. Mellis library modified 5 Jul 2009 by Limor Fried (https://www.ladyada.net) example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe modified 7 Nov 2016 by Arturo Guadalupi This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystalHelloWorld */ // include the library code: #include <LiquidCrystal.h> // initialize the library by associating any needed LCD interface pin // with the arduino pin number it is connected to const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal lcd(rs, en, d4, d5, d6, d7); void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.print("hello, world!"); } void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setCursor(0, 1); // print the number of seconds since reset: lcd.print(millis() / 1000); } |
Unter "Datei → Beispiele", sowie in der Linkliste, findet man unzählige Beispiele, die den Einstieg vereinfachen.
Hinweis:
Je nachdem welche Komponenten genutzt werden ist es nötig zusätzliche Bibliotheken einzubinden. Dies geschiebt per #include.
Hochladen¶
Hat man ein Sketch fertiggestellt schließt man den Arduino an den Linux-PC an, kompilert das Sketch und lädt es auf den Minicomputer. Im Programmfenster wird man darüber informiert, wenn der Vorgang abgeschlossen wurde. Probleme werden ebenfalls gemeldet.
Bedienung¶
Arduino-IDE | |
Schaltflächen | |
Überprüfung/Kompilieren des Sketches auf Fehler. Diese werden im unteren Teil des Programmfensters angezeigt. | |
Das Programm auf das Board hochladen. | |
Ein neues Sketch erstellen. | |
Vorhandenes Sketch öffnen. | |
Das derzeitige Projekt speichern. |
Es kann hilfreich sein die Ausgabe mit dem Seriellen Monitor ("Werkzeuge → Serieller Monitor") zu überprüfen.
Tastenkürzel¶
Tastenkürzel | |
Taste(n) | Beschreibung |
P | Sketch ausdrucken. |
S | Sketch speichern. |
R | Sketch kompilieren bzw. überprüfen. |
U | Sketch auf den Adruino hochladen. |
Strg + ⇧ + M | Serieller Monitor |
Links¶
Befehlsreferenz 🇬🇧 zur Programmierung von Arduinos
Arduino Playground 🇬🇧 - Plattform zum Austausch von Programmcode, Schaltplänen, Tutorialen, etc.
Fritzing 🇬🇧 - Programmcode und Schemata
Arduino ISP 🇬🇧
Manuals and Curriculum 🇬🇧 - Umfangreiche Link-Sammlung zu Handbüchern
Elegoo 🇬🇧 ⮷ - Treiber, Programmcode und Bibliotheken