S01/mo: App zur BLE Kommunikation mit dem Astramodul
Verfasst: Sa 30. Sep 2023, 17:18
Ich habe mich in letzter Zeit mit dem MIT App Inventor 2 MIT App Inventor 2 beschäftigt um eine eigene App zu erstellen, die per BLE mit dem Astra Modul kommuniziert, da ich mich mit der aktuellen Silence App nicht mehr über Bluetooth mit dem Roller verbinden kann. Das Ergebnis seht Ihr hier:
- -
Über den "BLE" Button wird die App mit dem Roller verbunden und auch wieder getrennt.
Auf der App wird eine Auswahl der Parameter angezeigt, die das $STMS Kommando liefert. Mit dem "Refresh" Button werden die Werte aktualisiert.
Der "Power" Button schaltet der Roller ein/aus, der "Find" entspricht dem Dreieck des Silence App und mit "TCOP" kann die Sitzbank bei eingeschaltetem Roller und ausgeklappten Seitenständer geöffnet werden.
In der "Command" Zeile können Kommandos aus der Commandref eingegeben werden, die mit "send" an das Modul geschickt werden. In der nächsten Zeile erfolgt dann die Ausgabe der Antwort des Moduls. Kommandos werden hier ohne führendem "$"-Zeichen eingegeben, dieses wird automatisch ergänzt.
Zum Zugriff auf das Astramodul ist eine Authentifizierung mittels RSDK notwendig. Dazu kann, wie im Manual beschrieben, entweder eine bereits im Modul abgelegte RSDK verwendet oder eine Eigene im Modul abgelegt werden. Dafür ist aber ein Zugriff auf das Modul über die serielle Schnittstelle notwendig. Details hierzu findet man in @Priemlers hervorragendem Sammelthread für Elektronikbastler.
Sowohl die Mac-Adresse des Moduls, welche zum Verbindungsaufbau notwendig ist, als auch die RSDK, sind in der App hardcoded eingepflegt. Ich hänge daher hier keine fertige .apk sondern eine .aia Datei dran, die in den Inventor importiert und dort bearbeitet und kompiliert werden kann. Vor dem Import ist noch die .txt-Endung zu entfernen, hier im Forum kann man keine Archivdateien hochladen. Für die Nutzung des Inventors ist allerdings ein Google Account notwendig. Die fertig kompilierte App kann nach der Bearbeitung mit Hilfe der App "MIT AI2 Companion" auf das eigene Smartphone übertragen werden.
Die Mac findet man unter den Reiter "Blöcke" in der Global BLE_MAC. Die RSDK muss wie im Manual auf Seite 6 beschrieben, in zwei Paketen übertragen werden, da die Länge der RSDK mit 32 Byte die Maximalzahl von 20 Bytes überschreitet, die mit BLE übertragen werden können. Die RSDK wird nun in den globalen Liste RSDK1 und RSDK2 eingetragen. Wichtig: Die Hexbytes müssen in Dezimalzahlen umgerechnet werden, und diese dann in den beiden Listen eingetragen werden, da ich keine Möglichkeit gefunden habe, ein mit dem Inventor ein Array von Hexbytes zu senden.
Die App läuft bei mir auf einem Android System, ob sie auch unter IOS funktioniert muss man testen. Die angehängte Astra.aia kann natürlich auch zur Verschönerung, Verbesserung und Weiterentwicklung der App genutzt werden.
- -
Über den "BLE" Button wird die App mit dem Roller verbunden und auch wieder getrennt.
Auf der App wird eine Auswahl der Parameter angezeigt, die das $STMS Kommando liefert. Mit dem "Refresh" Button werden die Werte aktualisiert.
Der "Power" Button schaltet der Roller ein/aus, der "Find" entspricht dem Dreieck des Silence App und mit "TCOP" kann die Sitzbank bei eingeschaltetem Roller und ausgeklappten Seitenständer geöffnet werden.
In der "Command" Zeile können Kommandos aus der Commandref eingegeben werden, die mit "send" an das Modul geschickt werden. In der nächsten Zeile erfolgt dann die Ausgabe der Antwort des Moduls. Kommandos werden hier ohne führendem "$"-Zeichen eingegeben, dieses wird automatisch ergänzt.
Zum Zugriff auf das Astramodul ist eine Authentifizierung mittels RSDK notwendig. Dazu kann, wie im Manual beschrieben, entweder eine bereits im Modul abgelegte RSDK verwendet oder eine Eigene im Modul abgelegt werden. Dafür ist aber ein Zugriff auf das Modul über die serielle Schnittstelle notwendig. Details hierzu findet man in @Priemlers hervorragendem Sammelthread für Elektronikbastler.
Sowohl die Mac-Adresse des Moduls, welche zum Verbindungsaufbau notwendig ist, als auch die RSDK, sind in der App hardcoded eingepflegt. Ich hänge daher hier keine fertige .apk sondern eine .aia Datei dran, die in den Inventor importiert und dort bearbeitet und kompiliert werden kann. Vor dem Import ist noch die .txt-Endung zu entfernen, hier im Forum kann man keine Archivdateien hochladen. Für die Nutzung des Inventors ist allerdings ein Google Account notwendig. Die fertig kompilierte App kann nach der Bearbeitung mit Hilfe der App "MIT AI2 Companion" auf das eigene Smartphone übertragen werden.
Die Mac findet man unter den Reiter "Blöcke" in der Global BLE_MAC. Die RSDK muss wie im Manual auf Seite 6 beschrieben, in zwei Paketen übertragen werden, da die Länge der RSDK mit 32 Byte die Maximalzahl von 20 Bytes überschreitet, die mit BLE übertragen werden können. Die RSDK wird nun in den globalen Liste RSDK1 und RSDK2 eingetragen. Wichtig: Die Hexbytes müssen in Dezimalzahlen umgerechnet werden, und diese dann in den beiden Listen eingetragen werden, da ich keine Möglichkeit gefunden habe, ein mit dem Inventor ein Array von Hexbytes zu senden.
Die App läuft bei mir auf einem Android System, ob sie auch unter IOS funktioniert muss man testen. Die angehängte Astra.aia kann natürlich auch zur Verschönerung, Verbesserung und Weiterentwicklung der App genutzt werden.