您当前的位置:五五电子网电子知识电子知识资料机器人-智能车基于AVR单片机电动车跷跷板的设计 正文
基于AVR单片机电动车跷跷板的设计

基于AVR单片机电动车跷跷板的设计

点击数:7404 次   录入时间:03-04 11:37:43   整理:http://www.55dianzi.com   机器人-智能车

  一、要求
  
  设计并制作一个跷跷板电动车,在不加配重的情况下,电动车从起始端A出发到跷跷板末端B循线行驶,并要求在中心点C附近,使跷跷板处于平衡。然后电动车从B点停止5s后,Imln内倒退回起始端A。
  
  发挥部分:将配重固定在可调整范围内,将电动车放置在地面距离跷跷板起始端A点以外的90度扇形区域内,电动车循线自动驶上跷跷板,并在跷跷板上取得平衡,保持平衡5s钟以上;然后改变配重放置的位置,电动车应能重新平衡。
  
  对于基本部分,要用光电传感器(ST178)保证小车在跷跷板上走直线,用角度传感器SCA100T-D02检测角度。然后,进行算法的设计。
  
  在整个行驶过程中,分阶段实时显示电动车行驶所用的时间,给出明显的平衡指示。我们选用NOKIA3310屏,设置一个定时器就可以显示了。
  
  对于发挥部分,硬件上不用加模块,只要再设计算法就可以了。
  
  觉得达到这些要求不是很难,于是进行了创新设计分析。为小车增加了躲避故障检测、速度测量、语言提示等功能。

  二、方案实现
  
  1.硬件设计
  
  (1)总体方案
  
  系统主要由传感器、ATMEGA32单片机、直流电机驱动器和电动车左侧轮、右侧轮轮电机、显示及按键输入几部分组成,系统结构框图如下图所示。

跷跷板系统方框图


  
  分别用于前进、后退的5个红外光电传感器ST178输出的轨迹探测信号,分别送入ATMEGA32单片机PCO-PC4口和PA3-PA7口。由单片机通过软件计算判断行驶轨迹,发出2路PWM控制信号,经直流电机驱动器,分别控制电动车左侧轮、右侧轮电机的运行。
  
  倾角传感器SCA100T-D02输出的检测电动车倾角信号,送入ATMEGA32单片机PBO~PB2、PC7口。当电动车到达中点C后,单片机控制电动车改为步进方式,寻找平衡点。当倾角信号约等于零时,单片机发出控制信号,使电动车停车Ss,并由状态提示模块发出平衡信号,由NOKIA 5110 LCD显示时间和工作状态。
  
  电动车在中点C平衡Ss后,单片机发出控制信号,控制电动车以一定的速度向末端B循线行驶。并由红外光电传感器ST178探测到末端B的位置,控制电动车在末端B停车。然后监测尾部光电传感器,控制左、右轮电机反转,电动车循线倒退回到起点A。
  
  按键输入信号,接人ATMEGA32单片机的PD5、PD6口。PD5口对应的按键提供任务选项选择,PD6口对应的按键负责确认任务执行。
  
  (2)循线检测电路设计
  
  光电传感器ST178检测电路的设计如下图所示。
  
  调节RP1可以改变检测的灵敏度,光电传感器通过反射接收给定轨迹的明暗变化,转换成强度不同的电流信号,通过7414比较器,转换成TTL电平给单片机。检测到黑线,单片机读入信息0,否则为1。

循线检测电路


  
  (3)驱动电路设计与计算

  设计的直流电机驱动电路如下图所示。单片机输出信号PB3为高电平时、三极管Qll、Q12、Q16导通,电机电流从L2流向Ll,电机正转;单片机输出信号PDO为高电平、三极管Q13、Q14、Q15导通,电流从Ll流向L2,电机反转。需要特别注意的是,PB3和PDO不能同时为高电平,以避免左右两侧的桥臂上下直通而烧毁三极管。
  
  单片机输出信号PB3为高电平时,为保证Qll、Q12、Q16饱和导通,取R16=150k,R12=lk,流过三极管Qll的集电极电流为:

  保证了电路的可靠工作。

驱动电路设计

  2.控制算法与软件设计
  
  (1)循线检测控制算法
  
  电动车前排光电传感器信号由PCO~PC4送入AVR单片机,后排光电传感器信号由PA3~PA7送入AVR单片机。在AVR程序中读取PCO—PC4的状态值,取反后存放到RAM单元1中称数据1;读取PA3~PA7的状态值,取反后存放到RAM单元2中称数据2,然后进行数据比较。若数值l>数值2,说明电动车方向偏右,则发出PWM命令使电动车向左调整;直到数值1=数值2,且数值不等于10000和00001时,则表明电动车寻迹准确,发出电动车全速前进命令。
  
  (2)平衡检测电路与倾角计算
  
  倾角传感器SCA100T-D02单轴的最大有效测量范围为±90度。当传感器位置发生倾斜时,则传感器可以检测到沿X、Y轴的重力分量。通过SPI接口读取的数据范围为00000000000—11111111111,00000000000表示-90。,10000000000表示O度,11111111111表示+90度,所以其角度计算公式可以表示为:

  其中Dout表示传感器的输出值,sens表示芯片的灵敏度,为一固定的系数。
  
  由于系统对角度值采样频率随应用条件的不同有所变化,经实测本系统的角度变化最快不会超过20Hz,我们取采样周期为50ms。实行过程中还通过校正行为来寻找相对零度时的值,得到这个值后,每次测量时将测量值减去或加上这一偏差值,从而校正地面不平引起的相对误差。电动车在整个平衡过程中将尽力寻找坡度最小的点,并根据当前坡度对自己的位置作出调整,当坡度最后接近相对0时,则判断电动车达到平衡点。
  
  (3)软件设计
  
  本系统软件设计方案采用了菜单式的控制方式。菜单式的控制方式控制方便,操作简单,可以满足电动车不同行驶状态的要求。菜单选择设计了两个键控制,一个为菜单的任务选项键,另一个为相应项目的执行键。
  
  菜单的任务选项有:基本动作,发挥动作,创新动作,姿态调整,X修正,Y修正。控制程序总流程结构图如下图所示。软件设计也有难点,尤其是平衡的判断。

控制程序总流程结构图


  
  第一个算法,在快达到平衡时、小车会冲过平衡点很远,然后,退的又很慢、超出了时间限制。经改进,让小车冲过平衡点后、先快速初调,再慢调,直到达到平衡。解决了超时问题。

  另外还加上平时做过的一个语音模块APR9600,用来发出问侯语,并提示开始和结束。
  
  又加上一个ATMEGA8控制一个点阵,与主控制芯片通信,显示前进或后退。
  
  本系统除完成基本部分和发挥部分的设计要求外,还设计了其他的功能:
  
  ①LED对工作状态进行提示;
  
  ②语音对工作过程开始、结束的提示;
  
  ③前后车灯指示;
  
  ④姿态调整;
  
  ⑤LCD汉字显示。
  
  最后测试表明,平衡时间、各阶段行驶的时间及平衡的测量,均达到了要求。

 




本文关键字:单片机  电动车  跷跷板  机器人-智能车电子知识资料 - 机器人-智能车