好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于51单片机WiFi智能小车制作.doc

13页
  • 卖家[上传人]:hs****ma
  • 文档编号:397307893
  • 上传时间:2023-01-04
  • 文档格式:DOC
  • 文档大小:2.84MB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于51单片机WiFi智能小车制作一、根本原理51单片机WiFi智能小车是利用PC或作为控制端,通过连接wifi模块〔路由器〕以获得wifi信号,同时车载也连接wifi模块以获得和一样的IP地址,实现和小车的连接,然后利用PC或上的控制软件以wifi网络信号为载体发送相关信号,wifi模块接收PC或端发送来的相关信号并分析转换成TTL电平信号,然后发送给单片机,单片机接收到的电平信号处理、分析、计算,转化成控制指令并发送给电机驱动模块以实现小车的前进、后退、左拐、右拐等功能二、购置所需材料了解51单片机WiFi智能小车根本原理后,需要购置所需材料进展制作下面列出所需制作材料:序号材料备注图例151单片机最小系统一般采用11.0592M晶振251单片机3703n路由器DB120或WiFi模块4L298n电机驱动模块有动手能力的可以自己做5减速电机及轮子一套6小车底盘7摄像头根据固件支持摄像头购置8电源根据自己需要购置种类9杜邦线及小配件制作所需工具:序号工具名称备注图例1电烙铁一套包括松香焊锡2螺丝刀平口、十字等3微型电钻可以自制4手工刀5剪刀6万用表7热熔胶枪或快干胶8USB下载器三、开场制作1、制作流程开场制作前,我们首先需要看购置路由器的型号,笔者采用的是703n路由器,所以需要引出ttl线。

      总体步骤为:路由器引TTL线→路由器刷OpenWrt固件→制作51单片机最小系统→下载下位机程序到51单片机→安装上位机程序至PC或→测试上、下位机通信→组装→调试完成2、路由器引ttl线首先翻开703n路由器,按照以下图标示位置焊接ttl线注意:1、焊接的时候要小心焊接,焊好后微拉下查看松紧2、焊接最好采用软线焊接,防止意外整块拉掉焊点3、焊好后一定用胶固定,最好采用热熔胶以下图为引好ttl线样子3 刷OpenWrt固件何为OpenWrt固件,OpenWrt可以被描述为一个嵌入式的 Linu* 发行版,〔主流路由器固件有dd-wrt,tomato,openwrt三类〕而不是试图建立一个单一的,静态的系统OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序对于开发人员,OpenWrt是使用框架来构建应用程序,而无需建立一个完整的固件来支持;对于用户来说,这意味着其拥有完全定制的能力,可以用前所未有的方式使用该设备百度百科:baike.baidu./link?url=18s7ZQFh6grF8LDGfd4LtrUdB*v5GWlDKLrNh8CeK1W0i*QpA9f2FGZuf9ZOtKTlDZOhM1m7YsqlH*e_RNzzp_---------------------------------------------------------------------------------------------------------------第一步:把电脑IP改为第二步:把路由网络接口和电脑网卡直接用网线相连第三步:翻开路由的控制界面,地址默认一般是〔FAST和TP的一样〕,用户名密码均为admin,自己修改正的用自己修改后的地址第四步:进入路由的控制界面,点“系统工具〞>>“软件升级〞>>“浏览〞,选择下载的固件文件第五步:点击升级,耐心等待。

      升级成功后只能用无线和路由器连接到此,路由器刷固件完成4 51单片机最小系统制作该步骤就不多说了,一般在网上买单片机最小系统,买回来直接安装单片机上去就可以了不过有兴趣的朋友可以买些散件自己焊接5 下载下位机到单片机把编写好的下位机程序下载到单片机,以下图为usb-ttl与单片机示意图6安装上位机程序至PC或下载上位机程序到电脑端或者上,进展安装7 测试上、下位机通信测试上、下位机通信首先需要把路由器、单片机最小系统、电机驱动模块、减速电机连接起来,上电测试具体接法见以下图:注意:该图从网上下载,最终接法按照各位买的模块说明书进展接线,不过接线方法都是小异控制单元连接需要根据下位机程序连接in1~4.路由器与单片机连接按照以下图标示的接口,GND连GND、T*连R*、R*连T*连接好各自的线路后〔有摄像头的可以插上摄像头〕,最后给单片机、电机驱动板、路由器上电,等待路由器启动完成在电脑无线网络里寻找WifRobot的昵称连接上翻开上位机软件,按如下设置:确定后重启上位机程序,查看摄像头图像是否正常,分别按下wasd看是否能驱动电机转动7 组装WiFi小车到这一步根本没什么问题了,接下来就按照自己的嗜好组装自己心爱的小车了。

      8 调试车子安装好了以后就可以试车了,前后左右功能是否正常.摄像头功能是否正常.前进与后退有没有偏向.上位机程序private void ReadFromArm() { byte[] buffertocheck = new byte[1]; intbytesize = 0; do { byte[] bufferofread = new byte[1024]; try { bytesize = stream.Read(bufferofread, 0, bufferofread.Length); } catch (E*ception e*) { connection = Indicator.Unconnected; MessageBo*.Show("连接中断,程序将退出"); Application.E*it(); read.Abort(); } //MessageBo*.Show(BitConverter.ToString(bufferofread)); byte[] buffertochecktemp = buffertocheck; buffertocheck = new byte[buffertochecktemp.Length + bytesize]; Array.Copy(buffertochecktemp, 0, buffertocheck, 0, buffertochecktemp.Length); Array.Copy(bufferofread, 0, buffertocheck, buffertochecktemp.Length, bytesize); int inde*_1, inde*_2; while (Check7E(buffertocheck, out inde*_1, out inde*_2)) { byte[] buffertodecode = new byte[inde*_2 + 1 - inde*_1]; Array.Copy(buffertocheck, inde*_1, buffertodecode, 0, inde*_2 + 1 - inde*_1); byte[] bufferofdecode = PPP.Decode(buffertodecode); //MessageBo*.Show(BitConverter.ToString(bufferofdecode)); if (bufferofdecode[0] == bufferofdecode.Length&&CheckSum(bufferofdecode))//保证从ARM来的帧是正确的 { byte[] Zuohao = new byte[2]; intsubinde* = 1, inde* = bufferofdecode[1]*256+bufferofdecode[2]-1; string status=null; switch (bufferofdecode[3])//分别处理从ARM来的帧 { case POWER_ON://从ARM来的上电状态 status = "上电"; subinde* = 1; break; case POWER_OFF://从ARM来的断电状态 status = "断电"; subinde* = 1; break; case ABNORMAL://从ARM来的异常状态 status = "异常"; subinde* = 1; break; case WARNING://从ARM来的警告信号 status = "有"; subinde* = 2; break; case NEED_HELP://从ARM来的求救信号 status = "有"; subinde* = 3; break; } if (0 <= inde* && inde* <= 49) { listView1.Items[inde*].SubItems[subinde*].Te*t = status; if (status == "异常" || status == "有") listView1.Items[inde*].SubItems[subinde*].ForeColor = Color.Red; else listView1.Items[inde*].SubItems[subinde*].ForeColor = Color.Black; } } intnewlength = buffertocheck.Length - 1 - inde*_2; if (newlength == 0) { buffertocheck = new byte[1]; } else { buffertochecktemp = buffertocheck; buffertocheck = new byte[newlength]; Array.Copy(buffertochecktemp, inde*_2 + 1, buffertocheck, 0, newlength); } } } while (connection == Indicator.Connected); } ///

      /// 向ARM发送 /// /// 座号 2字节 /// 命令字 1字节 public void WriteToArm(byte[] Zuohao, byte mingling) { if (connection == Indicator.Connected)//在与ARM保持连接的情况下可写 { byte[] frame = new byte[5]; frame[0] = 0*05; Array.Copy(Zuohao, 0, frame, 1, 2); frame[3] = mingling; byte temp = 0; foreach (byte item in frame) temp += item; frame[4] = (byte)(0 - temp); byte[] frametosend = PPP.Encode(frame); Console.WriteLine(B。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.