Programmbibliothek des Asuro

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Wechseln zu:Navigation, Suche

In diesem Artikel fehlen die Quellenangaben.

1 Allgemeines

Zur Programmierung des Asuro mit C gibt es vom Hersteller eine mitgelieferte Programmbibliothek. Hiermit wird die Erstellung von Steuerprogrammen für den Roboter vereinfacht.

Im Wesentlichen besteht die Bibliothek aus folgenden Dateien:

  • asuro.c - Die Asuro-Bibliothek
  • asuro.h - Definitionen für die Bibliothek.

Neben der originalen Programmbibliothek gibt es auch modifizierte Versionen, wie bspw. aus demRoboternetz-Forum In diesen werden vorhandene Fehler ausgebessert und erweiterte Funktionalität angefügt.

2 Funktionen

Anbei die wichtigsten Funktionen im Überblick: (Hierbei sind schon Funktionen aus der erweiterten Library aufgeführt. Diese kann unter http://sourceforge.net/projects/asuro kostenfrei bezogen werden.)

  • void go (int distance, int speed)
  • void turn (int degree, int speed)
  • unsigned long gettime (void)
  • void msleep (int dauer)
  • void printInt (int wert)
  • int batterie (void)
  • void init (void)
  • void statusLED (unsigned char color)
  • void frontLED (unsigned char status)
  • void backLED (unsigned char left, unsigned char right)
  • void motorDir (unsigned char left_dir, unsigned char right_dir)
  • void motorSpeed (unsigned char left_speed, unsigned char right_speed)
  • void serWrite (unsigned char *data, unsigned char length)
  • void serRead (unsigned char *data, unsigned char length, unsigned int timeout)
  • void lineData (unsigned int *data)
  • void odometrieData (unsigned int *data)
  • unsigned char pollSwitch (void)
  • void startSwitch (void)
  • void stopSwitch (void)
  • void sleep (unsigned char time72kHz)

2.1 void go (int distance, int speed)

Funktion: Mit Hilfe der Odometrie-Sensoren wird eine Strecke mit einer gewissen Geschwindigkeit zurückgelegt.

Übergabeparameter: distance: Die Distanz, wobei positive Werte vorwärts, negative Werte rückwärts bedeuten. speed: Die Geschwindigkeit - im Wertebereich von 0 bis 255.

2.2 void turn (int degree, int speed)

Funktion: Der Roboter dreht sich einem bestimmten Winkel mit einer festgelegten Geschwindigkeit. Auch hier wird die Odometrie verwendet.

Übergabeparameter: degree: Legt den Winkel fest (- rechts, + links) speed: Die Geschwindigkeit (Wertebereich 0...255)

2.3 unsigned long gettime (void)

Funktion: Gibt die aktuelle Zeit in Millisekunden zurück.

Übergabeparameter: keine

2.4 void Msleep (int dauer)

Funktion: Wartet eine bestimmte Zeit (Millisekunden)

Übergabeparameter: dauer: Wartezeit in ms

2.5 void printInt (int wert)

Funktion: Gibt einen Integerwert (als String) über die serielle Schnittstelle aus.

Übergabeparameter: wert: Wert der ausgegeben werden soll.

2.6 int batterie (void)

Funktion: Misst den aktuellen Wert der Batteriespannung und gibt diesen zurück.

Übergabeparameter: keine

2.7 void init (void)

Funktion: Muss bei jedem Start aufgerufen werden. Der Asuro wird initialisiert.

Übergabeparameter: keine

2.8 void statusLED (unsigned char color)

Funktion: Hier wird die Status-LED angeschaltet und mit einer Farbe versehen

Übergabeparameter: color: Der Farbton, bzw. ausschalten Mögliche Parameter:

  • OFF
  • RED
  • GREEN
  • YELLOW

2.9 void frontLED (unsigned char status)

Funktion: Hier wird die Front-LED an- oder ausgeschaltet. Übergabeparameter: status: An (ON) oder aus (OFF)

2.10 backLED (unsigned char left, unsigned char right)

Funktion: Der Asuro besitzt zwei "Bremslichter" - diese können hiermit angesteuert werden.

Übergabeparameter: left: steuert linkes Bremslicht (OFF,ON) right: steuert rechtes Bremslicht (OFF,ON)

2.11 motorDir (unsigned char left_dir, unsigned char right_dir)

Funktion: Hier wird die Drehrichtung der beiden Antriebsmotoren bestimmt. Jeder Motor kann eigens angesprochen werden.

Übergabeparameter: left_dir: Drehrichtung linker Motor (FWD,RWD,BREAK,FREE) right_dir: Drehrichtung rechter Motor (FWD,RWD,BREAK,FREE)

2.12 motorSpeed (unsigned char left_speed, unsigned char right_speed)

Funktion: Hier wird die Drehgeschwindigkeit der beiden Antriebsmotoren bestimmt. Jeder Motor kann eigens angesprochen werden.

Übergabeparameter: left_speed: Geschwindigkeit linker Motor (Wertebereich 0..255) right_speed: Geschwindigkeit rechter Motor (Wertebereich 0..255

Der Geschwindigkeitsindex erstreckt sich zwischen 0 für Stop und 255 für Vollgas.

2.13 serWrite (unsigned char *data, unsigned char length)

Funktion: Schreibt Daten auf die serielle Schnittstelle

Übergabeparameter: data: Pointer auf Daten die geschrieben werden sollen lenth: Anzahl der Zeichen

2.14 serRead (unsigned char *data, unsigned char length, unsigned int timeout)

Funktion: Liest Daten von der seriellen Schnittstelle

Übergabeparameter: data: Pointer auf Daten die gelesen werden sollen lenth: Anzahl der Zeichen timeout

2.15 void lineData (unsigned int *data)

Funktion: Auslesen der Photosensoren (vorne) zur Linienverfolgung - unabhängig voneinander.

Übergabeparameter: data: Zeiger auf Daten für links (data[0]) und rechts (data[1]) die gelesen werden sollen. Wertebereich: 0 bis 1023.

2.16 void odometrieData (unsigned int *data)

Funktion: Auslesen der Odometrie-Daten via Polling - über Photosensoren links/rechts hinten.

Übergabeparameter: Parameter: data: Pointer auf die zu lesenden Daten: data[0] = links , data[1] = rechts. Wertebereich: 0 bis 1023.

2.17 unsigned char pollSwitch (void)

Funktion: Abfrage der Taster vorne via Polling.

Übergabeparameter: keiner

Rückgabe: Bits:

  • Taster 6 = Bit0
  • Taster 5 = Bit1
  • ...
  • Taster 1 = Bit5

Tipp: Pollswitch mehrmals aufrufen, falls es nicht funktionieren sollte. Daran könnten Bauteilfehler schuld sein!

2.18 void startSwitch (void)

Funktion: Start Interruptbetrieb der Taster.

Übergabeparameter: keiner

2.19 void stopSwitch (void)

Funktion: Stop Interruptbetrieb der Taster.

Übergabeparameter: keiner

3 Siehe auch