Rpibot – 关于学习机器人
这是一个简单便宜的移动机器人平台,专为学习和扩展而设计。我解释了我的概念以及我解决的问题。
图>我是一家德国汽车公司的嵌入式软件工程师。我开始这个项目是作为嵌入式系统的学习平台。该项目被提前取消,但我非常喜欢它,所以我在空闲时间继续。这就是结果……
我有以下要求:
- 简单的硬件(重点是软件)
- 便宜的硬件(约 100 欧元)
- 可扩展(某些选项已包含在说明中)
- 来自单个 5V 电源(移动电源)的所有组件的供电电压
除了学习之外,并没有真正的目标。该平台可用于学习、监视、机器人竞赛等……
这不是初学者教程。您需要一些关于以下方面的基本知识:
- 编程(Python)
- 基本电子设备(通过正确的电压将模块连接在一起)
- 基本控制理论 (PID)
最后你可能会像我一样面临问题。带着一些好奇心和耐力,你将完成项目并解决挑战。我的代码尽量简单,关键的代码行都加了注释以提供提示。
完整的源代码和文件可在此处获得:https://github.com/makerobotics/RPIbot
用品:
力学
- 1x 胶合板(A4 尺寸,4 毫米厚)
- 3x M4 x 80 螺丝和螺母
- 2x 齿轮电机,带有用于编码器的辅助输出轴。轮子。
- 1 个自由轮
- 1 个平移和倾斜摄像头安装(可选)
电子产品
- 1x Raspberry Pi Zero,带接头和摄像头
- 1x PCA 9685 伺服控制
- 2x 光学编码轮和电路
- 1x 母跳线
- 1 个 USB 移动电源
- 1 个 DRV8833 双电机驱动器
- 2x 微型舵机 SG90 用于摄像机平移和倾斜(可选)
- 1x MPU9250 IMU(可选)
- 1x HC-SR04 超声波距离传感器(可选)
- 1x 穿孔板和焊锡线、接头,......
第 1 步:构建机箱
图>我不是一个好的机械设计师。此外,项目的目标是不要在底盘上花费太多时间。无论如何,我定义了以下要求:
- 便宜的材料
- 快速组装和拆卸
- 可扩展(例如用于添加传感器的空间)
- 轻质材料可为电子设备节省能源
一个简单又便宜的底盘可以用胶合板制成。使用线锯和手钻可以轻松加工。您可以粘合小的木制部件来制作传感器和电机的支架。
考虑更换有缺陷的元件或电气调试。主要部件采用螺钉固定,可更换。热胶枪可能很简单,但可能不是构建底盘的最佳方式……我需要很多时间来考虑一个简单的概念来轻松拆卸零件。 3D 打印是一个不错的选择,但可能非常昂贵或耗时。
自由轮最终非常轻且易于安装。替代品都很重或充满摩擦(我在找到最后一个之前尝试了其中的几个)。我只需要在安装主轮后切割一个木制垫片来调平尾部自由轮。
车轮属性(用于软件计算)
周长:21.5 厘米
脉冲:20 脉冲/转。
分辨率:1,075 厘米(最后 1 脉冲约为 1 厘米,便于软件计算)
第 2 步:电子和布线
图>该项目使用不同的模块,如图所示。
Raspberry Pi 零 是主控制器。它正在读取传感器并通过 PWM 信号控制电机。它通过wifi连接到远程PC。
DRV8833 是双电机 H 桥。它为电机提供足够的电流(Raspberry Pi 无法做到,因为输出只能提供一些 mA)。
光学编码器 每次光通过编码器轮时都会提供方形信号。我们将使用树莓派的硬件中断来获取每次信号切换时的信息。
pca9695 是伺服控制板。它通过 I2C 串行总线进行通信。该板提供PWM信号和电源电压,用于控制凸轮的平移和倾斜伺服。
MPU9265 是三轴加速度、三轴角转速、三轴磁通传感器。我们将主要使用它来获取罗盘航向。
不同的模块都通过跳线连接在一起。 面包板 充当调度员并提供电源电压(5V 和 3.3V)和接地。所有连接都在连接表中进行了描述(见附件)。将 5V 连接到 3.3V 输入可能会损坏您的芯片。在供应之前小心并检查所有接线两次(这里特别要考虑编码器)。在连接所有板之前,您应该用万用表测量调度板上的主电源电压。模块通过尼龙螺钉固定到机箱中。同样在这里,我很高兴将它们固定好,但在出现故障时也可以拆卸。
最后唯一的焊接是电机、面包板和接头。老实说,我喜欢跳线,但它们会导致连接松动。在某些情况下,某些软件监控可能会支持您分析连接。
来源:Rpibot – 关于学习机器人
制造工艺