_SKU_DFR0536__micro_bit游戏手柄扩展板 - jimaobian/DFRobotWikiCn GitHub Wiki
简介
重要更新:micro:bit以及本电机驱动扩展板已正式支持Scratch!DFRobot基于Scratch3.0开发的mind+,集成了micro:bit及其周边产品的图形化编程,离线图形化编程方式,支持Arduino和python两种代码生成。
点击链接,火速下载mind+最新版本:http://mindplus.cc 手柄试用:mind+试用体验_体感消除小游戏 http://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=37859&fromuid=724121 ; (出处: DF创客社区 - 分享创造的喜悦)
micro:bit游戏手柄是基于micro:bit主板的扩展手柄。你只需要插上micro:bit主板,就能将micro:bit变身成为一个无线遥控手柄或者是一个无线对战游戏机。该产品上下均采用亚克力板封装,手感好,再也不会像裸露电路板那样有焊接点刺手的感觉了。 本游戏手柄共设置8个按键,左侧分布了上、下、左、右四个按键,右侧为X、Y按键,前方引出了A、B两个按键。 本游戏手柄还内置了振动电机、嗡鸣器、LED,这些资源都是可编程控制的。使用图形化编程,可以瞬间让你的micro:bit变身成一个多媒体振动手柄或多媒体互动游戏机。 编程平台支持makecode图形化编程和python编程,从入门到进阶的编程教育,都是非常适合的工具。
产品参数及配置
- 供电电压:3VDC(2节7号电池)
- 板载按键数量:上、下、左、右、X、Y、 A、B 共计8个可编程按键
- 板载振动电机×1
- 板载LED×1
- 板载嗡鸣器×1
- 亚克力底板×1
- 亚克力面板×1
- 2节7号带盖电池盒×1
- 蘑菇头魔术贴×2
- 铜柱×4
- 螺丝×8
- 大按键帽×6
- 小按键帽×2
- 产品尺寸:148 × 57(mm)
功能说明
功能 | 功能说明 |
UP | 方向键上P8 |
DOWN | 方向键下P13 |
RIGHT | 方向键右P15 |
LEFT | 方向键左P14 |
X | 按键X P1 |
Y | 按键Y P2 |
A | A键 P5 |
B | B键 P11 |
LED | 控制引脚P16 |
振动电机 | 控制引脚P12 |
蜂鸣器 | 控制引脚P0 |
PWR | 电源指示灯 |
电源开关 | 关闭总电源 |
供电电压 | 3V~3.7V(两节7号电池) |
Mind+(基于Scratch3.0)图形化编程
1、下载及安装软件。下载地址:http://www.mindplus.cc 详细教程:Mind+基础wiki教程-软件下载安装 2、选择“上传模式”或“实时模式”。 详细教程:Mind+基础wiki教程-上传模式编程流程 3、“扩展”中选择“主控板”中的“micro:bit”。 详细教程:Mind+基础wiki教程-加载扩展库流程 4、进行编程 5、连接micro:bit板与电脑,菜单“连接设备”,“上传到设备”
样例
例如按钮UP按下,则只需要检测P8引脚即可,其他按键对应“功能说明”中引脚图即可。
效果
按下UP按钮显示屏显示一个向上的箭头,并播放音符(注意打开手柄上的电源开关和蜂鸣器开关)。 按下DOWN按钮显示屏显示一个向下的箭头,并播放另一个音符。
makecode图形化编程
MakeCode基础操作教程 :点击进入makecode编程基础操作教程 gamePad软件库地址 :https://github.com/DFRobot/pxt-gamePad 如何添加软件包
事件触发方式的按键编程
程序执行结果:当按下X键的时候,振动电机振动,LED灯亮;当松开X键的时候,振动电机停止,LED灯灭。
程序执行结果:当按下X键的时候,振动电机振动,LED灯亮;当按下Y键的时候,振动电机停止,LED灯灭。
循环查询方式的按键编程
程序执行结果:当检测到按下X键的时候,振动电机按175的强度振动,当松开X键的时候,振动电机停止振动。
makecode实例教程
剪刀石头布-猜拳对战游戏
点击链接进入图形化源程序:剪刀石头布 程序执行过程: 1、首先设置两个主板都在1号无线组,这样才能相互通信; 2、当按下左键的时候,LED点阵显示剪刀图案,并无线发送数字1; 3、当按下下键的时候,LED点阵显示石头图案,并无线发送数字2; 4、当按下右键的时候,LED点阵显示布的图案,并无线发送数字3; 5、在无限循环内,将无线接收到的数字和自己的数字进行判断和对比;如果输了,则显示×,如果赢了,则显示√; 6、显示了输赢结果后,对自己的数据和接收的数据进行清零;
摇骰子对战游戏
点击链接进入图形化源程序:摇骰子对战游戏 程序执行过程: 1、开机时将无线设置为组1,并初始化变量item的值为0; 2、当检测到振动的时候,将LED熄灭,value初始化为0;并将加速度的值用来生产一个1~6之间的随机数; 3、在LED点阵上从1开始到随机生成的数之间递增显示;并且播放音调和振动电机; 4、把1~6的随机数通过无线发送给另外的主板; 5、将接收到的数字和自己生成的随机数做比较,如果小于对方就灭灯,否则就亮灯;
遥控手柄
点击链接进入手柄端图形化源程序:手柄 点击链接进入小车端图形化源程序:car
程序执行过程: 1、开机的时候先设置无线组为1; 2、当不同的按键按下的时候,发送不同的数字,让小车执行不同的动作; 3、当按键松开的时候,统一发送数字0,目的是让小车停止;
程序执行过程: 1、开机的时候先设置无线组为1; 2、当接受到不同的数字,就让小车执行不同的动作,如前进、后退、左转、右转;
BXY平台python编程
下载《BXY》python编程软件
《BXY》pthon编程平台官方下载地址:[https://gitee.com/dfrobot/iPy/raw/master/BXY.exe [https://gitee.com/dfrobot/iPy/raw/master/BXY.exe]
](https://gitee.com/dfrobot/iPy/raw/master/BXY.exe%5D%3Cbr%3E%3Cbr%3E); 《BXY》pthon编程平台官方教程:http://docs.dfrobot.com.cn/bxy/
BXY平台python函数列表
按键是否被按下
如果指定的按钮被按下返回True,否则返回False。
- gamePad.UP_pressed() #按键UP是否被按下
- gamePad.DOWN_pressed() #按键DOWN是否被按下
- gamePad.LEFT_pressed() #按键LEFT是否被按下
- gamePad.RIGHT_pressed() #按键RIGHT是否被按下
- gamePad.XPAD_pressed() #按键X是否被按下
- gamePad.YPAD_pressed() #按键Y是否被按下
- button_a.is_pressed() #按键A是否被按下
- button_b.is_pressed() #按键B是否被按下
返回值:被按下的话,返回1,否则返回0;
例:
from microbit import * #载入microbit库
import gamePad #载入游戏手柄库
gamePad = gamePad() #创建一个手柄对象,用于调用里面的按键
while True:
if gamePad.UP_pressed(): #UP如果被按下的话
pin12.write_digital(1) #给P12高电平,让电机振动
elif gamePad.UP_pressed()==0: #如果UP没被按下的话
pin12.write_digital(0) #给P12低电平,电机停止振动
#该程序的功能是:当按下UP按键的时候,接在P12口的振动电机振动,松开按键时,停止振动。
按键是否曾经被按下
函数解释:如果指定的按钮在开机或复位之后被按下过,则返回True,否则返回False。
- gamePad.UP_was() #按键UP是否曾经被按下
- gamePad.DOWN_was() #按键DOWN是否曾经被按下
- gamePad.LEFT_was() #按键LEFT是否曾经被按下
- gamePad.RIGHT_was() #按键RIGHT是否曾经被按下
- gamePad.XPAD_was() #按键X是否曾经被按下
- gamePad.YPAD_was() #按键Y是否曾经被按下
- button_a.was_pressed() #按键A是否曾经被按下
- button_b.was_pressed() #按键B是否曾经被按下
返回值:按下的话,返回1,否则返回0;
例:
from microbit import * #载入microbit库
import gamePad #载入游戏手柄库
gamePad = gamePad() #创建一个手柄对象,用于调用按键
while True:
pin12.write_digital(1)
sleep(3000)
pin12.write_digital(0)
sleep(3000)
if gamePad.UP_was()==1:
pin16.write_digital(1)
elif gamePad.UP_was()==0:
pin16.write_digital(0)
#该程序的功能是:开机时,振动电机会振动3秒,然后停止3秒,在这期间,如果有按下过UP键,LED会亮,如果没有按下过UP键,LED不会亮。
记录按键按下的次数
函数说明:返回开机或复位后,按键被按下的次数,并且调用此方法后,会将计数置0。
- gamePad.UP_get() #记录UP按键按下的次数
- gamePad.DOWN_get() #记录DOWN按键按下的次数
- gamePad.LEFT_get() #记录LEFT按键按下的次数
- gamePad.RIGHT_get() #记录RIGHT按键按下的次数
- gamePad.XPAD_get() #记录X按键按下的次数
- gamePad.YPAD_get() #记录Y按键按下的次数
- button_a.get_presses() #记录A按键按下的次数
- button_b.get_presses() #记录B按键按下的次数
返回值:按键被按下的次数,整数型
例:
from microbit import * #载入microbit库
import gamePad #载入游戏手柄库
gamePad = gamePad() #创建一个手柄对象,用于调用里面的按键
while True:
display.scroll(str(gamePad.UP_get()))
sleep(2000)
#该程序的功能是:记录2秒钟内,UP按键按下的次数,并显示在点阵屏。
疑难解答
更多问题及有趣的应用,请访问论坛