导航菜单
Toggle navigation
微雪商城
微雪课堂
Raspberry Pi
主板/套件
显示屏
摄像头
扩展板
笔记本
机器人
游戏机
Android/Linux主板
人工智能
主板/套件
显示屏
摄像头
扩展板
机器人
显示屏
LCD/OLED
e-Paper
模块
远距离无线通信
近距离无线通信
有线通信/接口转换
摄像头/音视频
传感器
电机/舵机
大杂烩
机器人
智能车
驱动器/传感器
机械手/云台控制
MCU/FPGA
Arduino
micro:bit
LPC
FPGA
查看“Joystick for micro:bit”的源代码
←
Joystick for micro:bit
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
<div class="wiki-pages blue-color"> {{DISPLAYTITLE:Joystick for micro:bit}} <div class="tabber"> <div class="tabbertab" title="说明"> {{外围模块|colorscheme=blue |name = Joystick for micro:bit |img=[[File:Joystick-for-micro-bit-intro.jpg|360px |alt=Joystick for micro:bit|link=https://{{SERVERNAME}}/shop/Joystick-for-micro-bit.htm | Joystick for micro:bit]] |category1=micro:bit |brand=Waveshare |feature = micro:bit游戏手柄扩展板 |Product1 = {{micro-bit-Related-Product}} }} ===产品介绍=== 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 ===接口定义=== {| class="wikitable" |- ! 描述 !! 硬件引脚 !! 功能 |- | 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 || 蜂鸣器 |} ===程序目录=== 下载程序,并解压后得到如下文件夹目录如下: [[File:program.png|500px]] 分为两种例程:一种使用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。 <big>'''typescript'''</big> typescript即图形化编程,官方编程地址:https://makecode.microbit.org/# * 打开浏览器,输入网址: [[File:open_make.gif]] *创建工程 点击项目->新建工程,然后在下方的无标题中,重命名为game。当然,你可以命名成你想的任意工程名。 [[File:2_buildprojectandname.gif]] *添加包 从github上获取我们的库:依次点击高级->添加包,或者点击齿轮->添加包。然后在弹出的对话框中,单击搜索框将网址:https://github.com/waveshare/JoyStick 复制进去,注意最后加上一个空格,否则可能无法索引到: [[File:3_addpag.gif]] *点击WSJoyStick: [[File:WSJoyStick.png]] 各积木块的作用如下: '''1、模块初始化:''' 对于此模块,需要进行初始化,这个积木块中把五个按键(除了A与)进行了上拉,以及读取一次摇杆状态,此状态用于判断后面操作摇杆的状态,如果在未初始化完成的情况下,摇动摇杆,造成后面可能无法判断某个方向,此时应该不动摇杆,复位micro:bit后即正常。 [[File:4_placeinit.gif]] '''2、监听按键:''' 我们提供两种监听方式,他们各有优点。 第一种,配合if使用,这种方式下在内部可以有延时,可以做实时性不强的事件处理。 [[File:5_placekey1.gif]] 第二种,不需要if,类似input中的on button A pressed,这是一种中断处理机制,里面不能有延时,实时性是比较强的。 [[File:6_placekey2.gif]] '''实验效果''' 当按下摇杆的时候,那么micro:bit就会亮P。 [[File:wps8582.tmp.png]] '''3、监听摇杆''' 如果前面进行了初始化,那么当使用此积木块的时候摇动对应的方向,即会返回逻辑真。 [[File:7_PLACEDIR.gif]] 依次放置其他的8个方向的判断: [[File:PlaceDir_All.png]] '''实验现象''' 控制摇杆不同方向,即可显示对应的方向。 [[File:wpsF913.tmp.png]] '''4、控制蜂鸣器''' 控制蜂鸣器有两种使用方法,第一种使用我们提供的积木块,第二种可使用micro:bit自带的音乐库。 第一种:使用我们的积木块,这个与micro:bit自带的是一样的。 第一个参数选择音阶,第二个参数选择节拍。 [[File:8_placemusic.gif]] 依次放置如下: [[File:place_music.png]] '''实验现象:''' 下载程序到模块,板载的喇叭将会响出do re mi fa so la si do。 第二种:使用micro:bit自带的音乐积木块,在管脚上是兼容的。 与上面的使用是一样的: [[File:8_placemusic2.gif]] 依次放置如下: [[File:place_music2.png]] 当然你也可以使用其他的积木块,更多的积木块如下: [[File:blocks_music.png]] 发挥你的想象力,建造出美妙的音乐。 '''5、验证Demo''' 打开Typescript-Demo,将文件夹下有microbit-JoystickDemo.hex文件。 你可将其直接复制到连接到电脑的micro:bit下,也可以先将其上次到makecode上,再下载: 直接下载到micro:bit: 将micro:bit用USB线连接到电脑,电脑将会识别到一个8M左右的MICROBIT的U盘,将microbit-JoystickDemo.hex复制到该U盘即可: [[File:11_dowmcode.gif]] 先上传到makecode,再下载: [[File:10_load.gif]] <big>'''micropython''' </big> 对于micropython有两种方式,一种使用官方的编程网址:http://python.microbit.org/v/1 另一种使用mu,其官方下载地址:https://codewith.mu/#download ,该软件在我们的资料中也可下载。 建议使用第二种,对于国内而言这个有时候会因为网络问题,出现访问不了的情况,同时并不会提示错误。 打开软件 [[File:Open_MU.png]] 点击Mu上面Load将文件夹中的WSJoyStick.py上传到编辑器。 [[File:12_MU_Program.gif]] 可见程序中有如下的方法实现: 使用micropython时不需要进行初始化,因为在实例化的时候已经进行了该步骤。 *Listen_Dir(Dir):监听摇杆方向; *Listen_Key(Key):监听按键; *PlayScale(freq):播放一个音阶的声音; *Playmusic(tune):播放音乐; 更多的控制,请参考micro:bit官方的python库:http://microbit-micropython.readthedocs.io/en/latest/index.html [[File:web_micropython.png]] ===无线程序=== 需要两个microbit才可用,使用typestript示例: 打开文件夹Typescript-NRF中的程序: 一个为NRF_Send.ts,一个为NRF-Receive.ts [[File:microbit_Joyhstick_send.png]] [[File:microbit_Joyhstick_rec.png]] 通信的关键在于设置成同一组: radio.setGroup(255) 并且一个micro:bit烧录microbit-NRF_Send.hex,另外一个烧录microbit-NRF_Receive.hex。 [[File:offline_code_programming.png]] '''实验现象:''' [[File:offline_expected.png]] '''贪吃蛇程序''' 贪吃蛇程序使用micropython进行示例: [[File:snake.png]] 贪吃蛇由三个部分构成,分别是:动作,蛇,食物。 *JOYSTICK:为监听摇杆的动作,由于使用python控制,如果完全把摇杆的程序移植进来会导致内存溢出,因此只留下控制部分; *Snake:实现蛇的长度的变化,蛇头位置随移动方向改变等; *Fruit:为刷新食物的位置; *Game:初始化蛇,食物,以及摇杆,实现监听摇杆方向控制蛇的方向,实现蛇的移动,画蛇等功能。 在while true中,监听动作,更新蛇,画蛇,每隔0.5S运行一次,直到蛇撞到自己的身体结束游戏,打印分数。 </div> <div class="tabbertab" title="资料"> ===视频=== *[[Joystick-for-micro-bit-Video|Joystick for micro:bit演示视频]][[File:video-logo.png|23px|link=Joystick-for-micro-bit-Video]] ===文档=== *[https://{{SERVERNAME}}/w/upload/1/1e/Joystick_for_microbit.pdf 原理图]<br> ===程序=== *[https://{{SERVERNAME}}/w/upload/b/bb/Joystick_for_microbit_Code.7z 示例程序]<br> ===资料=== *[https://codewith.mu/#download python离线编辑器]<br> </div> <div class="tabbertab" title="FAQ"><br /></div> <div class="tabbertab" title="售后"><br />{{Service16}}</div> </div>
该页面使用的模板:
模板:Micro-bit-Related-Product
(
查看源代码
)
模板:Note
(
查看源代码
)
模板:Note/styles.css
(
查看源代码
)
模板:Service17
(
查看源代码
)
模板:外围模块
(
查看源代码
)
返回至
Joystick for micro:bit
。