轻聊智能抛石车电控——基于Arduino的控制
智能抛石车这个题目,机械部分比重相当大,大部分队伍用了一个多月时间加工机械,留给电控的时间少之又少,认为就是一个简单的循迹程序。的确,主要就是一个循迹控制,玩过单片机的都知道,这是最最基础的电控,用arduino控制小车轮子正反转,“分分钟”完事一点也不夸张。但在实际备战过程中,结合小车的机械以及赛事规则的实际,大部分队伍还是难以解决这看似“小儿科”的控制。下面我来阐述一下如何根据这个赛题的实际情况做一个漂亮的控制。
电控分为三个部分:循迹;停车;旋转舵机。
一、循迹
循迹的最常使用方法是用三个红外传感器检测到的高低电平来判断小车是否沿着黑线正确行驶,在一般的场合,用数字输出digitalWrite()来让小车的左右轮正反转实现差速转弯足够了。但在基于本次赛题,频繁的正反转无法使自己装配的齿轮很好的啮合实现传动,严重影响了“指南”精度,所以并不推荐。使用analogWrite()在调节PWM占空比,能够较为平滑的控制循迹。
小车使用两个电机和一个万向轮。很多小组在调车过程中都遇到了一个问题,为什么之前两个轮子都能动,然而现在不行了,让我帮忙找下问题。原因无一例外都是电机控制用到了模拟量输出引脚9和10,并且加了舵机程序<Servo.h>,这在arduino封装舵机程序库中已经冲突了,所以必然9和10无法正常输出,换成其他引脚就可以解决问题了。
程序写完了,0 error 0 warning,理论上小车来个循迹是没问题了,可是小车要么跑太快,要么不动,这也很让人抓狂。这原因是出在了小车的机械结构。通常要实现“指南”,轮径=轴距,这就导致了我们的小车轮子都很大,在10cm-15cm间,加上赛道的摩擦力大,有的组甚至出现了PWM占空比调127小车不动,128小车则冲了出去。这个问题通过死磨占空比和供电电压是可以解决的,但必然导致同学身心疲惫。这个问题的核心就是小车电机的扭矩太小导致,换成步进电机或者圆周舵机,都是可以完美解决这个问题的。
这里我讲一下如何在本赛题中充分利用圆周舵机。
圆周舵机与普通舵机的控制区别就是,普通舵机duoji.write(角度),角度写多少,舵机就停在那个角度。而圆周舵机为duoji.write(速度),通常90为静止速度,0和180为正转和反转的最大速度,但根据舵机做工差别,静止速度会在90左右不等。舵机的扭矩足以带动我们自己的小车,经过试验,只要舵机能转,小车就能跑,可以实现小车的缓慢循迹。
这里我还要提一点,舵机引脚的vcc和gnd不要直接接在arduino的扩展板上,因为舵机需要的电流很大,容易导致arduino的输出电流混乱,单片机无法正常工作,所以舵机也是要分开+5V供电的。我用了自己做的稳压板供电,单片机只接了信号端。注意:稳压板和单片机一定要共地!共地!共地!很多组一开始电机不转都是因为外接模块供电和主控板没有共地。
二、停车
停车通常有三种方案,触碰传感器,超声波传感器,红外传感器。
触碰传感器虽然说是几乎不存在干扰,但由于停止是的那一下碰撞直接影响了“指南”精度,所以几乎没有小组使用。超声波传感器与红外传感器一样是不接触的,但超声波总是不稳定,我用Serial.print()读数时,时不时出现一个负值,且延时严重,我个人不喜欢,但大部分组还是使用了超声波传感器,比赛中途就触发的现象并不少见。影响红外传感器的判断的唯一因素就是自然光线,中午阳光太强烈可能导致红外的直接触发。使用红外的小组对此束手无策,其实在阳光强烈时,将红外传感器的触头稍向下掰一点,就可以完美解决了。所以我很推荐用红外,比超声波少用一个引脚,且程序简单了很多。
三.旋转舵机
主控板要检测“指南”偏移的角度,机械指导老师都推荐使用“角位移传感器”。对于刚上手单片机的小白来说,根本不知角位移传感器如何控制。其实,某宝上能买到的角位移传感器都是103电位器,通过analogRead()读取电位值,通过加减乘数转变为舵机要旋转的角度。arduino函数库中有一个map(x,a1,a2,b1,b2)函数完美解决了这一计算难题.x为当前值,a1,a2为当前值的范围,b1,b2为当前值需要映射到的范围。相当简便。
下面附上程序
转载--LVDT位移传感器结构与性能分析
来源:热控圈
LVDT位移传感器是用于微位移精密测量的高精度位移传感器,主要由线圈、骨架和铁芯组成。骨架通常选用膨胀系数小、耐热性能好、高频损失小的绝缘木、硬质橡胶或者聚甲醛树脂等绝缘材料制造,骨架形状与尺寸要精密对称。高强度漆包线均匀、紧密地绕制在骨架上。铁芯需要选用电阻率大、导磁率高、饱和磁感应强度大的材料。铁芯位于传感器线圈中心位置。通电后,初级线圈输入交变激励电流,则次级线圈内将产生电动势。两个磁极线圈反极性串联,输出电压信号,实现位移量转换为电信号。
LVDT位移传感器与其他类型位移传感器相比,主要具备以下优点:
1、传感器结构简单,稳定性好、使用寿命长。传感器测量所需外部驱动力小,适用于部分非刚性检测面安装使用;
2、传感器分辨率高,灵敏度好。部分型号分辨率小于0.1μm;
3、传感器测量精度高,重复性好。部分型号线性精度可达0.25%;
4、传感器输出功率大,方便信号转换电路设计;
5、传感器抗干扰性能好,输出阻抗小,适用于现场环境较为复杂场合安装使用
LVDT位移传感器线圈仓由一个初级线圈和两个次级线圈组成。传感器检测与转换电路可将线圈输出正弦波信号转换为电压、电流模拟量信号或者RS485数字信号,可与数显仪表、采集仪、单片机、PLC控制器或者PC电脑联用,实现位移测量与测控。
LVDT位移传感器差动变压器结构设计决定了其存在以下问题:
1、为了获得较高的线性,LVDT位移传感器的量程通常仅占线圈长度的几分之一,这导致传感器安装尺寸相对较大。自动化测控系统通常集成大量的传感器与其他元器件,如果要很好地利用空间,就要求位移传感器体积越小越好;
2、LVDT位移传感器量程越大,线性度相对越低。当传感器精度降低到一定水平,测量便失去了意义。因此LVDT位移传感器适用于微位移精密测量场合,很少用于大量程位移测量;
3、LVDT位移传感器因为铁芯惯性大、频响低、损耗大,无法用于快速动态信号测量;
4、LVDT位移传感器分辨率与测量范围有关,测量范围越大,传感器分辨率越低;
5、LVDT位移传感器需要采用精密元件组成振荡器,传感器对测量电路要求也较高,需要精密元件组成驱动及信号检出电路,用于保障传感器测量精度与稳定性。这大幅增加了LVDT位移传感器的加工难度与生产成本;
6、LVDT位移传感器存在难以克服的零点残余电压,影响传感器测量精度。
相关问答
英语翻译基于电涡流 传感器 的微小 位移 测量摘要本文提出了一种...[最佳回答]下面的都是上google网上在线翻译的,不准确,你需要对下面的答案修改一下!
在线的同志!有谁知道么:用于行车行程的 位移 测量 传感器 应用,...[回答]非线性的就不能用公式直接计算了,只能使用查表得办法,先预先测量NTC在不同温度时输出的电压值(即ADC转换得到的数据)是多少,做点修正后作为表格存储...
光栅尺采集哪家好? 位移传感器 原理?[回答]光栅尺的测量精度还与哪些因素有关?通常还和导轨的精度、结构刚性、光栅尺和末端点的距离有关系,对温度敏感的系统,还和环境温度及光栅尺附近热源...
C语言驱动 单片机 实现 位移 控制是否可行?C语言驱动单片机实现位移控制是否可行?答案是C语言驱动单片机实现位移控制是可行的。“位移”也就是对单片机进行移位操作。知识点:移位操作(1)左移(2...C...
单片机 移位指令讲解?单片机移位指令是指可以将一个二进制数向左或向右移动指定的位数的指令。其中向左移动相当于进行乘2的运算,向右移动相当于进行除2的运算。移位指令是单片机中...
大神们,急需帮忙:用于海洋工程的圆杆型 位移传感器位移 ,圆...[回答]武汉静磁栅机电制造有限公司是专业从事绝对位移传感器系列产品研发和产业化的小微高新技术企业,以自主研发和技术创新为核心,专注位移精确测量,注重...
激励电压与 传感器 - Lupita 的回答 - 懂得传感器有多种类型,有需要加上适当电压,或保证一定的电流,也有不需要外加电压:如热电偶(温度传感器)、光电池(光传感器),它们均不需要外加激励电压。...
51 单片机 ,有8个流水灯,每个之间延迟1秒,这个延迟用c程序编写怎么写?1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include"reg51.h"首先写出单片机的头函数。3、#include"int...
...量油缸行程的液压缸 位移传感器 ,液压缸 位移传感器 销量如何??[回答]加速度传感器→运算放大器→AD,再配合ARM或者PLC以及相关的组态软件即可。如果只是简单的显示,用单片机配合液晶屏即可完成。武汉静磁栅机电制造有...
单片机 中A=4EH,B=5DH,MULAB怎么计算的结果是AB=1C56H?怎么来...[最佳回答]列算式就可以知道怎么得到的了:01001110;A=4EH,01011101;B=5DH,------------------------;x;MULAB01001110000000000100...