EVE 发表于 2018-7-23 15:11:59

micro:bit造物粒子(基于Mind+)10— 自平衡仪

经过前面这么多个项目的学习,你是不是对micro:bit已经了如指掌了呢?来挑战一下吧。在这一章节的内容学习中,运用micro:bit主控板和传感器,制作出非常炫酷好玩的作品!
麦克的故事麦克发现,你本来把手机拿在手里时是竖着的,将它转90度,页面就跟随你的重心自动旋转,也就是说页面也转了90度,这是一项极具人性化的设计。这是怎么做到的呢?这节课的项目我们就是要来模拟这样的功能哦!所需元件
1×micro:bit主控板
1×micro:bit扩展板
1×舵机(伺服机构)1×MicroUSB 连接线


实现功能通过编写程序,将程序烧录至板子后,可以让舵机(伺服机构)指针保持指向竖直上方,如果舵机上面支撑某个物体的话,那么物体始终保持竖直向上。什么是重力加速度?地球表面附近的物体因受重力产生的加速度叫做重力加速度,也叫自由落体加速度,用g表示。重力加速度可以做些什么呢?Micro:bit自带加速度计,能实时检测姿态,从而控制舵机指针一直指向正上方。Micro:bit可以检测X,Y,Z三个方向的重力加速度,其中X沿着左右方向,Y沿着前后方向,Z垂直于板,沿着上下方向。本项目中主要检测X轴上的重力加速度。

当主板平放在桌面上时,micro:bit只受到竖直方向上的重力(Z轴),所以X,Y都接近于0。而当板子产生左右倾斜时,X的数值会发生变化。向左侧倾斜则X为负值,反之为正值。
所以我们可以通过获取micro:bit的倾斜角度,控制舵机旋转一个反向的角度,让舵机的指针一直朝上。
硬件连接
将舵机(伺服机构)与micro:bit的P0号接口相连接。编写程序STEP1:获取X轴的加速度X,Y,Z轴的数值可以在功能模块“输入”下找到。
加速度传感器的数值范围在-1023~1023之间变化,你可以通过显示模块来查询变化范围。

左右倾斜观察板子的反应
   

STEP2:数据处理当micro:bit板子向左倾斜时,加速度传感器的X方向会产生一个负向的输出值,舵机(伺服机构)需要向右转动来抵消这个角度。需要用到映射模块,将加速度X轴的值(-1023~1023),映射到舵机(伺服机构)的转动角度(0~180)。映射之后,当micro:bit板子平放在桌面(桌面是水平的)时,舵机(伺服机构)角度为90度。
0度90度180度
-102301023

STEP2:伺服舵机执行,在“扩展”中找到“执行器”模块,并且选中“舵机模块”:
放入“循环执行”中,与“映射模块”嵌套如下:

STEP3:结构制作用双面胶将舵机(伺服机构)和扩展板固定起来,使两者保持相对静止。

实验效果         
能力提升尝试使用micro:bit自带的电子罗盘功能制作一个指南针。

更多课程,欢迎点击以下链接入门课程micro:bit造物粒子(基于Mind+)01— 入门篇Micro:bit造物粒子(基于Mind+)02— 自制表情包micro:bit造物粒子(基于Mind+)03— 闪烁的LEDMicro:bit造物粒子(基于Mind+)04— 手控信号灯Micro:bit造物粒子(基于Mind+)05— 变速风扇micro:bit造物粒子(基于Mind+)06— 电子蜡烛micro:bit造物粒子(基于Mind+)07— 自动门micro:bit造物粒子(基于Mind+)08— 音乐盒micro:bit造物粒子(基于Mind+)09— 炫彩灯带进阶课程micro:bit造物粒子(基于Mind+)10— 自平衡仪micro:bit造物粒子(基于Mind+)11— DJ演奏台micro:bit造物粒子(基于Mind+)12— 可移动门铃micro:bit造物粒子(基于Mind+)13— 拆弹游戏

rzyzzxw 发表于 2018-7-23 15:22:20

很棒的思路。{:5_148:}

平淡中的幸福 发表于 2018-7-23 18:13:02

必须 先手动校准 是microbit的硬伤

znzhou 发表于 2018-7-23 20:40:43

平淡中的幸福 发表于 2018-7-23 18:13
必须 先手动校准 是microbit的硬伤

我记得关于指南针的程序只有下载后第一次运行才需要校准吧

EVE 发表于 2018-7-23 23:21:15

平淡中的幸福 发表于 2018-7-23 18:13
必须 先手动校准 是microbit的硬伤

这算是一种保险措施吧~其实校准还算简便

微笑的rockets 发表于 2018-7-25 17:11:36

这个好玩,可以直观的显示重力加速度的方向。可以试着增加到三个舵机,看看是不是可以做一个平衡?

EVE 发表于 2018-7-31 11:10:54

微笑的rockets 发表于 2018-7-25 17:11
这个好玩,可以直观的显示重力加速度的方向。可以试着增加到三个舵机,看看是不是可以做一个平衡? ...

可以有,一个手持云台就出来了

gada888 发表于 2018-9-1 16:13:27

看看三轴怎么工作的

DFHk7CtbyuS 发表于 2019-9-30 14:02:56

Vico 发表于 2018-7-23 15:11
经过前面这么多个项目的学习,你是不是对micro:bit已经了如指掌了呢?来挑战一下吧。在这一章节的内容学习 ...

你好,我想要一份,这个的程序,想了解一份自由平衡的实现原理,求助

DFHk7CtbyuS 发表于 2019-9-30 14:03:15

Vico 发表于 2018-7-23 15:11
经过前面这么多个项目的学习,你是不是对micro:bit已经了如指掌了呢?来挑战一下吧。在这一章节的内容学习 ...

你好,我想要一份,这个的程序,想了解一份自由平衡的实现原理,求助

bthEXj96YXra 发表于 2021-7-2 15:11:56

这个程序有问题,没有对旋转的角度做补偿,应该是相反的角度,用180减去映射到的值再设置给舵机。
页: [1]
查看完整版本: micro:bit造物粒子(基于Mind+)10— 自平衡仪