RB27 制作指南针
课程概述
- 课程名称:见标题
- 课程时长:40 分钟 × 2
- 课程内容:用点阵屏制作放大缩小的方框动画
- 学生群体:3~6 年级
编写任务:
- 1. 内容来源:初级2-03 指南针
- 2. 设定教学目标
- 3. 设定知识和技能
- 4. 设定情感和学科交叉
知识与技能
- SenseHat 点阵屏和磁力计
- 地磁和方位角度
- 多重选择
- 逻辑或,逻辑与
- 东南西北英文
认识指南针
古代最早的指南针叫司南。主要组成部分是一根装在轴上的磁针,磁针在天然地磁场的作用下可以自由转动并保持在磁子午线的切线方向上,磁针的北极指向地理的北极,利用这一性能可以辨别方向。
要了解指南针的工作原理,首先需要知道什么是磁场。
地球磁场
对于电子指南针来说有时候,某些外来磁场叠加会产生一个恒定磁场,这个磁场对系统指示将造成影响。故需要进行校准。
校准指南针(教师步骤)
SenseHat 包含磁力计,我们可以用磁力计的数据来制作一个指南针。
任务一:读取并输出指南针的角度
我们课程实际使用不需要精确到小数点后很多位,所以上面代码在实际使用中,赋值指南针角度可以先取整。
任务二:显示东南西北(NESW)
角度对应的方位:
- 0° - 北 - North - N
- 90° - 东 - EAST - E
- 180° - 南 - South - S
- 270° - 西 - West - W
- 360°/0° - 北
取一个范围,每个方位±45°可以认为仍处于该方位:
- 北:>315° 或 < 45°
- 东:>45° 且 < 135°
- 南:>135° 且 <225°
- 西:>225° 且 <315°
按照上述逻辑编写:
任务三:添加标记
点阵屏仅显示了 NSEW 的文字,但是并不能知道那个树莓派哪个部位指向这个方位。 通过将 SenseHat 转到输出角度为零,我们可以知道,加速计/磁力计芯片所在的方向就是指示的方向。我们让点阵屏在这里显示两个小点来标记。
因为显示字符的积木会覆盖掉所有的显示,所以我们需要在显示字符之后再点亮特定的小点。 把显示文字并点亮小点的部分封装为函数。
任务四:用指针显示
该任务比较有难度,酌情使用
来模拟一个真实指南针(指北针)的行为 指针贯穿点阵屏,一半为红色(北),一半为蓝色(南)
让问题简化,我们通过旋转点阵屏的角度来实现指针旋转。
扩展任务:八向指针显示
前面用到四个方位区间:N,S,E,W 尝试细化,加入 NE,NW,SE,SW 四个方位
- NE - North East - 东北
- NW - North West - 西北
- SE - South East - 东南
- SW - South West - 西南
八向指针无法通过旋转点阵屏实现,需要自行计算坐标。
思考和练习
利用指南针我们可以制作哪些小发明呢?
提示:
- 指南针雨伞, 用灯光颜色指示东西南北
- 指南针小车,为小车提供导航