一个基于ESP32使用ESP-IDF架构开发的摩尔斯电码练习器,使用LVGL制作图形界面。可以实现摩尔斯电码的本地练习以及通过网络与其他使用此项目的HAM进行模拟通联。
目前项目正处于开发测试阶段,不保证所有的功能都能正常使用,仅供有兴趣的朋友抢先体验。
基础功能
配网
模拟通联
设置
训练
网络对讲
SDR
鉴于目前为测试阶段,此物料清单不作为最终版本使用。所列内容可能随时有改变。
名称 | 数量 | 说明 |
---|---|---|
ESP32开发板 | 1 | |
杜邦线 | 若干 | |
扬声器 | 1 | |
旋转编码器 | 1 | |
彩色显示屏 | 1 | 显示控制芯片ILI9341 分辨率240×320 触摸控制芯片XPT2046 |
3.5毫米音频母座 | 1 | 用于连接电键 |
3.5毫米音频线 | 1 | 公对公,用于连接电键。 |
电键 | 1 | 手动或自动均可,或者也可以使用开关代替 |
功放 | 目前项目中并没有使用功放,后续会添加 |
DISP: 显示屏
TOUCH: 触摸控制引脚(可以不接,使用旋转编码器可进行所有操作)
KEY: 电键
ROT: 旋转编码器
SPK: 扬声器
所有模块的GND均接入开发板的GND引脚,下表中不再重复说明。
设备 | ESP32 | 说明 |
---|---|---|
DISP - MOSI | GPIO13 | 或标为SDI |
DISP - CLK | GPIO14 | 或标为SCK |
DISP - CS | GPIO15 | |
DISP - DC | GPIO2 | |
DISP - RESET | GPIO4 | |
DISP - VCC | VIN | |
DISP - LED | 3V3 | |
TOUCH - IRQ | GPIO27 | |
TOUCH - CS | GPIO5 | |
TOUCH - CLK | GPIO18 | 或标为SCK |
TOUCH - MOSI | GPIO23 | 或标为DIN |
TOUCH - MISO | GPIO19 | 或标为DO |
ROT - CLK | GPIO33 | |
ROT - DT | GPIO32 | |
ROT - SW | GPIO12 | |
KEY - A | GPIO34 | 默认手动键使用该引脚 |
KEY - B | GPIO35 | |
SPK | GPIO25 | 暂时没有使用功放,后续接线方法可能会发生改变 |
如需更改引脚,可在在coffee_lib目录下的config.h文件中进行配置。
固件上传可以使用以下三种方式
以下分别介绍这三种方式的操作方法。
此方式目前仅支持Windows操作系统
在乐鑫工具下载页面下载Flash下载工具。
根据自己手上的开发板下载对应的USB驱动。目前市面上的ESP32开发板所使用的串口转USB芯片多为CH340或CP2102,确认好自己的开发板的芯片信号下载对应驱动即可。
确定开发板已经被电脑正确识别后,启动乐鑫的Flash下载工具。
启动后将ChipType
选择为ESP32
,其他内容不变。如下图:
将bin目录中的4个文件分别添加到工具中。记得要将工具中文件名称前面的复选框勾选,并将每个文件对应的地址偏移写到文件名后方。具体填写内容如下表:
文件名 | 地址 |
---|---|
bootloader.bin | 0x1000 |
partition-table.bin | 0x8000 |
ota_data_initial.bin | 0xd000 |
coffee.bin | 0x10000 |
选择好正确的端口,点击START
后等待下载完成即可。完整的设置如下图:
再次提醒:一定要将文件名称前面的复选框勾选上
todo
使用VSCode中编译使用的是乐鑫的vscode-esp-idf-extension扩展插件。为什么不用PlatformIO呢?因为PlatformIO所使用依赖库大部分都是放在境外的服务器上,由于不便详细阐述的原因,很多小伙伴没有办法正常安装和使用。但是习惯使用PlatformIO的小伙伴也不用担心,项目源码在PlatfromIO上也可以正常跑通,IDF版本使用4.4.x和5都可以,但是由于IDF 5的特性,使用的时候需要手动添加一些库,例如esp_websocket_client。具体详情请参考乐鑫官方文档关于从 ESP-IDF 中移出或弃用的组件中的内容。
在Python官网的下载页面下载并安装python3。
安装时记得把底部的两个复选框都勾选上
下载保存源码文件,git或下载zip文件的方式均可。
在官网下载VSCode。
在VSCode中的扩展标签里搜索并安装”ESP-IDF“扩展插件。
插件下载完成后,点击工具栏的”ESP-IDF“图标,等待一会,初始化完成后会出现ESP-IDF安装配置页面。
出现安装配置页面后选择”ADVANCED“选项。
进入配置页面后,在”Select download server“中尽量选择乐鑫服务器(Espressif)而不是Github。至于原因...这里不便展开说明,会被屏蔽。
IDF的版本选择4.4.X。如果选项中没有,可以勾选”Show all ESP-IDF tags“,之后就可以列出全部可下载版本。
一切就绪后点击”Install“。
接下来就是耐心等待下载完成
温馨提示:如果不出意外的话,这一步骤需要极大的耐心
接下来是下载"ESP-IDF Tools", 同样需要耐心等待。
不过好在以上两个步骤的这个过程只需要一次即可。
打开下载的项目文件夹,连接好ESP32开发板,选择正确的端口,编译并上传。
在主页面按下编码器按钮即可进入设置页面。
在主页长按编码器按钮即可弹出一个二维码,当练习器与手机连接在同一个WiFi下时,扫描二维码即可进入设置页面。
目前网络通信部分使用WebSocket方式,后续会添加MQTT方式可供选择。两种方式所传输的数据均使用同一种格式约定。具体约定内容如下:
发送时间|呼号|发送内容
其中,发送时间
的格式为 小时:分钟:秒钟,每个时间使用2位数字表示,例如:22:45:32
。
每一部分内容之间使用”|“分割。完整示例如下:
22:45:32|BG7YXY|-.-. --.-
传输内容中不可包含电码翻译内容,电码翻译工作在练习器中实现。 如下内容为错误传输内容
22:45:32|BG7YXY|-.-.C --.-Q
尽管以上的传输内容可以正常工作,但是不建议这样使用。原因如下:
电码是否需要翻译在练习器中设定。练习器不过滤传输内容,会将所接收到的内容原样输出,所以如果将翻译后的电码一同传输会导致设置不翻译电码的用户显示出翻译后的内容。
后续功能中还将通过网络传输其他内容,将翻译后的电码一同传输将影响此功能。
用户可以自行搭建服务器使用,只需要实现如下功能即可。
BG7YXY|-.-. --.-
。服务器需要将接收到的内容前插入时间信息,时间格式符合上一节”传输内容格式约定“中的要求。感谢 执水无为 提供关于练习器通联训练的促进机制的创意,稍后会在基础功能稳定后添加进去。
感谢在此项目中使用到的开源代码的所有贡献者们!世界因为有你们所以如此美好!
2023-01-01
2022-09-20
2022-09-06
2022-09-05
2022-09-04
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. Open source ecosystem
2. Collaboration, People, Software
3. Evaluation model