教你制作一个自动发摩斯电码的PYTHON小程序

本文介绍如何利用PYTHON制作一个自动发送摩尔斯电码的小程序,通过理解摩尔斯电码规则和使用pynput库控制鼠标点击,实现了文字到摩尔斯电码的转化并自动点击发送。
摘要由CSDN通过智能技术生成

最近有一段时间了解了一下摩尔斯电码,感觉十分的好玩,可是想要发电报还得考无线电证书,然后还要买各种设备,想了一想还是算了,为这玩意花太多心思不太实际。

可是我却找到了一个好网站,它可以通过摩尔斯电码在那上面交流,网址是:http://morsecode.me/?room=5。不过我的技术太菜了,发个电报太费劲,看着各位大佬在那里发着电报,那速度简直了,我心中便有了一个想法:实力不行,那就自己写个程序帮我实现吧。结果没多久就搞好了,不愧是PYTHON。先放一个效果图
在这里插入图片描述

本身制作并不算难,很简单。你们可以先尝试制作,我先分析
要想制作自动摩尔斯电码,首先得要了解莫尔斯电码发报的规则

摩尔斯电码表
这是摩尔斯电码对照表
每一个字符都有一个与之对应的摩尔斯电码。在摩尔斯电码中,有三种状态,一种是点,一种是横,还有一种是停顿。一般点读作“滴”;横读作“答”。‘答’其实就是时间持续更长的‘滴’罢了。
在这里插入图片描述
从上面这段内容可以看出,**“答“的长度是随着”滴"的长度变化的,”答“的长度为3个”滴“的长度;而‘答’和‘滴’之间,也有一个‘滴’的长度的间隙;而字母和字母之间也有3个‘滴’的间隙,字词之间有5个‘滴’的长度的间隙。**如果还不是很清除的话,可以去百度

有了摩尔斯电码的基础之后,制作就清晰了,无非就是控制鼠标左键点击按钮的时间长短
我采用的是pynput这个库,可以通过pip install pynput来进行安装。这个库是用来控制鼠标点击和移动的
详细使用教程看这个链接:https://blog.csdn.net/weixin_34107955/article/details/93658661?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-3&spm=1001.2101.3001.4242

清楚了pynput和摩尔斯电码的使用之后,我们就可以开始制作了

制作流程:

  • 设置一个滴持续的时间 (base_speed)
  • 设置摩尔斯码对照的字典,我是这样设置的在这里插入图片描述
    这里的1代表的是“滴”,这里的2代表的是“答”,建立对应关系。而如果碰到了空格,说明是字词与字词之间,应该单独提出来,单独处理
  • 读取想要发送的信息
  • 将鼠标移动到按钮所在的位置 mouse.position = (x, y),不清楚可以把鼠标放到按钮的位置,然后再通过mouse.position来读取位置,就知道了
  • 遍历想要发送的信息,读取每一个字符
  • 把拿到的每个字符放到字典里匹配,拿到对应的莫尔斯码
  • 再遍历拿到的莫尔斯码,判断是否不为F(如果是F说明是空格,需要单独处理
    • 如果不为F,则按下鼠标mouse.press(Button.left) ,再判断拿到的是1还是2。如果是1,那么就是‘滴’,持续一个 base_speed 的时间;如果是2,那么就是‘答’,持续三个 base_speed 的时间。最后松开鼠标mouse.release(Button.left)
    • 如果为F,那么就是空格,是词与词之间,空七个base_speed的时间(不知道为什么,本人设置五个base_speed的时间不行,不识别, 无奈设置成了7个)
  • 每得到一个莫尔斯码,最后就得要空一个base_speed的时间;每得到一个字母,就得空三个base_speed的时间,如果你还不知道为什么要这样做,就再去看看莫尔斯电码的规则

思路就是如此,大家可以先自己尝试着做一下我就先放出源码

from pynput.mouse import Button, Controller
import time
mouse = Controller()
words = {
   " ": "F", "A": "12", "B": "2111", "C": "2121", "D": "211", "E": "1", "F": "1121", "G": "221", "H": "1111", "I": "11", "J": "1222", "K": "212", "L": "1211", 
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值