Funpack第十期玩成就送开发板Kitronik ARCADE
Funpack是硬禾学堂联合Digi-Key发起的活动。Kitronik ARCADE是一款功能丰富的可编程游戏手柄,搭配微软MakeCode Arcade编辑器使用,可参考丰富的教学材料开始创建游戏,或调整现有开放源码方式学习制作游戏。
标签
测试
显示
Funpack10
雨天de尾巴
更新2021-08-31
578

Funpack Funpack是硬禾学堂联合Digi-Key发起,为期一年的“玩成功就能得奖”活动。每个月我们都会推出一款全球顶级半导体厂商的开发板/仪器套件。如果你能在一个月内按照指定目标把它玩起来,就可以获得丰厚奖励。

ARCADE 功能简介

Kitronik ARCADE是一款功能丰富的可编程游戏手柄,搭配微软MakeCode Arcade编辑器一起使用,你可以参考丰富的教学材料从头开始创建一个游戏,或者,调整现有开放源码的方式学习制作一款游戏。

板卡布局:

· 一个全彩的LCD屏幕

· 一个用于音频反馈可以使用软件控制音量的压电蜂鸣器

· 一个用于触觉反馈的振动马达

· 六个输入按钮

· 一个菜单按钮

· 一个复位按钮

· 一个开关

更硬核的是这些都被封装在一个透明的保护壳里,你可以清楚地看到每一个电子元件。

project.png

ARCADE上还包括2组扩展端口。这些端口直接与微处理器引脚相连。启用这些端口需要对ARCADE的引导程序进行重新配置和编程。

定制处理器的引导程序代码是相对更高级的操作,需要使用SWD调试端口进行下载。
ARCADE为板载处理器提供了一个稳定的电源,可以用3节5号电池或通过microUSB接口供电。

特性表
处理器 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

第十期指定完成的任务
rule-sample.png

活动参与者可从以下任务中任选其一完成:

任务一:
参考官方教程,移植或设计一款游戏(要求: 不得与官方提供的游戏重复; 可供选择:打地鼠、俄罗斯方块等)。

任务二:
设计一个摩斯密码练习器,选择两个按键为点与横,或者一个按键的长短按,从以下两种方式中任选一个完成:
1. LCD屏上随机出现一个字符,敲出对应的组合(3-5个字符即可),正确时,蜂鸣器响;错误时,振动电机发出振动
2. 敲击按键,识别出按键组合对应的字符,在屏幕上打出自己的id。

最终实现的功能:

我选择实现任务二里的第一个项目,设计一个摩斯密码练习器,选择A按键为点,B按键为横,LCD屏上随机出现一个字符,敲出对应的组合,正确时,蜂鸣器响;错误时,振动电机发出振动 。随机输入正确3-5个字符后即可获得胜利。

功能实现演示:

·开机提示界面。介绍游戏内容和操作按键定义。

FlhE-zaodk07bwLvuDCjAR4iTY-C

Fg9OwBxL153Nnq0-KdKUzfPIVIZb

 

·按下A键后在摩斯电码表中随机抽取一个显示。再次按下A键后,将记录按键输入内容。

FlvVUvPh0xFf7I07_DgfYuErOzmj

 

·按键输入完成并且正确后,播放声音记录得分并显示。

Flf6-A-QLt3P7Y5lB8RFrPl6TWis

 

·按键输入完成但是错误后,播放声音,电机振动,提示游戏结束。

Fn88PDOntwF3BPaPogoocrP2zIeG

 

·连续正确3~5个摩斯电码后,播放声音提示游戏胜利。

FrrWYCCk21MElxyc1zN4rtB4eeXs

 

各功能对应的主要代码片段及解释:

1.显示的字母、数字、符号定义。因为要在屏幕上显示随机出来的内容,所以我将所有字母、数字和符号以文本的形式放入数组中。

FhPu9q_IO-Eo-4OX3aPrtU64x1p5

 

2.将所有字母、数字和符号对应的摩斯密码放入相对应的数组里。将文本的点和横,按照摩斯码的顺序写入数组中,用于后面按键输入内容的比较。

FrvmcXBeiUU7WCB3oTDcLBJ4NVrI

 

3.开机设置suijishu1变量。在3~5的数字里,随机选出一个数并放入suijishu1里,这个用于判断输入正确的次数。

FoSo3VJKiqevWj_McBFKJ64Z5zAs

 

4.qingling函数的内容。调用这个函数用来清除上一次的数字,并生成新的数字。设置shuru数组为空数组,这个数组用来记录按钮的输入值。设置suijishu2在0~38数字中随机生成一个数字并存入,这个用于生成要输入的字母、数字和符号。设置anjianshu为0,这个用于记录按钮输入的次数。设置bijiaoshu为0,这个用于记录按键输入内容和数组内容的比较次数。显示suijishu2中的数字对应数组中字母、数字和符号的内容。

Fk6CX6FcYca-vaymgK17CSwfcP90

 

5.按键事件。当A按键按下,在shuru数组中第anjianshu的位置设置为文本“.”,再将anjianshu的值+1。当B按键按下,在shuru数组中第anjianshu的位置设置为文本“_”,再将anjianshu的值+1。这样就可以按顺序记录按键的输入。

FtMXlfJs18bGVCkZVZog2PdZAfh1

 

6.判断输入内容是否正确。第一步,判断suijishu2生成的数字是什么,通过尝试发现生成的数字不能在图形编辑中直接拖拽对应为数组名,所以只能逐个判断数值,再对应到字母、数字和符号。第二步,判断anjianshu是否与对应的数组长度一致,就是按键输入的次数等于对应数组的长度才行。第三步,调用重复块进行两个数组内容的逐个对比,重复对应数组长度次进行shuru数组和对应数组顺序比较,如果比对正确,则bijiaoshu+1为下一次比较准备,如果不正确则发出震动并结束游戏。数组内容比较完成正确后,得分+1(这个用于显示),发出声音,defengshu+1(这个用于判断正确次数),调用qingling函数,最后跳出对应数组长度比较,进行下一次输入等待。

Ftdl6b0ut5nQymEdftfxGuRW04Hz

 

7.判断正确次数。按键输入正确后的defenshu与suijishu1比较,相等后播放声音并提示游戏胜利。

FolZN8T-HvwYIYdgF23XjJFDnjdk

 

本活动的心得体会

  通过这一个月的学习感觉收获颇多,从最开始接触了解这个活动,我就产生了极大的兴趣,因为我一直觉得现在的学习感觉理论与实际是脱离的,就像是我学会了编程的各个基本知识和技巧,但是我不知道如何去在实际中使用。我是一个不会任何编程语言的人,所以完成这个项目我只是依赖图形块的编程方式实现的,可以说是从零开始,我从https://arcade.makecode.com开始学习最基本的知识,认真的看完了所有的教程,当然,涉及到编程语言的我就先跳过,在学习中就在想哪些是我可以在完成项目中使用的,就这样一点一点,不断的尝试摸索中完成了,我知道我做的这个还有很多地方不够完善,但我是抱着要学习python去的,我认为这个项目真的给了像我一样有迷惑的人一个方向,可以在学习编程的过程中切实的感受到自己写的东西成为了什么,是如何在实际的硬件中发挥作用的,我相信Kitronik ARCADE学习板会给我带来更多的编程乐趣。

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