AW: QuellText
[FONT="]e) Die PRO-BOT128 Library[/FONT]
[FONT="]Damit Sie nicht erst alle Hardware-Treiber für den PRO-BOT128 selber schreiben müssen, um sofort loszulegen, wird unter den Demo-Programmen[/FONT]
[FONT="]eine Library dazu mitgeliefert. Diese enthält bereits diverse Verhaltensweisen und sämtliche Hardwaretreiber für den PRO-BOT128.[/FONT]
[FONT="]Die nun folgenden Zeilen erläutern den Syntax und die Verwendung der Bibliothek (Library). Natürlich kann diese für eigene Anwendungen und[/FONT]
[FONT="]Funktionen erweitert werden.[/FONT]
[FONT="]PRO_BOT128_INIT()[/FONT]
[FONT="]Initialisiert die Grundhardware des PRO-BOT128. Diese Funktion muss immer als erstes aufgerufen werden.[/FONT]
[FONT="]Beispiel:[/FONT]
[FONT="]Sub main()[/FONT]
[FONT="]PRO_BOT128_INIT()[/FONT]
[FONT="]… Hauptprogramm …[/FONT]
[FONT="]End sub[/FONT]
[FONT="] [/FONT]
[FONT="]BUTTON() as byte[/FONT]
[FONT="]Fragt den Taster SW2 über Interrupt ab, Rückgabe als Byte. SW2 kann den Zustand 0 oder 1 annehmen. Jedes Drücken ändert den Zustand[/FONT]
[FONT="](Toggle-Modus).[/FONT]
[FONT="] [/FONT]
[FONT="]SYSTEM_CNT()[/FONT]
[FONT="]Der Timer 2 Interrupt ist zuständig für die Geschwindigkeitsauslesung der Räder. Hier kann auch eine eigene Zählervariable mit eingebunden[/FONT]
[FONT="]werden. Die Timer Auflösung beträgt 10ms.[/FONT]
[FONT="] [/FONT]
[FONT="]FLL_ON()[/FONT]
[FONT="]Schaltet die vordere linke LED ein („Front Led Left“).[/FONT]
[FONT="] [/FONT]
[FONT="]FLL_OFF()[/FONT]
[FONT="]Schaltet die vordere linke LED aus („Front Led Left“).[/FONT]
[FONT="] [/FONT]
[FONT="]FLR_ON()[/FONT]
[FONT="]Schaltet die vordere rechte LED ein („Front Led Right“).[/FONT]
[FONT="] [/FONT]
[FONT="]FLR_OFF()[/FONT]
[FONT="]Schaltet die vordere rechte LED aus („Front Led Right“).[/FONT]
[FONT="]BLL_ON()[/FONT]
[FONT="]Schaltet die hintere linke LED ein („Back Led Left“).[/FONT]
[FONT="] [/FONT]
[FONT="]BLL_OFF()[/FONT]
[FONT="]Schaltet die hintere linke LED aus („Back Led Left“).[/FONT]
[FONT="] [/FONT]
[FONT="]BLR_ON()[/FONT]
[FONT="]Schaltet die hintere rechte LED ein („Back Led Right“).[/FONT]
[FONT="] [/FONT]
[FONT="]BLR_OFF()[/FONT]
[FONT="]Schaltet die hintere rechte LED aus („Back Led Right“).[/FONT]
[FONT="] [/FONT]
[FONT="] [/FONT]
[FONT="]ENC_RIGHT()[/FONT]
[FONT="]Interrupt Routine für den rechten Rad-Encoder. Die Variable „ODO_RIGHT“ wird jeweils um 1 inkrementiert.[/FONT]
[FONT="] [/FONT]
[FONT="]ENC_LEFT()[/FONT]
[FONT="]Interrupt Routine für den linken Rad-Encoder. Die Variable „ODO_LEFT“ wird jeweils um 1 inkrementiert.[/FONT]
[FONT="] [/FONT]
[FONT="]ODO_RESET()[/FONT]
[FONT="]Setzt den Rad-Encoder auf 0 zurück.[/FONT]
[FONT="] [/FONT]
[FONT="]ENC_LED_ON()[/FONT]
[FONT="]Schaltet die Rad-Encoder IR-Dioden ein. Immer wenn Sie diesen benötigen, müssen Sie diese Routine aufrufen. Zum Stromsparen können Sie[/FONT]
[FONT="]sie wieder mit ENC_LED_OFF() ausschalten.[/FONT]
[FONT="] [/FONT]
[FONT="]ENC_LED_OFF()[/FONT]
[FONT="]Schaltet die Rad-Encoder IR-Dioden aus, siehe ENC_LED_ON().[/FONT]
[FONT="]BEEP(tone as word, periode as word)[/FONT]
[FONT="]Tonausgabe, Töne wurden oben in der Library definiert.[/FONT]
[FONT="]Beispiel: BEEP(250,150)[/FONT]
[FONT="] [/FONT]
[FONT="]SOUND_LEVEL() as word[/FONT]
[FONT="]Gibt den Analogen Wert des Sound Sensors wieder (0 bis 1023).[/FONT]
[FONT="] [/FONT]
[FONT="]LDR_LEFT() as word[/FONT]
[FONT="]Gibt den analogen Wert des linken Lichtsensors (LDR) wieder (0 bis 1023).[/FONT]
[FONT="] [/FONT]
[FONT="]LDR_RIGHT() as word[/FONT]
[FONT="]Gibt den analogen Wert des rechten Lichtsensors (LDR) wieder (0 bis 1023).[/FONT]
[FONT="] [/FONT]
[FONT="]READ_LINE_LEFT() as word[/FONT]
[FONT="]Gibt den analogen Wert des linken Linien-Sensors wieder (0 bis 1023).[/FONT]
[FONT="] [/FONT]
[FONT="]READ_LINE_RIGHT() as word[/FONT]
[FONT="]Gibt den analogen Wert des rechten Linien-Sensors wieder (0 bis 1023)[/FONT]
[FONT="].[/FONT]
[FONT="]LINE_LED_ON()[/FONT]
[FONT="]Schaltet die LED des Linien-Sensors ein.[/FONT]
[FONT="] [/FONT]
[FONT="]LINE_LED_OFF()[/FONT]
[FONT="]Schaltet die LED des Linien-Sensors aus.[/FONT]
[FONT="] [/FONT]
[FONT="]AKKU_SPG() as single[/FONT]
[FONT="]Gibt die Akku- bzw. Batteriespannung wieder.[/FONT]
[FONT="] [/FONT]
[FONT="]GET_ADC(channel as byte) as word[/FONT]
[FONT="]Beliebigen ADC-Channel auslesen (Channel 0 bis 7).[/FONT]
[FONT="] [/FONT]
[FONT="] [/FONT]
[FONT="] [/FONT]
[FONT="]DRIVE_INIT()[/FONT]
[FONT="]Initialisiert den Antrieb. Bevor der Antrieb benutzt wird, muss diese Routine aufgerufen werden.[/FONT]
[FONT="] [/FONT]
[FONT="]DRIVE_ON()[/FONT]
[FONT="]Setzt den Enable-Eingang des L293D auf High. Der Antrieb ist eingeschalten.[/FONT]
[FONT="] [/FONT]
[FONT="]DRIVE_OFF()[/FONT]
[FONT="] [/FONT]
[FONT="]Setzt den Enable-Eingang des L293 auf Low. Der Antrieb ist ausgeschalten.[/FONT]
[FONT="] [/FONT]
[FONT="]DRIVE(left as byte, right as byte)[/FONT]
[FONT="]Timer1 PWM für den Antrieb:[/FONT]
[FONT="]Werte zwischen 1 bis 128 = rückwärts[/FONT]
[FONT="]Werte zwischen 128 bis 255 = forwärts[/FONT]
[FONT="]Wert 128 = Antrieb stop[/FONT]
[FONT="] [/FONT]
[FONT="]Motor_POWER(left as byte, right as byte)[/FONT]
[FONT="]Geschwindigkeit, Werte zwischen 1 und 255[/FONT]
[FONT="]Es muss zuvor mit MOTOR_DIR die Richtung vorgegeben werden.[/FONT]
[FONT="] [/FONT]
[FONT="]MOTOR_DIR(left as byte, right as byte)[/FONT]
[FONT="]Gibt die Drehrichtung der Motoren für die Funktion MOTOR_POWER vor.[/FONT]
[FONT="]1 = vorwärts[/FONT]
[FONT="]0 = rückwärts[/FONT]
[FONT="] [/FONT]
[FONT="]MOTOR_STOP()[/FONT]
[FONT="]Motor wird gestoppt, PWM wird auf 128 gesetzt.[/FONT]
[FONT="] [/FONT]
[FONT="]GO_TURN(distance as integer, degree as integer, speed as byte)[/FONT]
[FONT="]Lässt den PRO-BOT128 in eine vorgegebene Richtung fahren.[/FONT]
[FONT="]„Distance“ in cm (+ = vorwärts ; - = rückwärts)[/FONT]
[FONT="]„Degree“ in Grad (+ = rechts drehen ; - = links drehen)[/FONT]
[FONT="]„Speed“ 1 bis 255[/FONT]
[FONT="] [/FONT]
[FONT="]ACS_INIT()[/FONT]
[FONT="]Initialisiert das Anti-Collisions-System, muss vor der Benutzung aufgerufen werden.[/FONT]
[FONT="] [/FONT]
[FONT="]ACS_LEFT() as byte[/FONT]
[FONT="]Gibt des Status der Hindernis-Erkennung zurück (linker Sensor):[/FONT]
[FONT="]1 = kein Hindernis[/FONT]
[FONT="]0 = Hindernis erkannt[/FONT]
[FONT="] [/FONT]
[FONT="]ACS_RIGHT() as byte[/FONT]
[FONT="]Gibt des Status der Hindernis-Erkennung zurück (rechter Sensor):[/FONT]
[FONT="]1 = kein Hindernis[/FONT]
[FONT="]0 = Hindernis erkannt[/FONT]
[FONT="] [/FONT]
[FONT="] [/FONT]
[FONT="] [/FONT]
[FONT="] [/FONT]
[FONT="]DELAY_MS(time as integer)[/FONT]
[FONT="]Alternative Zeitschleife zu AbsDelay(). Unterschied: Interrupts warden weiter abgefragt, der Interpreter wird nicht komplett angehalten (1ms[/FONT]
[FONT="]Time Slot).[/FONT]
[FONT="] [/FONT]
[FONT="]MAKE_INT(MSB as byte, LSB as byte) as word[/FONT]
[FONT="]Fügt zwei Bytes zu einen Word zusammen. Wird z.B. für diverse I²C-Bus-Sensoren benötigt.[/FONT]
[FONT="] [/FONT]
[FONT="]GRAD_TO_RAD(Val as single) as single[/FONT]
[FONT="]Wandelt Grad in Bogenmaß um.[/FONT]
[FONT="] [/FONT]
[FONT="]RAD_TO_GRAD(Val as single) as single[/FONT]
[FONT="]Wandelt Bogenmaß in Grad um.[/FONT]
[FONT="] [/FONT]
[FONT="]ABS_INT(Val as integer) as integer[/FONT]
[FONT="]Absolutwert einer Integerzahl.[/FONT]
[FONT="] [/FONT]
[FONT="]ABS_SINGLE(Val as single) as single[/FONT]
[FONT="]Absolutwert einer Single Variable.[/FONT]