_SKU_DFR0536__micro_bit游戏手柄扩展板 - jimaobian/DFRobotWikiCn GitHub Wiki

micro:bit游戏手柄

简介

重要更新: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)

功能说明

DFR0536外形图.png

功能 功能说明
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按键按下的次数,并显示在点阵屏。

疑难解答

更多问题及有趣的应用,请访问论坛

更多

DFshopping_car1.png DFRobot商城购买链接