最近在进行esp drone工程的开发,ESPdrone的环境搭建较为复杂,踩了不少坑,官方文档也是比较杂乱,容易被绕晕,遂做写了一篇进行总结,后续有空会继续更新espdrone和ESP32环境搭建过程中遇到的坑和总结的经验,有一起开发ESP32的也可以进行交流
一 环境选择
系统:ubuntu20.04
环境组件:必备git;建议py版本 3.8+;
安装liunx系统:建议使用ubuntu20.04阿里云源,留有100g空间基本能满足需求。阿里云镜像链接:oldubuntu-releases-releases安装包下载_开源镜像站-阿里云 (aliyun.com) 如图:
二 开始搭建esp-idf编译器
1.进入esp-drone文档:https://docs.espressif.com/projects/espressif-esp-drone/zh-cn/latest/gettingstarted.html#esp-idf
2.点击esp-idf简介,进入esp idf编程指南:
https://docs.espressif.com/projects/esp-idf/en/release-v4.4/esp32s2/get-started/index.html
注意左上角版本号一定要跟图片中一致,版本最好为v4.4,否则后面编译espdrone会出问题
3.编译器代码获取
用ubuntu打开终端直接复制粘贴运行:
mkdir -p ~/esp
cd ~/esp
git clone -b release/v4.4 –recursive https://github.com/espressif/esp-idf.git
开始从github上clone代码,如果没有ubuntu没有git组件会有命令行提示下载git:sudo apt-get install git,如果无法连接或者下载速度慢请开魔法上网和全局代理
代码clone完成后安装目标芯片环境;
cd ~/esp/esp-idf
./install.sh esp32s2
安装完成后提示设置环境变量:
输入图中命令:
. $HOME/esp/esp-idf/export.sh
环境变量设置完成:
三 开始运行一个Hello_World 实例工程
开始复制粘贴hello_world工程到esp文件夹下与esp-idf文件夹并列:
cd ~/esp
cp -r $IDF_PATH/examples/get-started/hello_world .
esp内文件夹效果图:
开始编译:
cd ~/esp/hello_world
idf.py set-target esp32s2
idf.py menuconfig
如果只链接了一个esp s2开发板,进入菜单后可以直接按Q保存退出
退出菜单后输入
idf.py build
建立二进制文件完成
准备连接设备串口烧录:
查看串口:推荐用cutecom:
CUTECOM安装方法:
在终端命令行中输入:
sudo apt-get install cutecom
出现选择时输入:y
然后输入:sudo cutecom 运行,输入密码,就会出现如下界面,说明安装好了。
也可以直接在应用列表中看见CUTECOM,点击进入。
烧录,将port换成cutecom上连接到的串口名:/dev/ttyUSB0,波特率可以省略,在终端命令行输入:
idf.py -p /dev/ttyUSB0 flash
如图,烧录成功:
烧录成功,打开cutecom可以看到现象,说明esp-idf编译环境搭建成功:
如果串口无法打开请先关闭cutecom或者增加用户文件权限:
sudo usermod -a -G dialout $USER
四 开始ESP Drone编译
很多人在这里会分不清esp drone与esp idf的关系,其实esp drone的代码与上面演示的hello_world 代码是并列关系,都只是一个实例,而esp-idf是实例运行需要的环境,相当于你自己写的C++代码跟别人写的代码是并列关系,而要让代码跑起来需要一个像vscode的编译器来编译运行
明白关系后,我们继续回到esp drone文档,开始clone 飞控代码:
git clone https://github.com/espressif/esp-drone.git
复制粘贴esp-drone文件夹到esp文件夹与esp-idf编译器并列
用终端打开此文件
因为是与hello_world样例为并列关系,所以跟之前编译烧录hello_world的步骤一样,添加环境变量,编译,构建二进制文件,忘记如何操作hello_world样例的可以点此回到第三步:hello_world,烧录(烧录时记得关闭串口助手,否则会显示串口繁忙烧录失败):
烧录完成:
可以看见esp32s2开发板指示灯亮起三个,手机扫描到了wifi,烧录成功:
恭喜各位,至此esp-drone的代码已经跑通了,感谢各位的耐心观看, 祝各位大佬都能在后续开发中一帆风顺!!