Das A²C-Protokoll (advanced Arduino communication protocol) wurde 2016 von mir entwickelt und wurde ursprünglich zur einheitlichen Kommunikation zwischen einem Arduino und einem Computer über die serielle USB-Schnittstelle entworfen. Es lässt sich jedoch ebenso auf eine Kommunikation zwischen anderen Gerätekombinationen (z. Bsp. Arduino zu Arduino oder Arduino zu Smartphone über Bluetooth) anwenden.

Der Name des Protokolls ist eine Anspielung auf den seriellen Datenbus I²C und auf die englische Sprechweise „a to c protocol“ für „Arduino to computer protocol“.

Das Grundkonzept des A²C-Protokolls basiert auf der Extensible Markup Language (XML), hat aber keinen Start- und Endtag, sondern nur einen umschließenden Tag, der den Befehl und alle Daten enthält.

Das Protokoll muss für eine eindeutig definierte Kommunikation unter Umständen mit weiteren Kommunikationsrichtlinien erweitert werden. Zum Beispiel müssen für eine Kommunikation über die UART-Schnittstelle, für die das Protokoll ursprünglich vorgesehen war, die Baudrate, die Anzahl der Datenbits, die Paritätskontrolle und die Anzahl der Stopp-Bits zwischen beiden Geräten identisch konfiguriert sein.

Das Protokoll findet bereits Anwendung in den Arduino-basierenden Produkten:

  • SunTracker (SIA 2016/2017 der Staatlichen Feintechnikschule mit Technischem Gymnasium Schwenningen )
  • Digitale Dual-Lötstation (Berufsausbildung Continental Automotive GmbH Villingen)
  • Line-Follower „Herbie“ (WS 2018/2019 Hochschule Furtwangen)
  • WG-Konsole (WS 2018/2019 Hochschule Furtwangen)

Die größte Verbreitung hat das A²C-Protokoll im Zusammenhang mit der PC-Software Arduino-Communication™ gefunden. Dieses ermöglicht es Arduino-Programmierern eine schnelle und einfache Kommunikation für eine Steuerung oder Debugging-Zwecke aufzubauen. Des Weiteren können ein Interface eingerichtet und beliebige Tastenkombinationen hinterlegt werden, die sich als Projektdatei speichern und somit auch für andere Nutzer zur Steuerung veröffentlichen lassen.

Das A²C-Protokoll ist unter der MIT-Lizenz lizenziert.

In 15 Minuten zum ersten Programm

Finde einen einfachen und schnellen Einstieg ohne Vorkenntnisse in die Welt der Mikrocontroller. Lerne die Entwicklungsplattform Arduino kennen und schreibe in 15 Minuten dein erstes Programm, um eine LED zum Blinken zu bringen.
Los geht’s!

Vorwort

Arduino ist eine aus Soft- und Hardware bestehende Physical-Computing-Plattform. Beide Komponenten sind im Sinne von Open Source quelloffen. Die Hardware besteht aus einem einfachen E/A-Board mit einem Mikrocontroller, der über analoge und digitalen Ein- und Ausgängen verfügt. Die Entwicklungsumgebung basiert auf Processing und soll auch technisch weniger Versierten den Zugang zur Programmierung und zu Mikrocontrollern erleichtern. Die Programmierung selbst erfolgt in einer C bzw. C++-ähnlichen Programmiersprache, wobei technische Details wie Header-Dateien vor den Anwendern weitgehend verborgen werden und umfangreiche Bibliotheken und Beispiele die Programmierung vereinfachen. Arduino kann verwendet werden, um eigenständige interaktive Objekte zu steuern oder um mit Softwareanwendungen auf Computern zu interagieren.

Wikipedia

Software-Installation

Arduino IDE

Zunächst wird die Programmier-Entwicklungsumgebung (Arduino IDE) installiert. Das Programm kann von der offiziellen Webseite unter https://www.arduino.cc/en/main/software als Windows Installer heruntergeladen werden.

USB-Treiber

Zur Kommunikation mit der Hardware eines Arduino-Clones ist ein weiterer USB-Treiber notwendig. Dieser kann unter https://cloud.sebastianlang.net/index.php/s/qXMKkbAWgLfzw69
als Zip-Archiv heruntergeladen werden. Nach dem Entpacken des Archivs wird die Datei setup.exe ausgeführt.

Hardware verbinden

Nach der Installation der Software wird das Arduino-Board kinderleicht über ein USB-Kabel mit dem Computer verbunden.

Eigenes Programm

Mit dem ersten eigenen Programm wird eine LED auf dem Arduino-Board zum Blinken gebracht. Dazu wird zunächst die Arduino IDE auf dem Computer gestartet und ein neuer Sketch (Mikrocontroller-Programm) über das Menü unter Datei → Neu geöffnet. Anschließend wird folgender Code in den Editor geschrieben:

//Methode "setup" wird ein Mal beim Programmstart ausgeführt
void setup() {
  //Anschluss des LED-Pins wird als Ausgang initialisiert
  pinMode(LED_BUILTIN, OUTPUT);
}

//Methode "loop" wird nach "setup" in einer Dauerschleife ausgeführt
void loop() {
  //High-Pegel (5 V) am Anschluss des LED-Pins anlegen (LED anschalten)
  digitalWrite(LED_BUILTIN, HIGH);
  //Eine Sekunde (1000 Millisekunden) warten
  delay(1000);
  //Low-Pegel (0 V) am Anschluss des LED-Pins anlegen (LED ausschalten)
  digitalWrite(LED_BUILTIN, LOW);
  //Eine Sekunde (1000 Millisekunden) warten
  delay(1000);
}

Anschließend wird über das Menü unter Werkzeuge → Board das Arduino-Board ausgewählt, sowie der COM-Port, an den das Entwicklungsboard angeschlossen ist.

Das Programm wird nun mit einem Kompiler in Maschinencode übersetzt und anschließend auf den Microkontroller des Arduinos übertragen. Dazu wird auf der linken Seite in der Werkzeugleiste auf die Schaltfläche Hochladen geklickt.

Nach dem Übertragen des Programms blinkt die LED auf dem Arduino UNO Board im Sekundentakt.

Weitere Informationen

Technische Details zum Arduino UNO Board sind unter https://store.arduino.cc/arduino-uno-rev3 zu finden.
Eine Übersicht aller Funktionen, Variablen und Strukturen ist unter https://www.arduino.cc/reference/de zu finden.
Viele hilfreiche Beispiele lassen sich in der Arduino IDE unter Datei → Beispiele finden.