此 demo 在搭载EC600MCNLE
模组的开发板上开发,麦克风和按键用的是开发板上的,屏幕采用分辨率为240×240
的ST7789
,外接一个喇叭到开发板作为音频输出。
code
:所有的代码文件firmware
:模组固件包
固件和脚本烧录方法:QPYcom 固件脚本下载 - QuecPython (quectel.com)
- 型号:ST778
- 分辨率:240×240
LCD初始化详情参考移远wiki:LCD显示屏
基于开发板上对应的KEY1、KEY2
KEY | 引脚 | 功能说明 |
---|---|---|
KEY1 | 引脚号60 --- GPIO13 | 长按说话 |
KEY2 | 引脚号59 --- GPIO12 | 单击:列表滚动 双击:选择当前列表 长按:返回上一级目录 |
按键中断详情参考:ExtInt - 外部中断
接口 | 引脚 | 说明 |
---|---|---|
麦克风 | MIC_N:引脚号23 MIC_P:引脚号24 |
说话录音 |
听筒 (需外接听筒) |
SPK_N:引脚号21 SPK_P:引脚号22 |
播放收到的音频 |
.
├── README.MD
├── code
│ ├── common.py
│ ├── dev
│ │ ├── key.py
│ │ └── lcd.py
│ ├── img
│ │ ├── battery_1.png
│ │ ├── battery_2.png
│ │ ├── ......
│ │ └── signal_5.png
│ ├── poc_main.py
│ ├── services.py
│ └── ui
│ ├── styles.py
│ └── ui.py
└── firmware
└── EC600MCNLER06A01M08_POC_XBND_OCPU_QPY_BETA0813.zip
LCD 和 lvgl 的初始化在ui.py
中进行,属于全局变量。
其他初始化流程如下:
App
是一个poc_main.py
的一个类,对其设置按键、UI、屏幕栏、消息框以及服务之后启动即可。
App
充当一个程序启动的管理器,包含程序的基础组成部分。
App
的UI
负责所有屏幕管理,以及部分事件消息的中转等
App
的服务负责提供基础服务,如网络服务,媒体服务、以及最重要的Poc
服务等
WelcomeScreen
:检测sim
卡状态、绑定平台MenuBar
:每个界面(WelcomeScreen
除外)的菜单栏显示,包括信号、时间、电量MainScreen
:主界面功能展示,包括多个列表DevScreen
:设备信息,包括ICCID
、IMEI
、固件版本GroupScreen
:所在群组显示界面MemberScreen
:所添加的成员列表显示界面
DevInfoService
:提供设备信息服务MediaService
:提供音频服务NetService
:提供网络服务PocService
:提供Poc
对讲服务
在QPYcom
运行poc_main.py
脚本,程序开始运行,进入到WelcomeScreen
界面,同时获取sim
卡状态和当前账号,并通过tts
语音播报当前登录用户及其加入的群组信息。
注意:未插入sim
卡时不会进入到MainScreen
,插入sim
卡重启设备后即可正常运行
主界面包含多个选项列表(用户可自行添加、修改),每个选项对应一个新的界面,双击key2
键,可以进入到所选中的界面当中,长按key2
键则返回上一级界面
- 长按
key1
键,可以与同一群组内的成员进行对讲,菜单栏显示麦克风图标 - 说话结束后,松开
key1
键,结束对讲功能 - 在主动呼叫或被对方呼叫时,都会有消息弹窗提示
- 对方讲话时,菜单栏显示听筒图标