From 4ca49994ab905fba7751b43d62a077c639214ca9 Mon Sep 17 00:00:00 2001 From: Kayden Date: Tue, 7 Sep 2021 10:26:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Qp_Hw_EC600X/Hardware_Support_EC600X.md | 192 +++++++++++------- .../zh/Qp_Hw_EC600X/code/helloworld.py | 4 + .../zh/Qp_Hw_EC600X/media/file_check_1.png | Bin 0 -> 31279 bytes .../zh/Qp_Hw_EC600X/media/file_upload_1.png | Bin 0 -> 46289 bytes 4 files changed, 117 insertions(+), 79 deletions(-) create mode 100644 docs/Quecpython_intro/zh/Qp_Hw_EC600X/code/helloworld.py create mode 100644 docs/Quecpython_intro/zh/Qp_Hw_EC600X/media/file_check_1.png create mode 100644 docs/Quecpython_intro/zh/Qp_Hw_EC600X/media/file_upload_1.png diff --git a/docs/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.md b/docs/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.md index 997258d..9248502 100644 --- a/docs/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.md +++ b/docs/Quecpython_intro/zh/Qp_Hw_EC600X/Hardware_Support_EC600X.md @@ -2,17 +2,17 @@ **修订记录** -| **版本** | **日期** | **作者** | **变更表述** | -| -------- | ---------- | -------- | ---------------------------------- | -| 1.0 | 2020-12-14 | 袁帅 | 初始版本 | -| 1.1 | 2020-12-20 | Josh | 硬件1.1版本增加音频功放电路 | -| 1.1.1 | 2020-12-28 | Chic | 文档增加【项目推介】 | -| 1.1.2 | 2021-01-06 | Chic | 修改关于LED的描述 | -| 1.2 | 2021-01-20 | Jorma | 修改部分内容 | -| 1.2.1 | 2021-03-31 | David | 增加V1.2开发板的内容;增加图表标题 | -| 1.2.2 | 2021-04-02 | chengzhu | word转换成md,后续更新基于md更新 | -| 1.2.3 | 2021-04-06 | David | md文档下,图片和目录的格式修改 | -| 1.3 | 2021-08-23 | Kayden | 增加V1.3开发板的内容,修改部分内容 | +| **版本** | **日期** | **作者** | **变更表述** | +| -------- | ---------- | -------- | -------------------------------------- | +| 1.0 | 2020-12-14 | 袁帅 | 初始版本 | +| 1.1 | 2020-12-20 | Josh | 硬件1.1版本增加音频功放电路 | +| 1.1.1 | 2020-12-28 | Chic | 文档增加【项目推介】 | +| 1.1.2 | 2021-01-06 | Chic | 修改关于LED的描述 | +| 1.2 | 2021-01-20 | Jorma | 修改部分内容 | +| 1.2.1 | 2021-03-31 | David | 增加V1.2开发板的内容;增加图表标题 | +| 1.2.2 | 2021-04-02 | chengzhu | word转换成md,后续更新基于md更新 | +| 1.2.3 | 2021-04-06 | David | md文档下,图片和目录的格式修改 | +| 1.3 | 2021-09-06 | Kayden | 增加V1.3开发板的内容,修改增添部分内容 | ## 基本概述 @@ -32,6 +32,8 @@ EC600S_QuecPython_EVB_V1.x(x=0,1)开发板(本文简称“V1.1开发板” 开发者仅需一条USB Type-C 数据线即可轻松玩转开发板。 + + ### V1.1开发板资源 - Quectel移远 EC600S_CNAA Cat.1 通信模组 @@ -39,7 +41,7 @@ EC600S_QuecPython_EVB_V1.x(x=0,1)开发板(本文简称“V1.1开发板” - NANO SIM自弹卡座 - 保留SMA天线座焊盘 - USB Type-C数据接口 -- 一个PWRKEY按键,一个RST按键 +- 一个开机按键,一个复位按键 - 两个自定义功能按键 - 音频功放,支持最高4Ω3W喇叭 - 温湿度传感器 @@ -57,7 +59,7 @@ EC600S_QuecPython_EVB_V1.x(x=0,1)开发板(本文简称“V1.1开发板” - NANO SIM自弹卡座 - GPS、LTE、WIFI/BT天线接口 - USB Type-C数据接口 -- PWRKEY按键,RST按键,强制下载按键 +- 开机按键,复位按键,强制下载按键 - 两个自定义功能按键 - 音频功放,支持最高4Ω3W喇叭 - 温湿度传感器 @@ -76,7 +78,7 @@ EC600S_QuecPython_EVB_V1.x(x=0,1)开发板(本文简称“V1.1开发板” - NANO SIM自弹卡座 - GPS、LTE、WIFI/BT天线接口 - USB Type-C数据接口 -- PWRKEY按键,RST按键,强制下载按键 +- 开机按键,复位按键,强制下载按键 - 两个自定义功能按键 - 音频功放,支持最高4Ω3W喇叭 - 温湿度传感器 @@ -103,60 +105,57 @@ EC600S_QuecPython_EVB_V1.x(x=0,1)开发板(本文简称“V1.1开发板” - **防盗损装置** -**背景**:无人值守的设备如快递柜、充电站、充电桩等,存在被盗或破坏的风险。需要实现远程控制、防盗、异常状态上报等 +**背景**:无人值守的设备如快递柜、充电站、充电桩等,存在被盗或破坏的风险。需要实现远程控制、防盗、异常状态上报等。 -**装置**:Quectel通信模组+加速度传感器+GPIO(搭配振动传感器、微动开关、继电器、LED等)+喇叭 +**装置**:Quectel通信模组+加速度传感器+GPIO(搭配振动传感器、微动开关、继电器、LED等)+喇叭。 -**方法**:Quectel通信模组连接云端,保存云端下发的参数。读取传感器上报的参数,判断当前姿态、震动状态是否超过阈值,LED闪烁、报警,并通过网络上报到云端 +**方法**:Quectel通信模组连接云端,保存云端下发的参数。读取传感器上报的参数,判断当前姿态、震动状态是否超过阈值,LED闪烁、报警,并通过网络上报到云端。 - **微型天气服务站** -**背景**:在野外假设无人值守的微型天气服务站,通过网络定时上报温湿度、风力等数据,以供记录、分析、预报 +**背景**:在野外架设无人值守的微型天气服务站,通过网络定时上报温湿度、风力等数据,以供记录、分析、预报。 -**装置**:Quectel通信模组+温湿度传感器+ADC(风力检测、电池电压检测) -\+GPIO(电池充放电状态检测) +**装置**:Quectel通信模组+温湿度传感器+ADC(风力检测、电池电压检测)+GPIO(电池充放电状态检测)。 -**方法**:Quectel通信模组连接云端,保存云端下发的参数。通过NTP同步内部时钟;读取温湿度传感器、ADC器上报的参数,并按照云端的要求,将数据序列化通过网络上报到云端。网络不佳情况下,离线存储数据,待网络通畅再上报数据到云端 +**方法**:Quectel通信模组连接云端,保存云端下发的参数。通过NTP同步内部时钟;读取温湿度传感器、ADC器上报的参数,并按照云端的要求,将数据序列化通过网络上报到云端。网络不佳情况下,离线存储数据,待网络通畅再上报数据到云端。 - **微型自动售货机** -**背景**:很多酒店的miniBar不能满足客户的需求,而客房内的微型自动售货机则可以很好地弥补这个缺陷。售卖如零食、口香糖、充电线等小件商品,同时提供手机充电等服务 +**背景**:很多酒店的miniBar不能满足客户的需求,而客房内的微型自动售货机则可以很好地弥补这个缺陷。售卖如零食、口香糖、充电线等小件商品,同时提供手机充电等服务。 -**装置**:Quectel通信模组+GPIO(搭配步进电机、继电器/MOS管)+光照传感器+ -LCD+GSensor+喇叭 +**装置**:Quectel通信模组+GPIO(搭配步进电机、继电器/MOS管)+光照传感器+LCD+GSensor+喇叭。 -**方法**:Quectel通信模组连接到云端,注册并鉴权,收到云端下发的数据,LCD屏幕显示对应的二维码;用户使用微信或者支付宝扫描LCD显示的二维码,进入小程序选购。选购完成并支付后,云端下发控制指令,通信模组接到指令,解析指令内容,控制GPIO实现步进电机旋转出货,并通过光照传感器确认出货完毕;或控制继电器/MOS管,实现手机充电功能;出货完毕后,可使用TTS语音朗读相应的信息如“*出货完毕,欢迎再次选购*”。当G-Sensor检测到倾倒或者暴力破坏时,可自动上报信息到云端,以便运维处理 +**方法**:Quectel通信模组连接到云端,注册并鉴权,收到云端下发的数据,LCD屏幕显示对应的二维码;用户使用微信或者支付宝扫描LCD显示的二维码,进入小程序选购。选购完成并支付后,云端下发控制指令,通信模组接到指令,解析指令内容,控制GPIO实现步进电机旋转出货,并通过光照传感器确认出货完毕;或控制继电器/MOS管,实现手机充电功能;出货完毕后,可使用TTS语音朗读相应的信息如“*出货完毕,欢迎再次选购*”。当G-Sensor检测到倾倒或者暴力破坏时,可自动上报信息到云端,以便运维处理。 - **扫码把枪** -**背景**:日常场景,可以使用把枪实现批量录入条形码、二维码。但是传统把枪无法脱离电脑使用,而使用手机扫码颇为繁琐,且稳定性差、耗电量高。使用无线扫码把枪,可以实现远程扫码、无线扫码、连续扫码等 +**背景**:日常场景,可以使用把枪实现批量录入条形码、二维码。但是传统把枪无法脱离电脑使用,而使用手机扫码颇为繁琐,且稳定性差、耗电量高。使用无线扫码把枪,可以实现远程扫码、无线扫码、连续扫码等。 -**装置**:Quectel通信模组+SPI Camera+LCD+GPIO(搭配矩阵键盘) +**装置**:Quectel通信模组+SPI Camera+LCD+GPIO(搭配矩阵键盘)。 方法:Quectel通信模组开机后连接云端,LCD显示对应信息,使用者通过按键确认,然后开启 -Camera -扫描条形码或二维码(可选单次扫描、连扫等操作),模块识别条形码或二维码的信息,并上报到云端 +Camera扫描条形码或二维码(可选单次扫描、连扫等操作),模块识别条形码或二维码的信息,并上报到云端。 - **智能控制** **背景**:云端下发运行参数,模块实现自动化监测设备、控制,节省人工成本。 -**装置**:Quectel通信模组+SPI Camera+SPI+I2C+LCD+GPIO(搭配按键、继电器等) +**装置**:Quectel通信模组+SPI Camera+SPI+I2C+LCD+GPIO(搭配按键、继电器等)。 -**方法**:Quectel通信模组开机后连接云端,获取运行参数并保存。在LCD显示相应的控制内容和运行状态;当检测到传感器的数值超过阈值,则根据保存的参数执行对应动作,并上报云端(如湿度超过80%则打开继电器,控制除湿机开启),实现自动化控制。 +**方法**:Quectel通信模组开机后连接云端,获取运行参数并保存。在LCD显示相应的控制内容和运行状态;当检测到传感器的数值超过阈值,则根据保存的参数执行对应动作,并上报云端(例如湿度超过80%则打开继电器,控制除湿机开启),实现自动化控制。 - **设备定位** **背景:**共享单车快速发展,部分单车由于停车位置的偏僻性,消费者在寻找时无法有效准确的找到单车的位置,影响客户的消费体验,同时耗费大量的资源,而且实时性无法保证。 -**装置:**Quectel通信模组+ L76K +**装置:**Quectel通信模组+ L76K。 **方法:**使用L76K获取定位信息,输出NEMA语句,然后通过模组的串口读取NEMA,输出定位信息,最后在连接网络的情况下,将数据发送到云端(例如:阿里云)实现实时共享。 ## 开发板介绍 开发板是为方便开发者使用QuecPython,而设计的一款基于EC600X -Cat.1通信模块的开发板,其上集成了等开发常用的配置,可以满足开发者的开发需求。 +Cat.1通信模块的开发板,其上集成了开发常用的配置,可以满足开发者的开发需求。 ### V1.1开发板 @@ -207,17 +206,17 @@ Cat.1通信模块的开发板,其上集成了等开发常用的配置,可以 开发板配备了多种传感器,以及其他外设。明细如下: -| 序号 | 名称 | 型号 | 是否支持 | 接口类型 | -| ---- | ---------------------------- | ------------- | -------- | -------- | -| 1 | 三轴加速度传感器 | LIS2DH12TR | 是 | I2C | -| 2 | 温湿度传感器 | AHT10 | 是 | I2C | -| 3 | 光敏电阻 | GL5528 | 是 | ADC | -| 4 | 微动按键 | - | 是 | GPIO | -| 5 | 麦克风 | GMI6050P-66DB | 是 | SPK | -| 6 | 功放芯片 | NS4160 | 是 | SPK | -| 7 | LED | Green | 是 | PWM | -| 8 | LCD 显示屏(需选择含屏套餐) | ST7789 | 是 | SPI | -| 9 | GNSS模组 | L76K | 是 | UART | +| 序号 | 名称 | 型号 | 是否支持 | 接口类型 | +| ---- | ---------------------------- | ------------- | -------- | --------- | +| 1 | 三轴加速度传感器 | LIS2DH12TR | 是 | I2C | +| 2 | 温湿度传感器 | AHT10 | 是 | I2C | +| 3 | 光敏电阻 | GL5528 | 是 | ADC | +| 4 | 微动按键 | - | 是 | GPIO | +| 5 | 麦克风 | GMI6050P-66DB | 是 | SPK | +| 6 | 功放芯片 | NS4160 | 是 | SPK | +| 7 | LED | Green | 是 | PWM、GPIO | +| 8 | LCD 显示屏(需选择含屏套餐) | ST7789 | 是 | SPI | +| 9 | GNSS模组 | L76K | 是 | UART | ### V1.3开发板 @@ -237,16 +236,16 @@ Cat.1通信模块的开发板,其上集成了等开发常用的配置,可以 开发板配备了多种传感器,以及其他外设。明细如下: -| 序号 | 名称 | 型号 | 是否支持 | 接口类型 | -| ---- | ---------------------------- | ------------- | -------- | -------- | -| 1 | 温湿度传感器 | AHT10 | 是 | I2C | -| 2 | 光敏电阻 | GL5528 | 是 | ADC | -| 3 | 微动按键 | - | 是 | GPIO | -| 4 | 麦克风 | GMI6050P-66DB | 是 | SPK | -| 5 | 功放芯片 | NS4160 | 是 | SPK | -| 6 | LED | Green | 是 | PWM | -| 7 | LCD 显示屏(需选择含屏套餐) | ST7789 | 是 | SPI | -| 8 | GNSS模组 | L76K | 是 | UART | +| 序号 | 名称 | 型号 | 是否支持 | 接口类型 | +| ---- | ---------------------------- | ------------- | -------- | --------- | +| 1 | 温湿度传感器 | AHT10 | 是 | I2C | +| 2 | 光敏电阻 | GL5528 | 是 | ADC | +| 3 | 微动按键 | - | 是 | GPIO | +| 4 | 麦克风 | GMI6050P-66DB | 是 | SPK | +| 5 | 功放芯片 | NS4160 | 是 | SPK | +| 6 | LED | Green | 是 | PWM、GPIO | +| 7 | LCD 显示屏(需选择含屏套餐) | ST7789 | 是 | SPI | +| 8 | GNSS模组 | L76K | 是 | UART | ## 功能详解 @@ -255,7 +254,7 @@ Cat.1通信模块的开发板,其上集成了等开发常用的配置,可以 ### LCD接口 -开发板集成了LCD接口,开发者可以通过该接口点亮LCD屏幕,显示图片文字等内容。搭配LVGL还能显示更多有趣内容哦(点此了解“LCD”的小实验)。 +开发板集成了LCD接口,开发者可以通过该接口点亮LCD屏幕,显示图片文字等内容。搭配LVGL还能显示更多有趣内容哦(点此了解“[LCD](https://python.quectel.com/doc/doc/sbs/zh/sbs/lcd.html)”的小实验)。 目前,QuecPython支持的屏幕: @@ -291,9 +290,9 @@ V1.2开发板集成了LIS2DH12TR三轴加速度传感器,V1.3开发板没有 ![](media/EC600X_GL5528.png) -| 请注意 | -| ---------------------------------------- | -| EC600N后缀为UNNSA的模组ADC才能正常使用。 | +| 请注意 | +| ------------------------------------------ | +| EC600N后缀为UNNSA模组ADC功能才能正常使用。 | ### 温湿度传感器 @@ -314,6 +313,7 @@ V1.2开发板集成了LIS2DH12TR三轴加速度传感器,V1.3开发板没有 | V1.0版开发板没有功放芯片,放音可能失败 | | V1.1版开发板有功放芯片,需要拉高PIN58使能:audio_EN = Pin(Pin.GPIO11, Pin.OUT, Pin.PULL_PD, 1) | | V1.1版开发板录音存在问题,需要拿掉R28 | +| V1.2、V1.3开发板均需要使能功放芯片,拉高引脚参见原理图。 | ### 自定义按键 @@ -360,7 +360,7 @@ V1.2和V1.3开发板集成了一个GNSS模组L76K,客户无需联网即可获 **1.驱动的分类主要分为两大类:** -**第一、基于模组支持的平台分类:ASR平台(EC600SCNAA、EC600SCNLA、EC600SCNLB、EC600N、EC100Y)和RDA平台(EC600U)更多模组的平台信息可见:[硬件支持](https://python.quectel.com/doc/doc/Quecpython_intro/zh/Qp_Product_intro/Hardware_Support.html)** +**第一、基于模组支持的平台分类:ASR平台(EC600S、EC600N、EC100Y)和RDA平台(EC600U、EC200U)更多模组的平台信息可见:[硬件支持](https://python.quectel.com/doc/doc/Quecpython_intro/zh/Qp_Product_intro/Hardware_Support.html)** **相信大家也有一个疑问EC600X是什么平台,实际上EC600X中“X”是一个未知数,可指EC600S、EC600U等,并不代表实际的平台。** @@ -368,7 +368,7 @@ V1.2和V1.3开发板集成了一个GNSS模组L76K,客户无需联网即可获 **2.对于EC600SCNLA和EC600SCNLB,必须下载最新版本的驱动,驱动版本至少在V1.0.8以上** -驱动安装步骤如下: +**ASR平台驱动安装步骤如下:** - 请选择对应的驱动,具体安装哪个驱动参考上述注意事项 @@ -384,29 +384,44 @@ V1.2和V1.3开发板集成了一个GNSS模组L76K,客户无需联网即可获 ![](media/finish.png) -- 至此,USB 驱动安装结束。 +- 至此,ASR平台USB 驱动安装结束。 + +**RDA平台驱动安装步骤如下:** + +- 开发者下载驱动程序的压缩包后,完整解压该压缩包到任意目录,双击运行setup.bat: +- 等待安装成功即可。 | 小提示 | | ------------------------------------------------------------ | | (1)安装前,请备份您的重要文件,并保存您的工作进度,以免发生意外情况,导致文件丢失 | | (2)安装成功后,无需重启电脑 | -| (3)如需修复或者卸载驱动程序,再次运行该 驱动安装程序,选择“修复”或“卸载” 即可 | +| (3)如需修复或者卸载驱动程序,再次运行该驱动安装程序,选择“修复”或“卸载” 即可 | | (4)如若安装失败,请联系我们的在线支持:QQ群 445121768 | ### 验证驱动安装 驱动安装成功后,使用USB TypeA-TypeC数据线,将开发板连接到电脑上,并开机(具体开机参考可参考上述“开发板开机”章节)。 -在电脑上打开“设备管理器”,进入电脑的设备管理器,展开**“端口(COM 和LPT)”**,应出现三个串口设备: +在电脑上打开“设备管理器”,进入电脑的设备管理器,展开**“端口(COM 和LPT)”**,若是EC600S和EC600N且固件为QuecPython固件应出现三个串口设备: - **Quectel USB AT Port (COMx)** - - **Quectel USB DIAG Port (COMx)** - - **Quectel USB MI05 COM Port (COMx)** +若是EC200U和EC600U应出现八个串口设备: + +- **Quectel USB AT Port (COMx)** +- **Quectel USB AP Log Port (COMx)** +- **Quectel USB CP Log Port (COMx)** +- **Quectel USB Diag Port (COMx)** +- **Quectel USB MOS Port (COMx)** +- **Quectel Modem (COMx)** +- **Quectel USB Serial-1 Port (COMx)** +- **Quectel USB Serial-2 Port (COMx)** + | 小提示 | | ------------------------------------------------------------ | +| EC200U和EC600U在下载QuecPython固件前后端口数量和名称没有变化。 | | 如何打开“设备管理器”呢? 很简单,请跟我来:我的电脑—“此电脑”—属性—设备管理器 | 如果您的电脑没有识别到任何串口设备,请检查: @@ -421,11 +436,11 @@ V1.2和V1.3开发板集成了一个GNSS模组L76K,客户无需联网即可获 如果无法排除,请联系我们的在线支持:QQ群 445121768 -如果您的电脑只识别了两个串口设备(没有“USB串行设备”),那么可能是因为没有刷入QuecPython固件的缘故。别着急,请阅读下一章节,刷入QuecPython固件就可以啦。 +**如果您的电脑只识别了两个串口设备(没有“Quectel USB MI05 COM Port”),那么可能是因为没有刷入QuecPython固件的缘故。别着急,请阅读下一章节,刷入QuecPython固件就可以啦。** ![image-20210417105022954](media/DM_not_Quecpython.png) -如果您的电脑正确识别了三个串口设备,那么恭喜您,一切准备就绪,可以开始QuecPython之旅啦\~! +如果您的电脑正确识别了三个串口设备,那么恭喜您,一切准备就绪,可以开始QuecPython之旅啦 ![image-20210417104910841](media/DM_Quecpython.png) @@ -435,7 +450,7 @@ V1.2和V1.3开发板集成了一个GNSS模组L76K,客户无需联网即可获 -如果是QuecPython的固件,查询结果通常以PY或者Python结尾。 +如果是QuecPython的固件,查询结果通常包含PY或QPY等和Python相关字符。 使用官方的图形化工具——QPYcom,同样也可以验证当前固件版本是否为QuecPython固件。 @@ -447,11 +462,11 @@ QPYcom下载地址: 使用QPYcom工具查看固件版本的步骤如下: -1. 下载QPYcom工具后,完整解压到任意目录,双击QPYcom.exe运行 +1. 下载QPYcom工具后,完整解压到任意目录,双击QPYcom.exe运行; 2. 将开发板连接到电脑并开机; -3. 选择代码交互串口,默认波特率,打开串口 +3. 选择代码交互串口,默认波特率115200,打开串口; | 模块型号 | 选择交互串口名称 | | -------- | ------------------------- | @@ -460,7 +475,7 @@ QPYcom下载地址: | EC600S | Quectel USB MI05 COM Port | | EC600N | Quectel USB MI05 COM Port | -4. 点击“**交互**”标签,进入交互页 +4. 点击“**交互**”标签,进入交互页; 5. 键入如下命令,然后查看模块返回的内容: @@ -487,15 +502,15 @@ QPYcom下载地址: 使用QPYcom工具下载固件的步骤如下: -1. 下载QPYcom工具后,完整解压到任意目录,双击QPYcom.exe运行 +1. 下载QPYcom工具后,完整解压到任意目录,双击QPYcom.exe运行; 2. 将开发板连接到电脑并开机; -3. 点击“**下载**”标签,进入下载页 +3. 点击“**下载**”标签,进入下载页; -4. 在下载页面左侧导航栏创建项目,然后点击“**选择固件**”选择固件包 +4. 在下载页面左侧导航栏创建项目,然后点击“**选择固件**”选择固件包; -5. 左键点击页面右下角倒三角形,在弹出的菜单中选择“**下载固件**”菜单,点击“**下载固件**”按钮,工具自动开始固件下载 +5. 左键点击页面右下角倒三角形,在弹出的菜单中选择“**下载固件**”菜单,点击“**下载固件**”按钮,工具自动开始固件下载。 | 小提示 | | ------------------------------------------------------------ | @@ -528,7 +543,7 @@ QPYcom下载地址: 使用QPYcom工具,我们可以将自己的 Python 脚本文件下载到模块中。 -hello world.py 文件内容(直接整个复制到交互区不可运行): +hello world.py 文件内容( 代码下载): ```python import utime @@ -540,18 +555,35 @@ while True: 具体的操作步骤如下: 1. 下载QPYcom工具后,完整解压到任意目录,双击QPYcom.exe运行 + 2. 将开发板连接到电脑并开机 + 3. 选择代码交互串口,默认波特率,打开串口 + 4. 点击“**文件**”标签,进入文件页(左侧为电脑本地的文件;右侧为模块端的文件) + 5. 左侧浏览电脑的文件,并选择对应的.py文件,拖动该文件到右侧的“Root”根节点或“usr”目录,松开鼠标左键,即可自动下载文件到模块(也可以点击右侧栏的“**+**”按钮,浏览并选择文件,将文件下载到模块内) + 6. 文件下载过程中,页面底部状态栏有下载进度,进度到100%表示文件下载成功。 + 旧版文件系统下载到“Root”根节点: + +​ 新版双文件系统下载到“usr”目录: + + + 如图所示,此时 hello world.py文件已经下载到模块主目录下,可以通过QPYcom工具的“交互”查看,操作如下: +旧版文件系统查询操作: + +新版双文件系统查询操作: + + + | 小提示 | | ------------------------------------------- | | 新版固件使用双文件系统,根目录 / 可读不可写 | @@ -602,7 +634,7 @@ QuecPython支持上电自动执行用户代码。Quectel 通信模组上电运 | ------------------------------------------------------------ | | 文件名必须是main.py(大小写完全一致),必须放在用户区内,才能实现开机后自动运行。 如果main.py调用其他py、mpy文件,需要一同下载到用户区。 | -以helloworld.py 为例说明:将helloworld.py 文件提供方法 2s 周期性打印“hello world!”字符串; main.py 文件中调用 hello world.py 中的方法。 +以helloworld.py 为例说明:将helloworld.py 文件提供方法 1s 周期性打印“hello world!”字符串; main.py 文件中调用 hello world.py 中的方法。 ```python #helloworld.py代码 @@ -629,7 +661,7 @@ helloworld.prtHelloworld() helloworld.prtHelloworld() 方法2:import usr.helloworld #意为usr目录下的helloworld.py 文件 usr.helloworld.prtHelloworld() #注意,此方式一定要带上usr的前缀 -(3)上边两种方法结合,可以引申为: + (3)上边两种方法结合,可以引申为: from usr.helloworld import * prtHelloworld() #因为已经import *,所以此处直接调用函数名即可 @@ -661,7 +693,9 @@ A:请登录QuecPython网站下载: A:请登录QuecPython网站下载: -P.S. 如果您遇到任何问题,请联系我们的在线支持:QQ群 445121768 +P.S. 如果您遇到任何问题,请参照本官网在线文档进行解决或访问Quecpython社区进行搜索、交流、提问:https://forumschinese.quectel.com/c/function-subjects/quectpython/43 + +或者联系我们的在线支持:QQ群 445121768 ## 附录1 V1.1开发板丝印图 diff --git a/docs/Quecpython_intro/zh/Qp_Hw_EC600X/code/helloworld.py b/docs/Quecpython_intro/zh/Qp_Hw_EC600X/code/helloworld.py new file mode 100644 index 0000000..359e0f8 --- /dev/null +++ b/docs/Quecpython_intro/zh/Qp_Hw_EC600X/code/helloworld.py @@ -0,0 +1,4 @@ +import utime +while True: + print("hello world") + utime.sleep(1) diff --git a/docs/Quecpython_intro/zh/Qp_Hw_EC600X/media/file_check_1.png b/docs/Quecpython_intro/zh/Qp_Hw_EC600X/media/file_check_1.png new file mode 100644 index 0000000000000000000000000000000000000000..73b99433166e8d1566cc72e8bca5c074c358f652 GIT binary patch literal 31279 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 literal 0 HcmV?d00001 -- Gitee