当前位置:文档之家› 智能小车软件设计部分

智能小车软件设计部分

关键词:智能玩具小车,电机驱动模块,方向控制,速度控制,摄像头,霍尔传感器,光电对管,LCD液晶屏幕,无线通信,图象处理
1.系统总述
1.1系统组成
图1.1.1智能玩具小车系统组成示意图
单片机
路线/转速检测
电动机驱动
路况检测
无线传输
LCD显示
电脑处理
5
2.系统的主要功能
2.1单片机子系统
通过无线传输设备接收电脑输出的命令并执行;连接电动机进行简单转速控制运算;进行小范围内路线自动控制;输出当前状态至LCD显示。本系统采用ATS9852芯片。
为了避免出现上述情况,我们设计了以下逻辑电路(图4.1.4),从而避免了出现四个臂同时导通的情况。
图8.2.2 RT1602C数据传输时序图
8.3 RT1602C基本操作程序
//LCD初始化程序void LCD_INIT (void) { OUTI (0X38); //设接口数据位数(DL),显示行数(L),及字型(F) delay (60); OUTI (0X38); //设接口数据位数(DL),显示行数(L),及字型(F) delay (50); OUTI (0X38); //设接口数据位数(DL),显示行数(L),及字型(F) delay (50); OUTI (0X38); //设接口数据位数(DL),显示行数(L),及字型(F) delay (50); OUTI (0X0F); //设整体显示开关(D),光标开关(C),及光标位的字符闪耀(B) delay (50); OUTI (0X01); //清屏指令delay (50); OUTI (0X06); //设光标移动方向并指定整体显示是否移动delay (50); OUTI (0X80); //设DDRAM地址,设置后DDRAM数据被发送和接收delay (50); }
图4.1.1图4.1.2由于Q2、Q3,Q7、Q8的导通和关断是通过Q1、Q6控制,而Q1、Q6的导通和关断又是通过MOT1(IOB10)、MOT2(IOB11)控制的,所以电机的状态还是通过I/O端口来控制的。表2.1描述了IOB10和IOB11所控制电机运行状态与端口数据的对应关系
注意:由H桥的工作原理可知,H桥的四个臂不能同时导通,一旦四个臂同时导通会出现类似短路的现象,在H桥的每一个臂上都会有很大的电流流过。如图4.1.3,Q2、Q3、Q7、Q8同时导通时,就会形成Q3、Q7回路和Q2、Q8回路,就会有很大的电流经过这4个三极管,严重时会烧毁三极管甚至引起电源爆
2.2电动机驱动子系统
采用两步进电机,接收来自单片机信号,通过电机前后转动组合实现小车前向、后向以及左右运动。
2.3路线/转速检测子系统
利用光电对管对小车进行自动路线纠正;利用霍尔传感器进行小车速度检测并反馈到单片机内进行小范围内速度调控。
2.4 LCD显示子系统
从单片机获取当前小车动态数据以数字形式在LCD屏幕显示,方便实时监控小车状态并检测调试。本系统采用RC1602C LCD屏幕显示。
22
//数据行输出void OUTD (unsigned char od) { pb8255 = od; BWriteData (); _nop_ (); _nop_ (); pc8255 = 0x02;//读忙}
23
9. ET13X330无线通信芯片的原理与使用
2.1.1功能描述
The ET13X330 is a CMOS integrated circuit intend for use as a low-cost AM/ASK receiver. The device is provided in 24-pin SSOP package and is designed to provide a phased locked frequency source for use in local oscillator or transmitter applications. The chip integrated VCO, phase detector, percale, LNA,MIXER,IF amplifier, peak detector data decision and reference oscillator require only the addition of an external crystal to provide a complete phase-locked loop. The ET13X330 is a of low-power RF receiver IC’s that was developed for wireless data communication devices operating in the European 433MHZ ISM bands or U.S.315MHZ ISM band. The ET13X330 realize a highly integrated, single-conversion ASK/OOK receiver with the addition of a reference crystal, and a few passive components. The LNA input of the chip is easily matched to a front-end filter or antenna by means of a DC blocking capacitor and reactive components . The local oscillator generated by aninternal VCO.PLL and phase detector, loop filter and VCO resonator components and external reference crystal. The receiver IF section is optimized with external 10.7MHZ ceramic 10.7MHZ,where , after external band-pass filtering, most of the amplification is done, The IF outputs is driven by a source-follower, based to create a driving impedance of 3300 to interface with an off-chip 3300 10.7MHZ ceramic IF filter.
void play() { m1 = 1; m2 = 1; for( buf1 = 0;buf1 < 255;buf1 ++ ) { for( buf2 = 0;buf2 < 255;buf2 ++ ) { } } m1 = 0; m2 = 0; for( buf1 = 0;buf1 < 255;buf1 ++ ) { for( buf2 = 0;buf2 < 255;buf2 ++ ) { } } }
2.5无线传输子系统
接收来自电脑处理所得的命令并发送到单片机。本系统采用ET13X330/ET3X340无限发送接收模块。
2.6电脑处理子系统
接收摄像头路况图像并进行处理,将处理后命令通过无线模块发送至单片机执行。
2.7路况检测子系统
利用连接到电脑上的摄像头进行路况摄像,所得图像经电脑处理成为小车控制命令。本系统采用ET21X111摄像头。
6
3.主系统的硬件设计
3.1主要功能及设计目标
将电动机驱动电路以及单片7机控制电路整合在同一电路中,实现单片机对小车的基本操作,包方案图
7
4.电动机驱动电路的设计
4.1 H桥电路简介
下面详细地介绍一下H桥的工作原理:众所周知H桥有四个臂分别为B1、B2、B3、B4,分别对应图4.1.1中的Q2、Q3、Q7、Q8。四个臂分为两组Q2、Q3和Q7、Q8,每一组的两个臂都是同时导通,同时关断的。如果让Q2、Q3导通Q7、Q8关断,电流会流经Q3、负载、Q2组成的回路,加在负载Load两端的电压左正右负,如图4.1.2所示,此时电机正转;如果让Q7、Q8导通Q2、Q3关断,电流会流经Q8、负载、Q7组成的回路,加在负载Load两端的电压为左负右正,此时电机反转,对应图4.1.3所示。另外如果让Q2、Q3关断Q7、Q8也关断,负载Load两端悬空,此时电机停转。这样就实现了电机的正转、反转、停止三态控制。
//重定义std库内putchar,以printf调用char putchar (char c) { static unsigned char flag = 0; if (!flag || c == 255) { OUTI (0x80); flag = 0;
21
if (c == 255) { return c; } } if (flag == 16) { OUTI (0x80 + 0x40); } OUTD (c); //送一个字符显示_nop_ (); flag++; // increment the line flag if (flag >= 32) { flag = 0; } //显示完之后清除return(c); }
//数据写入命令void BWriteData () { pc8255 = 0x01;//写数据pc8255 = 0x05;//读入数据,执行命令_nop_ (); pc8255 = 0x01;//读忙,E为1 }
//命令行输出void OUTI (unsigned char oi) { pb8255 = oi; BWriteCommand (); _nop_ (); _nop_ (); pc8255 = 0x02;//读忙}
2.1.2芯片框图
24
2.2无线通信模块部分调试程序源代码
#include <REGX51.H>
相关主题