Head & Neck Electronics¶
Servomotors¶
| Servomotor | ID | center position control | minimum position command | maximum position command | angle min | angle max | Notes |
|---|---|---|---|---|---|---|---|
| Right antenna | 1 | 512 | 1023 | 0 | -150° | +150° | center position is when antenna is vertical, min to front |
| Left antenna | 2 | 512 | 0 | 1023 | -150° | +150° | center position is when antenna is vertical, min to front |
| 3 | 585 | 490 | 680 | ||||
| 4 | 540 | 420 | 570 | min: head down, chin down | |||
| neck rotation | 5 | 485 | 297 | 673 | -55° | +55° |
Information about the servomotors is available in the Feetech servomotor documentation.
Sensors and actuators¶
The head and neck include:
- 2 touch sensors
- 1 vibration motor
- 2 LEDs for the eyes (one per eye)
- an IMU
- a distance sensor
- 5 SCS0009 servomotors
---
config:
layout: dagre
---
flowchart TB
subgraph s1["Head"]
n1["XIAO RP2350"]
n2["I2C Wire1<br>slave 0x30"]
n3["Bus Servo Driver Board"]
n4["Right Antenna SCS0009 (id1)"]
n5["Left Antenna SCS0009 (id2)"]
n6["Neck 1 SCS0009 (id3)"]
n7["Neck 2 Pitch SCS0009 (id4)"]
n8["Neck 3 Rotation SCS0009 (id5)"]
n9["Top Touch Sensor"]
n10["Back Touch Sensor"]
n11["Vibrator"]
n12["I2C Wire<br>sensor bus"]
n13["VL53L1X Distance 0x29"]
n14["LSM6DS3 IMU 0x6B"]
end
n15["Raspberry Pi 5<br>I2C master"] <--> n2
n2 <--> n1
n1 -- Serial1 TX D6 / RX D7, 1 Mbps --> n3
n3 <--> n4 & n5 & n6 & n7 & n8
n9 -- D0 --> n1
n10 -- D1 --> n1
n1 -- PWM D2 --> n11
n1 <--> n12
n12 <--> n13 & n14
n1@{ shape: rounded}
n2@{ shape: diam}
n3@{ shape: rect}
n4@{ shape: rect}
n5@{ shape: rect}
n6@{ shape: rect}
n7@{ shape: rect}
n8@{ shape: rect}
n9@{ shape: rect}
n10@{ shape: rect}
n11@{ shape: rect}
n12@{ shape: diam}
n13@{ shape: rect}
n14@{ shape: rect}
n15@{ shape: rounded}
style n1 fill:#FFE0B2
style n2 fill:#BBDEFB
style n12 fill:#BBDEFB
style n15 fill:#FFD600