电动车跷跷板设计报告1.doc_第1页
电动车跷跷板设计报告1.doc_第2页
电动车跷跷板设计报告1.doc_第3页
电动车跷跷板设计报告1.doc_第4页
电动车跷跷板设计报告1.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电动车跷跷板(F题)设计报告摘要 本设计共分为两部分:跷跷板平衡检测系统和和PTR8000无线通信系统。平衡检测系统是将角度传感器连接在跷跷板中心位置来检测跷跷板摆动角度的开环控制系统。为以后电动车找平衡角度做准备。PTR8000无线通信系统是将角度传感器检测出来的角度通过无线发送模块将数据发送给电动车,根据数据电动车调节自身运动从而达到调节平衡的目的。平衡检测系统、无线通讯系统与电动车构成了一个闭环控制系统。电动车以ATmega16为控制核心,采用步进机控制电动车前进和倒退,采用光电传感器检测引导线,利用无线接收模块接收跷跷板平衡检测系统发送的数据,CPU对数据进行智能分析,调整小车前进速度和方向,使跷跷板达到平衡状态。在电动车到达指定位置时,给出声光提示,同时LED显示时间和小车当前状态。附加的PC机电动车跷跷板实时模拟系统,关键字:Atmega16、PTR8000、光电传感器、角度传感器、步进电机一、 系统方案1. 实现思路和方法本题目要求分为基本部分和发挥部分,基本部分要求在不加配重的情况下电动车在规定时间内完成从跷跷板起始端出发,行驶到跷跷板中心点附近,并且在中心点附近找到平衡位置停留几秒钟,然后从平衡点出发行驶到跷跷板末端停留几秒钟,再从末端倒退回起始端,整个过程要给出时间显示和平衡指示。设计中主要解决的问题是车在跷跷板中心点附近找到平衡和时间显示。我们应用角度传感器与板的中心相联来检测板子转的角度再通过PTR8000发送给单片机分析处理后就可以得到角度值来控制车的运动从而达到调节平衡的问题。显示我们用LCD液晶显示时间,提示我们用蜂鸣器组成声光报警系统,可以达到提示平衡指示的目的。2. 方案的选择与论证2.1 控制芯片的选择与论证方案一:采用传统的89C51作为电动车的控制核心。89C51具有价格低廉、使用简单等特点,但运算速度较慢,数据存储器和程序存储器较少,没有ISP下载线及SPI接口,功能单一,控制过程比较烦琐。方案二:采用ATmega16作为电动车的控制核心。ATmega16拥有丰富的资源,运算速度快,低功耗,高性能,可通过ISP下载线写入程序,其SPI接口可用于对无线通讯模块的控制,使小车能实时接收到跷跷板平衡检测模块发送的数据,以此调整自身前进速度及位置,达到跷跷板平衡的要求。基于上述分析,拟采用方案二。2.2 执行机构的选择与论证方案一:采用普通直流电机。直流电动机驱动力大转弯角度小但只能在有限的场地运动,而且控制精度不高,不适合在高精度控制的场合应用。方案二:采用步进电机。步进电机的一个显著特点是具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动、反转或停止。另一个显著的特点是转换精度高,正转反转控制灵活。为了保证物体能够平稳且精确的运行,我们选择方案二。2.3 显示系统的选择与论证方案一:采用LED数码管显示器。LED数码管亮度高,醒目,但其信息量小,占用资源较多,且显示方式单一。方案二:采用LCD液晶显示器。LCD液晶显示器屏幕较大,美观,清晰,能显示数字,字母,汉字,甚至图片。其功耗低,占用资源少,使用简单。基于上述分析,拟采用方案二。 2.4 跷跷板平衡检测系统的选择与论证 方案一:采用角度传感器。角度传感器是一种高精度测量物体倾斜角度的检测仪器,将其转轴固定在转动物体上一旦物体转动将带动传感器转轴将产生一个数值,再经过A/D转换把此数值转成角度从而测量出物体转动的角度。此方法测量数据准确并且测量精度高适合高精度的测量。方案二:在电动车上水平放置一水槽,在水槽正上方设置两探针,当跷跷板失去平衡时,两探针之一接触水面;当跷跷板平衡时,两探针均不接触水面。但由于受视觉的影响,测量精度将受到影响。方案三:在电动车上设置一倒立摆,倒立摆顶端连接电位器的转轴,倒立摆受重力影响,一直垂直指向地面,小车在行进过程中,电位器测量摆的倾角,以此判断跷跷板的状态。通过分析题目对控制的精度要求很高,所以我们选择方案一。2.5 数据发射接收系统的选择与论证方案一:采用传统的有线数据传输。将独立的系统用数据线连接,进行数据传输,电路连接简单,但使用极不方便。方案二:采用PTR8000无线收发模块。PTR8000无线收发模块体积小,低电压,低功耗,性能稳定且不受外界干扰,内置完整的通信协议和CRC,通讯方便。可方便的放于电动车上,实时接收发送数据。本系统需要电动车接收跷跷板平衡检测系统发送的角度传感器检测数据,同时电动车也要实时将自身数据发送给PC机进行显示及模拟,三个独立的系统之间要互相通讯,使用有线数据传输不方便,故采用方案二。3 系统的设计经过以上方案的比较论证我们设计了如下的系统流程图:3.1 系统框图如图F-1所示。本系统共分为两部分。一部分为跷跷板平衡检测系统,另一部分为电动车。跷跷板平衡检测系统通过角度传感器检测跷跷板的实时状态,单片机将角度传感器收集到的数据处理后,通过PTR8000无线发射接收模块发送给电动车。电动车接收到数据以后,CPU对数据进行分析,以此调整前进方向和速度。在电动车前进的同时,车头的两个光电传感器检测跷跷板面的引导线,保证电动车不会从跷跷板上掉落。当电动车接收到跷跷板平衡检测系统发送的跷跷板平衡信号时,小车制动,计时器停止,给出声光提示,并在LCD上做出相应指示。 CPUATmega16PRT8000模块角度传感器PTR8000模块无线传输CPUATmega16光电传感器驱动步进机LCD显示声光指示图F-13.2 跷跷板平衡检测系统的原理与实现在跷跷板中心位置处安装一个角度传感器,如图F-2所示。当跷跷板两端上下摆动的时候,角度传感器转轴跟随转动,同时将转动的方向和角度等数据经单片机处理后,通过无线通讯模块传送给小车,小车根据接收过来的数据自行判断并设定行走方向和速度。当角度传感器转轴转动的角度近似于0时,即可认为跷跷板处于平衡状态,小车停止, 并给出相应提示。图F-2 跷跷板平面图跷跷板跷跷板中心位置角度传感器转轴3.3 跷跷板面引导措施及检测在跷跷板面中央和离板面A端30厘米处都贴有引导物,A端到B端之间画有黑色引导线,引导小车在翘翘板中央行走;跷跷板两端各画有一条黑色引导线,引导小车停在跷跷板两端。小车两头各采用两个光电传感器检测引导线,分别设置在两车头两角上。光电传感器是一种以发光二极管为光源,以光敏管为接收器,输出信号以脉冲为主的传感器。如图F-3所示。当光电传感器测到黑线或障碍物时,其输出端OUT(图中A点)输出为1,使得光电隔离器的发光二极管截止,发光二极管不发光,光电三极管不导通,因此,光电隔离器的输出端(图中B点)为1,当光电传感器没有检测到黑线或障碍物时,其输出为0,光电隔离器的发光二极管导通,发光三极管导通,光电隔离器的输出为0。 光电传感器 F-3图二、理论分析与计算1测量数据1.1 实际测量时间数据第1次第2次第3次第4次第5次第6次从A到C15s11s17s17s17s18sC点找平衡56s43s63s46s61s51s由C到B14s13s16s15s13s14s由B到A 63s48s50s36s44s44s发挥部分总用时90s100s111s98s103s99s1.2 实际测量距离差第1次第2次第3次第4次第5次第6次d5CM4CM5CM4CM4CM4CM2理论分析与计算由题意说明可知:根据板长和中心高度可以算出板子与地面的夹角(SINa=中心高除以板长的一半)又平衡条件为A、B两端与地面的距离差d=|da-db|不大于40mm板子的幅度不超过10度,即:板子一端每下降或上升1度对应板子偏移的距离为1.4厘米,板子幅度不得超过2厘米。三、电路与程序设计1. 检测与驱动电路的设计1.1本系统驱动电路采用UDN2916B驱动芯片做为核心元件。UDN2916B电路设计时需要充分考虑热设计,因为驱动IC消耗的大部分能量主要为在突变关闭期间马达再生电流造成,马达产生的再生电流流过电流检测电阻和地钳制二极管重新流回马达,产生的电压跌落引起了能量消耗,地钳位二极管上的瞬时电压(VF)出现了最大的跌落,产生了主要的功耗。设计电路时,如果在驱动IC输出端外加肖特基二极管,并且只要这些肖特基二极管的VF特性值比内部地钳位二极管小,马达产生的再生电流将会有一部分从外部肖特基二极管重新回流到马达,使流经驱动IC内部的电流减少,降低了驱动IC的功耗,反过来也就提高了热性能。驱动电路原理图见附录1.2 检测电路的设计检测电路分为角度检测和路线检测两部分。角度检测采用角度传感器来测量角度;路线检测才用光电传感器测量;原理图见附录2.总体电路图见附录3.系统的软件设计与工作流程图1 软件设计本系统使用ATMega16作为核心控制,使用C语言进行软件编程。跷跷板系统软件完成对角度传感器采集的数据进行处理和发送,电动车系统软件完成数据的接收及判断,实现小车行走、寻找平衡位置的智能化,并实时显示系统接收到的数据、小车行走时间、跷跷板状态等。2 程序流程图四、创新发挥 本设计还运用Visual Basic(以下简称VB)语言在PC机上制作电动车跷跷板实时模拟系统。VB是面向对象的、支持可视化编程的程序设计语言,能方便的设计出实用的应用系统。电动车在运行过程中,通过PTR8000无线收发模块,将行驶速度、运行状态(包括前进、后退、左转、右转、停止)、所在位置、跷跷板与地面角度等数据发送给PC机。接收方面,用ATmega16控制另一PTR8000模块接收数据,再通过RS232串口线传送给PC机。PC机接收到数据后,对数据进行判断、处理并显示,同时以画图的形式,将跷跷板状态、电动车行走路线进行实时模拟显示。界面直观、数据显示清晰、模拟逼真,电动车运行过程中的各种参数和跷跷板状态都能一目了然。为了表示跷跷板已经达到平衡,在小车达到平衡时加有声光信号来表明小车已经达到平衡,跷跷板非平衡状态后声光信号会消失。五、 结果分析在调试过程中,当我们检测到水平角度值时,跷跷板总会偏向另一端,所以我们在调节过程中,每当检测到水平范围附近角度值时,小车都会立即做出相反方向的一段运动,来稳定跷跷板平衡。小车在行走过程中,小车有时会出现失步现象,主要是驱动模块响应脉冲速度有限,所以小车的运行最大速度较小。附录附录1 原理图部分(1) 系统总体图(2)驱动模块原理图(3)PTR8000通信模块原理图附录2 系统程序#include #include #include delay.h/#define Z_EN_1 PORTD|=BIT(0) /使能左轮#define Z_EN_0 PORTD&=BIT(0) /关闭使能#define Z_zz PORTD|=BIT(1) /左轮正转#define Z_fz PORTD&=BIT(1) /左轮反转 #define Z_cp_1 PORTD|=BIT(2) /驱动左轮#define Z_cp_0 PORTD&=BIT(2)#define Y_EN_1 PORTD|=BIT(3) /使能右轮#define Y_EN_0 PORTD&=BIT(3) /关闭使能#define Y_zz PORTD|=BIT(4) /右轮正转#define Y_fz PORTD&=BIT(4) /右轮反转#define Y_cp_1 PORTD|=BIT(5) /驱动右轮 #define Y_cp_0 PORTD&=BIT(5) #define jin 1 /前行#define tui 0 /后退#define you 1 /#define zuo 0 /#define uint unsigned int#define uchar unsigned charuchar q,p,d;uchar gao,di;uchar time=0;uchar time1=0;unsigned int sp;unsigned char gaoducha;unsigned char a;define SIZE 32uchar TxBufSIZE,RxBufSIZE;/*-nrf905配置寄存器宏定义 author:HotPower nrf905配置寄存器(10Byte)工作频率f=(422.4+CH_NO/10)*(1+HFREQ_PLL)MHz-*/#define RX_ADDRESS 0x12345678 /接收有效地址(本方)#define TX_ADDRESS 0x12345687 /发送有效地址(对方)#define CH_NO_FREQ_422_4MHz 0x000 /工作频率422.4MHz(433MHz频段最低频率)#define CH_NO_FREQ_422_5MHz 0x001 /工作频率422.5MHz#define CH_NO_FREQ_425_0MHz 0x01a /工作频率425.0MHz#define CH_NO_FREQ_427_5MHz 0x033 /工作频率427.5MHz#define CH_NO_FREQ_430_0MHz 0x04c /工作频率430.0MHz#define CH_NO_FREQ_433_0MHz 0x06a /工作频率433.0MHz(433MHz频段基准频率)#define CH_NO_FREQ_433_1MHz 0x06b /工作频率433.1MHz#define CH_NO_FREQ_433_2MHz 0x06c /工作频率433.2MHz#define CH_NO_FREQ_434_7MHz 0x07b /工作频率434.7MHz#define CH_NO_FREQ_473_5MHz 0x1ff /工作频率473.5MHz(433MHz频段最高频率)#define CH_NO_FREQ_844_8MHz 0x000 /工作频率844.8MHz(868MHz频段最低频率)#define CH_NO_FREQ_862_0MHz 0x056 /工作频率862.0MHz#define CH_NO_FREQ_868_0MHz 0x074 /工作频率868.0MHz(868MHz频段基准频率)#define CH_NO_FREQ_868_2MHz 0x075 /工作频率868.2MHz#define CH_NO_FREQ_868_4MHz 0x076 /工作频率868.4MHz#define CH_NO_FREQ_869_8MHz 0x07d /工作频率869.8MHz#define CH_NO_FREQ_895_8MHz 0x0ff /工作频率895.8MHz#define CH_NO_FREQ_896_0MHz 0x100 /工作频率896.0MHz#define CH_NO_FREQ_900_0MHz 0x114 /工作频率900.0MHz#define CH_NO_FREQ_902_2MHz 0x11f /工作频率902.2MHz#define CH_NO_FREQ_902_4MHz 0x120 /工作频率902.4MHz#define CH_NO_FREQ_915_0MHz 0x15f /工作频率915.0MHz(915MHz频段基准频率)#define CH_NO_FREQ_927_8MHz 0x19f /工作频率927.8MHz#define CH_NO_FREQ_947_0MHz 0x1ff /工作频率947.0MHz(915MHz频段最高频率)#define CH_NO_FREQ CH_NO_FREQ_430_0MHz /工作频率433.0MHz#define CH_NO_BYTE CH_NO_FREQ & 0xff /工作频率低8位 Byte0 01101100#define AUTO_RETRAN 0x20 /重发数据包 Byte1.5 0#define RX_RED_PWR 0x10 /接收低功耗模式 Byte1.4 0#define PA_PWR_10dBm 0x00 /输出功率-10dBm Byte1.32 00#define PA_PWR_2dBm 0x04 /输出功率+2dBm Byte1.32#define PA_PWR_6dBm 0x08 /输出功率+6dBm Byte1.32#define PA_PWR_10dBm 0x0c /输出功率+10dBm Byte1.32 #define HFREQ_PLL_433MHz 0x00 /工作在433MHz频段 Byte1.1 0#define HFREQ_PLL_868MHz 0x02 /工作在868MHz频段 Byte1.1#define HFREQ_PLL_915MHz 0x02 /工作在915MHz频段 Byte1.1#define CH_NO_BIT8 CH_NO_FREQ 8 /工作频率第9位 Byte1.0 0#define TX_AFW_1BYTE 1 * 16 /发送地址宽度1字节 Byte2.74#define TX_AFW_2BYTE 2 * 16 /发送地址宽度2字节 Byte2.74#define TX_AFW_3BYTE 3 * 16 /发送地址宽度3字节 Byte2.74#define TX_AFW_4BYTE 4 * 16 /发送地址宽度4字节 Byte2.74 100#define RX_AFW_1BYTE 1 /接收地址宽度1字节 Byte2.30#define RX_AFW_2BYTE 2 /接收地址宽度2字节 Byte2.30#define RX_AFW_3BYTE 3 /接收地址宽度3字节 Byte2.30#define RX_AFW_4BYTE 4 /接收地址宽度4字节 Byte2.30 100#define RX_PW_1BYTE 1 /接收数据宽度1字节 Byte3.50#define RX_PW_32BYTE 32 /接收数据宽度32字节 Byte3.50 00100000#define TX_PW_1BYTE 1 /发送数据宽度1字节 Byte4.50 #define TX_PW_32BYTE 32 /发送数据宽度32字节 Byte4.50 00100000#define RX_ADDRESS_0 RX_ADDRESS 24 /接收有效地址第1字节 Byte5 11100111#define RX_ADDRESS_1 (RX_ADDRESS 16) & 0xff /接收有效地址第2字节 Byte6 11100111 #define RX_ADDRESS_2 (RX_ADDRESS 8) & 0xff /接收有效地址第3字节 Byte7 11100111#define RX_ADDRESS_3 RX_ADDRESS & 0xff /接收有效地址第4字节 Byte8 11100111 #define CRC_MODE_16BIT 0x80 /CRC16模式 Byte9.7 1#define CRC_MODE_8BIT 0x00 /CRC8模式 Byte9.7 #define CRC_EN 0x40 /CRC使能 Byte9.6 1#define CRC16_EN 0xc0 /CRC16模式使能 Byte9.76 11#define CRC8_EN 0x40 /CRC8模式使能 Byte9.76#define XOF_20MHz 0x20 /晶体振荡器频率20MHz Byte9.53#define XOF_16MHz 0x18 /晶体振荡器频率16MHz Byte9.53 100#define XOF_12MHz 0x10 /晶体振荡器频率12MHz Byte9.53#define XOF_8MHz 0x08 /晶体振荡器频率8MHz Byte9.53#define XOF_4MHz 0x00 /晶体振荡器频率4MHz Byte9.53#define UP_CLK_EN 0x40 /输出时钟使能 Byte9.2 1#define UP_CLK_FREQ_500kHz 0x03 /输出时钟频率500kHz Byte9.10 11#define UP_CLK_FREQ_1MHz 0x02 /输出时钟频率1MHz Byte9.10#define UP_CLK_FREQ_2MHz 0x01 /输出时钟频率2MHz Byte9.10#define UP_CLK_FREQ_4MHz 0x00 /输出时钟频率4MHz Byte9.10#define UP_CLK_EN_500kHz 0x43 /输出时钟频率500kHz Byte9.20 111#define UP_CLK_EN_1MHz 0x42 /输出时钟频率1MHz Byte9.20#define UP_CLK_EN_2MHz 0x41 /输出时钟频率2MHz Byte9.20#define UP_CLK_EN_4MHz 0x40 /输出时钟频率4MHz Byte9.20#define TX_ADDRESS_0 TX_ADDRESS 24 /发送有效地址第1字节#define TX_ADDRESS_1 (TX_ADDRESS 16) & 0xff /发送有效地址第2字节#define TX_ADDRESS_2 (TX_ADDRESS 8) & 0xff /发送有效地址第3字节#define TX_ADDRESS_3 TX_ADDRESS & 0xff /发送有效地址第4字节 /nrf905命令控制字 author:HotPower#define WC 0x00 / Write configuration register command#define RC 0x10 / Read configuration register command#define WTP 0x20 / Write TX Payload command#define RTP 0x21 / Read TX Payload command#define WTA 0x22 / Write TX Address command#define RTA 0x23 / Read TX Address command#define RRP 0x24 / Read RX Payload command#define uint unsigned int#define uchar unsigned char#define SET(a,b) a|=(1b) #define CLR(a,b) a&=(1b)#define CPL(a,b) a=(1b)#define CHK(a,b) (a&(1b)/定义使用的IO口#define PTR8000_DD_I DDRB#define PTR8000_PO_I PORTB/PORTB#define PWR 0#define TRXCE 1#define DR 2 #define TX_EN 3#define CSN 4#define MOSI 5#define MISO 6#define SCK void xian_shi(unsigned char hang,unsigned char wei_zhi,unsigned char shi_zhi) setaddress(hang,wei_zhi); time_conver(shi_zhi); wr_byte(p); wr_byte(q);void time_conver(uchar data) switch(data) case 0:p=0xa3;q=0xb0;break; case 1:p=0xa3;q=0xb1;break; case 2:p=0xa3;q=0xb2;break; case 3:p=0xa3;q=0xb3;break; case 4:p=0xa3;q=0xb4;break; case 5:p=0xa3;q=0xb5;break; case 6:p=0xa3;q=0xb6;break; case 7:p=0xa3;q=0xb7;break; case 8:p=0xa3;q=0xb8;break; case 9:p=0xa3;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论