硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年( 三 )


本文插图
你应当计算出“最坏的情况下“的电流大小 , 然后给出一个合理的安全范围 , 挑出一个对应的电源 。Step5:建立I/O接口电路
开关输入部分:
硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年
本文插图
开关输入板负责将所有的值从游戏场地中读入到Arduino 。 这个单独的电路非常简单 , 但需要对很多输入进行放大处理 。
因为Arduino有一个内部的上拉电阻 , 所以你可以如上图那样接线 。
这里最大的问题是要确保每个开关都有连接器 , 以防有一个开关因为某种原因单独取出调试 。
这个项目中使用了标准针脚连接 , 可以很容易地将所有的东西同时插入到Arduino中 。
灯光控制部分:
电路由一个BJT晶体管(2n222222)、几个电阻和LED组成 。
硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年
本文插图
晶体管作为一个数字“开关” , 可以打开或关闭 , 把它这个连接到前面提到的6.3v电源上 , 就得到了一个光源和单独可寻址的LED 。不能直接将LED直接连接到Arduino上的原因是 , Arduino无法提供多个LED要求的额定电流 。
硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年
本文插图
正确的办法是把Arduino作为一个数字开关 , 控制BJT 。 这样就可以将LED的数量扩大到我们需要的数量 。电磁控制部分:
总体思路与LED板相同:从Arduino发送一个信号 , 能够打开/关闭任何一个电磁铁(翻板、弹弓、弹出式保险杠) 。 因为这些元件比LED功率更大 , 所以需要一些更大的晶体管:MOSFET 。
电路元件清单:
1k电阻10k电阻330电阻IRF44VMOSFET1N4004二极管47微法电容
硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年
本文插图
硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年
本文插图
电磁铁需要连接到48V的电压才会启动 。因为电感不能瞬间改变电流 , 这就带来了一个问题 。 工作时 , 线圈会通过很高电流 , 而关闭时 , 如果没有一个地方分散电流 , 可能会破坏元件 , 非常危险 。
这里使RC缓冲器电路和二极管来解决这个问题 。 要使它们覆盖尽量多的电磁控制并联支路 。
击打器和其他线圈的电路略有不同 。 这是因为 , 在弹球游戏中 , 玩家有时会按住按钮 , 以保持击打器长时间启动 。 如果要用同样的功率线圈 , 很快就会烧毁 。
在此电路中的第二个线圈可以实现快速第一次翻转 。 一旦翻转完成 , 一个机械机构会打开EOS开关 , 迫使电流通过两个线圈 。
Step6:组装所有元件
根据你游戏场地的大小 , 焊接时间或长或短 。 这个项目花了大约两天的时间焊接 , 并把所有器件安装到位 。
最终有5种连接器插到板子上:
高功率的螺线管电源与电磁铁专用开关的连接与LED的连接与开关的连接一些辅助电源(5V、48V等) 。
所有这些都插到了一个3D打印的连接板上 , 里面封装了所有电路设备 。 当需要开盖检测故障的时候 , 只需要拔掉5个大的连接器 , 然后把整个装置举起来 。
Step7:安装Arduino软件驱动
在这台机器上 , 需要在与Arduino相连的计算机上安装以下依赖项:
ROSrosserial_arduinoROSpackageOpenCV(c++)TkinterApscheduler
整个软件系统依靠ROS架构作为后端来回传递消息 。
四个主要节点在弹珠机运行在自主模式下时 , 进行异步通信 , 以控制弹珠机的流程 。
硬核|微软放弃的游戏被复活三维弹球现实版,用Arduino硬核致敬童年


推荐阅读