Funpack10: 莫斯电码练习器
通过MakeCode Arcade, 再Kitronik Arcade上实现摩斯电码练习器的功能
标签
嵌入式系统
john
更新2021-08-30
867

内容介绍

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, 根据提示的字符输入摩斯码

FmHOdN6RwqM83acY_aqSDFMDA4bj

  • 正确提交: 长按A提交, 如果正确则有提示音

FvYMdMsCGctQEu7dieGj4Ak-Mypc

  • 错误提交: 长按A提交, 震动并提示错误信息

FvrkEuF8YBmCUq01QxbyKli7tBLm

2. 输入ID模式

  • 输入ID: 输入时, 长按B为字符间隔, 左上角会自动根据用户的数去翻译为字母

Ftu91fRZcVuaep4uidv1qtj93VS_

4. 对本活动的心得体会

  • 了解了Python再更多情况下的用途: 这块开发板集成度很高, 上手几乎没有难度, 网页开发环境也大大降低了入门的门槛. 是一个给身边的人介绍Python, 了解Python的一个非常好的契机

  • 善加利用说明文档:

    开发过程中遇到了结果问题, 比如类使用不了, 如何调处震动等功能, 通过官方的文档都能得到解决.

 

 

 

 

附件下载

1.uf2
莫斯电码练习器
2.uf2
莫斯电码自动识别

团队介绍

团队成员
黄煜鑫
阳狮集团 星传媒体 Python高级工程师

评论

0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号