大夏龙雀DX-WF25(ESP32C2)蓝牙WIFI模块试用体验(Arduino)

模块尺寸跟引脚兼容常见的ESP8266 12-E/F模块,可以直接用现成的8266转接板,除了GPIO口名称不一样,其他特殊引脚,如电源,URAT,BOOT等是一致的。

使用非常简单,vcc接3.3v,gnd接地,rx连接ch340的tx,tx连接ch340的rx即可。

如果需要通过urat下载程序,只需要把io9(上图8266转接板的GPIO0引脚)的引脚接地就行(下载完程序记得断开io9跟gnd的连接,否则程序无法运行)。

 

芯片用的是ESP32C2-H2(ESP8684 2MB),很遗憾这颗芯片比较新又比较冷门,所以资料不多,ESP官方有为其配备Arudino的开发库,但不知道为何没有开放,属于隐藏状态,需要自己开启。

同时也有CircuitPython支持,不过遗憾的是官方是为ESP8684-DevKitC-2-N4这个模组设计的,是4MB的Flash,直接烧录进去,会导致文件系统初始化失败。

 

Arduino官方:

1.增加esp官方支持,管理地址加入:https://espressif.github.io/arduino-esp32/package_esp32_index.json,然后arduino就会自动下载esp官方的包(该过程会比较慢,比较依赖网络),我这里已经下载过所以没有下载按钮

  

 

2.不出意外的话,开发板管理是无法找到ESP32C2的,因为官方并没有默认开放这个支持

 

3.按照官方的说明,手动编译ESP32C2的库支持并放入到Arduino目录

注:自己编译太麻烦了,这里可以用编译好的库文件,然后按照下面的教程放到Arduino里:esp32c2-arduino-libs.7z

Library Builder - - — Arduino ESP32 latest documentation

但是构建起来还是比较麻烦的,首先需要在Linux系统下,并且一堆依赖需要安装,python版本不对也容易编译失败,好在官方给出了通过docker编译的方式。

如果你觉得在自己的电脑上装docker也麻烦(更多的情况是由于和谐的原因导致在国内很难通过docker pull),那么可以利用微软github的CodeSpace云虚拟机来编译,非常方便。

随便找个github项目,然后通过这个路径进入到微软提供的CodeSpace云虚拟机 。

在CodeSpace里的终端下,执行以下命令:

docker run -it --rm -v $PWD:/arduino-esp32 -e TERM=xterm-256color espressif/esp32-arduino-lib-builder

然后就会进入ESP官方提供的图形界面编译工具

首先设置下编译的目标:Settings

目标我们选ESP32C2,把其他的都取消掉,然后勾上Copy to那一行(默认应该会勾上),编译后会将目标文件导出到我们的文件夹下,然后点保存。

点Cancel返回上一级,选Compile Static Librayies,就会开始构建ESP32C2的Arduino库,这个过程会比较漫长,可能需要半小时以上。

编译好后,会在你当前执行docker命令所在的文件夹下,生成一个tool/eps32c2的目录,比如我就是在esp32c2目录下执行的docker命令,那么编译后的文件夹结构就如下

其中tool/esp32c2这个目录,就是我们要的目标文件夹,把它拷贝到Arduino里就行了。

因为我们还在CodeSpace虚拟机里,所以得先弄出来,先把文件夹压缩成一个文件:

tar -czvf esp32c2.tar.gz tools/esp32c2/

然后把压缩好后的压缩包右键,下载到自己的电脑。

接下来在自己的电脑上,解压缩,把esp32c2文件夹拷贝到Aruino的目录,一般是:

C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_vxxx版本不同这里可能不太一样

例如我的就是这样:

然后打开esp的板配置文件,将隐藏的esp32c2打开,路径一般也是:

C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.x版本不同这里可能不同\boards.txt

在这个文件里找到 esp32c2.hide=true 这一行,把它注释掉或者删掉:

然后重启Arduino,就可以在开发板里找到esp32c2了

 

3.跑个闪灯demo看看:

复制代码
// WF25上的led灯连接在GPIO8上
#define LED_BUILTIN 8

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(100);
  digitalWrite(LED_BUILTIN, LOW);
  delay(100);
}
复制代码

烧录时显示Connetcing....的时候,板子上的io9引脚要接下地,才能进入urat下载模式

烧录完后断开io9与gnd的连接,没错的话就能看到灯在闪烁了。

 

Platformio:

参考:使用platformio平台Arduino开发ESP32-C2_platformio arduino-CSDN博客

 

Micropython / CircuitPython:

现找到的支持ESP32-C2 Python的固件有:

CircuitPython官方: NodeMCU ESP32-C2

CircuitPython官方: ESP8684-DevKitC-2-N4

米思齐MiciroPython: Mixly 3.0 rc0 For Python ESP32-C2

基本都能烧录进去固件并启动Python的Repl,但问题就是,上面的固件都是ESP32-C2-H4的,4MB的Flash版本,强行烧进去,会导致无法正常初始化文件系统,启动后无法正常操作。

所以需要手动修改为2MB的版本并编译,这里提供用CircuitPython官方的ESP8684-DevKitC-2-N4修改方法:

这里有已经编译好的版本:adafruit-circuitpython-espressif_esp8684_devkitc_02_n2-en_US-9.2.4.bin

复制代码
工程路径:https://github.com/adafruit/circuitpython
推荐用github的CodeSpace编译,不用拉到本地

安装子模块:
git submodule update --init lib/*
git submodule update --init tools/*
git submodule update --init extmod/*
ports目录下是各种芯片厂商的文件夹,需要使用哪个芯片的就拉取哪个,不用全部下载,这里以esp的为例
git submodule update --init ports/espressif/*

安装依赖:
pip install minify_html
pip install jsmin
sudo apt-get install ninja-build

安装乐鑫ESP-IDF:
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/linux-macos-setup.html
依赖:sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
开发工具:.../circuitpython/ports/espressif/esp-idf (f388200aba) $ ./install.sh esp32c2
设置工具环境变量: .../circuitpython/ports/espressif/esp-idf (f388200aba) $ . ./export.sh  注:该方式是临时的,退出shell后要重新export一次,否则下面make的时候找不到对应的gcc

修改配置:
ports>espressif>boards>espressif_esp8684_devkitc_02_n4>mpconfigboard.mk
CIRCUITPY_ESP_FLASH_SIZE = 4MB -> 2MB

编译:
../circuitpython/ports/espressif (main) $ make BOARD=espressif_esp8684_devkitc_02_n4
注:重新改了固件尺寸后,要把固件编译后生成的目录(../circuitpython/ports/espressif/build-espressif_esp8684_devkitc_02_n4)删了重头来一次。
使用make clean也不行,编译会奇奇怪怪的失败,可能是make clean也没有重新修改分区表

编译成功:
Memory region         Used Size  Region Size  %age Used
     iram0_0_seg:         60 KB     191344 B     32.11%
     iram0_2_seg:     1021726 B    4194272 B     24.36%
     dram0_0_seg:      113120 B     191344 B     59.12%
     drom0_0_seg:     1236395 B    4194272 B     29.48%
esptool.py v4.8.1
Creating esp32c2 image...
Merged 1 ELF section
Successfully created esp32c2 image.

1256528 bytes used,  185264 bytes free in flash firmware space out of 1441792 bytes (1408.0kB).
      0 bytes used,   16384 bytes free in 'Internal SRAM 0' out of 16384 bytes (16.0kB).
 113120 bytes used,  149024 bytes free in 'Internal SRAM 1' out of 262144 bytes (256.0kB).

固件路径:
../circuitpython/ports/espressif/build-espressif_esp8684_devkitc_02_n4/firmware.bin

查看固件信息是否正确:
esptool image_info .\firmware.bin
esptool.py v4.8.1
File size: 1322064 (bytes)
Detected image type: ESP32-C2
Image version: 1
Entry point: 403acb70
3 segments

Segment 1: len 0x00120 load 0x3fcd5c80 file_offs 0x00000018 [DRAM,BYTE_ACCESSIBLE]
Segment 2: len 0x008dc load 0x403acb70 file_offs 0x00000140 [IRAM]
Segment 3: len 0x01c28 load 0x403aeb70 file_offs 0x00000a24 [IRAM]
Checksum: 10 (valid)
Validation Hash: 65a392f7b3bf01a0b75d4d3405d5f18cc24fad5eec47b9fe58b1e26ca044b76f (valid)
复制代码

 

posted @   JeasonBoy  阅读(345)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2016-01-20 使用Cocos2d-x实现微信“天天爱消除”炫耀button特效
点击右上角即可分享
微信分享提示