查看: 3606|回复: 4

iPhone变身卖萌遥控小车

[复制链接]
  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-1-15 10:14:51 | 显示全部楼层 |阅读模式
    分享到:


    双向电梯
    1   iRover的背景介绍
    2   材料和工具
    2.1   材料
    2.2   设备
    2.3   工具
    3   小车的制作
    3.1   动力部分
    3.2   照明部分
    3.3   底盘安装
    3.4   云台部分
    3.5   电路连接
    3.6   运动控制程序烧录
    4   美化工程
    5   遥控程序
    6   试航上路
    7   问题解决
    7.1   开机后,小车没有反应是什么原因?
    7.2   遥控程序无法运行?
    7.3   遥控程序无法控制小车?
    7.4   小车的脖子乱转,很难指挥?
    7.5   重力感应模式下很难控制?
    7.6   连接经常中断?
    8   写在后面的话
    1   iRover的背景介绍
    不知道很多年前的小鬼当家里的遥控车大家还有没有印象,反正我在那个时候就被这个车给萌住了,不过在那个年代,无论在技术上,还是在价格上,那种小车还是离普罗大众远了点。幸好到了21世纪,电子科技飞速发展,各类开源硬件平台也越来越多,那么是时候来完成这个孩提时代的梦想了。
    iRover小车基于Arduino平台。但和通常的Arduino小车不同,Arduino系统在这里只是为了能让小车动起来。真正遥控小车,并透过小车来观察这个世界的,是安装在小车上的一台iPhone和作为遥控器的iPad。话说新款iPhone就要来了,旧款的就让它变身小车的脑袋吧。
    首先上一组很有i产品范的宣传图片。
    2.png

    3.png

    4.png

    5.png
    然后是写给希望也来做这么一个小车的同学的。
    这篇教程是为让很多没有经验的同学也能上手而作的,因为牵扯到的流程比较复杂,不建议所有的零件都自己手工制作,毕竟,单独拿出一部分,比如Arduino小车也是可以让没有经验的DIYer琢磨十天半个月的话题了,教程里会直接使用一些现成模块来加速制作过程,防止因为工期过长导致的烂尾楼事件发生。
    接着大家先站个队,对于不同的制作者我有不同的一些建议,毕竟,如果让个文艺青年去纠结单片机原理还是很过分的事。
    文艺青年
    手工水平停留在小学的手工课上,中学物理课在睡觉的间隙听过那么几句,还记得电压、电流。知道9V,知道直流电有正负,有个已越狱的iphoneipad的。请这些青年跟着我的教程走,根据材料单去准备材料,我会写得很详细的,跟着做能保证做出个和iRover差不多的小车出来。
    普通青年
    知道单片机,会基本的电路知识,给个电池,电阻,LED,可以自己排线让LED亮起来,稍微有点程序概念,某个时候学过vbc++的,对于这类青年应该有一定能力根据自己的想象,去做出一辆属于自己的遥控车了,你可以根据后面的蓝色清单来准备材料。
    科技青年
    工科出身的青年,搞过单片机,知道PWM;说不定自己也是做过点电子玩具的,对于这类青年我想说的就是敬请自由发挥,我的小车驱动程序还是写得比较方便二次开发的,只要遵守里面用到行动命令,你把小车改成双足机器人都能用我的遥控器来控制。
    2   材料和工具
    2.1   材料
    写给文艺青年的基础材料单:
    4WD小车底盘(必要配件是几块板,4个轮子,4个马达,一些连线),大约200
    一块Arduino电路板,最基本的型号就可以,大约80
    写给普通、科技青年的基础材料单:
    小车底盘,买4个或者2个轮子的、履带的都可以,关键是左右的驱动马达必须要分开。这样小车才能转向。如果你有自信自己改一些程序的,买个带转向轮的就更灵活了。
    一块Arduino电路板,最基本的型号就可以,如果有条件,可以考虑买带wifi或者蓝牙模块的套件,这样以后扩展性会更好
    后面大家都一样:
    电源开关,充电二合一的套件(我买的车里送了这个,如果没有的话,建议买一组,很方便)
    65号电池盒和6节充电电池,外加电池组智能充电器。(如果你愿意每次把电池拿出来充电的话,就免了充电器吧)总共150~200左右
    2自由度云台外加舵机2个,我买的180


    6.png
    L293D电机驱动板,必须是支持4路直流电机和2路舵机的,我买的是L293D芯片的,注意买的时候一定要买那种可堆砌设计的(就是电路板上方要预留了各个引脚插槽的,见下图的红框,Bode就是买了没有这个插槽了,结果只能在电路板上焊接,电路板上的焊接这个事情对业余选手来说实在是不是你想干,想干就能干的)这个30元。


    7.png
    一块RS232的串口转TTL模块,我买的20元。
    一根Redpark Serial Cable线,就是把iPhone的接口转成串口的线,这个比较贵,在官网上要卖59美刀,国内的代理更贵,有条件的可以考虑代购。
    一块8×5厘米的面包板(根据小车的尺寸买)不超过10
    一些面包板的连线,一些双头的杜邦线(各种长度最好都有,否则只能拿几根接起来用也可以)10块钱。
    470欧姆电阻2
    1WLED灯珠4~8个(装饰用,备点彩色二极管也可以用来装饰)最多1块钱1
    这样总计成本不计运费大概是1000出头点(那根线国内买的话会贵300),但是某些人一直都说我是不会买东西的人,所以,我觉得如果多挑选挑选的话,成本还是有希望控制在1k以内的(谁做到1k以内了,记得告诉我都是哪里买的,我再做辆玩赛车了)
    2.2   设备


    8.png
    已越狱的iPhoneiPad各一台,后面我会提供2IPA下载,因为没打算上App Store,所以要破解的机子才能装。
    我用iPhone4iPad2跑我的遥控程序,iPhone3GS不确定能不能用,个人觉得如果不开实时视频传输是可以的。另外4代的iPod touch应该也完全可以。iPad1我也不确定能不能用
    因为这个程序是自己写着玩的,内存没做太多优化,如果有人用了有问题可以联系我,我再改改……
    2.3   工具
    一根usb数据线,一般买Arduino的电路板会送的
    螺丝刀(最好是那种可以换头的,方便)
    电烙铁和焊丝(如果不想焊接,那么买驱动板的时候要挑可叠层的,然后其他地方自己多绑绑吧)
    万用表(如果没有,就多买几个发光二极管,串联了电阻也能看看电路情况,不过最好还是有个吧,尤其是想自己折腾点花样的)
    剪刀,美工刀,镊子,尺,双面胶
    3   小车的制作


    9.png
    如果你和我一样,直接用的是买来的小车底座,那么就好办了,直接安装组装说明,把小车先搭出来就好了。
    小车搭完后,就要把4个电机都连接上,Bode在这里推荐使用一块面包板作为中间件,这样之后改线路会比较简单,如果焊死了之后发现了连线错误,会麻烦的多。
    另外因为安装角度问题,通常装完的小车通上电后,轮子的滚动方向完全不可预计,所以要多试几次,保证在连上电池后,4个轮子是往一个方向转的。(正转、反转倒不要紧,这个可以在之后的程序里进行控制。)
    3.1   动力部分
    iRover作为一辆遥控车,最重要的功能就是可以灵活的在地上到处开动了,为了达到这个目的,我采用了4个电机来驱动轮子。
    但是为了让小车可以转弯,我们必须要把左右的轮子的电路分开。这样,当我们需要向某个方向转弯时,只要让那一边的轮子减速,停止,甚至反转就可以了。
    3.2   照明部分
    作为一辆专业的遥控车,照明部分必不可少,除了可以提供在黑漆漆环境下的工作能力,装备了前后LED大灯的小车,还可以在外观上瞬间的拉风起来。
    这里我使用了功率1W的大功率LED灯珠,晚上4个一排打开,绝对亮如日食时的白昼啊~
    注意大功率LED散热。



    10.png
    然后给每个LED小灯连上线,方便之后在车上安装。这里推荐把杜邦线中间剪开然后焊上小灯珠,这样以后改布线的时候,直接拔插就可以了。注意LED小灯的引脚是有正负的,连线的时候可以用颜色区分好。iRover使用了6LED灯,前42


    11.png
    先试一试灯光效果,免得装上去了不合适,注意输入电压要在5v以内。还有一点,灯珠的焊接速度一定要快,不然很容易把灯烧坏的。
    3.3   底盘安装


    12.png
    现在可以来完成iRover最重要底盘上的电路了,这里准备了一张浅显的电路图来解释下iRover的连线方法。
    首先我们要知道,面包板一左一右刚好各有2条垂直方向的电路,所以只要吧左右电机的连线分别插入到这两条电路中,电机部分的连线就算ok了。
    然后可以通上电,看看4个轮子的方向是不是一致。
    然后,面包板中间的线都是左右分开,一个横排之间互相连接的,因为需要连上6LED灯,所以我们分3组连接。前方外侧2个小灯的引线按正负分别各自连在一个横排上。后面两个小灯,和前面中间两个小灯也分别这样连接。
    这样我们就有了3排控制小灯的电路,但是最后我们能引出的控制线只有2组,所以,我们需要把前后2排小灯的线,正负两路各自连接起来(一般的车,打开车灯,都是前后同时亮的吧,然后打开大光灯,才有剩余的灯加入,iRover完全模拟了这个过程)。
    最后在图上位置连接上2470欧姆电阻,我们就把2路小灯的线路做好了,稍后等控制板做好了,直接插上底板就能工作了。
    3.4   云台部分


    13.png
    这是一个典型的2自由度云台,2自由度的意思就是可以同时上下和左右转动。
    云台是支撑iRover那大脑袋的脖子。直接买来的云台都是一堆零件,我们可以根据说明书搭成上面的模样,然后再安装在车架的前方。
    最后直接在云台上粘一个iPhone壳子作为支架。


    14.png
    云台的每个舵机只能支持180度范围内的旋转,所以 在安装云台时,务必先让舵机移动到90度的范围再继续安装 ,这样才能保证最后造出来的小车始终向前看。(如果是不知道怎么让舵机移动到90度的文艺青年们,请安装云台的时候螺丝先稍微拧松点。等小车上电后,用遥控器控制视角到正前方,再调整下云台支架的角度就可以了)
    3.5   电路连接
    iRover的电路连接还是相对比较简单的,不过一定要细心,注意走线。如果接错的话,对于没有电路经验的同学来说,可能就找都找不出来错在哪里了。
    iRover的电路大致可以分2个部分,一个是控制部分,另一个是动力部分。通俗的来说一个提供控制信号,一个根据信号提供小车行动需要的动力。
    这两个部分的结合点,就是电机驱动板。电机驱动板会根据Arduino系统提供的信号,来放大输出到小车的各个运动部件上。


    15.png
    上图所示的两块电路板,下面的就是Arduino版,上面的就是电机驱动板,首先将他们紧紧的叠在一起。


    16.png
    然后在电路控制板上引出我们需要的线路到底盘的面包板上。
    在这里我都是使用了面包板的插线来快速的完成连线工作,不需要焊接(如果你没像我一样买错板的话)。


    17.png
    连线后的效果图。
    最后在电机驱动板的左上角连上舵机,注意橙色的连S端,咖啡色(有些舵机是黑色)的线在-端。
    云台上的两个舵机都要连好。1号端口连上下移动的舵机。2号端口连左右移动的舵机(我一直觉得我买的电路板有bug,和说明书上的引脚说明正好反了,但是无所谓,如果后面试机器的时候发现上下左右不对,就交换一下这里的连线)。


    18.png
    我在连线时,大量采用了下面这种搭配的方法,这样,当线路需要改变时候会很方便,特别是连接到串口转换板的TXRX两根,一定要方便拔插的。因为每次需要通过usb写入程序的时候,都需要先断开这两根线。


    19.png
    最后说一下电池的安装。iRover把电池盒倒挂安装在了车架面板下方。这样的好处是露在下车外部的部件会比较少。缺点是更换电池会很不方便,所以iRover采用的是可充电的设计。
    3.6   运动控制程序烧录
    点击这里 下载iRover配套程序,把需要的程序烧录到Arduino芯片里。至于如何将代码烧录,这里就不唠叨了,不知道如何操作的文艺青年可以去Arduino相关的网站观摩下,基本上第一个范例就是。iRover使用了0022版本的编译环境,主要是为了适应驱动板的库。如果想使用其他版本的编译环境,可能需要修改一些配置。最后要注意的就是,烧录程序和通过串口调试程序的时候,都需要断开Arduino控制板和串口转换板之间的连线!
    程序通过定义了两个类MotorTaskServoTask分别来控制电机(包括LED灯)和舵机。每个类都有两个行为,一个是读到串口命令时,进行动作的预约;一个就是在执行期去执行预约的动作。如果你想为iRover添加更多的功能。只要按这个规则去添加新的类就可以了。
    程序烧录后,我们可以打开Arduino编译器里的Serial Monitor。开始测试一下小车各个部分是否工作正常。

    20.png
    输入GL 200$后点击Send。如果看到下面的提示框有返回Do para : GL200。那么恭喜你Arduino板上的程序已经烧录完成了。如果你的小车的左侧轮子开始转动(并且是让小车向前方行进的转动的)那么彻底恭喜你,你距离成功已经只剩下最后的10%了。
    如果很不幸,输入命令后,没有任何反应,那么先要看是否连线正常,是否已经断开了串口的连接线,是否已经打开了电源(仅靠usb的电量是没法驱动小车的轮子的)然后进一步去排查电机驱动板到电机的连线。如果有万用表的,就开始一段段的检查。找到哪里出了问题。
    如果你的车轮子转错了方向,或者是错误的车轮,或者是车灯开始闪亮的话。那么说明你点击驱动板导出的连线和代码里定义的不一样。这时候你可以修改连线,或者是更改程序里的定义。
    如果一切顺利,你可以依次执行如下命令,并观察是否小车的行动如预期。
    左轮前进 GL 200$
    右轮前进 GR 200$
    左轮后退 GL -200$
    右轮后退 GR -200$
    两个轮子停止 GL 0$ GR 0$
    4个大灯微亮 LF 1$
    2个大灯微亮 LB 1$
    所有的灯大亮 LF 35$ LB 35$
    关灯 LF 0$ LB 0$
    舵机支架向上抬头 CV 50$
    舵机支架向下低头 CV 150$
    舵机支架向左摇动 CH 170$
    舵机支架向右摇动 CH 10$
    如果以上的操作每一步都能顺利通过的话,那么你的小车已经基本上完成了,只剩下最后的一些步骤了。
    4   美化工程


    21.png
    不管我们是什么青年,如果开着个只有架子的火星车出门,那么就算是火星上几亿年前存在的微生物也会鄙视我们的。



    22.png
    看看iRover,前后泡沫塑料的防撞结构,黑色记号笔上色,外加豪华鼠标垫变身前防撞梁蒙皮。轮毂还都上了金色的贴纸。正常车辆该有的LOGO、车牌、新手上路标志一个都不能少。瞬间使得外观个性不少。这里给个小提示,设计好的LOGO、车牌等标志,可以用高光的照相纸打印后剪裁,贴上后效果非常的好。


    23.png
    附上各式标签一张,可以直接拿去打印了。
    5   遥控程序


    24.png
    终于轮到酷酷的遥控程序上场了,我的本分工作其实就是搞iOS软件开发的,所以iRover在硬件上不敢自称是最好的遥控小车,但是在控制软件上,iRover绝对不比一些商业的遥控小车逊色。
    首先你会下载到两个IPA文件,一个是安装在iPhone上的,一个是用在iPad上的。
    iRoverServer装在iPhone上,iRoverController装在iPad上。
    把程序先分别装入手机和平板之后(需要是已越狱的才行),然后看看能不能打开程序,如果你能在iPad上看到方向盘的画面,在iPhone上看到一张贱贱的笑脸,就说明程序可以运行。
    接下去我们来看看如何通过遥控器来控制下车。遥控器的各个部分的功能已经在图中显示。
    最简单的超控方式就是触摸式,Bode在视频里的控制就是用了触摸式,确认右侧的档位在T档,并且打开了方向盘右上角的动力开关。在方向盘的范围内拖动中间的Rover图标。往前拖就是前进,往后拖就是后退,拖得越远,速度也就越快。同样的,往两边拖就是转弯了。
    如果选择其他档位,那么就可以采用拟真度更高的重力方式操控小车,在左侧拖动电门大小,控制前进速度;在垂直方向左右转动iPad,就可以控制小车行动方向了,因为iRover使用的是差速控制的转弯方式,所以转弯的反应不会很灵敏,需要一些时间去适应,有条件的同学可以想办法自己安装转向轮。
    接下去介绍几个重要的图标的含义。


    25.png
    这个图标点亮代表遥控器已经和iPhone上的程序建立了连接。不亮就去检查网络去吧。



    26.png
    这个图标点亮代表遥控器已经和小车的硬件建立了连接。不亮的就去看看iPhone有没有连上小车,小车的电源有没有打开。


    27.png
    这个是小车的动力开关,如果这个按钮是暗的,你的任何试图让iRover移动的尝试都不会得逞。


    28.png
    这个是开启iPhone实时画面的按钮,打开后,就可以通过iPhone观察世界了。需要注意两点:1,现在开启这个按钮后,iPhone会有不停的快门声,把iPhone静音就可以了。2,使用这个功能会让iPhone快速耗电,所以如果是在面前开的话,还是先关了这个吧。


    29.png
    拍照键,每次按下,会保存一张当前的画面。你可以在iTunes的应用程序文件共享里找到这些保存的图片。


    30.png
    灯光键,不停点击,会在关灯-示宽灯-近光灯-远光灯之间切换


    31.png
    点击这个可以打开一个界面来远程控制小车上iPhone的表情(目前预设了6个,之后会开放自定义的功能)。另外可以控制iPhone摄像头看到的场景效果,现在有曝光控制,火星效果、夜视效果、骑兵效果(就是马赛克啦),圆盾骑兵(圆形马赛克)共五种效果,并且每个效果可调细节。但是这个功能现在有个bug,切换时可能会导致iPhone端程序异常退出。
    6   试航上路
    确保iPhoneiPad在同一个网络内(如果你想带出去玩,可以打开iPhone或者3GiPad的个人热点),然后将iPhone连接上小车并打开小车电源。分别打开两边的程序,确认遥控板上两个连接图标都已经点亮,打开动力开关,拖动方向盘中间的LOGO,让你的小车也跨出它的一小步,你的一大步吧。
    带着iPhone的小车身价不菲,请勿在脱离视线的情况下在公共场所使用,由此导致的拐卖事故,Bode概不负责噢。
    7   问题解决
    7.1   开机后,小车没有反应是什么原因?
    正常情况下,接通电源后,小车的脖子有个优雅的上挥姿势。如果没有,请确认电池已经正确的给驱动板供电!注意,只给Arduino板供电,虽然通电后电路板上也会亮灯,但是脖子是转不动的,更不能前进后退的,这时需要赶紧关闭电源,检查线路,否则会有把电路板烧坏的风险。
    7.2   遥控程序无法运行?
    安装遥控程序需要是已经越狱的iPhoneiPod touchiPad。并且要求系统版本在5.0以上。
    7.3   遥控程序无法控制小车?
    确认小车已开机,小车和iPhone之间的连线正常(特别是串口转换器和Arduino之间的连线正常),iPhoneiPad在同一个网络内,且各自打开了控制程序。如果某个设备进入程序后有过锁屏,请退出后重新打开。直到确认iPad上的连接指示图标和小车动力图标都点亮。方向盘的右上角有个行动开关,只有打开这个开关,小车才能移动,否则即使连接了,也只能转转脖子,闪闪大灯。
    7.4   小车的脖子乱转,很难指挥?
    在写入Arduino的程序中找到这两个地方
    servoLR.attach(9,0,180);  // 绑定舵机到针脚,并且设定舵机的旋转范围.
    servoUD.attach(10);
    //将舵机绑定到自己的舵机控制类上,需要设定座机的初始位置.
    servoTask sTaskLR(&servoLR, 9, 90);
    servoTask sTaskUD(&servoUD, 10, 135);
    这里分别是控制两个舵机的转动范围,和初始位置的。你可能需要根据你安装的云台的实际角度去调整这里面的值。
    7.5   重力感应模式下很难控制?
    恩,的确有点难控制,有时间的话Bode可能会做一些优化。同时推荐触摸操控更适合iRover
    7.6   连接经常中断?
    保持wifi信号在比较好的情况下。同时保持iPhoneiPad不要锁屏,锁屏会断线的,而且之后也会连不上;这个时候需要退出程序后重新进入。你可以认为这是一个bug,但是暂时不会被修改(因为种种原因)。
    关于Arduino系统的其他问题可以参考Arduino相关网站。
    关于iPhoneiPad越狱后安装软件的问题,也请参考相关网站,论坛。



    回复

    使用道具 举报

    该用户从未签到

    发表于 2014-1-16 11:33:57 | 显示全部楼层
    很强大啊,不过也要好多米
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-4-4 17:13
  • 签到天数: 154 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-1-16 11:34:03 | 显示全部楼层
    有意思 表情很可爱
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-1-18 12:34
  • 签到天数: 1673 天

    连续签到: 2 天

    [LV.Master]伴坛终老

    发表于 2014-1-18 22:30:42 | 显示全部楼层
    哈哈,萌翻了         
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-9-23 05:09
  • 签到天数: 113 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2014-7-19 10:01:33 | 显示全部楼层
    谢谢楼主分享
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-24 05:53 , Processed in 0.149947 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.