
【免费下载链接】Microduck-build-tutorialA practical hardware and software setup for a compact RL-powered biped robot.项目地址https://gitcode.com/gh_mirrors/mi/Microduck-build-tutorial点击查看免费下载Microduck 是一个搭载强化学习RL行走策略的小型双足机器人项目。本文带你从零手工配置其 Raspberry Pi Zero 2 W 控制板启用 I2C 读取 IMU 姿态、关闭串口登录控制台、彻底修复导致 14 个 XL330 舵机掉线的 UART 冲突并搭建 Wi-Fi 免休眠、Python 依赖与输入权限的完整运行环境。只需约 30 分钟即可得到一台可稳定行走的机器人主板。为什么必须手工配置树莓派Microduck 的部署代码运行在 Raspberry Pi Zero 2 W 上依赖三条硬件总线总线设备用途I2CBNO08x IMUbus 1读取机体姿态行走策略的核心输入UART/dev/ttyAMA01 MbpsDynamixel 舵机备用链路OpenRB-150 USB 口缺失时的回退通道I2STLV320AIC3104 音频 codec外放语音需关闭板载音频其中最容易踩的坑是串口控制台serial login console若开着内核和 getty 会持续向/dev/ttyAMA0写字节直接污染舵机总线表现为舵机校验和报错、无响应。而官方镜像由 cloud-init 驱动仅用raspi-config关一次控制台还不够——它会静默回滚。下面按仓库 setup_rasp.md 的流程逐步操作。第 1 步用 Raspberry Pi Imager 写入系统使用 Raspberry Pi Imager 完成 SD 卡初始化关键选项设备Raspberry Pi Zero 2 W系统Raspberry Pi OS Lite64-bit主机名microduck时区、用户名/密码按需设置Wi-Fi填写本地 2.4 GHz 网络的 SSID 和密码Zero 2 W 只支持 2.4 GHz开启 SSH 密码认证首次启动会自动扩展分区并安装更新请耐心等待 1–3 分钟切勿断电。第 2 步建立 SSH 连接同一 Wi-Fi 下先在电脑上找到机器人 IPping microduck.local然后在~/.ssh/config中配置别名Host microduck HostName 192.168.XXX.XXX User 用户名复制免密密钥后一条ssh microduck即可登录ssh-keygen -t ed25519 ssh-copy-id microduck第 3 步导入 config.txt启用 I2C 等接口仓库预置了完整硬件配置直接拷入即可见 config.txtscp docs/dev/config.txt microduck:config.txt # 在 Pi 上执行 sudo mv config.txt /boot/firmware/config.txt sudo reboot该文件的关键项及作用配置作用dtparami2c_armon开启 I2CIMU 依赖它dtparami2c_arm_baudrate400000限制到 400 kHz兼容 TLV320AIC3104 codec 上限dtparamaudiooffdtoverlaytlv320aic3x关闭板载音频改用 I2S 外接 codecdtoverlayimx500启用 IMX500 摄像头enable_uart1保留 UART 硬件舵机回退链路需要注意这里开启的是UART 硬件控制台是否关闭由下一步处理二者必须分开对待。第 4 步raspi-config 启用 I2C、关闭串口控制台重启后执行sudo raspi-config按以下路径操作Interface Options → I2C → 启用EnableInterface Options → Serial Port串口登录控制台login shell关闭No串口硬件hardware保持启用Yes第 5 步修复舵机 UART 冲突关键一步⚠️ 到此为止还不够。镜像由 cloud-init 驱动其user-data中的rpi.interfaces.serial若为true每次 cloud-init 作为新实例运行包括换 Wi-Fi 触发的cloud-init clean都会重新打开串口控制台悄悄撤销你的 raspi-config 设置舵机随即再次失联。治本方法是编辑/boot/firmware/user-data改为细粒度写法——关控制台、留硬件rpi: interfaces: serial: console: false hardware: true验证并干净地应用sudo cloud-init schema -c /boot/firmware/user-data # 应提示 Valid schema sudo cloud-init clean sudo reboot若你的 cloud-init 版本拒绝细粒度写法回退方案直接删除rpi.interfaces.serial整行cloud-init 便不再碰串口UART 靠config.txt的enable_uart1保持开启控制台用 raspi-config 手动关一次即可。验证 I2C 与 UART 是否配置成功三项检查全部通过才算完成控制台已关cat /proc/cmdline中不再包含consolettyAMA0I2C 在线用i2cdetect -y 1能看到 BNO08x 设备地址代码在 imu_reader.py 中自动探测常见地址总线号与安装姿态四元数定义于 constants.py舵机可达用 Dynamixel Wizard 以 1 Mbps 扫描应能看到全部 19 个舵机 ID此后该配置可抵御任何 cloud-init 重跑舵机始终保持可达。第 6 步环境收尾——Wi-Fi 省电、自动更新、依赖与权限Wi-Fi 免休眠防止 Pi 空闲时 SSH 卡死sudo nmcli con mod 按Tab补全你的WiFi连接名 wifi.powersave disable关闭系统自动更新机器人上自动升级依赖很危险sudo touch /etc/apt/apt.conf.d/99disable-auto-upgrades写入APT::Periodic::*全 0 的配置后重启。安装 Python 包管理器 uv部署依赖由uv sync --frozen管理curl -LsSf https://astral.sh/uv/install.sh | sh输入设备权限免 root 读取手柄/dev/input/js*sudo usermod -aG input $USER常见问题速查症状原因与处理舵机校验和报错 / 无响应串口控制台未真正关闭按第 5 步改user-data而非只改 raspi-configi2cdetect扫不到 IMUI2C 未启用或 IMU 接错引脚SDA→GPIO2、SCL→GPIO33.3V 供电换 Wi-Fi 后配置失效cloud-init 只读一次network-config仓库附带 reapply 服务可自动重应用两台机器人 SSH 提示 host key 冲突为每台机器启用开机自动生成 SSH host keys 的服务见 setup_rasp.md写在最后配置完成后建议先运行make direction-check核对每个舵机方向再扶住机器人执行首次行走。完整命令表与手柄无头模式见 usage.md。掌握硬件开、控制台关、cloud-init 不插手这三条原则你的 Microduck 主板就稳了 赞分享【免费下载链接】Microduck-build-tutorialA practical hardware and software setup for a compact RL-powered biped robot.项目地址https://gitcode.com/gh_mirrors/mi/Microduck-build-tutorial点击查看免费下载相关推荐告别外设控制痛点RPPAL全攻略 — 用Rust掌控树莓派GPIO/I2C/PWM/SPI/UART告别外设控制痛点RPPAL全攻略 — 用Rust掌控树莓派GPIO/I2C/PWM/SPI/UART 你是否还在为树莓派外设编程烦恼尝试过Python库却受创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考