计算机与microbit交互的步骤 用micro:bit做一个可以用的指南针
本文可以学到:
1. 什么是 Micro:bit
2. 用Micro:bit做一个可以用的指南针
3. 磁偏角的相关知识
Micro:bit 是英国广播公司(BBC)联合很多企业推出的一个基于ARM Cortex-M0芯片的微型可编程计算机,balabala。看到这里,你可能会想,又骗我买Micro:bit?这玩意和以前的单片机、51、Arduino有啥区别?
Micro:bit 设计的初衷是为了让每个孩子都能零基础的接触计算机编程。整个设备是一片4厘米宽5厘米长的电路板,上面有加速计、磁力计、光电传感、蓝牙和USB接口、一个25个LED组成的5*5显示屏、2个可编程按钮等,由USB口或外置电源供电。下方的输入和输出环可以通过鳄鱼夹或香蕉插头连到其他设备,并发送接收指令。
今天,我们先通过一个小小的指南针实例,来初步了解一下怎么玩这个micro:bit吧。
常见的指南针主要部件是一根磁针,在地磁场的作用下可以转动并指向北方(指南针其实是指北的),用来辨别方向。Micro:bit内部就有一个磁力计,我们可以读取这个磁力计的读数来判断方位。
最终要实现的指南针程序功能是,开机进行初始校准后,箭头始终指向地磁北极方向,按下左边的按键时在屏幕上显示当前的磁力计读数。
材料和工具清单
-
Micro:bit主控板
-
数据线
-
Makecode在线网站 https://makecode.microbit.org
磁力计指令
“compassheading”读取方向指令
注意这个模块的颜色是紫色,和指令区中的Input菜单项的紫色对应,也就是说当我们看到一个已完成项目中某个图形编程模块的颜色时,就可以在对应颜色的菜单栏里找到这个模块。
比如说上面这个功能块中的蓝色模块就可以在Basic菜单栏里找到。
我们的micro:bit有1个内置的磁力计,能够得到相对于北磁极的数值。
返回值是0到360之间的数值,在磁力计首次开始工作(带到新位置后)时系统会自动要求我们把micro:bit板子转一圈以作校准,校准期间返回值是1003(需要校准时返回1004),正确的校准方式是保持板子水平旋转一圈。需要注意的是,附近要是有金属物件可能会影响读数和校准准确性。
一些地球物理学家们确信,地球磁场是因为固态铁质内核被液态金属“海”所包围而形成的。磁力计指向的北是地磁北极,目前地磁南北极位置位于地理南北极地区,但并不与地球的南北极点完全重合,磁北极和真正的地理北极之间存在一个磁偏角。需要指出的是磁极位置是一直在变化的,历史上还出现过地磁逆转的情况。
我们称呼上的地磁南极,其实是物理上的磁北极,而地磁北极是物理上的磁南极,磁力线从磁北极出射,从磁南极进入,即地磁场从地理南极出来从地理北极进去。
用到的几个基本命令
1将“item”设定为()
变量模块,“item”可以重命名,⽤这个模块我们可以把变量定义为某⼀个数。
2. 显示LED命令
可以在LED屏幕显示1个图形
3.逻辑指令
几个基本的逻辑判断指令
写程序
创建1个循环,将不断更新指南针的读数。
将micro:bit的磁力计读数存储在一个变量x中。
当按下按钮A的时候,直接在屏幕上显示磁力计读数。
北、东、南、西对应0°、90°、180°、270°。
这个模块意思是,在循环中,不断读取磁力计的读数,并根据读数范围判断所指方向,让箭头指向当前的地磁北方。
如图所示,如果读数在292.5和337.5之间,就让显示屏显示一个指向右上方的箭头,由于代码里不能输入0.5,所以取的判断数值是293和338。
之后再加入其它逻辑判断条件,就得到了完整的代码。
后续完善
把编译的hex文件下到板子里,就可以运行了,首次运行会要求初始化磁力计,记得把板子按前面的视频演示转一圈。如果有时间的话也可以做个罗盘面,比如我们这里就自己试着激光切割了一个罗盘面。
磁偏角
地磁北极和地理北极并不在同一点,存在磁偏角magnetic declination,即地磁北极(指南针指的方向)与地理北极间的夹角。
北京的磁偏角是-6°50′,北偏西。 如果所在地区磁偏角较大的话,可以在程序里设置磁偏角数值进行补正,大家可以查询自己所在地区的磁偏角,试试修改代码。
磁偏角可通过这个网站来查询(http://www.magnetic-declination.com)。
最后附上我们的源代码(点击查看原文可以看到),大家在网页编程界面的项目里选择导入这个hex文件,就会自动显示出编码的图形拖拽模块了。
石斧创客
石斧(Handaxe)可能是人类最早制造出的工具。从石器木棒到3D打印,让我们像祖先一样愉快地造点东西。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com