A) 单片机主控(Arduino nano 3.0) 先来简单说说Arduino nano板。
Arduino Nano是Arduino USB接口的微型版本,最大的不同是没有电源插座以及USB接口是Mini-B型插座。Arduino Nano是尺寸非常 输入/输出口(其中6路可作为PWM输出),8路模拟输入,一个16MHz晶体振荡器,一个mini-B USB口,一个ICSP header和一个复位按钮。 14路数字输入输出口:工作电压为5V,每一路能输出和接入最大电流为40mA。 1) 外部中断(2号和3号):触发中断引脚,可设成上升沿、下降沿或同时触发。 2) 脉冲宽度调制PWM(3、5、6、9、10 、11):提供6路8位PWM输出。 3) SPI(10(SS),11(MOSI),12(MISO),13(SCK)):SPI通信接口。 4) LED(13号):Arduino专门用于测试LED的保留接口,输出为高时点亮LED,反之输出为低时LED熄灭。 5) 6路模拟输入A0到A5:每一路具有10位的分辨率(即输入有1024个不同值),默认输入信号范围为0到5V,可以通过AREF调整 输入上限。 TWI接口(SDA A4和SCL A5):支持通信接口(兼容I2C总线)。 6) AREF:模拟输入信号的参考电压。 7) Reset:信号为低时复位单片机芯片。(使用方法:开关一头接RST引脚,另一头接GND引脚,按下开关后断开,实现单片机复位。 8) 串口:ATmega328内置的UART可以通过数字口0(RX接收)和1(TX发送)与外部实现串口通信;ATmega16U2可以访问数字口 实现USB上的虚拟串口。(使用方法:路由TX连接单片机RX,路由GND接单片机GND,目前703N暂时实现发送命令给单片机,对于单片机 发送的信号,路由模块无法正确接收,原因在于两个硬件系统TTL电平电压不同) 9) 供电引脚VIN,输入电压(推荐) 7-12V(使用方法:电源正极接VIN,负极接+7.2V) WIFI小车用到的引脚有:D3、D4、D5、D6数字输出高低电平(HIGH或LOW)给电机驱动,VIN、GND 连接7.2V电源,RX、GND 对应 连接路由的TX、GND,用于接收路由控制命令。 B) 无线路由模块 无线路由模块由TP-LINK 703N无线路由安装OPENWRT系统并引出TTL串口线改装而成。
对于刚买回来的新703N路由器,第一步要做的事是给路由刷上OPENWRT系统,OPENWRT系统是运行于路由上的Linux系统,基于Linux系统 的开源,装上特定的软件可以实现我们想要实现的功能。我们WIFI小车要用到的软件,一个是摄像头驱动及图像处理软件mjpg-streamer ,一个是串口命令转发软件Ser2net。目前论坛的高手已经把要用到的这两样东西集成在了703N路由固件中,对于我们新手来说,是很容易 搞定的事,如果想深入了解OPENWRT系统及工作原理,请各自搜索学习相关知识。 补充必要说明:在新路由原系统下刷机时,先刷上factory系统(刷factory系统方法:LAN端口连接路由器,进入192.168.1.1,进入固件升级 页面,直接上传固件,进行升级,耐心等待几分钟路由重启,输入192.168.1.1,看到OPENWRT界面说明成功,登陆用户名:root, 路由改造引出线说明:首先简单介绍下引线原理:要用到路由TTL串口连接线,而路由板预留有TTL焊点,我们需要把它们引出,另外引出给 路由版供电的Mini-USB的电源焊点,方便我们给路由供电。引线方法:引出图中标出的TP_IN(数据接收点,相当于RX) 和TP_OUT()焊点, 焊接时一定要小心,用一根细铜丝(找根电源线,剥开后拿出一根就行,TTL线电压只有2.5V左右,细铜丝可以承载),焊上之后最好用热熔胶枪 固定一下。TTL串口线GND与电源GND共用。电源线由USB接口处引出,+5V对应USB线中红色的线所连接的焊脚,GND对应USB线中黑色的线所 连接的焊脚。经测试,路由供电电压:+5V,工作电流:300mA左右。
个人建议:用五根杜邦线,剪去一端后连接TTL及电源线,在网口上端断开一个长孔,五根线平展引出,出口的地方垫一点纸片,盖上路由盖后五 根数据线固定相当牢固,用起来不用担心会伤着电路板上的焊点什么的,相当给力。 C) 摄像头 选择中星微301为主控的摄像头,为什么这样选择呢?答:1.中星微301主控的摄像头驱动比较好找,论坛里好多针对703N路由刷机固件里就含有, 方便使用。2.便宜,虽然论坛里已经出现支持高清摄像头UVC模块的驱动,但是高清摄像头贵啊,对于初学者来说,在少投资的前提下能够搞清一些 初级原理就好,以后有需求了再投入也不迟。 我的301摄像头是在淘宝上30块淘的,用起来还可以,特别声明,我不是做广告,仅 使用起来不方便,就把数据线外皮剥掉并简短了,还把摄像头上的辅助LED灯都去掉了,费电。在使用中,301摄像头会出现花屏现象, 为640X480,其他没动,效果还好,花屏的情况也出现,但是情况少多了。根据个人不同情况进行调整就可以了。 D)电机驱动模块 我的WIFI小车四轮四电机,左边前后电机串联,右边前后电机串联,实现前进,后退,左转和右转。实际上用一个两电机驱动模块就可以了,我买的 是四电机驱动模块,有点浪费了。 驱动器集成2块L298N芯片,同时可以驱动4个直流电机,实现正反转及电机速度的控制.模块内部带有L7805降压芯片,如果驱动7V电压以上的电机时,可以 向外输出5V电,供给控制端使用。 接线定义: IN1-IN8:电机逻辑控制端,其中IN1/IN2控制电机1;IN3/IN4控制电机2;IN5/IN6控制电机3;IN7/IN8控制电机4.对于我的小车,使用到了IN1-IN4引脚,单片机 传来不同高低电平实现两路电机正反转。 EN1-EN4:为电机的使能端 ON/OFF:内部供电选择,当控制电机电压在7-35V的时候,跳线帽跳到ON一端,此时可提供5V电源给外部控制器使用 VIN/GND:电机电源接口,其中VIN接电源+7.2V,GND接电源负极,同时GND还要连接Arduino板子的GND,提供参考电平,否则电机驱动模块不能正常工作, 我在调试中就遇到了没有将GND连接单片机,怎么检查都找不到毛病,郁闷了很久,后来查了不少资料才解决,希望有此困惑的童鞋注意这点,很重要。 VCC/GND:跳线为ON时,此VCC可做输出,当跳线为OFF时,此VCC需要从外部接入稳定的5V电源.我在使用中,跳线为ON,电源供电电压在7.2V情况下,此VCC 输出电压供无线路由703N使用,本来还担心输出电流会达不到路由的使用要求的,后来调试中连接摄像头的情况下可以正常使用没有问题。 MOT1-MOT4:4个电机接口.我的小车使用到MOT1和MOT2接线柱,就是两路电机并连后分别接到MOT1,MOT2的接线柱上使用,线先连上,调试时再进行正 反转的调整。 E)其他硬件 电源选择7V-12V的吧,我用的是7.2V的,最好买可充电的,虽然贵点不至于使用时纠结干电池没电的时候影响调试。 小车底盘,我用的是四轮的,使用过程中发现动力不足,初步判断是电源电压偏低的原因,所以建议要入手的朋友使用两轮电机驱动带一个万向轮的小车地盘, 好处是,一来节约资金,二来发挥低电压的有效动力转换,而且带万向轮的小车转向灵活。我们处在调试阶段没必要追求过高配置,能满足要求就好,以后有 更高要求时再选购多动力配置的小车底盘。 若干杜邦线,连接线,一个开关(单相开关用于断开电源的正极线,调试时启动关闭系统靠它实现,很有必要),一个按键开关(引出单片机复位按键,在调 试中要经常按复位键初始化单片机模块,所以也有必要) F)工具 电烙铁,必备工具,搞电子,以后少不了焊接电线。 万能表,需备工具,个人建议最好身边有个,调试系统中,硬件出现的问题需要它来量量一些参数,给我们提供判断的依据。 热熔胶枪,需备工具,本来我是没有的,焊好路由模块的TP-IN引脚时用透明胶粘的,悲剧的时没注意把路由板子上的焊点给带掉了,费了好大劲才整好,后来就 花20块钱去买了热熔胶枪,使用后心情大好,很多担心的地方都省去了。面包板,淘宝上有很多,主要是做一些实验时使用的所以也是有必要的。 PS: WIFI小车的硬件准备部分就暂且总结这些,希望对一些朋友有所帮助吧,同时自己也温故而知新,对以后的学习也有好处。总是泡论坛学习别人总结的经验, 自己的小车做好了,也把自己的经验分享给朋友吧,大家共同学习,共同进步。后续贴出小车线路连接原理和Arduino程序代码。
|