更全的杂志信息网

基于ARDUINO的九轴智能小车的设计与实现

更新时间:2016-07-05

0 引言

ROBOTAC是中国原创的国家级机器人科技竞技赛事。从2015年起,ROBOTAC成为共青团中央和全国学联主办的“全国大学生机器人大赛”的赛事项目之一。ROBOTAC是ROBOT(机器人)+TACTIC(策略、战略)的缩写。赛事融合电竞游戏的特点,以科技创新实践为基础,注重操控性与团队配合,因此强化机器人的对抗稳定性,更有利于的竞技中获得优异的成绩。本文以操控性能优良的炮铲为例,提出基于ARDUINO与九轴陀螺仪搭配的方式,进一步提升智能小车的稳定性[1]

1 智能小车的机械结构

小车由主控板控制带编码器的伺服电机驱动车轮快速运动[2],同时亦可操纵炮台旋转、发射炮弹、抬铲等动作,配备了蜗轮蜗杆减速箱、2个转盘电机与发射炮台。为保证连接的稳固,皆采用锁定接插件,包括在硬件电路的接口设计上,都充分考虑了激烈对抗中的稳定性和可靠性。机械结构如图1图2 所示。

图1 智能小车俯视图

图2 智能小车3D渲染图

2 智能小车的硬件结构

考虑智能化趋势愈发明显,该系统由各种传感器[3]作为感知输入,包括常用的按键、红外[4]、蜂鸣器、电机驱动,还有LCD液晶显示电量与温度检测报警等。该智能系统采取模块化的设计[5]与组装,更有利于在比赛过程中对时间的把控程度[6]。硬件主要分为3个部分,分别是:主控部分、传感器部分、电机驱动部分,具体如图3所示。

图3 智能小车的硬件原理

小车通过2个直流电机驱动车轮运动来获得动力,直流电机的驱动电路设计关系到整个系统的稳定性,因为电机反转时产生的反向电动势会干扰到电源系统内其他设备的运行。选用L298P做电机驱动器,它内部包含4通道逻辑驱动电路,可同时驱动2个直流电机,输出电流可达2.5 A。

其中小车姿态的获取采用的是九轴传感器,它由3部分组成:加速度、角速度与磁力计,其与ARDUINO的链接采用I2C总线协议[7],因为ARDUINO自带wire库,用I2C模式更为方便。I2C模式只用2个引脚完成所有通信,分别是SCL和SDA,SCL一般是从主机发出时钟信号的引脚,SDA是双向的地址、指令和数据的传输引脚。

uint8_t i2cWrite(uint8_t registerAddress, uint8_t data, bool sendStop) {

FS_SEL[1:0]这2个位,用于设置陀螺仪的满量程范围: 0,±250 °/S; 1,±500 °/S;2,±1000 °/S;3,±2000 °/S。一般设置为 3,即±2000 °/S,因为陀螺仪的ADC为16位分辨率,所以得到灵敏度为:65536/4000=16.4 LSB/(°/S)。表2所示为加速度传感器配置寄存器。

return i2cWrite(registerAddress, &data, 1, sendStop); // Returns 0 on success

},以此同时还需i2cWrite、i2cRead等函数进行操作。具体硬件连接如图4显示。

图4 九轴传感器连接示意图

3 九轴传感器控制原理与过程

加速度传感器利用重力加速度,可以用于检测设备的倾斜角度,但是它会受到运动加速度的影响,使倾角测量不够准确,所以通常需利用陀螺仪和磁传感器补偿。采用磁传感器测量方位角是利用地磁场,但是当系统中电流变化或周围有导磁材料以及当设备倾斜时,测量出的方位角也不准确,这时需要用加速度传感器(倾角传感器)和陀螺仪进行补偿[8]。通过测量由于重力引起的加速度,计算出设备相对于水平面的倾斜角度,再通过分析动态加速度,可以分析出设备移动的方式。

IIC_Write_Byte(MPU_INT_EN_REG,0X00);

在开始之前应该对MPU60X0进行设置,主要设置角速度以及加速度的量程,加速度量程有±2 g,±4 g,±8 g与±16 g,角速度量程分别为±250,±500,±1000与±2000 °/sec (dps),可准确的追踪快速动作与慢速动作。表1所示为陀螺仪配置寄存器。

1 陀螺仪配置寄存器

Register(Hex)Register(Decimal)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit01B27XG_STYG_STZG_STFS_SEL[1∶0]

游成令的事迹引起了市食品药品监管系统的高度关注,市局领导亲自慰问并组织捐款10万余元,但高昂的治疗费用,让这个家庭根本无法承受。无奈之下,游成令丈夫在网上发表“一岁半女儿身患白血病,求帮我留住她的生命!”求助帖子,最终筹集到近20万元善款,及时解决了孩子前期治疗费用。

2 加速度传感器配置寄存器

Register(Hex)Register(Decimal)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit01C28XA_STYA_STZA_STAFS_SEL[1∶0]

AFS_SEL[1:0]这2个位,用于设置加速度传感器的满量程范围:0,±2 g;1,±4 g;2,±8 g;3,±16 g。一般设置为 0,即±2 g,因为加速度传感器的ADC也是16位,得到灵敏度为:65536/4=16384 LSB/g,在使用之前先设置好量程以便后面的换算。如写数据:

u8 IIC_Write_Byte(u8 reg,u8 data) {

IIC_Start();

IIC_Send_Byte((MPU_ADDR<<1)|0);

IIC_Write_Byte(MPU_PWR_MGMT1_REG,0X01);

IIC_Send_Byte(reg); IIC_Wait_Ack(); IIC_Send_Byte(data);

试验2:中晚熟西蒙6号覆膜1穴2株和早熟KX9384不覆膜 1穴 2株间种4∶4,2∶2,并与西蒙 6号常规覆膜种植对比试验(表2)。

if(IIC_Wait_Ack()){ IIC_Stop(); return 1; }

基岩钻孔施工采用150型回转式钻机成孔,采用φ73钻头,清水循环钻进。造孔完成后,以压力水冲洗孔内杂质,经验收合格后进入下一工序。灌浆可根据基岩灌浆深度采用分段自上而下灌浆法或采取全孔灌浆法。

小车轮轴与传感器Y轴平行,即绕Y轴旋转,竖直方向弧度计算公式为[9]: angle=atan2(x, z),换算成具体角度则使用公式:angle=atan2(x, z)×(180/3.14),陀螺仪获取角速度积分得到角度公式为:anglen=anglen-1+gyronn dt,式中anglen为第N次采样的角度值,anglen-1 为第N-1次的角度值,gyronn为2次采样值之间的角速度值,dt为2次采样之间的时间。将换算后的2个角度数据进行卡尔曼滤波融合,可获得小车真实角度。九轴各分量数据曲线如图5所示。

在数据输出方面,需要处理加速度传感器数据输出寄存器、陀螺仪数据输出寄存器、温度传感器数据输出寄存器等,由函数short MPU_Get_Temperature(void),u8 MPU_Get_Gyroscope(short gx, short gy, short gz),u8 MPU_Get_Accelerometer(short ax,short ay,short az)等分别完成。对MPU60X0的配置如下:

MPU_Set_Gyro_Fsr(3); MPU_Set_Accel_Fsr(0); MPU_Set_Rate(50);

嘉琪成绩优异,和同学相处愉快,不因为家境贫困而自卑,也不因为街舞夺冠而沾沾自喜,而且让大家觉得最了不起的是,“身价暴涨”的她没有接过一场商演。要知道她平时的一个练舞视频,被发布到网上,都会有上千万的点击量。她甚至都不怎么玩微博,不怎么上网,即便参加备受关注的街舞综艺节目《热血街舞团》时,也没见过她有过多的宣传。

积极开展创新、创业及学科技能竞赛等实践活动,加强大学生创新创业基地建设,规范基地运行管理流程,以基地为依托开展大学生创新创业项目和各类学科竞赛等实践活动。

IIC_Write_Byte(MPU_USER_CTRL_REG,0X00);

IIC_Stop(); return 0; }

这种和谐美的生成既与聚落的风水考虑、民族信仰密不可分,同时它也有着实际功能方面的思考。比如大部分聚落选择“坐北朝南,枕山面水”的朝向和环境就有着现实的生活需求。聚落“枕山”就可以挡住冬季西伯利亚南下寒风的肆虐与侵袭,而面南则可以在炎热夏季迎接温暖凉爽的东南风并获得充足的阳光日照。面水则因为靠近水源,方便人们生产、生活、灌溉与出行。同时,丰富的自然植被资源在满足具备充足水源的同时,又能保持水土,防止水土流失,还可以调节空间小气候。

IIC_Write_Byte(MPU_FIFO_EN_REG,0X00);

IIC_Write_Byte(MPU_INTBP_CFG_REG,0X80);

if(IIC_Wait_Ack()){ IIC_Stop(); return 1; }

IIC_Write_Byte(MPU_PWR_MGMT2_REG,0X00).

另外,菲律宾的海产也特别丰富,海鲜成为大部分食肆的必备菜式。鲜虾、龙虾、蟹、蠓、鱼以及鲜鱿等海产琳琅满目,以烧烤式(injhaw)烹调最受欢迎,令人垂涎三尺,食欲大增。

在教育现代化的进程中,信息技术在教学中得到了广泛应用和飞速发展,促进了大学英语课堂教学效果的提升。然而,信息技术在课堂中发挥越来越重要的作用的同时,也对大学英语教学带来了挑战和问题。现代化信息技术介入后,课堂生态中的各类生态因子之间的相互作用受到了影响,加剧了大学英语课堂生态平衡-不平衡-再平衡的循环过程,课堂生态结构和作用上的失衡日益突出。因此,研究信息化语境下大学英语课堂生态的失衡现象,分析其原因,并提出重构大学英语生态课堂的实践策略已经成为必然。

图5 九轴各分量数据曲线图

小车的姿态获取最终结果是一个角度,就是小车偏离平衡位置的倾角。通过以小车的这个倾角为变量进行PID控制,输出用于控制车轮转速的PWM值,那么相当于小车只有一个角度反馈环路,虽然能使小车平衡,但是增加了控制难度,所以通常会使用带测速的电机,再加入一个小车速度反馈环路,这样使得小车更容易控制。当PID用在自平衡小车中时,使用角度PD环与速度PI环进行控制:

pwm=angle×k1+angle_dot×k2+range×k3+wheel_speed×k4.

为了充分表达子制造任务之间输入与输出的逻辑关系,借鉴工作流模型中的控制结构表示方法[22],将子制造任务的逻辑关系集合表示为一个二元组

其中PID参数整定步骤如下: (1)将k1,k2,k3,k4均设为0;(2)逐步增大k1,使得小车刚好能够来回摆动;(3)再逐步增大k2,使得小车相对平稳,太大会使小车发生抖动;(4)增大k3,使得小车能够来回走动(不是摆动也不是抖动);(5)增大k4,使得小车能稳定自平衡。参数调整需要仔细考虑每个参数的作用,由函数void Kalman_Filter(double angle_m,double gyro_m),void pwm_calculate(),void LwheelSpeed()等控制函数实现。

4 结论

在不同角度、速度与碰撞中,由于输入不同,需要不断优化、计算和及时的调整其姿态,以保持车身的稳定性。通过引入九轴陀螺仪,增加了小车在操控过程中的稳定性,通过试验操作可以取得良好的效果。同时,通过ARDUINO控制系统简化开发步骤,获取更加丰富的易拓展资源,提高了ROBOTAC比赛用车的智能化程度,有利于在大赛中取得更好的成绩。

参考文献

[1] 卞云松.基于Arduino单片机的避障小车机器人[J].自动化技术与应用,2014(1):16-19.

[2] 崔才豪,张玉华,杨树财.利用Arduino控制板的光引导运动小车设计[J].自动化仪表,2011(9):5-7.

[3] 王典洪,孙蒙,黄小辉,等.基于单片机及传感器的机器人设计与实现[J].微计算机信息,2007(8):246-247.

[4] 富鑫鑫,龚春花,刘孟君,等.采用红外测距绕行障碍物算法的机器人设计[J].上海电力学院学报,2010(4):395-398.

[5] 纪欣然.基于Arduino开发环境的智能寻光小车设计[J].现代电子技术,2012(15):161-163.

[6] 赵建伟,班钰,王义,等.基于Arduino的智能小车的控制系统设计[J].兵工自动化,2015(5):74-76.

[7] 吴波涛,孔金平,王湘.基于Arduino和树莓派的智能小车的设计与实现[J].电子设计工程,2017(15):58-61.

[8] 赵津,朱三超.基于Arduino单片机的智能避障小车设计[J].自动化与仪表,2013(5):1-4.

[9] 章杰瑞,周屹.基于Arduino和PIC单片机智能小车平台的研究与设计[J].电脑知识与技术,2017(29):187-190.

曾锦翔,李林琛
《北京工业职业技术学院学报》2018年第2期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号