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

接口定义

描述硬件引脚功能
APin5按键A
BPin11按键B
CPin15按键C
DPin14按键D
EPin13按键E
FPin12按键F
XPin1摇杆X方向
YPin2摇杆Y方向
PPin8摇杆按下
BuzzerPin0蜂鸣器

程序目录

下载程序,并解压后得到如下文件夹目录如下:


分为两种例程:一种使用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


通信的关键在于设置成同一组:

  1. radio.setGroup(255)

并且一个micro:bit烧录microbit-NRF_Send.hex,另外一个烧录microbit-NRF_Receive.hex。


实验现象:


贪吃蛇程序

贪吃蛇程序使用micropython进行示例:


贪吃蛇由三个部分构成,分别是:动作,蛇,食物。

  • JOYSTICK:为监听摇杆的动作,由于使用python控制,如果完全把摇杆的程序移植进来会导致内存溢出,因此只留下控制部分;
  • Snake:实现蛇的长度的变化,蛇头位置随移动方向改变等;
  • Fruit:为刷新食物的位置;
  • Game:初始化蛇,食物,以及摇杆,实现监听摇杆方向控制蛇的方向,实现蛇的移动,画蛇等功能。

在while true中,监听动作,更新蛇,画蛇,每隔0.5S运行一次,直到蛇撞到自己的身体结束游戏,打印分数。