Skip to main content

Remotrol von FabianE.

Im Roboternetz hatte FabianE. eine recht umfangreiche Fernsteuerung präsentiert, welche in Version 1.3 recht gut lauffähig war und sehr viel abdeckte und auch mit allen Erweiterungen kombiniert werden konnte. Den damaligen Forumseintrag gibts HIER.

fabqu hat die Version 1.3 bei sich und wird diese, falls FabianE. es erlaubt, erneut in etwas ageänderter Variante veröffentlichen.

Die Firmware auf dem RP6 war als "Slave" gedacht und erwartete im Wesentlichen über Bluetooth Befehle vom PC und schickte Sensordaten darüber an den PC. Dabei kommuniziert der RP6 über seine UART-Schnittstelle (universal asynchronous receive/transmit), also Rx (receive data) und Tx (transmit data). Je nachdem, welche Plattform (RP6-Base, M32, M128 oder M256) man verwendet, werden entsprechend alle verfügbaren Sensordaten routinemäßig über die UART-Schnittstelle gesendet. Die Baudrate ist dabei 38.400. Die Befehlsstruktur, welche der RP6 erwartet, ist etwas komplizierter.

Die Kommandos sind vom Typ #E1:(V1):(V2):E2:id* -> Beginn ist #, Ende ist *. id ist ein Counter, der stets inkrementiert werden muss und maximal 99 sein darf. E1 und id sind erforderlich. E2 ist obligatorisch. V1 und V2 sind weitere Parameter, die es nicht immer braucht.

Erste EbeneE1Zweite EbeneE2
#define CMD_SET_SPEED1Features:
#define CMD_SET_SERVO2#define SET_FEATURE_GENERAL0
#define CMD_SET_LEDS3#define SET_FEATURE_LIGHT1
#define CMD_SET_BEEP4#define SET_FEATURE_INT03
#define CMD_SET_START_MELODY5#define SET_FEATURE_MIC4
#define CMD_SET_FEATURE6#define SET_FEATURE_SRF08_RADAR5
#define CMD_SET_STOP7#define SET_FEATURE_SRF026
#define CMD_SET_CONNECTION_SPEED8
#define CMD_GET_FIRMWARE9LEDs:
#define CMD_SET_ACSPOWER10#define LEDS_RP60
#define CMD_SET_TEST11#define LEDS_M321
#define CMD_RESET_ID_COUNTER99
xACS:
x#define ACS_POWER_OFF0
x#define ACS_POWER_LOW1
x#define ACS_POWER_MED2
x#define ACS_POWER_HIGH3
x
xTests
x#define TEST_LCD0
x#define TEST_BEEPER1
x#define TEST_LED3
x#define TEST_EXTERNAL_MEMORY4
x#define TEST_I2CLED5
x#define TEST_I2CMOTOR6
x#define TEST_MIC7
x#define TEST_MOTOR8
x#define TEST_BATTERY9
x#define TEST_ACS10
x#define TEST_BUMPER11
x#define TEST_LIGHTSENSOR12

Beispiele:

  • #7:21* -> Stop, mit id=21
  • #1:50:75:0:22* -> fahren (E1=1) vorwärts (E2=0) mit Geschwindigkeit V1=50 linke Kette, V2=75 rechte Kette (von 200) und id=22
  • #3:33:0:23* -> LED (E1=3) auf der RP6-Base (E2=0), es warden SLED 1 (Bit 1=1=1) und SLED6 (Bit 6=1=32) angeschaltet (V1=1+32=33)