NDS3

Aus Nibo Wiki
Wechseln zu: Navigation, Suche

Der NDS3 (Nibo Distance Scanner 3) ist eine Erweiterung, die es dem Nibo2 ermöglicht Distanzen in einem Bereich zwischen 10 cm und 80 cm genau zu ermitteln. Es handelt sich um eine Kombination aus einem Servo, einem Sharp Distanzmesser und einem ATtiny84 als Mikrocontroller zur Datenverarbeitung.

Protokoll

Jeder Zugriff über den I²C Bus ist nach folgendem Schema aufgebaut:

Address Write Command W-Data Address Read R-Data
7 Bit 1 Bit 8 Bit m Byte 7 Bit 1 Bit n Byte

Falls Keine Daten zurück übertragen werden entfällt das zweite Datenpaket.

Im folgenden Abschnitt werden die verschiedenen Befehle nach folgendem Muster aufgelistet:

Command: Name (W-Data) -> (R-Data)


Kommandos

Distanzmessung:

0x00: Reset () -> ()

0x01: Move (int8_t pos) -> ()

0x02: Measure (int8_t pos, uint8_t step) -> ()

0x03: Read (int8_t pos, uint8_t step) -> (uint8_t data[])

0x04: GetPos () -> (int8_t pos)

0x05: GetDist () -> (uint8_t dist)

0x06: GetBusy () -> (uint8_t busy)


Portfunktionen:

0x10: SetDDR (uint8_t value) -> ()

0x11: SetPort (uint8_t value) -> ()

0x12: GetPin () -> (uint8_t value)

0x13: GetAnalog (uint8_t idx) -> (uint16_t value)


Kalibrierung:

0x20: MoveServo (uint16_t value) -> ()

0x21: GetServoCalib () -> (uint16_t lo, uint16_t hi)

0x22: SetServoCalib (uint16_t lo, uint16_t hi) -> ()

0x23: GetDistCalib () -> (int16_t v0, int16_t d0, int16_t alpha)

0x24: SetDistCalib (int16_t v0, int16_t d0, int16_t alpha) -> ()