AA_arduino-uno.jpg

© Medialinx AG

Arduino-Programmierung

Denken und Fühlen

Der Arduino lockt mit Offenheit und Portabilität: Die Schaltung des Minirechners ist ebenso frei lizenziert wie die zugehörige Entwicklungsumgebung. Grund genug, sich näher mit der Programmierung zu beschäftigen.

Mit dem Slogan "Ein Arduino fühlt und steuert die physische Welt besser als ein Desktop-PC" bewirbt der Hersteller [1] seine preisgünstige Mikroprozessor-Plattform. Das Aufmacherbild zeigt die Basisvariante Arduino Uno, das 53 x 68 Millimeter große Einsteigermodell der Minicomputer-Serie. Es kostet nur etwa 30 Euro [2] und basiert auf einem programmierbaren ATmega328-Prozessor.

Sechs analoge Eingänge (0 bis 5 Volt) und vierzehn Ausgangs-Pins (bis zu 40 mA Leistung) für Verbraucher prädestinieren den SBC als Ersatz für den bei aktuellen PCs meist fehlenden programmierbaren Parallelport. Die mit 16 MHz getaktete CPU überwacht und steuert diese Schnittstellen zur Außenwelt. Im Betrieb nimmt der Arduino nur rund 50 mA Strom bei 7 bis 12 Volt auf [3].

Mit dem PC kommuniziert der Winzling via USB, was auch unter Linux reibungslos funktioniert. Dies gilt auch für die unter der GPL vertriebene Entwicklungsumgebung [4], die auf Knopfdruck C- oder C++-Code in den 32 KByte großen Flash-Speicher des Arduino hochlädt und startet.

Die Baupläne aller Arduino-Modelle stehen ebenfalls unter einer freien Lizenz [5]. Sie dürfen sich ihren Minicomputer also auch selbst zusammenlöten, wenn Sie die nötige Fingerfertigkeit für den Umgang mit winzigen Mikroprozessor-Pins mitbringen.

Einfach anklicken

Auch wenn viele mit C oder C++ etwas anderes verbinden: Neben dem günstigen Preis macht gerade die einfache Programmierung den Arduino für den Einstieg in die Mikroprozessor-Programmierung interessant. Von der üblichen Komplexität der Embedded-Programmierung ist hier nichts zu spüren: Ein Knopfdruck in der Arduino-IDE compiliert den Quellcode, lädt ihn auf den Minirechner hoch und startet ihn.

TIPP

Falls die IDE sich beklagt, dass sie den am USB-Port angeschlossenen Arduino nicht findet, kann das am Modem-Manager liegen, der versucht, das Gerät als Modem anzusprechen. Beenden Sie dann den Modem-Manager – oder warten Sie einfach ein halbe Minute, bis er aufgibt.

Tief gehendes C- oder gar C++-Know-how brauchen Sie für die Arduino-Programmierung nur sehr selten. Auch die beiden Beispielprogramme, die dieser Artikel vorstellt, kommen ohne manuelle Speicherverwaltung mit malloc() und C++-Klassen aus.

Das erste Schaltungs- und Programmierexempel lässt sechs helle LEDs im von der Shell aus frei programmierbaren Rhythmus blinken. Die Schaltung eignet sich auch gut, um Zustände auf einem über USB angeschlossenen Computer oder von Serverdiensten optisch darzustellen. Einmal programmiert, blinkt der Minicomputer ohne Verbindung zum PC weiter.

Im zweiten Beispiel lauscht der Arduino auf den über einen Taster eingegebenen Morsecode und vergleicht ihn mit einer Punkt-Strich-Zeichenfolge. Am Klingelknopf angeschlossen, könnte der Arduino damit den Türöffner steuern und nur solchen Besuchern Zugang gewähren, die einen (bis zu 100 Zeichen langen) geheimen Rhythmus läuten.

Mehr Licht

Ohne angeschlossene externe Bauteile kann der Arduino bloß mit einer winzigen LED in der Nähe des USB-Anschlusses blinken. Sie können ein simples Blink-Programm von der Arduino-Homepage [1] auf ihr Gerät laden, um es damit zu testen.

Zu mehr Leuchtkraft verhelfen dem Minicomputer in der Beispielschaltung sechs High-Power-LEDs (Abbildung 1). Bei dem eingesetzten Typ des Herstellers Luckylight verkraften Blau und Grün zwischen 2,8 und 4 Volt, lassen sich also ohne Vorwiderstand paarweise hintereinander direkt an die 7,5 Volt des spannungsstabilisierten Arduino-Schaltnetzteils anschließen. Anders die roten LEDs: Bei einer zulässigen Eingangsspannung zwischen 1,6 und 2,4 Volt würden sie ohne vorgeschalteten Widerstand zwar nicht sofort durchbrennen, aber nach kurzer Zeit ausfallen.

Abbildung 1: Eine einfache, 10 x 10 Zentimeter große Rasterplatine bietet genug Platz für unsere Schaltung. Diese besteht aus einem Taster, den über Power-Feldeffekt-Transistoren angesteuerten helle LEDs sowie den aufmontierten Arduino.

Der Vorwiderstand muss beim roten Kanal also gut 3 Volt verbraten. Beim einem Stromverbrauch der LED von 35 mA gilt es nach dem Ohmschen Gesetz grob 100 Ohm vorzuschalten. Das entspricht Pi mal Daumen einem etwas weniger als halb geöffneten 250-Ohm-Poti. Damit sich die Helligkeit aller Kanäle regeln lässt, schalten wir diesen Poti auch vor die grünen und blauen LEDs.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 08/2016: Multimedia

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...
lidl internetstick für linux mint
rolf meyer, 04.06.2016 14:17, 3 Antworten
hallo zusammen ich benötige eure hilfe habe einen lidl-internetstick möchte ihn auf linux mint i...