先看录像:【EV3 坦克通过游戏手柄遥控】

游戏手柄用的是八位堂的一个便携蓝牙手柄,目前实现的是左摇杆完成主控,右摇杆专职转向,B键停车,后退遵循日常倒车手感,用乐高内置的转动传感器做简单的pid闭环控制。

我接触EV3的起因是因为在2008年前后,Follow一个“动力老男孩”的博客,他当时在连载他用乐高积木搭建“魔方机器人”,用的是NXT Mindstorm,我当时并没有决心花钱去买这个套装。我在今天重新打开他博客的链接,发现已经失效,不过有好人把他的文章搬运到这里:https://mc.dfrobot.com.cn/thread-275001-1-1.html, 有兴趣的可以去看看。

由于囊中羞涩,一直到2018年才下定决心买Mindstorm套装,试试这套东西的能力。那个时候NXT已经过时,EV3是乐高当时最新的套件。买了之后,一直都是按照乐高官方的指南搭建各个项目,相对是比较简单的,为了开心的搭建大象,还买了它的扩展包。

这次改造的tank,也是基于乐高的官方搭建指南完成的搭建:building-instructions

它的官方程序太简单,要按砖上的按钮去控制转向,我一直希望能通过游戏摇杆去遥控它,研究中找到了EV3Dev扩展:ev3dev Home。 它大大解放了EV3的编程能力,而且它也提供了参考项目:PS4Explor3r , 证明用蓝牙手柄遥控EV3是可行的。

最近因为没工作,有时间验证下自己想法,在Grok Build的协助下,终于完成了。代码在github:https://github.com/dead-lee/controler4ev3

一些官方文档提到的问题就不多说了,说几个需要注意的地方:

  • 在Mac上完成的开发,乐高连接砖要靠USB A/Micro USB线缆,因为EV3砖要把自己包装成CDC网卡,然后宿主机能SSH登录EV3砖,我用绿联的USB C转接Hub,会导致EV3砖不能识别,要用苹果的简单转接线才能识别。 太复杂的转接Hub反而不能支持。
  • 用Grok Build的时候,可以在开始就把:EV3 Documentation 链接给它,让它基于官方文档帮你排查可能遇到的问题,避免定位问题太发散。