使用树莓派制作手机遥控小车

2021-04-15

先看小车上路效果:

上路效果

  其实买树莓派的契机,就是想自己动手做个遥控车,小时候没有条件去做,现在圆一下当初的梦想。男人的快乐,如此简单。   废话不多说,直接进入正题。

准备

  • 一颗爱手工的心
  • 已经配置好的树莓派一只,之前我写过入门树莓派的文章
  • 工具材料以及大概价格:
    • 热融胶枪 + 热融胶,¥30
    • 雪糕棍 (宽 18mm),¥10
    • 四种杜邦线 (长 30cm),¥5
    • 四只 tt 马达,带橡胶轮胎,¥12
    • MG995 舵机,¥12
    • 一次性筷子,¥0
    • 5V2A 充电宝,用于给树莓派单独供电,¥自备
    • 12V 可充电电池,¥自行购买
    • 双路 L298N 电路板,¥5
    • 4 个小轴承,按照一次性筷子的尺寸买,内径要比筷子尖大,比筷子体小,¥4
    • 小刀,螺丝刀,电脑,手机等物品

开始制作

动手部分sticker

  1. 取四个雪糕棍,在两端钻孔,共 8 个孔,孔的直径应该稍大于轴承的内径,注意小心打孔,雪糕棍很脆弱。 打孔
  2. 把四个轴承夹在打好孔的雪糕棍中间,孔位对齐。用热融胶固定雪糕棍。 固定
  3. 取两根筷子,均从筷子尖切适当距离,再把切断处打磨至筷子尖相近直径 (中间粗两头细的效果),用热融胶粘到 tt 马达中间位置 (转轴挡住了,可以歪一点没关系),注意要绕着马达粘一圈,不要节约,热融胶粘塑料不够紧。效果如下: 前桥受力轴
  4. 用热融胶固定两组雪糕棍,注意雪糕棍不要与马达有摩擦。 固定
  5. 取两根筷子,从尖部切断适当距离,同样的方法粘到 tt 马达的远端。取一根雪糕棍,以同样的距离在两端打孔。这部分做转向结构。
  6. 找准合适位置,把舵机固定在前桥上,使舵机臂位于中间位置,按图示方法连接转向结构: 转向结构
  7. 四只 tt 马达分两组,并联在 L298N 的两组输出上。由于 L298N 自带一个 5V 输出,而 5V 也在 MG995 需求电压范围内,我们可以直接把舵机的输入接在 L298N 的 5V 输出上。
  8. 自由发挥,把小车的其他部分装好。以下是我做的: 完工

代码部分sticker

  1. 连接杜邦线 (以下均为树莓派板子排针的物理序号):
    • L298N 的 IN1-IN4 分别接在 11, 12, 13, 15
    • 拔掉 L298N 的两个使能,并分别接在 16, 18
    • 舵机的信号线接在 22
  2. 树莓派端的代码,我用 python 写的,通过蓝牙控制,代码仓库:car_controller_server
  3. 手机端的代码,我用 flutter 写的,代码仓库:car_controller

  具体逻辑挺简单,就是蓝牙连接,然后发消息控制树莓派输出信号到 GPIO。通过这个项目,又学了新技能 Fluttersticker

简单说说

  最初在想各种方案,一开始打算用速度差实现转弯,左边两个轮子不转,右边两个转,就实现了左转,事实证明此方法行不通,力学分析不到位sticker,充电宝那点电流带不动马达。   过了段时间,狠了狠心,买了块 12V,3000mah 的锂电池,马达转得贼猛。但是花¥7.5 买的全金属 MG90 舵机却拉跨了,一直抽搐,原因可能是没用轴承摩擦太大,遂又搁置一段时间。   最终,花¥12.5 大价钱买了 MG995,还有 18mm 的雪糕棍 (到手发现全部是 17mm 的,淦他娘的淘宝无良商家sticker)。诞生了这个雪糕战车。   万事还是得走出第一步,动手做了才知道效果,头脑想的都不算!

评论