3. 基础外设使用
开发板文件结构如下,/userdata/magicbox/basic_function_demo/ 目录下,预置了基础外设的使用案例,执行程序即可控制相应的外设。
root@ubuntu:/userdata/magicbox# tree -L 2
.
├── app #应用功能文件
│ ├── ros_ws # ros2 工作空间,基本包含所有应用功能
│ └── Web_RDK_Performance_Node #资源监控应用
|
├── basic_function_demo #基础外设使用案例(python)
│ ├── button.py #按钮使用脚本
│ ├── imu.py # imu 使用脚本
│ ├── servo.py #舵机控制脚本
│ └── ws2812b.py #灯带控制脚本
|
├── config # app 依赖的配置文件
│ └── ......
├── dep # app 依赖的第三方功能包
│ ├── llama.cpp # llama.cpp
│ ├── matcha-icefall-zh-baker # TTS 语音模型依赖
│ └── sherpa-onnx # sherpa-onnx
|
├── launch #启动功能的相关文件
│ ├── lamp #启动所需要的灯光控制脚本
│ ├── start.py #所有应用功能开启与关闭的控制脚本
│ └── start.sh #自启动执行的脚本
|
├── log # log文件
|
└── voice #音频文件
├── robot.mp3
└── wakeup.mp3
舵机控制
规格说明
舵机型号为 PTK 7465 MG-D,具体参数请参考官方技术规格说明。
PWM 说明
- 舵机通过 PWM 信号控制,连接至 BOARD 管脚 32 和 33,管脚功能参见 40PIN 管脚定义。
- PWM 的使用细节及接口说明,请参阅 PWM 应用文档。
执行脚本
使用以下命令执行内置 servo.py 脚本:用于控制两个摇臂下放,触地并撑起机身。
# 控制两个摇臂往下,将设备撑起,基于 PWM 实现
python3 /userdata/magicbox/basic_function_demo/servo.py
结果展示

灯光控制
规格说明
LED 灯型号为 WS2812B,支持 24-bit 全彩显示。
接口说明
- 四颗 LED 灯珠通过 SPI 接口控制,连接在 SPI 总线 1 的 0 号设备。
- 有关 SPI 的使用细节及接口说明,请参阅 SPI 应用文档。
执行脚本
使用以下命令执行内置 ws2812b.py 脚本:用于控制 LED 灯珠亮起并呈现不同颜色。
# 控制设备灯光亮起,呈现不同颜色,基于SPI实现
python3 /userdata/magicbox/basic_function_demo/ws2812b.py
结果展示

IMU 控制
规格说明
双目摄像头自带 IMU,RDK X5 Magicbox 拓展板内置一颗 IMU,拓展板内置 IMU 型号为 ICM20948。
IMU 通信说明
- 通过 I2C 总线 5 与板载 IMU 通信,使用 smbus2 实现控制逻辑。
- 有关 I2C 的使用细节及接口说明,请参阅 I2C 应用文档。
执行脚本
使用以下命令执行内置 imu.py 脚本:运行 IMU 并打印数据。
# 运行 IMU,打印数据,基于 smbus2 实现
python3 /userdata/magicbox/basic_function_demo/imu.py
结果展示
按钮控制
实现逻辑说明
-
按钮逻辑通过 GPIO 实现,连接至 BCM 管脚 22、16 和 26,管脚具体信息见 40PIN 管脚定义。

-
按压按钮触发低电平,使用
GPIO.FALLING检测按压事件。 -
GPIO 的使用细节及接口说明,请参阅 GPIO 应用文档。
执行脚本
使用以下命令执行内置 button.py 脚本:输出按钮按压反馈,按下按钮时打印 button1 OK、button2 OK、button3 OK。
# 运行按钮按压反馈,按压按钮,打印 button1 OK/button2 OK/button3 OK,基于 GPIO 实现
python3 /userdata/magicbox/basic_function_demo/button.py
麦克风及扬声器使用
规格说明
- 麦克风型号:INMP441
- 功放型号:NS4168
接口说明
麦克风与扬声器通过 I2S 接口连接,设备号为 hw:0, 0。
使用命令
使用以下命令控制麦克风和扬声器:
# 麦克风录音
arecord -D plughw:0,0 -c 1 -r 16000 -f S16_LE -t wav -d 5 record1.wav
# 扬声器播放
aplay -D plughw:0,0 record1.wav
# mp3 播放
mpg123 -a hw:0,0 /userdata/magicbox/voice/wakeup.mp3