ifeng_com 发表于 2012-4-18 13:23:10

基于Mega128单片机的智能小车制作

本帖最后由 ifeng_com 于 2012-4-18 17:39 编辑


上图为题目,小车在A点开始发车,依次通过图中的BCDEF点,在此期间,每到一个点用语音播报出小车走过的距离和转过的角度,当车到达F点后,开始寻着黑线爬上斜坡,小车到达平台上时,停车1分钟,在此期间将识别小车与前方障碍物的颜色(有红,黄,蓝)三种,并识别出车与障碍物的距离,每次识别时,障碍物的距离都不定,可随意放置。1分钟到达后,小车开始原路返回A点。题目大致是这个意思,具体的要求我记不清了。
1. 功能模块

本车以Atmega128单片机为控制核心,实现智能车的多功能智能控制。主要功能包括语音准确播放小车行驶长度、角度值和时间,寻迹爬坡,颜色识别,超声波测距,液晶显示等功能。

2. 车体结构设计
本智能车的底盘由铝合金和覆铜板,经过丝钉固定而成。智能车采用四轮驱动,这样既增强车体的稳定性,又增大智能车的驱动能力。电机采用的是直流减速电机,并由L298N芯片控制驱动。车身由三层电路板构成,分别为:底层电机驱动板、中层为ATmega128最小系统板、上层传感器板,各个板之间由铜柱固定。由于电子罗盘易受液晶、电机、语音芯片等磁性器件的电磁干扰,我们采用了两个铜柱将其架高,以减小角度测量误差。模型如图1-1、图1-2、图1-3所示。




3.爬坡与最佳车身计算
   由于智能车对于爬坡的要求,车身不能太长。根据题目中30°斜坡角,计算可得智能车两车轮之间的长度不能超过14cm,否则,智能车在经过斜坡与平台的交界点的时候,会被卡在斜坡上,小车爬坡结构图如图1-4所示。
若智能车刚好卡在斜坡上,则BC距离已知,角度
∠BAC= (180°- 150°)/2 = 15°
智能车两个轮子之间长度L与BC以及∠BAC之间的关系为:
       sin∠BAC = BC / (L/2);
故,L = 2*BC/sin∠BAC = 14 (cm);
即,智能车两轮中心距不能超过14cm。


4. 电机驱动电路

本智能车电机驱动芯片采用的是L298N。L298N是一款承受高压大电流的全桥型直流/步进电压驱动器。

电机控制逻辑如下:以电机M1为例,当使能端EN A为高电平是,输入引脚IN1为高电平,IN2为低电平,电机A反转;如果使能EN A为高电平,输入引脚IN1为低电平,IN2为高电平,电机正转。表2-1为电机驱动EN A/B的控制逻辑。

电机驱动A/B的控制逻辑

                      输入信号                                                                电机运动方式
使能端EN A/B        输入引脚IN1/3             输入引脚IN2/4       
      1                      1                                         0                                                     前进
   1                      0                                         1                                                     后退
   1                      1                                         1                                                     紧急停车
   1                      0                                         0                                                     紧急停车
   0                      X                                         X                                                     自由转动
为了智能车能稳定行驶,角度、距离的精准控制,上坡下坡,我们采用了四轮驱动,用两片L298N控制四个直流减速电机。同时为了保护ATmega128主控芯片不被L298N产生的瞬间高电平击穿,我们采用TLP521光电耦合器进行了隔离保护。



5. 语言系统


      语音播报模块我们使用的是ISD1760芯片,如图2-10。该芯片提供多项新功能,包括内置多信息管理系统,双运作模式(独立按键&SPI总线),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。
    这里我们采用的是SPI协议串行工作模式。语音模块调试成功以后,我们事先录制了相应的语音,然后智能车行驶过程中通过主控器控制ISD1760,播报出所需要的信息。智能车可以播放长度及其单位、角度值和时间,颜色类型和距离等。

6. 颜色识别模块
颜色的识别我们使用的是TCS230颜色识别传感器,TCS230颜色识别传感器。
7. 红外寻迹
寻迹爬坡模块我们使用的是红外对射管。红外对射管分为发射管和接收管,发射管发出的光为红外线,而红外线照到白色物体上时被反射,当红外线照到黑色物体上时被吸收。当接收管接到接收反射来的红外线时,接收管导通,否则不导通。根据接收管的导通性,通过比较器LM339判断并处理接收管输出的高低电平,然后单片机处理LM339输出电平的高低,来控制电机模块,使智能车始终沿黑线行驶。
8.角度测量模块
本智能车的角度测量采用的是电子罗盘GY-26模块,该模块是数字式传感器,才用IIC和UART串行总线控制。
9.超声波测距
由于ATmega128单片机具有外部电平捕捉功能,捕捉的高电平时间为微秒级别,再加上合理精准的程序算法,我们的超声波测距模块测的数据能精准到1毫米。


10.一些照片














11.分模块程序资料和总程序资料



















困境堂主 发表于 2012-4-18 18:45:19

128就是强啊,咱还在51呢···········

ifeng_com 发表于 2012-4-18 19:36:08

困境堂主 发表于 2012-4-18 18:45 static/image/common/back.gif
128就是强啊,咱还在51呢···········

会51,玩avr系列的单片机很容易,说白了就是玩寄存器

困境堂主 发表于 2012-4-18 21:40:58

本帖最后由 困境堂主 于 2012-4-18 21:44 编辑

ifeng_com 发表于 2012-4-18 19:36 static/image/common/back.gif
会51,玩avr系列的单片机很容易,说白了就是玩寄存器

嗯,新手呢,下学期准备上手AVR,对了,想向楼主学习呢,不介意的话给个扣扣吧,要不加我也成,QQ;809948353

ifeng_com 发表于 2012-4-18 23:46:56

困境堂主 发表于 2012-4-18 21:40 static/image/common/back.gif
嗯,新手呢,下学期准备上手AVR,对了,想向楼主学习呢,不介意的话给个扣扣吧,要不加我也成,QQ;809948 ...

我现在也主攻FPGA,你可以加我,1400574461

DAsankang 发表于 2012-4-19 15:04:16

我也打算做一个以128为主控的机器人,用四轮小车当底座。资料很上的很及时啊。谢了能加我吗2417318621

困境堂主 发表于 2012-4-19 16:02:27

ifeng_com 发表于 2012-4-18 23:46 static/image/common/back.gif
我现在也主攻FPGA,你可以加我,1400574461

加你QQ有验证问题哦,真实姓名·········

ajin505 发表于 2012-4-19 16:06:23

很强大 手头只有mega32有时间试试谢谢楼主分享

plc_avr 发表于 2012-4-19 16:09:19

这个貌似很强啊,顶起!

ifeng_com 发表于 2012-4-19 23:04:11

困境堂主 发表于 2012-4-19 16:02 static/image/common/back.gif
加你QQ有验证问题哦,真实姓名·········

吕兵斌,不好意思

371278638 发表于 2012-4-21 15:28:48

学习我也做了一个,不过很多问题没解决!希望能向楼主请教.....我用的是mega16!

simple_wyj 发表于 2012-4-30 13:32:01

准备用FPGA做个小车,,先标记一个
页: [1]
查看完整版本: 基于Mega128单片机的智能小车制作