Joystick for micro:bit
说明
| ||||||||||||||||||
| ||||||||||||||||||
产品介绍
micro: bit是一款由英国BBC设计的ARM架构的单片机,板载蓝牙,加速度计,电子罗盘,三个按钮,5 x 5 LED点阵,主要用于青少年的编程教育。
你可以利用BBC micro:bit实现任何酷炫的小发明,无论是机器人还是乐器,没有想不到。
本产品是专为Micro:bit设计的游戏手柄扩展板,酷似掌上游戏机的外形和键位设计,可播放音乐,可用电池供电,还能给充电电池充电。
带上我,发挥你的聪明才智,编程设计自己的创意掌上游戏机。
产品特性
- 板载Micro:bit接口,可直接插入使用
- 板载优质的摇杆,两路模拟量输出,可准确定位摇杆位置,一路数字量输出,可按压控制
- 板载电池座和充电电路,可加充电电池供电,还能通过USB给电池充电
- 板载电池电量指示灯,闪动1/2/3/4次对应指示电量约25%/50%/75%/100%
- 板载4个彩色按键,美观且手感舒适
- 板载2个侧边按键,对应micro:bit上的A/B键,控制更方便
- 板载蜂鸣器,能用来播放背景音乐或游戏音效
产品参数
- 工作电压: 5V
- 电池种类:14500锂电池
- 外形尺寸:150mm x 50mm
接口定义
描述 | 硬件引脚 | 功能 |
---|---|---|
A | Pin5 | 按键A |
B | Pin11 | 按键B |
C | Pin15 | 按键C |
D | Pin14 | 按键D |
E | Pin13 | 按键E |
F | Pin12 | 按键F |
X | Pin1 | 摇杆X方向 |
Y | Pin2 | 摇杆Y方向 |
P | Pin8 | 摇杆按下 |
Buzzer | Pin0 | 蜂鸣器 |
程序目录
下载程序,并解压后得到如下文件夹目录如下:
分为两种例程:一种使用micropython编程,里面一个使用demo以及一个贪吃蛇程序,一种使用图形化编程(typescript),里面一个为使用demo以及一个无线示例程序:
- Micropython/Demo:为使用Micropython的示例程序;
- Micropython/Game-Snake:为使用Micropython编程的贪吃蛇程序;
- Typescript/Demo:为使用图形化编程的示例程序,是一个编译好的二进制HEX文件;
- Typescript-NRF:为使用图形化编程的无线测试程序
使用此示例需要两个micro:bit,才能验证效果。一面包涵一个发送一个接收程序,只需要把这两个分别烧录进不同的micro:bit即可。
编程指南
micro:bit有多种编程方式,可使用mbed、micropython、typescript等编程方式,编程网址也是非常丰富,官方推荐两种编程方式:图形化编程(typescript)、micropython。
typescript
typescript即图形化编程,官方编程地址:https://makecode.microbit.org/#
- 打开浏览器,输入网址:
- 创建工程
点击项目->新建工程,然后在下方的无标题中,重命名为game。当然,你可以命名成你想的任意工程名。
- 添加包
从github上获取我们的库:依次点击高级->添加包,或者点击齿轮->添加包。然后在弹出的对话框中,单击搜索框将网址:https://github.com/waveshare/JoyStick 复制进去,注意最后加上一个空格,否则可能无法索引到:
- 点击WSJoyStick:
各积木块的作用如下:
1、模块初始化:
对于此模块,需要进行初始化,这个积木块中把五个按键(除了A与)进行了上拉,以及读取一次摇杆状态,此状态用于判断后面操作摇杆的状态,如果在未初始化完成的情况下,摇动摇杆,造成后面可能无法判断某个方向,此时应该不动摇杆,复位micro:bit后即正常。
2、监听按键:
我们提供两种监听方式,他们各有优点。
第一种,配合if使用,这种方式下在内部可以有延时,可以做实时性不强的事件处理。
第二种,不需要if,类似input中的on button A pressed,这是一种中断处理机制,里面不能有延时,实时性是比较强的。
实验效果
当按下摇杆的时候,那么micro:bit就会亮P。
3、监听摇杆
如果前面进行了初始化,那么当使用此积木块的时候摇动对应的方向,即会返回逻辑真。
依次放置其他的8个方向的判断:
实验现象
控制摇杆不同方向,即可显示对应的方向。
4、控制蜂鸣器
控制蜂鸣器有两种使用方法,第一种使用我们提供的积木块,第二种可使用micro:bit自带的音乐库。
第一种:使用我们的积木块,这个与micro:bit自带的是一样的。
第一个参数选择音阶,第二个参数选择节拍。
依次放置如下:
实验现象:
下载程序到模块,板载的喇叭将会响出do re mi fa so la si do。
第二种:使用micro:bit自带的音乐积木块,在管脚上是兼容的。
与上面的使用是一样的:
依次放置如下:
当然你也可以使用其他的积木块,更多的积木块如下:
发挥你的想象力,建造出美妙的音乐。
5、验证Demo
打开Typescript-Demo,将文件夹下有microbit-JoystickDemo.hex文件。
你可将其直接复制到连接到电脑的micro:bit下,也可以先将其上次到makecode上,再下载:
直接下载到micro:bit:
将micro:bit用USB线连接到电脑,电脑将会识别到一个8M左右的MICROBIT的U盘,将microbit-JoystickDemo.hex复制到该U盘即可:
先上传到makecode,再下载:
micropython
对于micropython有两种方式,一种使用官方的编程网址:http://python.microbit.org/v/1
另一种使用mu,其官方下载地址:https://codewith.mu/#download ,该软件在我们的资料中也可下载。
建议使用第二种,对于国内而言这个有时候会因为网络问题,出现访问不了的情况,同时并不会提示错误。
打开软件
点击Mu上面Load将文件夹中的WSJoyStick.py上传到编辑器。
可见程序中有如下的方法实现:
使用micropython时不需要进行初始化,因为在实例化的时候已经进行了该步骤。
- Listen_Dir(Dir):监听摇杆方向;
- Listen_Key(Key):监听按键;
- PlayScale(freq):播放一个音阶的声音;
- Playmusic(tune):播放音乐;
更多的控制,请参考micro:bit官方的python库:http://microbit-micropython.readthedocs.io/en/latest/index.html
无线程序
需要两个microbit才可用,使用typestript示例:
打开文件夹Typescript-NRF中的程序:
一个为NRF_Send.ts,一个为NRF-Receive.ts
通信的关键在于设置成同一组:
radio.setGroup(255)
并且一个micro:bit烧录microbit-NRF_Send.hex,另外一个烧录microbit-NRF_Receive.hex。
实验现象:
贪吃蛇程序
贪吃蛇程序使用micropython进行示例:
贪吃蛇由三个部分构成,分别是:动作,蛇,食物。
- JOYSTICK:为监听摇杆的动作,由于使用python控制,如果完全把摇杆的程序移植进来会导致内存溢出,因此只留下控制部分;
- Snake:实现蛇的长度的变化,蛇头位置随移动方向改变等;
- Fruit:为刷新食物的位置;
- Game:初始化蛇,食物,以及摇杆,实现监听摇杆方向控制蛇的方向,实现蛇的移动,画蛇等功能。
在while true中,监听动作,更新蛇,画蛇,每隔0.5S运行一次,直到蛇撞到自己的身体结束游戏,打印分数。