如果在童年时没有自行车,而现在有宾利,
都是一样的,在您的童年时代您没有自行车。碰巧的是,在我的童年时代没有
卢诺霍德 。 然后一个婴儿出生了。 总的来说,我认为并决定为我们俩制造一个玩具。
我不想创建精确的副本,也不知道如何在家打印案例,所以我决定将自己限制在重新创建类似功能上。 另外,在我看来,从记忆中输入运动的“程序”并不理解输入的确切含义,因此我添加了一个显示器。
版本1

眼前是一个带有Ebay和Arduino Uno的廉价机箱。

为了控制电机,我带了PWM伺服护罩,并将L293D + PCF8574焊接在面包板上:

为了从键盘上进行阅读,我带了PCF8574和一些二极管:

键盘本身是印刷电路板:

为了使键盘不会掉落在我手中,我将覆盖层固定在顶部。 她不得不从“铣削”订购:)

为了显示该程序,使用常规的四字符显示器20。 是的,也通过PCF8574;)
最初,我使用4块电池供电,但用光速度很快,因此我用18650电池对替换了它们:

我使用TP4056模块进行充电,虽然不是很成功,但我通过继电器将其连接到电池。
最快的方法是编写固件。 不幸的是,事实证明I2C LCD库具有GPL许可证,并且代码被丢弃了。 大约在同一时间,我意识到Arduino Uno并不是最好的选择,并且少数PCF8574焊接起来非常不便。
我决定重新开始。
版本2

我考虑了以前的经验,这表明存在几个问题:
- 装有Ebay的底盘是由有机玻璃制成的,非常易碎(!)我拉了变速箱的安装螺钉,而支架刚刚坏了。
- 机箱上有许多安装孔,但没有一个合适的安装孔。
- 1:48齿轮与底盘一起,但是速度太快。
- 通常,机箱是不够的。
- Arduino Uno没有腿。
- 没有声音模块(fire命令需要它)。
- 互联网上有关于锂离子电池的恐怖故事;我不想给孩子一个潜在的危险装置。
结果,我买了:
另外:
啊! 警告! 注意! 这些链接仅用于说明和简化对详细信息的进一步搜索。 我不能保证卖方突然不会将其更改为其他批次,也不会更改价格,数量等。铁
我将键盘转移到电路板上(也许这是唯一难于重复的元素)。 键盘覆盖层已按照我的要求进行了铣削。
问题仍然存在:如何制造底盘? 没有合适的塑料,很难加工金属...如果要夹板呢? 我想:“但是这在美学上并不令人满意!” 但是半小时后,当我有了一个正常的机箱时,我改变了主意。 底盘不是很漂亮,可以放在篮子里,但是我非常喜欢处理速度,因此决定继续使用胶合板。
是的,只有在我制定了一个粗略的计划后,我才开始看第二张纸:

要安装电动机,我切了一块铝角并钻孔:

板固定在六角形机架上,并通过回路相互连接。

(在这里您可以看到5V稳压器和一些电源触点)。
电源线原来有点多,所以我用剥离板制成了电源板(
在此处进行详细说明)。 我怀疑您可以带一个普通的传感器屏蔽罩,它有很多电源引脚。

由于没有更多的I / O扩展器,因此必须重做键盘(
源 )。 我将二极管和上拉电阻转移给它:


作为速度传感器,我使用了开槽的光耦合器和齿轮(涂有永久性标记):

作为第三个轮子,我使用了一个球:

最初,底盘附带了一个轮子形式的支撑架。 但是,当运动方向改变时,车轮在最意想不到的时刻开始转动,并将手推车扔到一边。
接线图
最好查看consts.h和lcd.ino文件,它们包含最相关的信息。 现在的连接看起来像这样:
图片是可单击的。韧体
本质上,
固件是用Arduino IDE编写的普通程序。 有两种操作模式:编辑和执行。 在编辑过程中,从键盘接受命令+重复次数。 所有这些都打包成一个16位值,并添加到RAM中的数组中。 执行程序时,将从数组中删除值并执行。 执行步骤(以非常简化的形式)如下所示:
( ) ( >= ), = *
( ) ( >= ), = *
所行进的距离由光耦合器发出的脉冲数确定,可通过中断计时器来检查。
唯一的例外是播放声音。 如果遇到“ shot”命令,则将启动最简单的
for
循环,该循环将从wav文件中获取值(将其与程序存储在同一闪存中),并将其发送给R-2R DAC。 值结束时,它将返回到正常的程序执行过程。
不幸的是,现实世界与设计固件的软件模型略有不同,因此我添加了许多延迟,以考虑到机箱的惯性。
我特意放了MIT许可证。 据我了解,具有这种许可证的固件可以随意使用,而无需发布进一步的更改(我不想强迫任何人做任何事情)。
操作手册;)
键盘与“经典” Lunokhod略有不同:

- 左侧是一组命令(绿色-位置,红色-暂停,底部-熄灭,开火,重复)。
- 中间是带有重复次数的数字。
- 右侧有8个控制键(黑色-删除最后一个命令,红色-删除所有内容,绿色-开始,黄色-启动最后一个命令,蓝色-测试,灰色-备用)。
再次带有标志:
在图片中 | 笔译 | 意义 |
正向 | 前进 | |
体重 | 往回开车 | |
向左 | 向左转 | |
对啊 | 向右转 | |
暂停 | 冻结 | |
出 | 未实施,留给未来 | 像在卢诺霍德一样 |
着火 | 着火 | 发出“ pi”的声音。 |
循环 | 循环次数 | 重复几次先前的命令 |
0-9 | 步数 | 最多20 |
Bsp | 删除最后一条命令 | |
德尔 | 删除整个程序 | 需要确认! |
T1,T2 | 测验 | 运行测试程序 |
检查一下 | 迈出最后一步 | |
快走 | 完成所有步骤 | |
交替按下“ Team”和“ Number”进入程序。 然后,我们按下绿色的“启动”,然后查看结果。 删除是通过按红色按钮进行的,但不是立即进行的:您需要通过按绿色的“开始”按钮来确认您的决定。 关闭电源后,程序将被删除。
重复命令包含一个参数:需要重复多少步。 例如:Fwd1,Pause1,Bwd1,Loop3; 结果,将执行两次Fwd1,Pause1,Bwd1命令。 第一次是因为它们在程序中,第二次是-因为在Cycle命令中如此指出。
以防万一,监视电池电量。 如果太小,则会显示警告,并且玩具不会骑行。
图形用户界面
牢记整个程序很困难,因此我搞砸了一个简单的指示器,该指示器重复了输入信息。
启动后,将显示提示:

输入命令时,命令图标和重复次数显示在左上角:

如果输入了多个命令,则下面的列表将是(实际上是程序),并且您输入的命令仍将显示在顶部:

为什么会这样发生
玩具是根据手头或容易获得的东西制成的。 我也想谈谈Arduino。 选择它的原因有几个:
- 她有适当数量的结论,它们需要很多结论(43):
- 6用于控制电机;
- 键盘为8 + 4;
- LCD用11;
- 3个用于DAC;
- 8个用于超声波传感器;
- 2个用于速度传感器;
- 1测量电池电压。
- 我熟悉这个平台。
- 一键缝合。
- 微控制器不需要任何巨大的速度或存储量。
- 而且也不需要特殊的效率,因为 电机消耗了90%的电流。
有什么可以改善的
底盘 突然起步,车轮“被抛光”,玩具误入歧途。 您可以尝试制作六轮底盘,甚至可以制作履带式底盘(Aliexpress上有,但我还没有尝试过)。
图形用户界面 现在,指示器仅显示最少量的信息,这是以最简单的方式完成的。
代号 我绝对不会买普利策的。
声音 。 有便宜又很小的mp3播放器。 您可以放心地扔R-2R DAC,并用现成的播放器代替它。
备份按钮 。 您可以将完成的程序记录在EEPROM中,这样在关闭电源时它不会丢失。 该实现可以像在广播中一样:长按可以保存程序,短按可以运行。
出按钮 。 目前尚未实现。 您可以将诸如继电器/伺服器之类的螺钉固定在Arduino引脚之一上。
致谢
- 这个时候一直激励着我的孩子。
- 我的妻子在我玩得足够的时候耐心等待,并帮助Corel Draw!
- Sergey Dudnikov,他画了一个键盘覆盖物。
- 安德烈·希什科夫(Andrei Shishkov),他磨得很细。
- 安东,凭借“哇!”的声音使我成为了出色的mp3。
- hudbrog ,用于实现PID控制器的想法!
- Chatik做自己动手的人,在精神上支持我并被迫研究这项工作的中间结果;)
错误重复
我喜欢和成龙一起看电影,因为最后有一些失败的拍摄。 我也不能没有他们。 最让我惊讶的是,带有两个凹槽的圆形钻头上有一个三角形的孔;)