ubuntuusers.de

Arduino

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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.

Arduino_Logo.png 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_204.png
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.

Wiki/Icons/usb.png

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.

1602a.png
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
Arduino_pruefen.png Überprüfung/Kompilieren des Sketches auf Fehler. Diese werden im unteren Teil des Programmfensters angezeigt.
Arduino_hochladen.png Das Programm auf das Board hochladen.
Arduino_neu.png Ein neues Sketch erstellen.
Arduino_oeffnen.png Vorhandenes Sketch öffnen.
Arduino_speichern.png 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

arduino_logo_2.png

Diese Revision wurde am 29. August 2024 08:35 von ghorwin erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Editor, Hardware, Bildung, Programmierung, Odroid, Arduino