Skip to content

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