树莓派控制无线小车大报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

计算机学院嵌入式方向综合工程设计技术报告题目:树莓派控制无线小车姓名:学号姓名:学号姓名:学号指导老师:起止时间:2014年9月至2015年1月西安电子科技大学计算机工程系-1-摘要:树莓派由注册于英国的慈善组织“RaspberryPi基金会”开发,2012年3月,英国剑桥大学埃本·阿普顿正式发售世界上最小的台式机,又称卡片式电脑,外形只有信用卡大小,却具有电脑的所有基本功能,这就是树莓派电脑板,中文译名树莓派。树莓派用途广泛,专为业余兴趣者和想学习编程的年轻人们设计的,提供一个具有基本功能的,廉价的硬件平台。它是一款基于的微型电脑主板,以ARMSD卡为内存硬盘,卡片主板周围有四个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口。其尺寸只有信用卡大小,运行速度比台式机稍慢,但已具备了电脑的所有基本功能,只需接通电视机和键盘,就能执行如电子表格,文字处理,玩游戏,播放高清视频等诸多功能。树莓派控制无线小车,利用树莓派通过L298N控制四个电机。左边两个并联,右边两个并联,通过差速小车转向。关键词:树莓派、电机、L298N、无线小车-2-目录第一章绪论………………………………………………………31.设计要求………………………………………………………32.设计内容………………………………………………………3第二章系统需求分析……………………………………………31.设计思路………………………………………………………32.总体方案………………………………………………………3第三章系统软硬件设计与实现…………………………………41.L298N芯片相关………………………………………………42.树莓派相关……………………………………………………53.无线网卡相关…………………………………………………94.软件相关………………………………………………………10第四章系统调试与测试…………………………………………13第五章总结………………………………………………………14-3-第一章绪论1.设计要求(1)设计一个无线遥控的小车,小车通过树莓派无线连接至电脑通过电脑控制小车的运动。(2)小车可以前进、后退、左转、右转、左转圈、右转圈。2.设计内容(1)基于L298N的电机驱动模块设计与实现(2)树莓派与电脑连接的设计与实现(3)树莓派控制小车的设计与实现第二章系统需求分析1.设计思路(1)分析无线遥控小车基本控制技术以及各种通行方案,并以此为基处提出自己的无线控制小车的初步方案。(2)确定无线控制小车的总体设计,包括基于L298N电机驱动模块的方案设计以及系统应拥有的各项功能。(3)进行树莓派、电机、L298N、小车框架的组装和对各器件的选择及连接,大体分配实现各个器件及模块的基本功能和要求。(4)进行软件系统的设计,对L298N内部结构和工作情况做了充足的研究,了解树莓派及其相关,完成控制软件的编写。2.总体方案树莓派无限控制小车大致上有五部分组成。包括小车电机部分、L298N部分、树莓派部分、无线网卡部分以及移动电源部分。其中小车部分由四个电机以及小车框架组成,小车的四个轮子每个一个电机。L298N通过与四个电机的连接来控制四个电机的转动,每边的电机并联。移动电源主要给树莓派以及L298N控制电机模块供电。无线网卡主要用来连接电脑与树莓派,通过电脑控制树莓派下达命令,控制电机的转动。系统方案框图如下图所示。-4-系统方案框图第三章系统软硬件设计与实现1.L298N芯片相关L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如下图图所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信(1)模块接口+5V:芯片电压5V。VCC:电机电压,最大可接50V。GND:共地接法。A-~D-:输出端,接电机。A~D+:为步进电机公共端,模块上接了VCC。EN1、EN2:高电平有效,EN1、EN2分别为IN1和IN2、IN3和IN4的使能端。IN1~IN4:输入端,输入端电平和输出端电平是对应的。树莓派左电机1右电机1左电机2右电机2USB1移动电源USB2LN1LN2L298NLN3LN4无线网卡-5-(2)L298N步进电机驱动板有四个IO输入口,简单的说就是1.2两个IO口通过高低电平控制一个电机的正反转,,所以,我们要做的就是通过树莓派的IO口输出高低电平就可以控制电机的转向。2.树莓派相关(1)树莓派具体参数网卡BroadcomBCM2835(CPU,GPU,DSP和SDRAM,USB)CPUARM1176JZF-S核心(ARM11系列)700MHzGPUBroadcomVideoCroreIV,OpenGLES2.0,1080p30h.264/MPEG-4AVC高清-6-解码器内存512MByteUSB接口4(支持USBhub扩展)影像输出CompositeRCA(PAL&NTSC),HDMI(rev1.3&1.4),rawLCDPanelsviaDSI14HDMIresolutionfrom640x350to1920x1200plusvariousPALandNTSCstandards音源输出3.5mm插孔,HDMI板载存储SD/MMC/SDIO卡插槽网络接口10/100以太网接口外设8xGPIO、UART、I2C、带两个选择的SPI总线,+3.3V,+5V,ground(负极)额定功率700mA(3.5W)电源输入5V/通过MicroUSB或GPIO头总体尺寸85.60x53.98mm(3.370x2.125in)操作系统DebianGNU/linux,Fedora,ArchLinuxARM,RISCOS,XBMC(2)树莓派安装系统准备工作:1)最好最准备一张4G以上的SD卡,最好是高速卡,推荐Class4以上的卡,因为卡得速度直接影响树莓派的运行速度。2)下载树莓派debian系统镜像文件,3)在windows下安装镜像的工具win32diskimager安装实战:1)解压下载的debian系统压缩文件,得到img镜像文件2)将SD卡使用读卡器后,连上电脑3)解压并运行win32diskimager工具4)在软件中选择debain的img文件,“Device”下选择SD的盘符,然后选-7-择“Write”然后就开始安装系统了,根据SD速度,安装过程有快有慢5)安装结束后会弹出完成对话框,说明安装就完成了,如果不成功,关闭防火墙一类的软件,重新插入SD进行安装。其中Ext3区属于linux的文件系统,就和Windows的文件系统NTFS、FAT32、FAT16一样,Swap区为linux的虚拟内存区,主要在物理内存不够用的时候,做缓存用。(3)树莓派远程访问因为没有独立的显示器,又想用无线网卡来实现远程访问。这就牵扯到了在没有显示器的情况下如何配置无线网卡的账号和密码。1)用网线将树莓派和路由器链接起来。2)在电脑上(非树莓派)登录路由器,输入路由器登录账号和密码。3)进入路由器后,找到DHCP这一项目,再找到客户端列表,可以看到raspberrypi后面有192.168.xxx.xxx之类的IP。4)下载putty工具在图中填有IP地址的位置输入得到的树莓派IP地址,点击下面的OPEN从而进入树莓派登录界面。-8-输入账号密码之后在命令行模式下,输入如下命令:cd/etc/wpa_supplicant然后,再输入命令:sudonanowpa_supplicant.confnetwork={ssid=无线热点账号psk=无线热点密码proto=RSNkey_mgmt=WPA-PSKpairwise=CCMPauth_alg=OPEN}完成后拔掉网线,重启树莓派。然后登录路由器查看树莓的IP地址。(4)树莓派GPIO-9-利用杜邦线将树莓派和L298N按照下列方式连接树莓派GPIOL298N驱动板Pin(GPIO27)IN1Pin(GPIO18)IN2Pin(GPIO22)IN3Pin(GPIO23)IN4Pin(+5V)+5VPin(GND)GND3.无线网卡相关无线网卡用来连接电脑和树莓派,用电脑来控制树莓派。无线网卡规格:-10-遵循标准IEEE802.11B/G/N传输速率最大150Mbps发射功率14Dbi接口USB2.0频率范围2.4GHz—2.4835GHz安全特性WPE.TKIP.AES.WPAandWPA2工作温度0℃--50℃存储温度-10℃--70℃工作环境日常,非极端4.软件相关程序流程图如下图所示。开始初始化读取数据Key=?Key=qKey=eKey=wKey=aKey=dKey=xKey=s向左转圈向右转圈前进左拐右拐后退停止-11-程序所用语言为python,选用pythonGPIO,因为该库是树莓派官方资料中推荐的且容易上手。pythonGPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作。但是pythonGPIO库还没有支持SPI、I2C或者1-wire等总线接口。除了pythonGPIO之外,还有众多的python扩展库,毫无疑问的说python非常适合树莓派,树莓派也非常适合python。源程序如下:importRPi.GPIOasGPIOimportcursesimporttimefromcursesimportwrapperGPIO.setmode(GPIO.BCM)GPIO.setup(27,GPIO.OUT)GPIO.setup(18,GPIO.OUT)GPIO.setup(22,GPIO.OUT)GPIO.setup(23,GPIO.OUT)stdscr=curses.initscr()stdscr.clear()whileTrue:ch=stdscr.getkey()#Quitifch=='s':curses.endwin()GPIO.output(27,False)GPIO.output(18,False)GPIO.output(22,False)-12-GPIO.output(23,False)break#Forwardifch=='w':GPIO.output(27,False)GPIO.output(18,True)GPIO.output(22,False)GPIO.output(23,True)#Backwardifch=='x':GPIO.output(27,True)GPIO.output(18,False)GPIO.output(22,True)GPIO.output(23,False)#TurnRightifch=='a':GPIO.output(27,False)GPIO.output(18,True)GPIO.output(22,False)GPIO.output(23,False)#TurnLeftifch=='d':GPIO.output(27,False)GPIO.output(18,False)GPIO.output(22,False)GPIO.output(23,True)-13-#Pivot_leftifch=='q':GPIO.output(27,True)GPIO.output(18,False)GPIO.output(22,False)GPIO.output(23,True)#Pivot_rightifch=='e':GPIO.output(27,False)GPIO.output(18,True)GPIO.output(22,True)GPIO.output(23,False)第四章系统调试与测试小车同一侧的马达并联连接至L298N,正在连接的过程之中要按照,在刚开始的时候,遇到了同一侧的轮子转向不一致的问题,经过仔细观察发现,两个同一侧的电机连线接错,通过测试更改连线,错误已经修正。开

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功