第一部分:安装前准备
在开始之前,请确保你已经准备好所有必需的硬件和软件。

硬件清单
你的 OTTO 机器人套件通常包含以下组件:
- 核心控制单元:
- Raspberry Pi (推荐 Raspberry Pi 4B,性能更强)
- MicroSD 卡 (16GB 或以上,建议 Class 10)
- MicroSD 卡读卡器
- 动力系统:
- 2 个直流减速电机
- 电机驱动板 (最常见的是 L298N 或 TB6612FNG)
- 轮子 (通常带橡胶轮胎)
- 万向轮 (或两个固定轮)
- 机器人底盘 (亚克力或铝合金)
- 电源:
- 电池盒 (通常为 4 节 AA 电池盒,提供 6V 电压) 或
- 锂电池组 (如 2S 18650 电池组,电压 7.4V,性能更佳)
- 传感器 (可选,但推荐):
- 超声波传感器 (HC-SR04),用于测距避障
- 红外巡线传感器 (TCRT5000),用于黑线循迹
- 舵机,用于控制机械臂或云台
- 其他:
- 杜邦线 (公对母,母对母,公对公)
- 螺丝、螺母、垫片等紧固件
- 面包板 (用于原型搭建)
- USB 键盘和鼠标 (初期设置用)
- 显示器 (HDMI 接口)
软件环境
- 操作系统: Raspberry Pi OS (前身为 Raspbian),建议下载 Raspberry Pi OS with desktop (带图形界面版本),方便初学者。
- 编程语言:
- Python: 最常用,社区支持最广,库丰富。
- Scratch: 图形化编程,非常适合儿童或编程初学者。
- 重要库:
RPi.GPIO: 控制 GPIO 引脚的经典库。gpiozero: 更现代、更易用的 GPIO 库,推荐初学者使用。pigpio: 高性能 GPIO 库,适用于需要精确时序的应用。
第二部分:安装步骤
我们将按照从软件到硬件,再到代码的顺序进行安装。
步骤 1: 为 Raspberry Pi 安装操作系统
这是第一步,也是最关键的一步。
-
下载系统镜像:
(图片来源网络,侵删)- 访问 Raspberry Pi 官方下载页面。
- 下载 Raspberry Pi OS with desktop 的
.img文件。
-
烧录镜像到 MicroSD 卡:
- 在电脑上安装一个 SD 卡烧录工具,推荐 Raspberry Pi Imager (官方工具,简单易用) 或 BalenaEtcher。
- 打开烧录工具,选择你下载的系统镜像,选择你的 MicroSD 卡,然后点击 "烧录"。
- 等待烧录完成。
-
首次启动和配置:
- 将烧录好的 MicroSD 卡插入 Raspberry Pi。
- 连接键盘、鼠标、显示器,并接通电源。
- 首次启动会进入设置向导,按照提示完成:
- 选择国家/地区、语言、时区。
- 设置新密码和用户名 (默认用户名是
pi)。 - 连接 Wi-Fi 网络。
- 强烈建议: 在 "Raspberry Pi Software Configuration Tool" (
sudo raspi-config) 中进行以下设置:- Interface Options -> Camera: 启用 (如果你的机器人有摄像头)。
- Interface Options -> SSH: 启用 (这样你就可以通过电脑远程连接和控制 Pi)。
- System -> Boot Options -> Desktop / CLI: 选择
Console(命令行界面),可以节省资源。 - Localisation -> Locale: 设置
en_US.UTF-8。 - Localisation -> Timezone: 设置你的时区。
- 更新系统到最新版本:
sudo apt update sudo apt full-upgrade -y
步骤 2: 机械组装
- 阅读说明书: 根据你的机器人套件说明书,将底盘、电机、轮子和万向轮组装起来。
- 安装 Raspberry Pi: 将 Pi 固定在底盘的指定位置。
- 安装电机驱动板: 将 L298N 或 TB6612FNG 驱动板固定在底盘上。注意: 驱动板需要接电源,请务必接对正负极,否则可能烧毁板子。
步骤 3: 电路连接 (接线)
这是最容易出错的地方,请务必小心,这里以最常见的 L298N 驱动板为例:
电源连接:

- 外部电源: 将电池盒的输出线连接到 L298N 驱动板的
+12V和GND接线柱上,如果你的电池是 6V,可以接到+5V或+12V,但+12V是更通用的选择。 - 给 Raspberry Pi 供电: 强烈推荐使用一个单独的 USB 电源给 Pi 供电。不要从 L298N 的
+5V输出给 Pi 供电,因为 L298N 的 5V 输出能力有限且不稳定。
电机连接:
- 将两个电机分别连接到 L298N 驱动板的
OUT1/OUT2和OUT3/OUT4接线柱上。
Raspberry Pi 与 L298N 的连接 (控制信号): L298N 需要来自 Pi 的 PWM 信号和数字信号来控制电机的转速和方向,我们将使用 Pi 的 GPIO 引脚。
| L298N 接口 | 连接到 Raspberry Pi GPIO 引脚 | 功能说明 |
|---|---|---|
ENA (使能 A) |
GPIO 12 (BCM 18, PWM) | 控制左电机转速 (PWM) |
IN1 |
GPIO 17 (BCM 17) | 控制左电机方向 1 |
IN2 |
GPIO 27 (BCM 27) | 控制左电机方向 2 |
IN3 |
GPIO 22 (BCM 22) | 控制右电机方向 1 |
IN4 |
GPIO 23 (BCM 23) | 控制右电机方向 2 |
ENB (使能 B) |
GPIO 13 (BCM 27, PWM) | 控制右电机转速 (PWM) |
- 注意: 表格中的
BCM编号是 Python 中常用的引脚编号,比物理引脚编号更稳定,请根据你的接线修改代码中的引脚号。 - GND: 非常重要! 将 L298N 驱动板的
GND接线柱用一根杜邦线连接到 Raspberry Pi 的任何一个GND引脚上,以确保共地。
传感器连接 (以超声波传感器为例):
VCC-> Pi 的 5V 引脚Trig-> Pi 的 GPIO 18 (BCM 18)Echo-> Pi 的 GPIO 24 (BCM 24)GND-> Pi 的 GND 引脚
第三部分:软件编程与测试
步骤 4: 安装 Python 库
打开 Pi 的终端,安装 gpiozero 库 (如果使用 Python 3,它通常已预装):
# gpiozero 通常已预装,如果需要更新或安装 sudo apt update sudo apt install python3-gpiozero
步骤 5: 编写第一个电机控制程序
创建一个 Python 文件来测试你的电机是否正确连接和工作。
-
在 Pi 的主目录下创建一个新文件:
nano motor_test.py
-
将以下代码粘贴到文件中。请根据你实际的接线修改
pins变量。from gpiozero import Robot from time import sleep # --- 根据你的接线修改这里的引脚号 --- # 格式: Robot(left_motor=(IN1, IN2), right_motor=(IN3, ENB)) # 注意: ENA 和 ENB 是 PWM 引脚,用于调速 # 如果你的驱动板不需要单独的 PWM 引脚,可以省略,但速度会恒定 try: robot = Robot(left_motor=(17, 27), right_motor=(22, 23)) print("机器人初始化成功!") except Exception as e: print(f"初始化失败,请检查接线: {e}") exit() print("前进...") robot.forward() # 全速前进 sleep(2) # 持续2秒 print("停止...") robot.stop() sleep(1) print("后退...") robot.backward() sleep(2) print("左转...") robot.left() sleep(1) print("右转...") robot.right() sleep(1) print("停止...") robot.stop() print("测试完成!") # 运行程序 # python3 motor_test.py -
保存并退出
nano编辑器 (按Ctrl+X,然后按Y,再按Enter)。 -
运行程序测试:
python3 motor_test.py
如果一切正常,你的机器人应该会按照代码的指令前进、后退、转向和停止,如果电机不动或方向相反,请:
- 检查接线: 是否接错了
IN1,IN2等控制引脚。 - 修改代码: 如果一个电机方向反了,可以在创建
Robot对象时,交换该电机的两个引脚,left_motor=(27, 17)。
- 检查接线: 是否接错了
第四部分:进阶功能与项目
当基础运动控制成功后,你可以开始添加更多功能。
遥控控制
使用手机或电脑通过蓝牙或 Wi-Fi 发送指令来控制机器人。
- 蓝牙: 可以使用一个简单的 Python 脚本监听蓝牙串口数据。
- Wi-Fi: 更灵活,可以使用
Flask创建一个 Web 服务器,在手机浏览器上显示一个控制面板。
自动避障
结合超声波传感器,让机器人能够自动绕开障碍物。
from gpiozero import Robot, DistanceSensor
from time import sleep
robot = Robot(left_motor=(17, 27), right_motor=(22, 23))
# 根据你的接线修改 Trig 和 Echo 引脚
sensor = DistanceSensor(echo=24, trigger=18, max_distance=2)
try:
while True:
distance = sensor.distance * 100 # 转换为厘米
print(f"距离: {distance:.1f} cm")
if distance < 15: # 如果障碍物小于15厘米
print("障碍物!后退并转向...")
robot.backward()
sleep(0.5)
robot.left()
sleep(0.5)
else:
print("路径清晰,前进...")
robot.forward()
sleep(0.2)
except KeyboardInterrupt:
print("程序停止")
robot.stop()
循迹
使用红外巡线传感器检测黑线,让机器人沿着预设的路线行走。
开机自启
为了让你的机器人一开机就能自动运行程序,可以设置开机自启。
-
将你的 Python 脚本(
auto_run.py)放在/home/pi/目录下。 -
创建一个
.service文件:sudo nano /etc/systemd/system/otto.service
-
粘贴以下内容,并修改
ExecStart的路径为你的脚本绝对路径:[Unit] Description=OTTO Robot Service After=multi-user.target [Service] User=pi Group=pi ExecStart=/usr/bin/python3 /home/pi/auto_run.py Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
-
启用并启动服务:
sudo systemctl daemon-reload sudo systemctl enable otto.service sudo systemctl start otto.service
常见问题与故障排除
- 问题: 电机不动。
- 排查: 检查电源是否接通且电量充足;检查 L298N 的
ENA/ENB和IN1-IN4是否有信号;检查 Pi 和 L298N 的共地连接。
- 排查: 检查电源是否接通且电量充足;检查 L298N 的
- 问题: 电机方向反了。
- 排查: 在代码中,将该电机的两个控制引脚(如
IN1和IN2)交换位置。
- 排查: 在代码中,将该电机的两个控制引脚(如
- 问题: 程序运行时出现
ImportError: No module named 'gpiozero'。- 排查: 运行
sudo apt install python3-gpiozero安装库。
- 排查: 运行
- 问题: 机器人运动不直。
- 排查: 这是正常现象,左右电机转速可能存在微小差异,可以在代码中为左右电机设置不同的
speed值进行微调,robot.forward(left_speed=0.9, right_speed=1.0)。
- 排查: 这是正常现象,左右电机转速可能存在微小差异,可以在代码中为左右电机设置不同的
希望这份详细的指南能帮助你成功安装和启动你的 OTTO 机器人!祝你玩得开心!
标签: Otto机器人安装教程 Otto机器人组装步骤图解 Otto机器人零基础安装指南