内容介绍
内容介绍
1. 本板卡最终实现了什么功能
本次选择了任务2, 设计一个摩斯密码练习器.
设计一个摩斯密码练习器,左键为点,右键为横:
1. LCD屏上随机出现一个字符,敲出对应的组合(3-5个字符即可),正确时,蜂鸣器响;错误时,蜂鸣器发出振动
2. 敲击按键,识别出按键组合对应的字符,在屏幕上打出自己的id
2. 各功能对应的主要代码片段及说明
1. 全局列表变量
作为字典, 用于字符与摩斯码的转换, 两个列表通过index进行对应
morseChar = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7',
'8', '9', '0']
morseCode = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....',
'..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.',
'...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..', '.----',
'..---', '...--', '....-', '.....', '-....', '--...', '---..',
'----.', '-----']
2. 输入
input_code = ""
def dot():
global input_code
input_code = input_code + "."
music.play_tone(Note.C5,100) # 播放点音
def dash():
global input_code
input_code = input_code + "-"
music.play_tone(Note.C5,500) # 播放划音
3. 对比
def code_to_char(code):
for i in range(len(morseCode)):
if morseCode[i]==code:
return morseChar[i]
return code
def char_to_code(char):
for i in range(len(morseChar)):
if morseChar[i]==char:
return morseCode[i]
return char
由于MakeCode不支持dict.get()功能, 所以匹配的功能需要使用循环来完成
3. 实现功能的演示及说明
1. 问答模式
- 输入: 左方向键为Dash, 右方向键为Dot, 根据提示的字符输入摩斯码
- 正确提交: 长按A提交, 如果正确则有提示音
- 错误提交: 长按A提交, 震动并提示错误信息
2. 输入ID模式
- 输入ID: 输入时, 长按B为字符间隔, 左上角会自动根据用户的数去翻译为字母
4. 对本活动的心得体会
-
了解了Python再更多情况下的用途: 这块开发板集成度很高, 上手几乎没有难度, 网页开发环境也大大降低了入门的门槛. 是一个给身边的人介绍Python, 了解Python的一个非常好的契机
-
善加利用说明文档:
开发过程中遇到了结果问题, 比如类使用不了, 如何调处震动等功能, 通过官方的文档都能得到解决.
附件下载
1.uf2
莫斯电码练习器
2.uf2
莫斯电码自动识别
团队介绍
团队成员
黄煜鑫
阳狮集团 星传媒体 Python高级工程师
评论
0 / 100
查看更多
猜你喜欢
Funpack 第十期 Kitronik ARCADE 实现莫斯电码输入使用 Kitronik ARCADE 实现莫斯电码输入与练习。
cjmf
1270
Funpack10:莫斯密码练习手柄Kitronik ARCADE是一个功能齐全的可编程游戏手柄,支持方块,JAVA,Python开发方式培养你的编程技能。本期通过Kitronik 制作一个摩西密码练习器。
颜七岁
1248
Funpack第十期:莫斯密码练习器这是我第一次参加fanpack系列活动,本次活动使用Kitronik的ARCADE可编程游戏手柄。活动要求在LCD屏上随机出现一个字符,敲出对应的组合(3-5个字符即可),正确时,蜂鸣器响;错误时,振动电机发出振动。
疾风亦有归途
1185