圆梦小车第四代 —— FIRA小车平台
0赞
[提要] 圆梦小车第四代问世了!本文详述了小车底盘部分的构成以及参数,供有意者参考。
圆梦小车第二代的结构设计是参考国外流行的MiniSumo比赛规则所做的,可国内似乎对此并不感兴趣,而且MiniSumo比较关注小车的机械性能,因为是以角力为主,圆梦小车在这方面是弱势,只有将规则从“相扑”变为“击剑”才有机会。
国内学生多数只是用小车走走轨迹,没有产生有趣、持久的活动项目。
由于二代小车个头太小,无法在上面做太多扩展,导致小车装好后的拓展应用受到限制。作为设计者,深感遗憾。
为了让购买圆梦小车的客户能物尽其用,物有所值,最近连续对圆梦小车的结构作了较大改进,应该说是脱胎换骨了。
首先,为了迎合有扩展需求的客户,设计了第三代圆梦小车 ——“轮式驱动单元”(详见“轮式驱动单元”介绍),使小车用户可以方便的按自己需求设计小车结构,用任何一个MCU或开发板、学习板都可以驱动小车。
开始设计时,期望购买圆梦小车的学生能顺带锻炼电子技术上的动手能力,但从售后的效果看,似乎有些要求过高,所以这次改进将电子技术和单片机应用学习分开,而不是将两者强制捆绑,强加给学生。
本次改进将电机驱动、码盘采样、电机电流检测等电子部分独立,并以成品方式提供,而控制用 MCU 的选择则交给用户。
这样学习者可以快速接近目标,而不至于被外围电路故障所羁绊(在二代小车中,有太多的学生倒在了H桥前,这也是促使我下决心提供外围电路成品的原因),毕竟我提供的是单片机学习平台。
但“轮式驱动单元”所能构建的小车与二代小车完全不是一回事,为了能让喜欢二代小车的学生不至于失望,接着设计了第四代圆梦小车。
四代小车延续了二代小车“小”的特征,但为了能实现有趣、持久的活动项目,本次设计选择机器人足球的一个分支—— FIRA 规则作为依据,推出了一个只有 7.5cm 见方的FIRA小车。
让“机器人足球”走下圣殿,成为寓教于乐的大众娱乐项目一直是我的梦想!
下面将介绍“圆梦小车第四代 —— FIRA小车”的构成、性能以及使用方法,为用户选择提供必要的信息。
一、构成
机器人足球 FIRA 规则规定,小车的外形尺寸为:7.5 x 7.5 x 7.5 cm。
在这么小的体积内实现小车的功能,用手工方式很难实现,即使借助于机械加工也有一定难度,这就是为何机器人足球比赛难以普及的原因之一。
为了能做出价廉物美的FIRA小车,还是采用了开模具的方式,虽然一次投入较多,但最终产品的效果和批量后的成本能得到保证。
本次设计的FIRA小车借鉴了我所看过的标准比赛用小车的许多优点,并弥补了一些不足,考虑作为学习平台而非竞赛平台的差别,为用户提供了一个价廉物美的FIRA小车。
小车塑料件采用玻璃纤维增强尼龙(电动工具用材料),大大提高的小车的机械强度和耐用性。
小车如下图所示(之所以设计为黑色,是因为FIRA靠小车顶部的色标来定位的,场地为黑色。为增加图像识别可靠性,小车也做成黑色可减少图像信息的干扰,使图像识别更加简单可靠,毕竟是FIRA小车,最终要在FIRA场地上驰骋):

底部:

其主要构成如下:
基架:作为小车的主结构,实现电机固定、电池盒放置、线路板安装等基础功能。

减速电机:提供小车动力,选用标准设计的减速箱和130电机,以保证良好的性价比。

车轮:为了提供足够的速度,设计了小车结构中允许的最大直径车轮,外径65mm(按目前所选用的减速电机,最快速度约 65cm/s),同时设计了采样码盘,便于实现速度反馈和行走距离检测。车轮采用橡胶轮胎,并刻有防滑槽,以降低打滑的可能。
轮胎宽度7.5mm,设计成平面以增加摩擦力。

驱动检测电路:实现电机驱动、码盘采样、电机电流检测功能,两侧独立设计,方便检修。电路原理和圆梦小车二代完全一样,只是几何形状变化,所以原来的程序可以借鉴。

侧盖:用于固定驱动电路,使上、下基架结合更牢固,增加车轮稳定性(提供轮轴两点支撑,并设计有滚珠槽),同时为车轮转动顺畅提供保护,因为机器人足球比赛中,小车碰撞是必然,靠在一起时,容易对车轮转动产生阻碍。
电池盒:选用4节7# 充电电池作为动力源,提供电池盒而非电池组是为了客户使用、维护方便。
电池盒盖:用于固定电池盒,同时提供小车的4个支点,以维持小车平衡。

从上述组成看,只能算是一个小车底盘,因为缺少控制部分,为何这样设计?
这是学习单片机应用的平台,而单片机的种类众多,除了流行的8位机:51、AVR、PIC系列,还有日渐被接受的16位机 MSP430系列,以及最近升势很猛的 ARM Cortex-M系列,这些单片机各有优势,无法说谁好谁坏,完全取决于学习者的需求和喜好,此外还有越来越接近MCU的DSP,所以我将这个权力交还给用户。
而且我认为:所谓单片机应用学习,最核心的就是能自己消化一个MCU,根据控制需求自己分配MCU的资源,编写相应的程序,使之能按自己的想法工作。这才是掌握单片机应用的关键!
在学习的初级阶段,使用设计好的控制器,只能按照设计者的思路去做,大大降低了研读MCU手册的要求,削弱了设计成分,变成了消化别人思维的过程。只有到后期上升到软件为主的学习时,才可以忽略硬件,就像我们在PC上编程,几乎不去考虑PC机内部。到ARM9这个硬件级别就不用太关心硬件了。
即便是同一款MCU,也可以有不同的资源分配方式,从而带来不同的编程方式和学习体验。为此,我还设计了一个类似试验板的PCB,以方便用户自己快速构建自己的控制器:
板上只连接了几根必须的电源线,其余部分就是常见的万能试验板。基于此PCB可以方便的用直插封装的MCU实现一个控制器,插到小车上即可。你可以随意分配资源,并且可以随时调整,以期达到最佳效果,或者体验MCU所提供的硬件特性。
本来用户可直接选用市场上的万能试验板,无奈那些板的质量太差,多数是单面覆铜,且焊盘未上锡,少数一些双面的PCB价格又不合理。所以决定自己做一块,为用户提供方便。

做好的万能PCB如下:(1.6mm双面板,金属化孔,间距100mil,焊盘43/70mil)

焊接好电源部分如下:

电源部分提供了 5V和3.3V两种,作为控制电路的供电,而电机供电则由电池直接提供,不经过稳压处理,以保证足够电流,并减小对控制部分的干扰。
电源电路是配合小车专用的供电电路设计的,供电电路提供了电子开关、充电管理、升压型稳压电路,以保证控制部分的可靠运行。关于小车供电部分的详细说明可到Google Code的项目托管中下载:http://code.google.com/p/fira-mirosot-robot/ ,在Download中。
以下是使用STC12Le5410AD单片机所做的示例,原来圆梦小车二代的程序可以直接使用:

二、结构详述
作为小车的结构设计,主要解决以下几个方面问题:
2.1 动力选择
和第三代一样,选用成熟的减速机构和标准的130直流电机(见上面图示)。
在第一代中,由于不熟悉这个领域,采用了一级皮带减速,明显效果不好。后自己设计了减速箱,推出第二代,虽大有改善,但由于非专业设计,齿轮箱性能不是太好,且没有去除备受诟病的皮带传动。这次设计,彻底消除了上述问题。
有人会问:为何不选用性能更好的金属减速箱电机?
因为圆梦小车的设计初衷是为学习单片机提供控制对象和学习素材,价廉物美是首要因素,不希望因为过分追求性能而给学生凭添不必要的负担。
综合权衡之后,选择了这个方案。选用130电机,还是给有意改进其性能的用户提供了可能。因为玩具四驱车的缘故,130电机有相当多的规格,且有自己改造的材料供应。
2.2 驱动方式
FIRA小车一般设计为差分驱动,前后对称的形式,即不分前后,以增加对抗时的灵活性,因为不用“转身”了。
这样就要求车轮中置,如下图:

这种驱动方式,需要前后 2 个支点,这样就形成了 4 点共面问题,如场地稍有不平,就会导致一个驱动轮悬空,小车打转。
2003年曾看过全国大学生机器人赛。那时就发现FIRA比赛中小车出现上述现象。
此外,还有一个问题是:由于前后只有一个支点,小车急转弯时会向前外角倾斜,导致不期望的运动轨迹,乃至侧翻。
基于这些问题,本次设计尝试用4个支点来保证小车的平稳(见上面小车的底部视图)。
你一定会问:这样不是 6 点共面了,比 4 点共面更容易架空驱动轮?
是的。为了避免这个问题,我利用尼龙的韧性将支点设计成弹性结构(见上面电池盒盖图),从而使小车可以避免架空驱动的现象,不过这只能对付FIRA规则规定的1-2mm场地不平整。
其弹性的强弱可以通过在弹性臂下部垫弹性体(如海绵、橡胶)来改变,以适应不同的场地,增加小车的平稳性。
不过,有个缺憾,原设计是打算用半圆头铆钉作为支点的,但由于购买数量太少而无法买到,只好用半圆头螺丝替代 :-( 。
2.3 车轮安装
和第三代设计一样,由于减速箱的输出轴是塑料的,强度有限,且有一定晃动间隙,不利于车轮上的码盘采样,必须设计另一个轮轴支点,以增加车轮的稳定性。
本设计增加了一个侧盖(见上面侧盖图),为轮轴提供了一个支点,由于结构允许,还设计了滚珠槽(注意侧盖中的圆环和轮毂中的圆环),以改善转动性能。
侧盖固定于上、下基架上,等于给上、下基架增加了 4 个固定点,使小车更加坚固。
因为这个结构,使我突发奇想,利用轮毂的空间安装驱动和采样电路,从而解决了驱动电路的安装问题。
小车很小,空间有限,如再挤占留给用户的控制器空间,用户自己设计控制器时就很困难。这样处理,既解决了驱动板的安装,又增加了侧盖的强度,同时将有效空间全部留给了用户。
以下为车轮、驱动板、侧盖的装配示意:



2.4 电池选择和安装
之所以坚持选择 7# 镍氢充电电池,而不选流行的锂充电电池,是由于锂电池规格特殊,很难有标准尺寸,会给使用者带来麻烦,7# 电池短期内还没有淘汰的迹象,所以还是作此选择。
没有像玩具和模型那样,提供做好的电池组,是因为在使用中发现,通常不是电池组内所有电池都同时失效,这样会给用户带来不必要的损失,所以还是用电池盒。
电池安装位置设计在小车底部,降低了重心,使小车更加平稳。
2.5 驱动电路的安装和连接
驱动电路的安装上面已经有图示。电路上包含了电机驱动、码盘采样、电机电路检测,供电电压检测。
与控制部分的连接可以用插针方式,如图中所示。这样很方便,但小车的高度就超过了FIRA的规则要求。如果需要严格遵循规则,可以不焊接插座,用软线连接,接线处设计了锁线孔(见上面驱动板照片),以避免插拔引线导致焊点处折断。
2.6 控制板安装位置和空间
如果不是参加正式的 FIRA 比赛,建议按上述万能试验板方式设计控制板,用插针方式连接,极其方便。
如果要严格遵守 FIRA 规则,则必须将控制板设计在小车的基架中,为方便安装,基架上设计了两个安装孔,并预埋了M3螺母,很容易固定。
控制PCB的尺寸最大可以为 65*45mm,安装孔距54mm(居中),空间高度为 25mm,可以设计两层,控制器应该够用了。
三、电路详述
电路和第三代“轮式驱动单元”完全一样,此处就不再详细解释,简单汇总如下:
3.1直流电机 H 桥驱动电路

供桥电压为5V。这也是用 MOS 管带来的好处,因为桥臂压降小,所以用 4 节充电电池即可驱动,这样既便于充电,又减轻了小车的自重。
控制逻辑电路电压VCC 接控制单片机的工作电压,可选择3.3V 或 5V。
电机控制信号共三根:
Ctrl1为 PWM 控制信号。
Ctrl2和 Ctrl3组合,得到电机的四个工作状态:正转 反转 刹车 惰行。
控制逻辑如下:

3.2 电机电流、电压检测
电流检测电路:

电流的取样电阻为 0.22 欧姆(见H桥驱动电路的 R5),按上图参数,放大倍数 11 倍,电机电流最大 1.1A 左右,所以实际的输出信号应在 0 – 2.66V ,如使用 3.3V 供电的单片机,其AD输入范围为 0 - 3.3V,考虑电机的电流偏差和器件的偏差,留些余量。
电路中 C2 作用是减小电机电流波动的影响,是针对 125Hz 的 PWM 频率设计的,如提高PWM 频率,此参数应该相应修改。
电压检测电路:
电压采用简单的分压处理,设计了一个跟随器以减少 AD 输入阻抗对分压的影响。
电池的电压应在 4 – 6V ,分压后为 2 – 3V,符合 AD 输入不大于 3.3V 的要求。
由于器件有偏差,如用户想尝试用电流检测转速,最好自己先通过测量,标定采样值和实际电流、电压的关系,之后再根据标定值编写计算程序。
3.3 码盘采样电路
利用开模的优势,在车轮上设计了60个齿,可以用透射式光电采样器方便的得到脉冲信号,比反射式采样更加可靠。
但为了避免在变换状态时产生“毛刺”,还是利用运放设计了“施密特”电路,用回差消除之。
之所以用运放,而不是直接使用施密特触发器,是因为这样可以方便的改变回差大小。
码盘采样电路:
因为LM358是双运放,故设计的两路码盘采样,在PCB上错开布置,希望能得到相位相差90度的脉冲,一是可以增加精度,二是可以判断转动方向。
可由于码盘齿只有1mm宽,采样器焊接要求很高,很难实现,故暂不提供,留给有此需求的客户自己“精雕细琢”吧!
关于码盘采样电路的分析,有兴趣者可以看看“圆梦小车 StepByStep -4” 一文,此处就不再赘述了。
四、结语
“FIRA小车”介绍完了,有未尽之处将会随时补上。但愿能对大家学习单片机、嵌入式应用有所帮助。
最后,将“FIRA小车”的主要使用信息汇总如下:
连接线:
每侧11根,用2.54间距的插座引出,或者客户用软线。
分成 2 组:
一组为控制线,共 6 根,其中:
电源地线;
电机驱动 H 桥供桥电压 5V(正极),包括检测电路 LM358 的供电;
电机控制线 CTRL1,电机控制 PWM 信号;
电机控制线 CTRL2,电机运行状态控制,与 CTRL3配合;
电机控制线 CTRL3,电机运行状态控制,与 CTRL2配合;
H 桥驱动逻辑电路 74HC08 的供电电压(正极);
(虽然比L298 多了一根控制线,但能实现刹车,还是值得的)
另一组为检测信号输出线,共 5 根,其中:
空腿,留给用户根据需要处置;
码盘采样脉冲输出线
信号地线,和电源地线内部相连,只是为了方便使用而增加。
电机电流检测信号输出线;
电机工作电压检测信号输出线;
电机参数:
额定电压 —— 4.5V
空载电流 —— 85 – 95 mA
空载转速 —— 9800 rpm +/- 10%
堵转电流 —— 约 1100mA
堵转力矩 —— 50g/cm (最大)
减速箱: 1:48
结构参数
车轮直径 —— 65mm
码盘齿数 —— 60 个
码盘等效直径 —— 42 mm
脉冲精度 —— 3.4mm/脉冲(单边沿采集,可用倍频方式提高精度)
轮距 —— 约 59.5mm
外形尺寸 —— 约 75 x 75 x 75 mm
重量 —— 约240g (不含电池)
根据上述参数可以计算出:
最快运动速度:
用 1:48减速箱 —— 约 695mm/s
最大力矩:
选用 1:48减速箱 —— 约 2.4kg/cm
上述计算值仅供参考。
最大载荷影响因素较多,未测试过,暂时无法提供,望谅解!
——————————————
南京嵌入之梦工作室
2010年9月12日星期日
附录:
问与答
1、 FIRA小车底盘只提供成品吗?
答:可以提供散件。毕竟成品偏贵,因为是小批量手工制作,每辆小车的人工成本就要超过50元,所以没有办法降低。
如客户很想锻炼电子技能,或者想用自己的驱动电路,可以提供散件,包含所有结构件、电机、电池盒、PCB和码盘采样器。因为PCB是结构中的一部分,无法去掉。这样配置价格略高于二代底盘,因为使用了增强尼龙材料。
2、 FIRA小车底盘只能用于机器人足球比赛吗?
答:不是。按照FIRA规则设计只是为了有一个默认的目的,而非唯一。
按FIRA小车目前的尺寸,应用于IEEE电脑鼠(即迷宫)比赛也很适合。
此外,也可以用于走轨迹。因为小车体积小,可以在小的场地上设置复杂的轨迹,使活动的客观约束条件大大降低,有利于开展普及性的校内活动及学生之间的非正式活动。
传感器的安装方式可以基于自己所做的控制板。如走迷宫有的方案是检测墙壁的上端面(等效于走红色轨迹),根据小车的高度(7.5cm)和墙壁的高度(5cm),在 PCB 上设计伸出的光电检测臂即可。
3、 作为个人,如何利用FIRA小车学习单片机和嵌入式应用?
答:FIRA 小车可以作为一个良好的控制对象,为你提供学习素材。因为体积小,可以在桌面上实施,降低了环境的制约,容易自己制作一些场景作为小车的挑战空间。
我还基于FIRA小车底盘设计一个控制器,期望学习者能从普通的8位单片机入手,从“裸奔”的程序开始,逐步提升至32位ARM控制器,使用RTOS,最后步入ARM9处理器,在Linux、WinCE、Android的操作系统中驰骋。
为了简化不确定性,我所设计的控制器只配置一个摄像头,作为小车的眼睛,我希望所有的应用都基于眼睛实现,FIRA小车底盘等于是腿和手。不希望学习者被不断出现的传感器需求所困扰,集中精力于软件学习。

由于不再在硬件改进上纠缠,学习者可以基于相同的平台交流,像 PC 机一样。嵌入式学习最大的障碍是软件交流困难,因为各自运行的硬件平台不同,只能看看构思,无法直接借鉴,更难于合作提高。有些程序不运行很难理解,所以也无法掌握其精髓。
4、 如果是学校,该如何应用FIRA小车帮助学生学习单片机?
答:对于学校教学,建议采用上述万能试验板模式,由老师指定若干种MCU,让学生自己基于万能板完成对小车的控制,作为一个大作业,我想这个比那种验证性的实验更能帮助学生掌握所学的知识。
万能试验板及上面的 MCU 等元件作为消耗品(估计在 20 元左右),而小车则由学校管理。这样成本并不高,而且可以跟随MCU的发展而变化,不至于与现实脱节。
为了使这样的应用更具可行性,还设计了一个充电管理板,可以方便的实现充电,回避电池管理带来的麻烦。
对于那些有一定能力和进取心的学生,这种方式还可以激发其深入学习的热情,因为可以展示其才能。而不像标准的实验箱,想有所作为也难于表现。扼杀了好学生的冲动,也失去了培养好苗子的机会。
5、如何让学习单片机的同学通过“机器人足球”活动提高兴趣和技能?
答:如果按标准的“机器人足球”去做,那学习单片机的同学是无法应付,因为那个太偏重学术了,首先图像采集和识别就足以将这些没有太强 PC 机编程能力的同学挡在门外。
但可以换个思路,不一定非要那么学术,可以只将机器人足球作为一个简单的活动,只要能刺激起学生们主动在单片机上编程的欲望就算达到目的了。
可以这样安排:将机器人足球的场地和图像采集、识别作为设施,由学校提供,就像乒乓球台、篮球场等体育设施一样。
这个“机器人足球场”可以将场地上符合规范的色标和球定位,并按照设计的协议通过无线发送给小车。这些色标和球作为场地的附件,要上场的小车只要在顶部贴上色标即可。
小车用单片机控制,可以自带无线,只要符合场地的无线规范和协议。学校也可以配置一些标准的无线模块供学生借用,这样学生就不必再投资无线部分了。
按照这个方式,学生基本不需要单片机编程以外的知识,就可以参与机器人足球活动了。我想这比那些走轨迹、灭火、迷宫等项目都会有趣。关键是可以刺激学生不断优化程序,从而不断掌握新的知识。
机器人足球最大的特征是提升空间较大。开始可以是“1对1”,即双方各一个小车,熟练掌握后,可以变为 2对2 、3对3……,这不是简单的数量增加,随着参与对抗的小车增多,所要考虑的因素成几何级数增长,很多新的计算机知识会自然而然的呈现在学生们面前。为了满足征服欲和表现欲,他们会主动学习新的知识,以使其小车更具智慧。软件学习能到这个境界应该是最佳的!
实际上,嵌入式控制、单片机编程学习的最大障碍是没有让学生们兴奋的内容促使他们编,只是在应付课业,所以没有效果。很多软件上的技巧都是源于现实的需求,而在教学中却将原来的需求抽去,将产生的结果交给学生,枯燥、难以理解,如果学生没有足够的想象力,可以说只能囫囵吞枣,甚至还埋怨发明这些技巧的人是没事找事。
如果能将原来的需求呈现给他们,或者说能设置一个场景,让他们自己产生这些需求,为了解决之,自己找到这些技巧,学习效果会有天壤之别。
机器人足球就是一个蕴含着十分丰富需求的场景。原来这个活动过于“贵族”化,一个 FIRA小车要 7000元,少有学校可以问津。
基于这个 FIRA 小车底盘,不到 500 元即可做出一个 FIRA 小车。
上述方式的场地所需硬件投资也不会超过 5000 元,其中最贵的电脑估计学校到处都是,如果剔除电脑,估计 2000 元都不要。而任何一所大学都有能力编出图像采集识别程序,即便不愿投入精力,找参加过 FIRA 比赛的学校交流一下,即可解决,这是 FIRA 比赛的最基础部分。
这种活动不一定非局限于教学,作为学生的科技活动也是很好的素材,学生们有体力上的对抗赛,缺少智力上的,特别是和专业知识相关的对抗赛,组织的好,可以丰富学生的生活,还可以减少学生沉溺于电脑游戏的时间 。
————————————
圆梦小车第四代 —— FIRA小车平台,本文PDF格式下载
以下是上海交通大学软件学院基于此底盘所做的智能小车,控制器是他们自己设计的:
(20101022)
