3038| 2
|
[参赛项目] 创客造|织咒者小车 |
【创客造】织咒者小车planto.wang 2021.1.27 website: http://planto.wang/ “创新并非凭空产生,要么来源于对一个问题的追问,要么来源于学习和思考前人工作的继承、总结和发挥。”
做这个小车最早开始于2015年海峡比赛后,我想做一个PCB为支架的一体化小车。这样设计的优点是成本低、结构简单,如果配合中心节点的摄像头和计算模块,容易实现分布式的群控小车,而且即使完成群控,依然具有造价上的优势。PCB为支架的小车,之前国外曾有人做过一款,但是然后就没有然后了。等我发现那个项目的时候,仅找到一张实物照片,所有资料全部遗失,并且当时有类似想法的绝大多数创客都转去做PCB的小四轴了,只有我还敝帚自珍吭哧吭哧希望发扬光大。 主控板当然首选Arduino,因为它编程简洁,类库丰富。我调查了一下当时淘宝上可以买到的电机驱动模块,配合arduino使用的,我选择了TB6612模块。之所以选择它,是因为在所有开源候选者中,它的体积第二小(仅次于DRV8833),但是元件最少,而且适压范围也较宽(<11V,可以用1s-2s电池(也有资料说最大可以15v输入,那么3s供电也可以咯),以后放大电机的选择余地比较大。1s(3.6v 4.2v),2s(7.2v 8.4v),3s(10.8v 12.6v))。买了两块过来搭建测试电路,还是出了意外,有一家淘宝店的模块少画了一根连接地线,导致工作异常。这促使我找来这个模块的原理图直接做在了小车的底盘上。 ![]() 图1 TB6612引脚示意图,注意输入电压 (我曾经做过一份6612、8833等驱动板对比的思维导图,但是因为自建Github服务器这五年间更换过两次,之前的备份还没还原,需要点时间才能找出来) TB6612采用的是差速转向的方式,这是小车模型最常见的控制原理之一。另一种就是电机驱动+舵机(或蜗杆)转向。在2015年的时候我还没有发现体积小的第二种控制方式的配件,所以一直采用的是差速转向的方式设计小车。幸运的是今年我已经找齐了这方面的材料,正在着手设计第二控制原理的新款小车(一不小心给自己开了新坑。。吐血+1)。
然后是选型电机。对于我要限制尺寸的小车,用130这样的电机,我觉得体积有点大(其实主要嫌它太大众脸了),然后我找到了N20电机。这个尺寸的电机2015年的时候还是很贵的,大概是10元一只。但是感谢共享单车在我瞌睡的时候送来了枕头,2016年以后有很多单车坟场拆下来的二手n20电机很便宜了,大概4元一只,为我改版小车提供了源源不断的材料。(作为没有赞助商加持的本穷,精打细算是第一位的,毕竟项目因为资金烂尾的话,于人为可讥,而在己为有悔)现在二手的n20电机最便宜到过1元一只(还带减速齿轮箱)。更好的一点是它这个电机有高级版本的6线控制速度的,为以后开发升级SLAM类似功能的小车节省了重新选型和布线的时间。但是选择n20电机的坑也不少,最主要的是两个。一是它的轴很小,不像130那样可以直接配到合适的轴套。它必须要接一个齿轮箱。而且它的齿轮箱上的出轴是D字的,这一点导致我在淘宝上没有找到合适的轮子,不是太大,就是没有D字槽。后来在一个透明猫球的项目【1】里找到一种3D打印的轮子,用次品级的密封圈做轮胎,摩擦力刚刚好(那个项目我重复过,但是发现轮子和内球面的摩擦力不稳定,有时打滑。类似的项目还有后来市场上出的玩具,星球大战里的BB机器人以及猫球,我各买来一个拆过看了一下,里面主要依靠电池仓的形成重心,所以转向稳定;或者偏心轮产生随机的转向)。我修改了项目的SolidWork文件,得到了更宽的轮毂,可以套上多个密封圈,获得更大的摩擦力。另一个坑是N20电机的转速问题。电机的转速高,摩擦力就小,载荷也会小。合适的转速不能太高而打滑,也不能太低导致速度体验差。好在N20电机的转速差异主要产生于它的通电电压和减速齿轮箱的减速比,多买几套就试出来了最合适的组合。 ![]() 图2 从左至右依次为:130电机,n20电机和带霍尔测速的n20电机 ![]() 图3 原版透明猫球的轮子(左)和修改文件后制成的多层密封圈轮(右)
我完成了开始的三版图纸样机的时候,当时设计的是在jlc的特价板尺寸范围内可以做两个小车,并且每个小车又可以由用户切割成两个独立的两轮平衡小车,原始设计时还特意设计了两个小车通过Tx\Rx通讯。但是也仅做到这个程度了,感觉个性不够明显。就在我2019年2月份准备去西安工作的时候,史博拿他们做的小车来找我。史博和佳杰他们做了一个小车控制板,可以安置(需要部分元件进行替换)在传统的四驱竞速赛车玩具上。但是因为他们的一位合作伙伴,也就是电路工程师忙于其他项目了,当时他们的这个小车项目搁置了,看我能不能接手继续做。他们的车体比我当时的大一点,而且是舵机和主电机的控制方式,我建议他采用差速方式和PCB支架去改造,因为他们对成本也有要求,大致要求成本在20元,不然价格太高的话,玩具厂家完全可以选择其他低成本的控制芯片去做,玩具厂家对可重复编程是没有要求的,仅教育领域会要求可重新编程。他走以后我在西安的那段时间就一直在按照我给他的建议方向在思考改进的可能性。史博他们还是更倾向于用一个体积小的板去做集成控制板,而我更倾向沿用我之前的思路,PCB和车底盘一体。在五一前后帮史博做了两版测试板后,我就着手按自己的思路继续改进了。我在寻找四驱车外壳模型的时候想到,可以从3D模型【2】提取底盘的外形轮廓并加以修改,这样可以直接使用现成的四驱车外壳和定位轮子安装孔,以此轮廓制PCB板的话,就可以大大节省成本和简化车模的结构。这个思路和特斯拉采用冲压铝材生产车模可以减少工序和节省20%的成本是异曲同工的。【3】 ![]() 图4 早期的双轮小车x2实物照片和现在四驱小车底板PCB渲染图,可以清晰看到前轮连接孔 (因为JLC打板的特价是限制10x10厘米尺寸的,所以采用对角线构图,可以获得最大的车身尺寸)
有了车模的外壳,整个小车看起来洋气了不少,更接近于一个产品了,并且这个产品可预料在规模生产时的成本可以和传统中国玩具企业一拼,即使将来投产,如果打价格战也是不惧的,而且我还有可编程的优势在。嗯,没错,很凑巧的是DJI的遥控可编程装甲车正好这时上市了。不过万幸的是他们的定价特别高,完全走高端路线。而且他们采用的是麦轮,可以灵活转向。这种轮子有好的方面就有不利的方面,DJI的车我个人感觉最大的亮点在于其炮台的后坐力运动带来的视觉感官,无疑,DJI的小车亮相是大家学习的榜样。此时一直以来还有个小问题一直困扰我,那就是对于这个尺寸的小车模,淘宝上没有合适的轮子。之前用过最常见的金属圆球的前轮,但是感觉稍大了些,而且成本也不便宜。现在既然做成了四驱车的模样,那前轮最好也是四驱车的双轮。但是要在PCB上做支撑,在找不到现成的容易获取的成品的情况下,就必须自己设计前轮支撑。为此我设计制板了两次(必须感谢JLC的每月两次5元特价板的机会,才让我有底气去尝试迭代设计方案),终于用临时设计的简易结构完成了。同时我在西安做的算法程序对地下水测井数据进行修复,尤其是对缺失长达3个月以上的时序数据补齐也圆满完成,被公司投入使用了,时间来到了2020年初,我离开西安。
在经过曲折的隔离后,我于3月份拼长途私家车回到了上海,并把做好的小车成品样机拍照分享到蘑菇云空间。虽然引起了个别也刚开始做PCB小车的小伙伴的惊讶,但是大家也都没有找到销售方向的样子。这个小车的外观大家都没什么意见,就是功能方面希望再更高端一点。可编程意味着更加开放,正如我设计的,除了arduino已经占用的,剩余的IO口我已全部开放出来,同时开放的还有I2C和蓝牙口,我能想到的除了自动驾驶需要进一步开发迭代外,其他常见的红外、蓝牙、nRF遥控功能都是可以依托这个低成本的一体化小车板简单开发实现的。但是考虑到购买者可能没时间,再加上我也没想出还能怎么改的情况下,我决定把这些功能都用arduino实现一遍吧。但是没想到这个决定,让我有了新的迭代思路。我在查找相关资料时,发现了一个几年前的RC遥控器项目【4】,这个项目和我的风格很相似,都是试图用一块PCB去解决某个领域的一大类需求。研究过一段时间后,我决定我要去主动兼容他的遥控器。所以我又改版了。这下子我可以提供遥控器和小车一整套(之前我认为为了节约成本和降低定价,完全可以采用蓝牙方案出售,这样可以不用提供手机遥控)漂亮的方案了。不仅如此,我还将作者的遥控器改成了游戏机遥控器,可以适应各种电脑游戏。 ![]() 图5 RC遥控和受控四驱小车
正如你们看到的,我在这次改造时还同时做了一个arduino 328p在PCB板上的方案,我称为328p一体板方案,与之对应的之前的是arduino插接方案。这两种方案,我想差别不是太大的。主要就三方面的差别吧。其一是一体板我设计了第二块arduino可以插接的位置,这样主体PCB相当于一块arduino板,去执行小车底板的驱动轮、车灯等工作略有IO口富余,可以插接其上第二块arduino去完成使用者设计的其他功能,例如当小车上需要安置机械爪等时,可以和底层的电机执行功能不冲突。其二是高度,328p一体板的高度更低,因为四驱车加了壳,对于pcb的局部高度是有一点要求的,所以之前我才把排针反向焊接,这样可以让矮的一面插在矮塑高的母座上。这一点技巧还是大圣老师一年前告诉我的,我才注意到那种2.54的排针是两头都可以用也都有用处的,但是万万不能从中间截短了用,因为能插进排母的脚必须保留U形。其三是成本,虽然差别不是太大,但还是有些差别的。如果能够自己做SMT贴片,那么生产328p一体板价格应该更有优势的。如果要工厂代工,考虑到arduino的普及性和主控板集中成本低,可以考虑生产arduino插接板。当然,如果像我一样采用手焊,也会很直接地影响两种板的选择。我以为自己是个懒人,并以懒人改变世界自我安慰,像328p一体板这样的小车,肯定是要自己烧录初始化bootloader的。这样的事情整多了,对于连接杜邦线这种事情心里是莫名地恐慌和排斥的,总想战术性偷个懒,好在老天爷同意并给递了个枕头。下图是我借鉴usbisp的开源图【5】自己补充和修改的两版arduino烧录工具,对于328p初始化或者假死状态下起死回生,有着独特的疗效。它还可以给ATtiny系列的芯片烧录程序,就不用提给Arduino promini烧写程序这种小事了,以上所有种类的开发板和芯片的烧录和复活都可以在一插一拔之间轻松完成(打赏+1,此处应有掌声)。 ![]() 图6 328p一体PCB小车底板(左)和Arduino插接小车底板 ![]() 图7 ATtiny&328p&Arduino烧录座和使用时的照片
至此,整个以arduino为主控的小车模型可以说已经把能想到的都做完了,除了自动驾驶(需要依赖其他如树莓派或者K210完成)和4G远程甚至(4G图传或察打一体,这是计划的一部分,已开新坑)还没完成,其他应用都可以交给用户去发挥想象力了,请洒潘江,各倾陆海吧。至于我呢,想象力有限,我就准备拿去做个军模,改个坦克底盘什么的。既然做军模,武器系统的模拟是必须的部分,也是亮点。比如之前DJI的小车,特色就是水弹模拟的炮塔的后坐力运动方式。很可惜,水弹机构已经因为有人玩冰冻水弹杀伤力大而被禁了。还有什么不容易被禁呢?嗯,想来只有打火机了。遥控点个炮仗一直是多少男孩子的梦想,打火机又是常见日用品,一时半会儿是不大可能被禁的,哪有只许州官放火不许百姓点灯的道理。想想它又是最便宜的一种材料,特别符合我的胃口,那就开工吧。查资料和淘宝上几种遥控电子点火的原理,简单总结起来就如下几种方案: ![]() 图8 点火方案 1)特高电压产生的电弧点燃;2)大电流产生的高热点燃【6】;3)遥控曲杆按压点火开关 4)燃料喷射+点火【7】 比较下来,特高压发生装置,那个高压模块体积虽然才火柴盒大小,但是相较于我的小车还是嫌大了点,而且都是线圈,重量也比较大,如果我以后改在遥控飞机上可能就起飞不了了(我一直想养只火龙。。。感觉又给自己开了个新坑)。曲杆机构虽然可以直接用现成的打火机,但是预计整个机构的体积也不小了。所以最后我看中了大电流高热点火方式。如果从二手电子烟拆出它的点火片,只要5V的电压,通过mos管放大电流就可以驱动它发热烧红,材料非常理想,而且又是老头赏的枕头,电子烟前两年因为禁售而被厂家大量抛售,我50元可以买到30根好的库存电子烟,没有被使用过的。果断买了改造。需要注意的是电子烟加热片的发热时间不能太长,通常厂家默认是5秒钟,不然容易把PCB板和其上的器件损坏。其实市场上现在销售的军模拉烟遥控和咬线火机也基本是这种或者高压包电弧方式的。唯独遥控器的芯片和我现在使用arduino不一样。 总结 模型小车应该已经有无数的创客已经做过或者正在做吧,不管用stm32还是其他什么主控,如果能为后来的法师们提供完整的指导,那么我所做的这个小车已经有一点意义了。我不过是把我所发现的问题,用自己或者别人方案里的闪光想法解决了困难,逢山开道,遇水架桥。如果一定要给我贴个创客的标签,那我选个灰袍的。 如开篇所述,所有的创新都来自对生活的提问。一个好的问题的提出,意味着一个新的可能性被发现。至于解决问题,办法总比困难多,请相信他山之石,可以攻玉。创客的眼睛里不止有问题,还有物质世界的基本原理,有其他项目的闪光点,这些大概就是巫师手中代表万物联系的咒语线吧。违背物质世界基本原理的东西,比如永动机,即使最强大的巫师也造不出来。运用手中万物的客观规律,用主动的创造性去联系它、打结它,就有希望将物质世界的可能性变成现实性,这是一种时间换空间的范式,一种程式化的必然性,这大概就是创客们对现实世界编织了一个咒语,而这个新生的现实性又会为世界开辟新的可能性的联结。至于为什么有的巫师只能看到火、土、风、水中一种类型的魔法线,而有的巫师可以看到多种,我想大概不是因为这样的巫师更加谦逊,而是因为他更容易在生活中发现他人的优点吧。 ![]() 图9 《魔法觉醒/发现女巫》第二季片段(下面是前往B站传送门) 参考资料 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed