Montag, 14. September 2015

Android App - Arduino Bluetooth Kommunikation

In diesem Post geht es darum, wie man mittels der online IDE App Inventor Apps erstellen kann, welche über Bluetooth mit dem Arduino kommunizieren können.

Um den App Inventor zu benutzen, muss man seine Startseite aufrufen, und sich mit seinem Google Account anmelden. Der App Inventor unterstützt Firefox und Google Chrome als Browser. Nun kann man ein neues Projekt erstellen. 

Um eine App zu erstellen, erstellt man im Reiter Design die Oberfläche der App, also welche Elemente sich in der App befinden(Buttons, Bilder,...). Diese befinden sich in der linken Spalte, in Kategorien sortiert, und müssen einfach nur in den Bildschirm "gezogen" werden. In der rechten Spalte kann man für jedes Objekt noch ein paar Angaben machen, etwa der Name des Objekts und seine "Aufschrift".

Sobald das Design fertig ist, wechselt man rechts oben von Design auf Blocks. Ähnlich wie bei Scratch (für den Arduino), wird die Programmlogik der App mittels Blöcken programmiert. Dabei gibt es alle Funktionen einer textbasierten Programmierung, also Kontrollstrukturen, Schleifen, ... Zusätzlich bekommt man beim Klick auf ein Objekt in der linken Spalte von Blocks, die verfügbaren Funktionen für dieses Element angezeigt.

Design der App

Um ein kleine Beispiel App zu erzeugen, mittels derer man die LED an Pin 13 des Arduino (hier bei az-delivery.de)über Bluetooth steuern kann, benötigt man einen Button, mittels welchem man sich mit dem Bluetoothgerät verbinden kann, ein Textfeld, welches den aktuellen Verbindungsstatus anzeigt, sowie zwei Buttons für an und aus.


Außerdem benötigt man einen BluetoothClient in der App, den man jedoch als Anwender nicht sehen kann, und einen Listpicker(dazu gleich mehr).

Blocks der App

Nachdem man das Design erstellt hat, geht es an die Programmierung der App. Zunächst einmal klickt der Anwender auf Connect Bluetooth Device. Hier muss nun eine Liste aller verfügbaren Bluetoothgeräte erscheinen. Dazu der Listpicker. 

In diesen werden alle verfügbaren Bluetoothgeräte, des BluetoothClient, geladen. Sobald nun der User auf ein Gerät klickt, in diesem Fall den Arduino, verbindet sich der BluetoothClient mit diesem Gerät. Außerdem wird im Textfeld "Connected!" angezeigt. Sollte die Verbindung nicht klappen, erscheint eine Fehlermeldung im Textfeld.


Nun muss man die beiden Buttons LED_13_on und LED_13_off programmieren. Jedes mal, wenn LED_13_on gedrückt wird, soll eine 1 an den Arduino gesendet werden und jedes mal, wenn LED_13_off gedrückt wird, soll eine 0 an den Arudino gesendet werden.


Sobald ihr diese beiden Blöck bei euch nachgebaut habt, ist die App fertig. Jetzt klickt ihr oben auf Build > provide QR Code. Nun erstellt der App Inventor aus eurem Desingn und euren Blöcken eine fertige .apk Datei und stellt sie zum download bereit. 

Um nun die App auf eurem Android Smartphone/Tablet auszuprobieren, müsst ihr dort die App "MIT AI2 Companion" herunterladen, und den, am PC/Mac angezeigten, QR scannen. Nun wird eure App heruntergeladen und installiert.

Den Arduino vorbereiten

Damit der Arduino mit eurer App kommunizieren kann, muss ihr ihn mit einem Bluetoothmodul verbinden. Hier habe ich bereits erklärt, wie man den Arduino mit einem Bluetoothmodul verwendet. Dazu verbindet man es mit dem GND und den +5V, sowie den TX Pin mit dem RX Pin des Arduino und umgekehrt. Die Pins am Bluetoothmodul sollten beschriftet sein.

Nun benötigt man noch einen Sketch auf dem Arduino, welcher die serielle Verbindung ausließt und Pin 13 dementsprechend schaltet. 


Nun kann man Bluetooth auf seinem Smartphone aktivieren und die App starten. Sobald man sich mit dem Arduino verbunden hat, kann man die LED steuern.



Keine Kommentare:

Kommentar veröffentlichen