加速度计算法
- Ring:bit小车加速度计陀螺仪算法。
使用材料
背景知识
Micro:bit是一个小型的可编程计算机,由英国广播电视公司(BBC)推出,专为青少年编程教育,设计旨在使学习与教学变得轻松有趣。
ELECFREAKS Ring:bit二代智能车是一款小型DIY智能车,由BBC micro:bit和ELECFREAKS Ring:bit组成。Ring:bit扩展了micro:bit的三个GPIO口,可以连接轻松的连接各种传感器和组件。一个基础的Ring:bit智能车可以很容易的编程去驱动,还可以搭配遥控器甚至创建一个彩虹灯塔。只要增加一个扩展模块,你的Ring:bit智能车就可以做更多事情,例如巡线,跟随,避障,绘图和更多玩法。
无线电无线电技术是通过无线电波传播信号的技术,其原理在于,导体中电流强弱的改变会产生无线电波。利用这一现象,通过调制可将信息加载于无线电波之上。当电波通过空间传播到达收信端,电波引起的电磁场变化又会在导体中产生电流。通过解调将讯息从电流变化中提取出来,就达到了资讯传递的目的。
加速度传感器是一种能够测量加速度的传感器。通常由质量块、阻尼器、弹性元件、敏感元件和适调电路等部分组成。传感器在加速过程中,通过对质量块所受惯性力的测量,利用牛顿第二定律获得加速度值。根据传感器敏感元件的不同,常见的加速度传感器包括电容式、电感式、应变式、压阻式、压电式等。
新版和旧版micro:bit加速度计芯片有所区别。新版micro:bit将电子罗盘和加速度计合并为一个芯片,使用方法不变。
软件准备
微软makecode在线积木块编程https://makecode.microbit.org/#
程序
步骤 1:添加代码包
- 在MakeCode的代码抽屉中点击Advanced,查看更多代码选项。
- 为了给Ring:bit套件编程,我们需要添加一个代码库。在代码抽屉底部找到“Add Package”,并点击它。这时会弹出一个对话框。搜索“ringbit",然后点击下载这个代码库。
注意:如果你得到一个提示说一些代码库因为不兼容的原因将被删除,你可以根据提示继续操作,或者在项目菜单栏里面新建一个项目。
步骤 2:算法原理
加速度计分为X轴和Y轴两个方向,在俯视图上,将micro:bit和Ring:bit Car放在同一个三维坐标轴中就很好理解。
以控制端micro:bit的方向来同步控制Ring:bit小车的行驶方向及速度。
- 向右前方行驶,X轴和Y轴数据均为正数,左轮速度应大于右轮速度,依次完成左转。
- 同理左前方,左后方,右后方均如此分析。
- 得出结论为:左轮数据为Y轴数据加上X轴数据,右轮数据位Y轴数据减去X轴数据。
步骤 3:代码解释(控制端)
- 在开机的时候设置无线电组别为
90
,需要和接收端(小车)设置为一致。 - 循环发送数据X,值为X轴加速度值。加速度值范围为
-1024~+1024
,而小车转速为-100~+100
,故需要除以10
以符合范围。 - 循环发送数据Y,值为Y轴加速度值,同理除以
10
。
步骤 4:代码解释(小车端)
- 开机的时候,设置小车左右轮连接为P1和P2(以小车实际连接端口为准),显示一个图标,设置无线电组别为90(与发送端一致),用来设置XValue和yValue两个变量存储X轴数据和Y轴数据。
- 当接收到无线电数据时,判断如果为X值,将数据存入
xValue
,如果为y值,将数据存入yValue
。
- 将上边得出的公式带入,算出左右轮速度值,将左右轮速度设置为相应值。
参考程序
遥控器端程序
请参考程序连接:https://makecode.microbit.org/_AT4PoHKdVi6L
你也可以通过以下网页直接下载程序。
---Ring:bit 小车端程序
请参考程序连接:https://makecode.microbit.org/_e5t6XPHoTiHy
你也可以通过以下网页直接下载程序。
---结论
- Ring:bit小车随着陀螺仪的方向行驶,陀螺仪倾斜角度控制行车速度。