双轮平衡车,用51
单片机实现的
作者:哈尔滨工程大学 尹亮
摘 要
本设计采用两块Cygnal公司推出的C8051F005单片机分别作为“双轮直立自平衡机器人”(以下命名为Sway)和人机交互上位机的控制核心。车体倾斜角度检测采用AD公司推出的双轴加速度传感器ADXL202及反射式红外线距离传感器。利用PWM技术动态控制两台直流电机的转速。上位机与机器人间的数据
通信采用迅通生产的PTR2000超小型超低功耗高速无线收发数传MODEM。人机交互界面采用240*128图形液晶点阵、方向摇杆及按键。基于这些完备而可靠的硬件设计,使用了一套独特的软件算法,实现了Sway的平衡控制与数据交换。
本设计的主要特色:
1. 高速(25MIPS)低功耗的SOC单片机为各种复杂算法的实现提供了保障,丰富的片内外设为高速数据采集及PWM调制信号的生成提供了方便,片内温度传感器方便对温度的采集。片内JTAG功能为程序的调试及对系统的现场编程提供了方便。
2. 高效的H型PWM
电路提高了
电源的利用率,实现了电机的平滑变速。
3. 双轴加速度传感器及光电传感器的使用提高了车体倾斜角度检测的精度,差分算法的应用提高了系统的抗干扰能力。
4. 优化的软件算法,智能化的自动控制使车体运动准确平稳。
5. 高速的无线数据传输给各种远程数据采集和智能控制提供了保障。
6. 大屏幕液晶(蓝屏)显示及360度方向摇杆为人机交互提供了良好的界面。
一、 硬件方案的选择与论证
根据设计要求,系统可以划分为几个基本模块,如下图所示。对各模块的实现,分别有以下一些不同的设计方案。
无线控制上位机模块组成
1、 MCU主控制器
方案一:采用89S52单片机作为主控制器。优点:价格低廉,程序资源丰富,技术比较成熟。缺点:运算速度慢,很难担任复杂算法的计算工作;程序储存空间小,不能储存大规模程序代码;数字外设少,片内没有模数转换器,不能直接进行数据采集。
方案二:采用PHILIPS公司出品的LPC2119 ARM7内核处理器。优点:处理速度快(指令速度可达60MIPS),可以担任大部分复杂算法的计算工作;片内外设非常丰富,可以进行实时数据采集,多种数据通信方式可供选择。缺点:价格昂贵,对于已有51系列单片机开发经验的人员来说原有程序不兼容。
方案三:采用Cygnal公司推出的C8051F005单片机。优点:具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容,方便原有程序的移植。指令速度大大提高(最高25MIPS),可以担任复杂算法的运算工作。片内集成了一个12位100KSPS的多通道ADC子系统,2个电压输出 DAC、2个电压比较器、片内电压基准,这为进行实时的数据采集提供了方便。片内具有4个通用的16位定时器、一个具有5个捕捉/比较模块的可编程计数器 /定时器阵列(PCA),这为生成PWM信号给电动机调速提供了方便,又不会过多占用CPU资源。片内拥有2304B内部数据RAM,32KB FLASH储存器,可以在系统编程与全速非侵入式JTAG调试,这为生成大量程序代码和在线调试提供了保证。
基于上述理论分析,拟选择方案三。
2、 倾角检测
方案一:采用水银开关。优点:价格便宜,货源广泛,原理简单。缺点:输出开关量,不能线性调整。震动易受到干扰,很难应用于高速高噪声场合。
方案二:采用光电接近传感器。优点:价格便宜,输出线性度好,方便对其输出的数据进行处理与调整。缺点:反射强度随着反射面材料或颜色的不同而改变,很难广泛适应不同的路面。
方案三:采用AD公司生产的双轴加速度传感器ADXL202。优点:PWM输出,方便与单片机进行接口,线性输出,输出精度高,可以做高精度控制。缺点:价格昂贵,算法复杂。
方案四:综合采用光电接近传感器与ADXL202。优点:既克服了光电传感器对材料与颜色的挑剔,又克服了ADXL202的算法复杂。
基于上述考虑,拟采用方案四。
3、 电机驱动调速模块
方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。
方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。
方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。 这种电路由于工作在管子的饱和截至模式下,效率非常高;H型电路保证了可以简单的实现转速和方向的控制;
电子开关的速度很快,稳定性也极强,是一种广泛采用的PWM调速技术。
基于上述理论分析,拟选择方案三。
4、 车轮检速及路程计算模块
方案一:采用霍尔集成芯片。该器件内部由三片霍尔金属板组成,当磁铁正对金属板时,由于霍尔效应,金属板发生横向导通,因此可以在车轮上安装磁片,而将霍尔集成芯片安装在固定轴上,通过对脉冲的计数进行车速测量。
方案二:受鼠标工作原理的启发,采用断续式光电开关。由于该开关是沟槽结构,可以将其置于固定轴上,再在车轮上均匀的固定多个遮光条,让其恰好通过沟槽,产生一个个脉冲。通过脉冲的计数,对速度进行测量。
以上两种都是比较可行的转速测量方案。尤其是霍尔器件,在工业上得到广泛采用。但是在本设计中,小车的车轮较小,方案一的磁片密集安装十分困难,容易产生相互干扰。相反,方案二适用于精度较高的场合,可以在车轮上加较多的遮光条来满足脉冲计数的精度要求,因此拟采用方案二。
5、 温度检测
由于主控芯片C8051F005内部包括一个温度传感器连接到内部ADC的其中一路,因此省去了在外部挂设温度传感器的电路。
6、 加速度检测
采用AD公司生产的线性PWM输出加速度传感器ADXL202与主控制器的捕获比较模块接口,通过对ADXL202输出脉宽的测量精确检测车体水平加速度。
7、无线数据通信
由于本设计需对车体进行指令的传送与数据的接收,因此需要高速的无线数据传输模块担任此工作,经过比较拟选择哈尔滨迅通科技推出的PTR2000超小型超低功耗高速无线收发数传MODEM。该产品工作频率为国际通用的数传频段433MHz,FSK调制,抗干扰能力强,采用DDS+PLL频率合成技术,频率稳定性极好。灵敏度高,达到-105dBm,最大发射功率+10dBm,低功耗,待机状态仅为8uA。工作速率最高可达20Kbit/s(也可在较低速率下工作如9600bps),由于采用了低发射功率,高接收灵敏度的设计,因此使用无需申请许可证。
7、 液晶显示
液晶显示屏用于显示由Sway采集并无线传输回来的各种数据,由于数据种类很多(可以扩展)拟采用240128点阵液晶显示模块。该液晶显示模块为并行传输,速度较快,蓝色背光美观大方。
8、方向输入
方向输入采用现今流行的360度游戏遥杆用于远程控制小车的运动方向。
9、电源选择
方案一:所有器件采用单一电源(6节AA电池)。这样供电比较简单;但是由于电动机启动瞬间电流很大,而且PWM驱动的电动机电流波动较大,会造成电压不稳、有毛刺等干扰,严重时可能造成单片机系统掉点,缺点十分明显。
方案二:双电源供电。将电动机驱动电源与单片机以及其周边电路电源完全隔离,利用光电耦合器传输信号。这样做虽然不如单电源方便灵活,但可以将电机驱动所造成的干扰彻底消除,提高了系统稳定性。
我们认为本设计的稳定可靠性更为重要,故拟采用方案二。
二、程序语言的选择
方案一:采用汇编语言编程。优点:代码效率较高,节省程序储存空间,与硬件接口容易,调试方便。缺点:当算法复杂时程序编写非常复杂,可读性差。
方案二:采用C语言作编程。优点:逻辑符合思维习惯,算法应用灵活,计算功能强大,程序的可读性强,方便在不同的处理器间移植。缺点:与硬件接口不良,占用资源较多。
由于该系统在控制方面涉及一些复杂算法,而使用的主控制器程序与数据储存空间较大,
综合上述考虑,拟采用C语言作为编程工具,采用国际流行的Keil C编译生成程序代码。
三、 作品的科学性与先进性
目前现有的机器人或短距离运输工具都以四轮传动机构作为动力系统,其劣势在于系统的占地面积较大、转弯半径较大、行动不够灵活。而我设计的系统可以两轮直立移动,这样就大大减小了占地面积,转弯半径非常小,移动轨迹非常灵活,在场地面积较小或要求灵活运输的场合十分适用。另外与四轮车相比其驱动功率大大减小,为电池长时间供电提供了可能,这也为环保轻型车提供了一种新的思路。另外,无线高速数据传输系统为把该系统应用于无人驾驶进行数据采集或现场勘测提供了有利条件。
四、市场前景分析
该系统适用于对场地面积要求严格的场所进行人员的短距离运输,当人站在该车体上时仅靠身体的前倾或后仰就可以完成车体前进或后退的动作,并以前倾或后仰的程度来控制车体的移动速度。
当需要在人员难以接近的场所进行无人勘测与数据采集时,该车体可以灵活的出入各种环境采集重要的数据发送回来供科技人员研究。
本作品更可应用于智能玩具领域。提高孩子们的动手能力和思考问题的能力,从而启发他们的创新意识。
作品图片欣赏(点击看大图):