双掌控板收发摩尔斯电码

2021-08-19 17:26山东省招远第一中学牟晓东
电脑报 2021年21期
关键词:摩尔字典收报

山东省招远第一中学牟晓东

作为国内开源硬件的杰出代表,掌控板是一款非常优秀的国产“创客”微控制器板,支持Python代码编程以及Mind+、mPython等主流图形化编程软件。使用单块掌控板进行编程,可以实现噪音计、身高测量仪、高温报警系统和天黑自动收衣服系统等案例;如果有两块掌控板,就可以借助蓝牙与WiFi双无线通讯,遵循MOTT(消息队列遥测传输)协议在SIoT开发平台(如Mind+的SIoT本地物联网、DFRobot的Easy IoT)或OneNET(移动物联网开放平台)等开放平台上进行更为丰富的物联网应用创意项目设计,比如实现谍战影视片中摩尔斯电码的发送与接收。

1.预备知识:摩尔斯电码

摩尔斯电码( Morse code)是一种通过不同的排列顺序来表达相关字符(比如26个英文字母)的数字化通信形式,它的最基本代码是“滴”和“嗒”,分别对应短促的“一个点”信号和“一个划”信号,“一划”相当于“三个点”的时长(如图1)。在各种故事情节中最为经典的摩尔斯电码应用,便是sos国际通用求救信号的发送——字母S的摩尔斯屯码是“滴、滴、滴”三个点,字母()的摩尔斯屯码是“嗒、嗒、嗒”三个划,通过开关手电筒控制电路通断以光的形式,或是单根手指连续敲击桌面以声的形式,都能够快速发送“三点、三划、三点”的SOS求救摩尔斯电码。

2.收发操作方法规划

每个掌控板都有A和B两个按键和P、Y、T、H、()、N六个触摸键供我们选用。在发报方掌控板中进行编程,将按键A和B分别设计对应发送摩尔斯电码的“滴”和“嗒”信号,而将触摸键P作为每组摩尔斯电码(即所表示的某一个字符)的结束信号,因为真实地用摩尔斯屯码发报字母间隔是一个“嗒”的时长(相当于3个“滴”),单词间间隔是7个“滴”,这需要专门训练才能做好,对于初学者来说操作难度较大,而简单地“碰”一下触摸键的动作则非常方便。另外,为了对按键和触摸键的按下与触摸操作进行即时反馈,还要添加RGB灯闪烁和蜂鸣器播放音符模拟“滴”“嗒”声,比如三支RGB灯分别对应按键A、B和触摸键P的“动作”:同时,在收报方掌控板中也进行同样的编程控制方式,模拟实现摩尔斯屯码的发报与收报的“声光”同步响应,趣味性更强。

3.掌控板发报方的mPython编程

将一块掌控板通过数据线连接至联网电脑的USB接口,然后运行rnPython进行程序的编写。

(1)通过WiFi模块将掌控板联网

两个掌控板之间能够正常进行信号的发送与接收的“对话”前提条件是畅通的网络连接,因此程序的最开始必须是进行联网设置。从左侧的“WiFi”中选择第一项“连接WiFi名称……密码……”模块语句,然后补充完整所使用的无线网络名称及密码信息(明文显示)。

(2)进行“连接MQTT”设置

在mPython的“扩展”一“MOTT”中提供了若干种MOTT模块,以其中的“MOTT-Easy IoT”为例(其他的用法基本类似),这是由DFRobot提供的物联网MOTT服务,需要从浏览器访问网站(https://iotdfrobot.com cn/)先进行免费注册,然后登录进入自己账号的“工作间”;左侧有两处关键信息,一是“IoUd( user)”(即用户名),将其值“XNbxt3rMR”复制粘贴至mPython编程中“MOTT-Easy IoT”模块语句中的第三项“Iot_id”中;二是“Iot_ pwd(password)”(即密码),可点击“小眼睛”图标进行显示,将其值“uHxxpqrGRz”复制粘贴至第四项“Iot_pwd”中(前两项“服务器”和“Client ID”均保持默认值)。在“工作间”中执行三次“添加新的设备”操作,分别重命名为“mPython_l”、“mPython_2”和“rnPython_3”,对应三个Topic“主题”的数值,可分别复制并粘贴至记事本中保存,这些信息在收报方掌控板中也要用到(如图2)。

再次返回mPython編程界面,从“MOTT”中选择“连接MOTT”模块语句,添加至“MOTT-EasyIoT”模块语句后面,作用是根据之前的设置进行MOTT连接。

(3)设置OLED显示屏的显示提示信息

先从左侧的“显示”中选择“OLED显示‘清空…模块语句;再使用两次“OLED第¨行显示¨模式‘普通‘不换行…,控制OLED显示屏的第1行、第2行分别显示“连接MOTT-Easy IoT!”和“长江长江,我是黄河!”提示信息;最后要添加“OLED显示生效”模块语句(如图3)。

(4)定义字典变量mv_dict并进行数据的初始化

为了进行摩尔斯电码的分解与重组,可以将二进制代码“0”和“1”与摩尔斯电码的“滴”和“嗒”一一映射进行组合编码。比如:字母“A”的摩尔斯电码是“滴、嗒”,在字典中为它设置“键”( Key)为“01”,“值”( Value)为“A”;再比如:字母8B”是“嗒、滴、滴、滴”,在字典中的“键”就是“1000”。对应摩尔斯电码的编码规则,对字典变量my_dict进行定义和初始化,完成26个大写英文字母的“0”“1”编码映射(如图4)。

猜你喜欢
摩尔字典收报
字典的由来
大头熊的字典
男孩患抑郁 自杀前接到未来妻子电话
正版字典
我对亨利.摩尔艺术特色的解读
亨利.摩尔
亨利.摩尔雕塑展布展的启示