Routinen zum Ansprechen des Coprozessors. Dieses Modul erlaubt den Zugriff auf die Motoransteuerung und die Distanzmessung mittels IR, beide Funktionen sind im ATmega88 integriert. Da die Kommunikation über die SPI Schnittstelle abgewickelt wird, muss vor der Benutzung der Funktionen spi_init() aufgerufen werden.
Mehr ...
#include <stdint.h>
gehe zum Quellcode dieser Datei
|
enum | { COPRO_IR_PASSIVE = 0,
COPRO_IR_RC5TX = 1,
COPRO_IR_MEASURE = 2
} |
|
|
uint8_t | copro_update () |
|
uint8_t | copro_stop () |
|
uint8_t | copro_stopImmediate () |
|
uint8_t | copro_setPWM (int16_t left, int16_t right) |
|
uint8_t | copro_setSpeed (int16_t left, int16_t right) |
|
uint8_t | copro_setTargetAbs (int16_t left, int16_t right, uint16_t speed) |
|
uint8_t | copro_setTargetRel (int16_t left, int16_t right, uint16_t speed) |
|
uint8_t | copro_setSpeedParameters (int8_t kp, int8_t ki, int8_t kd) |
|
uint8_t | copro_setPositionParameters (int8_t ki, int8_t kp, int8_t kd) |
|
uint8_t | copro_resetOdometry (int16_t left, int16_t right) |
|
uint8_t | copro_ir_stop () |
|
uint8_t | copro_ir_startMeasure () |
|
uint8_t | copro_transmitRC5 (uint16_t code) |
|
Routinen zum Ansprechen des Coprozessors. Dieses Modul erlaubt den Zugriff auf die Motoransteuerung und die Distanzmessung mittels IR, beide Funktionen sind im ATmega88 integriert. Da die Kommunikation über die SPI Schnittstelle abgewickelt wird, muss vor der Benutzung der Funktionen spi_init() aufgerufen werden.
- Autor
- Nils Springob (nils@.nosp@m.nica.nosp@m.i-sys.nosp@m.tems.nosp@m..de)
- Datum
- 2008-11-16
uint8_t copro_ir_startMeasure |
( |
| ) |
|
Reflexionsmessung starten
uint8_t copro_ir_stop |
( |
| ) |
|
Aussenden von IR-Licht stoppen, nur Empfang
uint8_t copro_resetOdometry |
( |
int16_t |
left, |
|
|
int16_t |
right |
|
) |
| |
Odometriewerte auf angegebene Werte zurücksetzen
- Parameter
-
left | Wert für linkes Rad |
right | Wert für rechets Rad |
uint8_t copro_setPositionParameters |
( |
int8_t |
ki, |
|
|
int8_t |
kp, |
|
|
int8_t |
kd |
|
) |
| |
Regelungsparameter setzen.
- Siehe auch
- copro_setTarget und
-
copro_setTargetRel verwenden jetzt die selben Parameter wie
-
copro_setSpeed !
- Parameter
-
ki | Integralanteil |
kp | Proportionalanteil |
kd | Differentialanteil |
- Veraltet:
uint8_t copro_setPWM |
( |
int16_t |
left, |
|
|
int16_t |
right |
|
) |
| |
PWM Werte für die beiden Motoren setzen. Die PWM Werte sind bei idealisierter Mechanik und Elektonik proportional zum Drehmoment.
- Parameter
-
left | Wert für linkes Rad (-1024 ... +1024) |
right | Wert für rechets Rad (-1024 ... +1024) |
uint8_t copro_setSpeed |
( |
int16_t |
left, |
|
|
int16_t |
right |
|
) |
| |
Geschwindigkeit für die beiden Motoren setzen. Die Werte werden in Ticks/Sekunde angegeben. 40 Ticks entsprechen einer Radumdrehung. Beispiel:
- Parameter
-
left | Sollwert für linkes Rad |
right | Sollwert für rechets Rad |
uint8_t copro_setSpeedParameters |
( |
int8_t |
kp, |
|
|
int8_t |
ki, |
|
|
int8_t |
kd |
|
) |
| |
uint8_t copro_setTargetAbs |
( |
int16_t |
left, |
|
|
int16_t |
right, |
|
|
uint16_t |
speed |
|
) |
| |
Zielposition für Räder setzen. Die Werte werden in Ticks angegeben. 40 Ticks entsprechen einer Radumdrehung.
- Parameter
-
left | absoluter Sollwert für linkes Rad |
right | absoluter Sollwert für rechets Rad |
speed | Wert für maximale Geschwindigkeit |
uint8_t copro_setTargetRel |
( |
int16_t |
left, |
|
|
int16_t |
right, |
|
|
uint16_t |
speed |
|
) |
| |
Zielposition für Räder setzen. Die Werte werden in Ticks relativ zur aktuellen Position angegeben. 40 Ticks entsprechen einer Radumdrehung.
Beispiel für eine Drehung:
- Parameter
-
left | relativer Sollwert für linkes Rad |
right | relativer Sollwert für rechets Rad |
speed | Wert für maximale Geschwindigkeit |
Motoren anhalten (passiv Stoppen - rollt aus)
uint8_t copro_stopImmediate |
( |
| ) |
|
Motoren unverzüglich stoppen (aktiv Stoppen - bremst)
uint8_t copro_transmitRC5 |
( |
uint16_t |
code | ) |
|
Aussenden von IR-Licht stoppen und einen RC5 Code übertragen RC5Code: [SXTAAAAACCCCCC] - 14 bit S: Startbit, immer 1 X: Command Extension Bit, 1: Command 0-63, 0: Command 64-127 T: Toggle Bit, wechselt bei jedem neuen Tastendruck zwischen 0 und 1 AAAAA: 5 Address Bits (0-32) CCCCCC: 6 Command Bits (0-63) bzw. (64-127)
- Parameter
-
code | RC5 Code 0x0000 - 0x1fff, 13 Bit - das Startbit wird automatisch hinzugefügt |
Aktueller Strom im linken Motor in Milli-Ampere, der genaue Umrechnungsfaktor ist 1.0742
Aktuelle Strom im rechten Motor in Milli-Ampere, der genaue Umrechnungsfaktor ist 1.0742
uint16_t copro_distance[5] |
Aktuelle Reflexionswerte der Distanzsensoren
Aktueller Modus des IR-Controllers
Zuletzt empfangenes RC5 Kommando
Aktuelle Geschwindigkeit des linken Rades in Ticks pro Sekunde, 40 Ticks entsprechen einer Radumdrehung.
Aktuelle Geschwindigkeit des rechten Rades in Ticks pro Sekunde, 40 Ticks entsprechen einer Radumdrehung.
Systemkonfigurationsdaten
uint16_t copro_target_distance |
Aktuelle Inkrements des linken Rades in Ticks, 40 Ticks entsprechen einer Radumdrehung.
Aktuelle Inkrements des rechten Rades in Ticks, 40 Ticks entsprechen einer Radumdrehung.