mBlock & Arduino(13)使用摇杆控制

摇杆这东西,经常可见到它的应用,电玩设备就不用说了,我前阵子刚挂掉的行车记录器,上头也有个小摇杆,主要用来上下左右操控选单,以及按下摇杆确认选项 … XD

mBlock & Arduino(13)使用摇杆控制_第1张图片

认识类比摇杆

不同厂商制作的类比摇杆,脚位与标示上可能会有所不同,不过基本上会有五个脚位,分别为电源、GND、X 轴、Y 轴、开关,以我手中的 Keyes_Sjoys 来说:

mBlock & Arduino(13)使用摇杆控制_第2张图片

从左至右的接脚顺序与标示分别是 GND、+5V、VRx、VRy、SW,SW 就是开关输出的意思,在接好 +5V 与 GND,而摇杆不按下的情况下,Keyes_Sjoys 的 SW 会有电压输出,按下摇杆的话,SW 会是 0V。

至于 VRx 与 VRy 输出,是以类别电压输出来表示目前摇杆的方向状态,在未操作摇杆的情况下,VRx 与 VRy 大致是在 2.5V,如果在 X 方向移动,VRx 会有 0 到 5V 变化,如果在 Y 方向移动,VRy 也是有 0 到 5V 变化。

因此,可以将 VRx 与 VRy 接到 Arduino 的类别脚位,依摇杆操作的方向,我实际量得 Arduino 的类比输入值变化为:

mBlock & Arduino(13)使用摇杆控制_第3张图片

使用摇杆控制猫咪

在 Fritzing 中有个通用的摇杆元件,接脚顺序与标示则分别是 VCC、VERT、HORZ、SEL、GND,SEL 就是选择,其实也就是开关的意思:

mBlock & Arduino(13)使用摇杆控制_第4张图片

因此,如果要使用摇杆控制猫咪,可以如下衔接电路,VCC、VERT、HORZ、SEL、GND,SEL 等脚位,就对应至你实际使用的摇杆模组脚位即可:

mBlock & Arduino(13)使用摇杆控制_第5张图片

我要使用摇杆来控制猫咪的上、下、左、右移动,而按下摇杆,猫咪会发出“喵”一声,为了符合操作习惯,以向右为 X 正方向,而向上为 Y 正方向,因此,我用 488 减去 Arduino 从 Keyes_Sjoys 的 VRy 量得的值:

mBlock & Arduino(13)使用摇杆控制_第6张图片

你也可以挑战使用摇杆来控制 3D 立方体旋转喔!

这是自己用“画笔”绘制的,一点点电脑图学的应用,最主要的是,知道 x-y-z 三维座标中某个点,如何绕轴旋转,这部份可参考〈三维直角座标之绕轴旋转〉。

然后,正立方体以 (0, 0, 0) 为中心,订出八个顶点,这部份可参考〈顶点索引阵列〉,只要看第一张图就可以了,我没有用顶点索引阵列,因为在 Scratch(mBlock) 中没办法,因为它的程式元素太少,难以实作顶点索引阵列,因此,我简化了绘图,用最简单(但重复)的方法,直接跑一维清单而已 … 就只是程式码重复了四次,理论上是要跑六个面,不过,跑四个面,每个边就都至少画过一次了 … XD

有兴趣研究一下电脑图学的,可以参考一下我的〈电脑图学入门〉文件。

感谢CodeData用户:caterpillar的贡献 著作权归作者所有

整理:宁波家电物联网云平台,中科极动云

你可能感兴趣的:(mBlock & Arduino(13)使用摇杆控制)