Funpack 第十期-Kitronik ARCADE基于makecode图形化编程实现摩斯电码练习器
使用Funpack 第十期板卡Kitronik ARCADE游戏手柄,通过微软Makecode Arcade图形化编程方式实现了一个摩斯电码练习器。
标签
嵌入式系统
Funpack第十期
SHU
更新2021-09-01
1079

一、使用板卡介绍

      本次活动的板卡为Kitronik ARCADE,一个功能齐全的可编程游戏手柄。

      Kitronik ARCADE 专门设计用于提供运行这些游戏的完美平台。 它功能齐全,符合人体工程学设计,舒适易用。 它具有全彩色 LCD 宽视角屏幕、用于音频反馈的压电发声器、用于触觉反馈的振动电机、6 个游戏玩家输入按钮、一个菜单按钮、一个重置按钮和一个开/关开关。 完美游戏体验所需的一切。 它还具有软件音量控制、一个 USB 编程端口和 2 个面向专家级用户的扩展端口。

      ARCADE 可由 3xAA 电池或通过微型 USB 连接器供电,电池座位于 PCB 的背面。三个电池座的位置符合人体工程学,还可用作手柄,在游戏时提供最大的舒适度和控制力。板载电池供电让您可以随时随地玩游戏;在火车上、沙发上或其他任何地方!

      板卡硬件布局如下:

FnXbxF9s9xx7EPapER7B2DywGF9q

特性表:

处理器

Atmel   SAMD51J19A

工作电压

3节5号电池(3.6-4.5V)或USB(通常为5V)

LCD屏幕分辨率

160   x 128

LCD屏幕尺寸

1.77英寸(对角线)

电流消耗

约80mA

工作时长

(3节5号电池 1500mAh电池)约20小时

下载调试

USB下载或SWD下载

扩展IO

8个IO和8个GND

     Kitronik ARCADE的主要应用方向是教育和学习领域,使用微软Makecode Arcade图形化编程平台,可以帮助用户,特别是青少年轻易实现游戏的编写、调试、分享和下载。当然,预留的扩展和调试接口也允许高端玩家实现更多创造性的项目。

二、实现功能

     本次活动选择了任务2, 设计一个摩斯密码练习器,功能如下:

      1. LCD屏上随机出现一个字符,敲出对应的组合(3-5个字符即可),正确时,蜂鸣器响;错误时,振动电机发出振动

      2. 敲击按键,识别出按键组合对应的字符,在屏幕上打出自己的id

      设计之初是照着功能1进行的,在过程中发现实现摩斯码转换为字符也包含在项目中了:)。

三、代码实现

      本次项目的板卡本身即是基于微软Makecode Arcade平台设计的,因此为体验板卡与平台搭配效果,本次项目全程使用Makecode Arcade平台的方块编程方式完成。

   1.初始化

      在设计过程中,将任务功能包装成了一个小游戏。游戏初始化,主要包括背景故事阐述、图形背景建立、操作说明、游戏信息初始化、摩斯电码数组建立几块功能。图形化程序如下:

Fm0zS6LrrKUeBc4AQb7c6va0tcH_

(中间均为摩斯电码和对应字符数组,故省略)

Fs_cD4ei4nkM5PeqVfRRybiaj7N9

     可以看到,游戏信息的给出主要通过显示长文本方块完成,图形界面、游戏信息等功能都可以通过“场景”、“精灵”、“游戏信息”方块简单拖拽组合完成。对于莫斯码和字符数组的建立则比较麻烦,需要不断手动添加元素并修改值。初始化完成后,等待玩家按下A即可调用出题函数并开始游戏。

   2.出题

FvoJU8cL4TXsNkY-51G1c0HR5Rly

      函数模块在菜单中的“高级”选项中,对图形化编程的简便性有比较大的帮助。出题函数的实现主要是进行随机次数(2-5次)的循环,每次循环以随机数的形式取字符表的索引,并将索引对应的字符添加到“问题”字符串中,最后由公主说出,呈现给玩家,并开始题目回答的倒计时。此外,还有回答问题中的变量清零、彩蛋问题等功能。

   3. 按键

Fm9unIvmON4hMyC_XJDfh9F_V20t

      案件功能方面,方向键左右分别为字符“·”、“-”;方向上为将摩斯码转换为对应字符,方向下为清除上一次输入;按键A为确定回答,按键B为放弃本次游戏。摩斯码首先输入字符串input2中(在末尾添加);按方向上键,将调用compare函数,将摩斯码转换为对应的字符,添加到“Answer”字符串中并显示。按方向下键,若input2不为空,则删去input2最后一个字符(摩斯码),若input2为空,则删去Answer最后一个字符。按下A键,则调用judge函数,判断回答是否正确;按下B键,游戏结束(不知道设什么功能)。

   4.摩斯电码转换为字符

      摩斯电码转换为字符功能通过函数compare实现:

Fm-Lf6t4aU7ve3GWAaCkILnfbI4s

……

FnyjoeYXO-zs9jWROp7W-v_Pr-Kp

      整个函数即一个大的比较语句,由于摩斯码的数量较少(39),因此直接通过遍历的方式找到对应字符。当然,也是由于使用图形化编程方式,这种形式比较直观、简单,知识工作量稍大。

   5.判断答案

      判断答案进行结算通过函数judge实现:

FsJbtfsoM-anVEm-IIWEPf5lM1UB

      首先判断是否达到游戏胜利条件,然后比较Answer和Question字符串,如果两者一样,则得分加一并发出提示音,并出下一题;否则答案错误,游戏机给出振动反馈,并出下一题。

四、功能演示

开机界面:

FtZhT4ZvjCJFKzdoS4b7L0Q0CiRb

开场动画:

FnVSBHNN9Xqm_zyAF-Ue_S64QyGz

操作说明:

FqybEAkwAlGVlO_BYM7N3H0Am3Mw

公主随机出题:

FvxZjac5TP9SCIZAblmLG-Ue7Wqu

左右键输入:

FmOVeTCpqV-tG0Z85yOo0_-lUfyf

回答超时振动并减生命值,公主说话未显示:(

FiGI8xT27fyQ3gn3QW6gmi_ccf9y

回答正确,蜂鸣器发声并加分:

FuUHwVNqmf2WjbvqD3HDMDJ5Gv4d

回答错误,电机振动并减生命值:

FqTZiMEfOqJ6pTNSxEwa1SspCVA4

游戏结束:

FpN6-7oCA4ZYBuMv_NsuJo4LskSS

游戏胜利:

FgCynA-QmAWNpuGqtk_iuho5VvQX

打出ID:
FgflJdksDC2PoTsWq0bTqPyF6-Us

五、心得体会

      本次Funpack活动的游戏手柄Kitronik ARCADE可玩性比较高,有丰富的资源,容易上手的网页开发环境以及的图形化编程方式,可见是比较适合青少年用户培养兴趣的能力的比较好的教育产品。本次任务也主要使用了这些基础,对于板卡的扩展和第三方IDE等功能没有尝试。在现有项目中,还存在诸多问题,如开机动画中按下A键导致报错、设计的倒计时结束动作不完整、游戏结束时的振动需要按A停止等问题。尚有改进的空间,但仅通过方块编程的方式可能难以实现,希望将来的代码方块可以分的更加细致,可修改性更好,对于新手将有更大的帮助。

      欢迎大家试玩及指导,项目地址:https://makecode.com/_XKq0Hjbjj5tF

附件下载
arcade-Morse-Princess-摩斯电码练习小游戏.uf2
团队介绍
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号