基于光学传感器的智能玩具小车设计
[10-10 20:36:41] 来源:http://www.88dzw.com 电子制作 阅读:8680次
文章摘要:图4 左路马达控制电路软件系统设计系统上电后,首先进行初始化,对EMC78P156的寄存器进行设置,使能中断标志寄存器,等待中断。图5是主程序流程图。图5 主程序流程图中断产生时进入中断处理子程序,首先要关闭中断标志且保护好现场,然后读取并解析XYZ坐标值,分成以下几种情况。(1)判断X轴变化,如果X值在大于14小于等于17时,马达不左右转动,然后再判断Z轴坐标值的变化,如果Z值也在大于14小于等于17时,马达不前后转动。(2)如果X轴坐标值大于17,判断Z轴坐标,若Z值大于17,则反转右马达,之后左右马达后转;若Z值小于14,则正转左马达,之后左右马达前转;否则马达不转动。(3)如果X轴坐标
基于光学传感器的智能玩具小车设计,标签:电子小制作,http://www.88dzw.com图4 左路马达控制电路
软件系统设计
系统上电后,首先进行初始化,对EMC78P156的寄存器进行设置,使能中断标志寄存器,等待中断。图5是主程序流程图。
图5 主程序流程图
中断产生时进入中断处理子程序,首先要关闭中断标志且保护好现场,然后读取并解析XYZ坐标值,分成以下几种情况。
(1)判断X轴变化,如果X值在大于14小于等于17时,马达不左右转动,然后再判断Z轴坐标值的变化,如果Z值也在大于14小于等于17时,马达不前后转动。
(2)如果X轴坐标值大于17,判断Z轴坐标,若Z值大于17,则反转右马达,之后左右马达后转;若Z值小于14,则正转左马达,之后左右马达前转;否则马达不转动。
(3)如果X轴坐标值小于14,判断Z轴坐标,若Z值大于17,则反转左马达,之后左右马达后转;若Z值小于14,则正转右马达,之后左右马达前转;否则马达不转动。
中断处理子程序的流程如图6所示。
图6 中断处理子程序流程
设计技巧
1 传感器的设计技巧
ET21X111对红外线的光谱响应最好,但自然光中含有大量的红外线,所以强烈的自然光会影响传感器的数据,导致输出的坐标与实际坐标有较大的偏差,解决方法是加滤光片,但这也只能起到衰减作用,具体应用视情况而定。
2 马达控制电路设计技巧
设计控制马达正反转的电路时要注意:因MCU在上电的时候,I/O的状态是不确定的,所以程序在一开始就要将Q3、Q4的两个I/O设成HI(Q3、Q4为PNP管,如果为NPN管则I/O设成LOW),以防止在上电的时候两个I/O都为LOW,使Q3、Q4导通形成短路。另外需要注意的是在同一时间Q3、Q4只能有一个是导通的。
3 MCU设计技巧
在电刷直流马达启动或转动的时候,会产生很大的电源毛刺。这对MCU的工作非常不利,所以加入此LCπ型滤波电路,如图7所示。
图7 滤波电路
4 程序设计技巧
智能小车在运行的过程中,需要一边读取传感器传过来的坐标数据,一边控制马达的PWM输出。传感器会每12ms输出一次坐标资料,所以最好的方式是采用中断来读传感器资料,而在没有资料输出的时间做PWM输出的动作。
《基于光学传感器的智能玩具小车设计》相关文章
- › 基于光学传感器的智能玩具小车设计
- 在百度中搜索相关文章:基于光学传感器的智能玩具小车设计
- 在谷歌中搜索相关文章:基于光学传感器的智能玩具小车设计
- 在soso中搜索相关文章:基于光学传感器的智能玩具小车设计
- 在搜狗中搜索相关文章:基于光学传感器的智能玩具小车设计