28. Juli 2015

Projekt B1 (Teil 4) – Programmierung des Bluno (1)

Im vierten Teil unserer Serie „Projekt B1“ veranschaulicht unser Experte Benoît Vanden Bosch, wie der Mikrocontroller „Bluno“ programmiert wird.

Vorab ein Rat an alle, die noch nicht allzu viel Erfahrung mit der Programmierung haben: Es ist ratsam mit einem kleinen Programm anzufangen, anstatt sich in ein kompliziertes Programm reinzuknien, mit dem man am Ende schlichtweg überfordert ist. Es ist noch kein Meister vom Himmel gefallen!  Darum ist es wichtig, Geduld zu haben. Wenn man dies beherzigt, ist das Programmieren auch für Technik-Laien, die auf der Suche nach einer neuen Herausforderung sind, eine tolle und spannende Sache.

Nun zur Programmierung unseres Microcontrollers Bluno: Die verwendete Sprache ähnelt der Programmiersprache C, die wiederum identisch mit der von Arduino benutzen Sprache ist. Da Bluno lediglich eine Kombination des Bluetooth 4.0 Moduls BLE und Arduino ist, benötigt man für den Mikrocontroller genau die gleichen Programme wie für Arduino. Die einzige Ausnahme ist die Verwendung einer APP für das Smartphone, sofern man Befehle via Bluetooth vom Smartphone an den Bluno senden will. Die App kann man sowohl für Android und als auch für IOS downloaden. Da Arduino eine der beliebtesten Micocontroller überhaupt ist, findet man im Internet zudem unzählige Tutorials, die das Programmieren mit Arduino anschaulich erläutern.

Das Basisprogramm für den Bluno-Microcontroller

Das Basisprogramm für den Bluno-Microcontroller. © Roboterwelt

Für mein Basisprogramm (siehe Abbildung) verbinde ich meinen Bluno via USB-Kabel mit dem PC, damit ich das bearbeitete Programm jederzeit an den Controller senden und dieser konstant mit Strom versorgt werden kann. Den Bluno verbinde ich mit einer LED, welche außerdem mit einem Widerstand von 220 Ohm verbunden ist. Dadurch wird verhindert, dass die LED zu viel Strom bekommt und sie verbrennt.

Den ersten Test führe ich mit Hilfe meines Smartphones durch. Sobald man die App für den Bluno öffnet, erscheint ein Datenfeld, in das Befehle eingegeben werden können­. Zuvor habe ich in meinem Programm festgelegt, was bei welchen Befehlen passieren soll (siehe Abbildung). Zum Beispiel, dass bei einem Befehl „0“ die LED ausgeschaltet und bei dem Befehl „1“ eingeschaltet wird. Gebe ich nun die Zahlen „0“ oder „1“ in das Datenfeld ein, wird dies an meinem Bluno gesendet und die verbundene LED an- oder ausgeschaltet. LEDs sind im Übrigen sehr gut zum Testen von Programmen geeignet, da sie sichtbar machen, ob ein Signal oder eine Information erfolgreich gesendet wurde oder nicht.

Der nächste Schritt wird sein, die LEDs durch den Sabertooth zu ersetzen. Denn dieser wird letztlich für die Steuerung der Motoren verantwortlich sein. Der Sabertooth wird dann mit dem vom Bluno erhaltenen Signal die Energie von den Batterien an die Motoren übertragen. Um den Roboter zu bewegen, ist es vorstellbar als Befehle für die Bewegung Buchstaben festzulegen. Beispielsweise „r“ für eine Drehung nach rechts, „l“ für eine Drehung nach links, „v“ für eine Bewegung nach vorn und „h“ für eine Rückwärtsbewegung. Optimal wäre ein virtueller Joystick auf dem Display des Smartphones. Auch eine eine Sprachst- oder Neigungssteuerung wäre denkbar.  Letztlich ist die Wahl der Steuerung davon abhängig, was man mit dem Roboter machen möchte und welche Möglichkeiten man hat.

Für Teil 5 werde ich mein Programm dahingehend weiterentwickeln, dass zwei LEDs zusammen und unabhängig voneinander gesteuert werden können. Warum dies nötig ist? Auch das erfahrt ihr im nächsten Teil unseres „Projekts B1“.