二、点阵与节奏
第6课 触摸变灯

一、任务目标
用滑动触摸控制点阵底行亮灯长度:手指左滑/右滑,亮条跟着变长变短。
二、我们要学什么
- 学习要点:touch_slide 映射到 0~12:math_map 把滑动值变成点阵列数,再 for 点亮/熄灭
- 本课过关:滑动时底行亮灯长度明显跟随;能指出 map 的输入范围与输出列数。
- 示例对齐:体验题对应「08-02 触摸变灯」;完整代码对应「08-01 模拟触摸」。
三、本节要点
本节抓住「滑动 → 点阵条」。08-02 画底行进度条;08-01 把滑动值居中显示成数字。
1读场景滑动变亮条
2对要点map 到列数
3载入运行官方示例积木/代码
四、解题思路
- 输入:板载滑动触摸 touch_slide()。
- 输出:点阵第 0 行亮灯长度;完整代码显示滑动数值。
- 生活对照:音量条、进度条跟着手指走。
- 验证现象:滑到一端亮满 12 格,另一端几乎全灭。
本课主要用到:触摸(onboard_bot)、点阵。
- 1明确任务「触摸变灯」:滑动决定亮多少格。
- 2用 math_map 把 touch_slide(-100~100) 映到 0~12。
- 3前 X 列 pixel(...,1),后面 pixel(...,0),每次 show。
- 4完整代码可改为 shows(滑动值) 直接看数字。
流程示意(可对照左侧文字)
五、图形块功能讲解
下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。
| 图形块 | 分类 | 作用 | 本课用法 |
|---|---|---|---|
![]() | 板载传感 | 读取滑动手势连续值。 | 体验:map 到 0~12 列。 |
![]() | 数学 | 把一范围数值线性映射到另一范围。 | 体验:(-100,100)→(0,12)。 |
![]() | 板载显示 | 控制单点亮灭。 | 体验:底行画进度条。 |
六、知识点讲解
本课把滑动触摸变成看得见的亮条:手指位置 → 数字 → 点阵列数,点阵只有亮灭,没有彩色变灯。
touch_slide
返回约 -100~100 的连续值,表示左右滑动位置,不是麦克风,也不是加速度。
线性映射
math_map 把滑动区间压到 0~12,才能对应 12 列点阵。映射错了,条会跳或顶满。
画条与刷新
先点亮 0..X-1,再熄灭 X..11,每步 show,亮条才会「跟手」。
- 完整代码 08-01 更简单:直接把滑动值 shows 到点阵,便于核对传感器读数。
- 过关:滑动时底行长度跟随,能说出 map 两端数字的含义。
先确认滑动有读数,再谈把它画成亮条。
七、编程练习
点「载入」打开 MixVM(board=mixgo_zero_design)。在 Mixly 工具栏点「运行 / 停止」,「检查」做关键字核对。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。
官方示例:08-02-输入输出-触摸变灯.mix。载入后运行。
正在载入编程环境
正在载入 MixGo ZERO 仿真编程环境…
八、课堂练习
先完成两道判断题,再完成选择题;全部选定后点「检查」。
判断:本课用麦克风音量控制亮条。
判断:体验把 touch_slide 映射成列数再点亮。
体验题输入是?
本课「变灯」指的是?
九、本节小结
记住:触摸变灯是滑动控制点阵亮条,不是彩灯变色。


