Was ist Arduino bzw. DFRduino?


Romeo-Board1.jpg


Arduino ist ein Projekt, bei dem sowohl die Firmware als auch die Entwürfe für die Hardware offen zugänglich sind (Open Source Hardware). Außerdem steht eine kostenlose Entwicklungsumgebung (IDE) zur Verfügung, mit der die komplette Programmierung einer Arduino-Hardware vorgenommen werden kann. Neben der Firmware (dem Bootloader) gibt es in einem Arduino-System bestimmte Festlegungen wie z. B. bezüglich der Pinbelegung von Sensorerweiterungen oder der sogenannten Shields. Shields sind funktionale Zusätze wie Funk- und Ethernetmodule oder Motorensteuerungen. Die hauptsächliche Ausrichtung von Arduino-Systeme ist die Robotik und die Gebäudetechnik. Es lassen sich aber auch zahlhlose Mess-, Steuer- oder Regelungsaufgaben lösen.  

 

Arduino-Boards und Zubehör gibt es von sehr vielen Anbietern und in sehr unterschiedlichen Ausführung. DFRobot bietet qualitativ sehr hochwertige Baugruppen, die natürlich untereinander kompatibel sind. 

 

Neben den geringen Kosten, die mit einem Einstieg verbunden sind, weist ein Arduino-System die folgenden Vorteile auf:

 

1. Sie können durch die Nutzung der Bibliotheken und der intelligenten Entwicklungsumgebung sehr einfach C-Programme ohne lästigen Overhead schreiben. Die IDE sorgt dafür, dass ein ladbares und lauffähiges Programm entsteht. 

2. Arduino-Systeme sind so flexibel, dass Sie sie aber auch vollkommen frei programmieren und ohne Einschränkungen benutzen können. Das DFRduino-Board Romeo von DFRobot hat z. B. eine direkte Programmierschnittstelle (ICSP) für den Atmega328 wie auch für den verwendeten USB-Controller Atmega8U2 (beim Romeo V2 kommt ein Atmega32U4 zum Einsatz. 

 

Wozu dient der Bootloader?

Egal mit welchem Prozessor oder Controller Sie auch arbeiten, eines haben alle Systeme gemeinsam: Die Adresse des 1. auszuführenden Befehls muss bekannt sein. Dazu wird der Programmzähler mit einer spezifischen Startadresse geladen und dort wird das Programm abgearbeitet. Wenn Sie nun eine Kommunikation zwischen einem Board und dem PC herstellen wollen, müssen Sie entweder spezielle Steueranschlüsse ansprechen, um direkt in den Arbeitsspeicher des Controllers zu schreiben (dies geschieht bei einem Arduino-Board und jeder anderen Hardware mit AVR-Controllern über die ICSP-Schnittstelle) oder es befindet sich ein kleines Programm auf dem Controller-Board, über das eine Kommunikation mit dem PC möglich ist. So ein Programm ist der Bootloader. Im Prinzip ist es ein Mini-Betriebssystem, das die folgenden Schritte ausführt:

 

1. Direkt nach dem Einschalten oder einem Reset, wartet das Programm auf eine Reaktion vom PC.

2. Eröffnet der PC die Kommunikation und sendet Daten, werden diese vom Bootloader in den internen Speicher geschrieben und zwar an eine ganz spezielle Startadresse.

3. Nimmt der PC keine Verbindung auf, springt der Bootloader zu dieser Startadresse und ruft das Programm auf, das sich dort befindet. Wurde noch nichts programmiert, springt der Controller in eine Endlosschleife.

 

Falls Sie einmal aus Versehen den Bootloader löschen sollten, gibt es 3 Möglichkeiten, ihn wieder herzustellen:

1. Sie haben ein Programmieradapter für die ICSP-Schnittstelle. Dann können Sie den Code einfach wieder auf den Prozessor laden.

2. Sie schicken uns Ihr Board ein und wir programmieren es kostenlos neu. Sie zahlen nur die Portokosten.

3. Sie bestellen bei uns einen vorprogrammierten AVR-Prozessor. 

 

Installation der Treiber

Die Installation der Treiber für das DFRduino-Board Romeo ist sehr einfach. Laden Sie zunächst auf der Arduino-Seite die entsprechende Software für Ihr Betriebssystem. Das Archiv enthält die IDE und alle Treiber. Entpacken Sie das Archiv in einem Verzeichnis Ihrer Wahl. Nun verbinden Sie Ihr Arduino-Board mit dem Computer. Das Betriebssystem erkennt das neue Gerät und installiert den Treiber. Verwenden Sie nicht die automatische Suche, sondern geben Sie das von Ihnen gewählte Verzeichnis an.

 

Wenn Sie nun in Ihren Gerätemanager wechseln, werden Sie z. B. in Windows den folgenden Eintrag erkennen:

 

device-manager.png
 

Wichtig für uns ist der erste Eintrag, den wir für die Einstellung in der Arduino-IDE brauchen. Die Angabe kann bei Ihnen andere Werte haben, z. B. COM7 aber es ist in der Regel der höchste COM-Wert (es sei denn, Sie installieren danach noch einen Treiber für die serielle Schnittstelle). 

 

Einstellungen in der Entwicklungsumgebung

Die Arduino-IDE ist sehr kompakt und benötigt keine spezifische Installation. Sie rufen einfach das Programm "arduino.exe" auf und sehen das folgende Fenster (das Aussehen kann je nach Version etwas abweichen):

Arduino_IDE-1.png

 

So simpel diese Oberfläche aussehen mag, so leistungsfähig ist sie doch. Sie werden sich wundern, was sich alles hinter dieser unscheinbaren Oberfläche verbirgt. Aber zunächst müsen wir noch 2 Parameter einstellen, damit die IDE auch mit unserem Romeo-Board zusammen arbeitet. Dazu wählen Sie unter Tools -> Boards den Eintrag "Arduino Uno" (Arduino Leonardo bei der Version 2) und unter Tools -> serieller Port die Schnittstelle, auf der sich Ihr Board befindet.

 

Das Programm wählt einen automatischen Namen, der sich aus dem Monat, dem Tag und einem Index zusammensetzt. In unserem Beispiel: "sketch_jul22A". Mit "Sketch" werden übrigens im Arduino-Zusammenhang Programme bezeichnet.

 

Unter dem Menüpunkt "Datei -> Beispiele" oder "Datei -> Sketchbook" finden Sie zahlreiche Beispielprogramme, die Ihnen bei Ihrer weiteren Arbeit immer wieder helfen werden.

 

Arduino_IDE-2.png

 

Ein minimales Grundgerüst ist z. B. unter "BareMinimum" zu finden. Klicken Sie diesen Menüpunkt an, erhalten Sie ein Programm mit den 2 Basisfunktionen setup() und loop():

 

Arduino_IDE-3.png

 

Wenn Sie über eine gewisse Grunderfahrung verfügen, werden Sie sich vielleicht jetzt fragen: "Ist das denn ein C-Programm?" Im Prinzip ist Ihre Skepsis angebracht, aber die richtige Antwort ist: "Noch nicht!" Die IDE nimmt uns einfach ein paar lästige Arbeiten ab. So brauchen wir die standardmäßig verwendeten Headerdateien nicht anzugeben und es fehlt auch die main-Funktion. Das bastelt uns die IDE selbst zusammen. In Foren wird immer wieder behauptet, bei Arduino handele es sich um eine Teilmenge von C oder C++ mit einigen spezifischen "Arduino"-Befehlen oder gar einer eigenen Arduino-Sprache. Das ist definitiv falsch: Hinter der Arduino-IDE stecken die gcc- bzw. g++-Compiler, die den C- oder C++-Standard einhalten. Die zusätzlichen Befehle sind einfach Teil des Arduino-Frameworks, also Funktionsbibliotheken.   

Ein Arduino-Sketch besteht also immer aus einer Setup-Funktion und der anschließenden Endlosschleife loop(). Im Setup müssen wir allerdings wirklich nur das Notwendigste angeben. Dazu wollen wir einen ersten Programmlauf erstellen, der einfach nur die Test-LED auf dem Romeo-Board zum Leuchten bringt.

 

Arduino_IDE-4b.png

Für eine bessere Übersicht erzeugen wir am Anfang des Programms eine Integer-Variable mit dem Namen "LED_Pin" und übergeben Ihr den Wert 13. Der digitale Ein-/Ausgang D13 entspricht auf dem Board Pin5, der wiederum mit der LED verbunden ist. In der Setup-Funktion rufen wir nun wiederum eine Funktion mit Namen pinMode() auf, die LED_Pin als Ausgang konfiguriert und in unserer Hauptschleife bringt der Aufruf digitalWrite(LED_Pin, HIGH) die LED schließlich zum Leuchten.

 

Wählen Sie nun den Menüpunkt "Sketch überprüfen/kompilieren" und danach zum Herunterladen auf das Board auf den Pfeil nach rechts im runden Kreis in der Werkzeugleiste. Alternativ können Sie zum Übertragen des Programms auch im Menü "Datei" den Punkt Upload wählen. 

 

Anschluss von Sensormodulen

Ein besonderer Vorteil des Romeo-Boards von DFRobot ist die farbliche Absetzung der einzelnen Anschlüsse. Digitale Stecker sind grün gekennzeichnet, analoge blau, Versorgungsspannungen rot und Masse schwarz. Die Sensorkabel sind ebenfalls farblich gekennzeichnet, so dass ein falsches Verbinden kaum möglich ist.

 

Wir wollen nun noch ein weiteres Programm erstellen, dass einen kapazitiven Berührungssensor auf der digitalen Leitung D12 erhält und eine zusätzliche LED auf Pin 13 verwendet. Der Code sieht folgendermaßen aus:

 

Arduino_IDE-5.png
 

Das Prinzip ist das gleiche wie im 1. Programm. Zunächst werden die Variablen definiert, danach D12 als Eingang und D13 als Augang konfiguriert und in der Schleife erfolgt eine Abfrage des Zustands des kapazitiven Näherungsschalters. In Abhängigkeit davon wir dann die LED angesteuert, die invertiert auf die Ausgabe reagiert.

 

Romeo-Board2.jpg
 

Falls Ihnen diese kleine Einführung gefallen hat, schauen Sie doch bald wieder vorbei. Diese Tutorial-Reihe wird ständig erweitert! 

 

Für weitere Informationen und Bestellungen einfach auf nachfolgenden Link klicken:

Romeo All-in-one

Romeo All-in-one Version 2

 

Sie wollen Arduino-Profi werden? Dann ist unser Video Mikrocontroller-Lehrgang MC1 genau das Richtige für Sie!

 

Falls Sie Fragen zum Thema haben, wenden Sie sich einfach an uns.

Wir helfen Ihnen gern weiter!

 

Ihr Team von Böcker Systemelektronik

 

Hinweis: Unser Tutorialangebot wird in unregelmäßigen Abständen erweitert. Wenn Sie sofort über eine Neuerscheinung informiert werden möchten, tragen Sie sich bitte hier in unsere Benachrichtigungsliste "Tutorials" ein. Sie können diesen unverbindlichen Service jederzeit in Ihrem Kundenkonto oder per E-Mail wieder abbestellen.  

 

Copyright © Böcker Systemelektronik