NiboRoboLib 3.3 - NIBO Library
nds3.h-Dateireferenz

Routinen zur Kommunikation mit dem NDS3 Modul. Da die Kommunikation über die I²C Schnittstelle abgewickelt wird, muss vor der Benutzung der Funktionen i2c_init() aufgerufen werden. Mehr ...

#include <stdint.h>

gehe zum Quellcode dieser Datei

Funktionen

void nds3_init ()
 
void nds3_reset ()
 
void nds3_move (uint8_t dir)
 
void nds3_measure (uint8_t dir, int8_t step)
 
void nds3_read (uint8_t dir, uint8_t step)
 
uint8_t nds3_get_pos ()
 
uint8_t nds3_get_dist ()
 
uint8_t nds3_get_busy ()
 
void nds3_ddr_commit ()
 
void nds3_port_commit ()
 
void nds3_pin_update ()
 
uint16_t nds3_get_analog (uint8_t idx)
 
void nds3_move_servo (uint16_t usecs)
 
void nds3_servocalib_update ()
 
void nds3_servocalib_commit ()
 
void nds3_distcalib_update ()
 
void nds3_distcalib_commit ()
 

Variablen

uint8_t nds3_distances [181]
 
uint8_t nds3_ddr
 
uint8_t nds3_port
 
uint8_t nds3_pin
 
uint16_t nds3_servocalib_hi
 
uint16_t nds3_servocalib_mid
 
uint16_t nds3_servocalib_lo
 
uint16_t nds3_distcalib_v0
 
uint16_t nds3_distcalib_d0
 
uint16_t nds3_distcalib_alpha
 

Ausführliche Beschreibung

Routinen zur Kommunikation mit dem NDS3 Modul. Da die Kommunikation über die I²C Schnittstelle abgewickelt wird, muss vor der Benutzung der Funktionen i2c_init() aufgerufen werden.

Autor
Nils Springob (nils@.nosp@m.nica.nosp@m.i-sys.nosp@m.tems.nosp@m..de)
Datum
2009-07-02

Dokumentation der Funktionen

void nds3_ddr_commit ( )

Akualisiere Data Direction Register (DDR) des NDS3 Die globale Variable nds3_ddr wird zum NDS3 übertragen

void nds3_distcalib_commit ( )

Übertrage Distanz-Kalibrierwerte aus den Variablen zum NDS3

void nds3_distcalib_update ( )

Übertrage Distanz-Kalibrierwerte vom NDS3 in die Variablen. Die Werte werden im EEPROM gespeichert. Die Formel lautet: d = alpha/(v-v0) - d d: Distanz (*cm) v: Spannung (*5.0/1024 V)

uint16_t nds3_get_analog ( uint8_t  idx)

Liefert den Wert des Analog-Eingangs Idx zurück idx: 0-3 Spannung am Portpin A0-A3 (DDR muss auf Eingang geschaltet sein!)

uint8_t nds3_get_busy ( )

Prüfen, ob das NDS3 Modul ein (Bewegungs-)Kommando bearbeitet.

Rückgabe
0: untätig
uint8_t nds3_get_dist ( )

Liefert die aktuell gemessene Distanz

Rückgabe
Distanz in cm
uint8_t nds3_get_pos ( )

Liefert die aktuelle Position

Rückgabe
Richtung in Grad [0 ... 180]
void nds3_init ( )

Initialisierung des NDS3

void nds3_measure ( uint8_t  dir,
int8_t  step 
)

Startet einen Scan. Der Sensor wird von der aktuellen Richtung mit der Schritweite Step zur angegebenen Richtung gedreht. Die Messung ist abgeschlossen, sobald nds3_get_busy() 0 zurück gibt.

Parameter
dirRichtung in Grad [0 ... 180]
stepSchrittweite in Grad
void nds3_move ( uint8_t  dir)

Startet eine Drehung in die angegeben Richtung. Die Drehung ist abgeschlossen, sobald nds3_get_busy() 0 zurück gibt.

Parameter
dirRichtung in Grad [0 ... 180]
void nds3_move_servo ( uint16_t  usecs)

Rohpulsweite des Servos in Microsekunden setzen

void nds3_pin_update ( )

Aktualisiere lokales Port Input Register (PIN) Die globale Variable nds3_pin wird vom NDS3 aktualisiert

void nds3_port_commit ( )

Akualisiere Ausgabe Register (PORT) des NDS3 Die globale Variable nds3_port wird zum NDS3 übertragen

void nds3_read ( uint8_t  dir,
uint8_t  step 
)

Liefert die Ergebnisse des letzten Scans zurück. Dir ist die Startrichtung, step die Schrittweite. Beispiel:

// Scan von 0 bis 180 Grad in 5 Grad Schritten
while(nds3_get_busy());
nds3_measure(180, 5);
while(nds3_get_busy());
nds3_read(0, 5);
Parameter
dirRichtung in Grad [-90 ... 90]
stepSchrittweite in Grad
void nds3_reset ( )

Setzt das aktuelle Kommando zurück, nds3_get_busy() wird anschliessend 0 zurück geben.

void nds3_servocalib_commit ( )

Übertrage Servo-Kalibrierwerte aus den Variablen zum NDS3

void nds3_servocalib_update ( )

Übertrage Servo-Kalibrierwerte vom NDS3 in die Variablen

Variablen-Dokumentation

uint8_t nds3_ddr

Data Direction Register (DDR) Wenn das zugehörige Bit den Wert 0 hat, kann der Pin als Eingang verwendet werden, hat er den Wert 1 ist es ein Ausgang Bits (7-0): –B2–B0–A3A2A1A0

uint16_t nds3_distcalib_alpha

Voltage - Faktor

uint16_t nds3_distcalib_d0

Voltage - Offset für Distanzmessung (* 1 cm)

uint16_t nds3_distcalib_v0

Voltage - Offset für Distanzmessung (* 5.0/1024 V)

uint8_t nds3_pin

Port Input Register (PIN) Eingangs-Logikpegel am Portpin: 0 =^ 0V / 1 =^ 5V Bits (7-0): –B2–B0–A3A2A1A0

uint8_t nds3_port

Ausgabe Register (PORT) Wert für die Ausgabe 0 =^ 0V / 1 =^ 5V Bits (7-0): –B2–B0–A3A2A1A0

uint16_t nds3_servocalib_hi

Maximale Pulsweite des Servos in Microsekunden

uint16_t nds3_servocalib_lo

Minimale Pulsweite des Servos in Microsekunden

uint16_t nds3_servocalib_mid

Mittlere Pulsweite des Servos in Microsekunden