合宙ESP32C3 在windows 系统下烧录micropython 蓝牙小车代码排坑记

1. 安装esptool

1.1 安装python;

安装python 后,记得在【系统变量】里找到path,在path 里加入python.exe 的系统路径;

然后在cmd 终端里运行一下python,看python是否能启动成功;
python 安装成功

1.2 安装esptool

在cmd 终端里直接输入

pip install esptool 

安装完毕后,记得cmd里运行esptool验证一下,如提示找不到,则需将工具安装路径添加到系统变量path,否则无法找到工具。

PS:找不到安装路径的话,可以在C盘里搜索【esptool】,搜出来的esptool.exe 的路径就是安装路径。

esptool 安装成功后,运行esptool (不行的话试一下运行esptool.py,如果这个可以,后面烧录的时候要用esptool.py 代替 esptool)会有如下打印:
在这里插入图片描述

2. 连接开发板

我买的合宙 esp32c3 开发板是带串口芯片的。

用数据线连接开发板后,在电脑的【设备管理器】里找【端口】,记下CH343 串口芯片对应的COM号;
端口

注意:数据线最好用手机数据线,部分杂牌type-c线只有充电功能,没有数据传输功能;

3. 下载micropython 固件

micropython官方下载地址: https://www.micropython.org/download/esp32c3/

注意,尽量下载【Nightly builds】里面的固件,我下载【Releases】里的固件,烧录都有问题,在VScode
的终端里进入不到开发板的端口,VScode 会报错【所连接设备可能未处于 repl 状态或者不是一个 micropython 设备】。

在这里插入图片描述
之前用Macbook 电脑烧录时,用上面的固件也报过问题,见我的另一篇文章:
链接: 合宙 ESP32C3 烧录 Micropython 后连接端口报错

4. 烧录micropython 固件

在固件下载地址里有烧录固件的命令,但是我用的方法跟它不一样,我用esptool.py 的方法烧录不成功。

我的方法是:

  1. 进入esptool.exe 文件夹,在文件夹内打开powershell;
  2. 执行如下擦除命令:
 ./esptool --chip esp32-c3 --port COM3 erase_flash
  1. 找到下载好的固件的下载路径,复制下载路径,粘贴到下面的烧录命令里;
./esptool --chip ESP32-C3 --port COM3 --baud 460800 write_flash -z 0x0 C:\ESP32_GENERIC_C3-20220618-v1.19.1.bin

后面的C:\ESP32_GENERIC_C3-20220618-v1.19.1.bin 即下载的固件的所在文件夹的路径。

烧录完成后会显示如下打印:
在这里插入图片描述
小tips:
这里写了一个从下载esptool 到烧录固件的脚本,可以用bat脚本直接运行,记得COM口 和 bin文件路径自己改一下:

pip install esptool
pause
pip install --upgrade pip
pause
esptool.py --chip esp32-c3 --port COM13 erase_flash
pause
esptool.py --chip ESP32-C3 --port COM13 --baud 460800 write_flash -z 0x0 D:\temp\ESP32C3-micropython\01-bin\esp32c3-20221220-unstable-v1.19.1.bin
pause

5. 写入micropython 程序

  1. 安装VScode;
    编写micropython 程序脚本,我比较建议使用VScode 软件,主要是代码补全功能很好用。
  2. 在VScode 的【扩展】里输入micropython,然后找到RT-Thread micropython 并安装。在VScode 里调试micropython,我只推荐这个扩展,非常好用。
  3. 点击左下角【创建micropython工程】,选择文件夹名和保存位置,会自动生成一个micropython 文件。

注意,这个自动生成的文件名字是 main_example.py,主要要改成 main.py,不然写入开发板后可能会识别不到脚本。

  1. 把你的 micropython 代码粘贴到 main.py 里,点击左下角【设备连接】,连接你前面【设备管理器】里对应的开发板的COM号。
    连接成功后,在终端里会显示>>>符号,表示已进入开发板端口,输入【os.listdir()】后可查看开发板里的文件。
    在这里插入图片描述

  2. 连接成功后,点击左下角【同步】,脚本会自动上传到开发板里。

  3. 同步成功后,按下开发板的【RST】按钮,程序开始执行;也可以在VScode 左下角点击【运行】进行实时调试,程序没有问题的话,会在VScode 里的【终端】里,显示程序运行的结果。

6. 调试蓝牙模块

链接: 基于合宙ESP32-C3和MicroPython的蓝牙遥控小车

在使用合宙ESP32C3 和 L298N驱动板做蓝牙遥控小车时,在代码上遇到了这么几个问题:

  1. Error code “OSError: -18”
    原因是设定的蓝牙名字太长了。
    比如:
# 配置蓝牙
ble = ESP32_BLE("ESP32C3BLE")

我就是这里报错了,把名字改成【ble = ESP32_BLE(“ESP32C3”)】就好了,不行就再改短一点。

参考链接: ESP32 Bluetooth: Error code “OSError: -18”

  1. GPIO 管脚可以自己换,我用文章里的管脚一边轮子不转,自己改一下GPIO管脚就可以了,比如我改成了这样:
# 控制右轮电机
p18 = Pin(03, Pin.OUT)
p19 = Pin(02, Pin.OUT)
  1. 蓝牙广播配置格式不对

主要是name 和 adv_data这一行,改成我这样:

    def advertiser(self):
        name = (self.name, 'UTF-8')
        adv_data = '\x02\x01\x02' + str((len(name) + 1, 0x09)) + str(name)
        self.ble.gap_advertise(100, adv_data)
        print('advertiser_Done!')
        print("等待连接:%s" % adv_data)
        print("\r\n")
  1. 程序成功运行,没有报错,但是蓝牙里找不到【ESP32C3】这个设备。
    原因是蓝牙设备的名字是一串mac地址,不是【ESP32C3】这个名字,连信号最强的那个mac地址就可以。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值