zxj123

zxj123

0个粉丝

92

问答

0

专栏

0

资料

zxj123  发布于  2012-12-24 15:40:34
采纳率 0%
92个问答
3409

简易智能电动车设计

 
简易智能电动车设计

摘       要

        本系统设计以MC9S12DDG128单片机为核心器件实现对电动小车行驶的自动控制。通过多个红外光电传感器对汽车运动位置进行检测,运用PWM直流电机调速技术,完成对小车运动方向和避开障碍物的控制,使用PID算法使小车的速度快速得到响应。



一、           方案的选择和论证



根据题目基本要求,可将其划分为如下几个部分:

●控制器模块;

●障碍物探测模块;

●路面轨迹检测模块;

●环境光照测量模块;

●电机驱动模块;

●显示模块。

●电源模块



1、总体方案:

方案一:用继电器来控制电机的停与转,但是转速不可调。用红外传感器实现避障,红外传感器发出了红外光,障碍物反射光,距离障碍物远近不同,传感器输出的信号不同,将信号送入单片机进行A/D转换,控制小车的左传、右转。

方案二:用单片机的PWM信号控制电机的转速,即可实现电机转弯,用红外接近传感器实现避障,当距离障碍物10cm时,红外接近传感器由低电平变为高电平,由单片机控制小车转弯,其中避障采用红外接近开关,电机驱动采用MC33886其有两路PWM信号输入,可同时控制2个直流电机进行调速。

比较两种方案,运用方案一,信号的处理比较复杂,不容易实现对小车的控制。方案二运用了比较先进的传感器,使问题的处理变得相对简单。同时由于Freescale MC9S12DG128单片机具有16路10位/8位高速AD接口,可方便的扩展任何传感器。16位4通道/8位8通道的PWM口可以方便的扩展电机。通过比较我们最终选用了方案二,并基本完成了题目设计要求。



2、控制器模块:

       系统设计以MC9S12DDG128单片机为核心器件,可方便的扩展传感器电路,16位4通道/8位8通道的PWM口可以方便的扩展电机,因此可以很好的控制小车的运行。




3、路面轨迹检测模块:

       路面检测模块实现小车检测路面的黑线,当检测到黑线小车在黑线上停留5秒钟,然后加速前进。地面信息的采集可采用光敏电阻辨识路面黑白两种状态,但是该方法受环境光照强都的影响较大。数据误差较大。这里采用光敏电阻采集环境关照的情况。并且可以设定环境光的门限值,当环境光强低于某一门限值时智能小车自行启动。搜索房间情况。



4、障碍物探测模块:

       障碍物探测模块用来判断小车前方是否由障碍物,并确定小车与障碍物之间的距离。为了确保小车在行驶过程中避免撞到障碍物,系统需要利用测距传感器测出障碍物与小车之间的距离,使小车作出正确的动作,避免与障碍物相撞。



5、距离测量模块:

       距离测量模块使用来测量小车从启动到任意时刻所走的路程,考虑到小车在行驶过程中,车轮旋转一圈所行驶的距离就是车轮的周长,因此只要在某时间间隔内测量出车轮的圈数,依照l=n×c(其中l为路程,c为车轮周长,n为圈数),即可得出路程数值。



6、电机驱动模块:

       直流电机驱动使用33886电机驱动专用芯片在驱动性能方面比L298优秀,并且电路简单容易实现。



7、显示模块:

       在小车运行的过程中,需要对小车运行的时间和路程进行显示。可以考虑两种显示方案。

       方案一:使用液晶显示屏显示时间和路程。液晶显示屏具有轻薄短小,耗电量低,无辐射危险,可视面积大,画面效果好,分辨率高等特点。

       方案二:使用传统的数码显示。数码管具有低能耗,低损耗等特点,但是数码显示的信息量较小。

       在本系统中,采用液晶显示。



8、电源模块:

       系统使用可充电池供电。

      

二、           系统实现原理方框图



1、系统原理

利用光敏电阻来感知黑线,能够使小车沿着黑线的轨迹走;当检测到障碍物时,利用红外传感器发出了红外光,障碍物反射光,使小车能够避开障碍物。









2、系统方框图




三、   单元电路设计



1、光敏电阻电路:

利用光敏电阻可以感知颜色的深浅,并根据颜色的深浅的不同而输出不同的电压信号,从而使小车区分白纸和黑线。具体实现电路如下所示:

      



























2、PWM信号发生电路:

       PWM信号的发生一般我们都会采用单片机提供的定时器模块。其缺点是:单片机的定时器数量有限。一般都需要留做他用,MC9S12DG128单片机PWM周期和占空比的计算方法。















系统时钟经过分频得到A,B,SA,SB 分别送给PWM模块,可以得到8路不同频率不同占空比的PWM信号。

3、电机驱动电路:

      



4、单片机最小系统板电路:



      

5、电源部分电路:

   系统使用的电压是由:5.0v, 6v, 7.8v。各种传感使用的电压是5伏特,电源使用7.8伏的蓄电池供电。其中的6v电压供给前面的红外壁障传感器。

系统在启动瞬间,由于电机的突然起动可能会拉低系统电压,造成单片机的复位,在运行过程中也有可能造成上述结果。所以这里给单片机和传感器供电分立,单片机采用LM2940,其压差为0.5v。传感器采用7805和7806。

具体电路如下:


6、红外传感部分电路:



      

7、显示部分电路:

系统的人机接口是1602液晶显示模块,使用MC9S12DG128单片机的PORTA和PORTK口。PORTK口的低3位用作CS,RW,E操作口,PORTA用作数据接口。

其中PORTA口必须加上拉电阻。

三、软件设计



1.主程序流程图:




2.红外避障传感器流程图:


关于控制算法:

方案一:采用神经网络,该控制算法具有记忆功能,对要处理的信息进行预测。能较快的响应并达到平衡状态。

方案二:采用模糊控制算法,优点是使得要处理的信息更加准确。模糊化将采集到的数据通过隶属度函数影射到模糊集,然后经过去模糊化再将模糊集的信息影射到精确集。但是难度在于隶属度函数的选取。没有规则可依。

方案三:采用较为通用的PID控制算法,控制电机的转速。

     编成算式:

       #define C 0.16

float KP = 8;

float KD = 0.01;

float KI = 1;

//float C=0.17;  // 车轮周长

float position;

float cPWMK;

float error1 = 0;

float error2 = 0;

float error3 = 0;

float speed(float P) {

float temp;

temp = 1.7-C/P;

return temp;

}

extern void driver_dcmotor(unsigned int pwm_input_dc){

      PWMDTY45=pwm_input_dc;

}

long PID(unsigned int target_pwm)

{

unsigned int PWM;

error1=speed(period);

cPWMK=KP*(error1-error2)+KI*error1+KD*(error1-2*error2+error3);

PWM =(int)(target_pwm+cPWMK);

error2 = error1;

error3 = error3 + error1;

return PWM;

}






我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区