【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】

1、概述

最近在使用一直在调试ESP32,作为新手,也有很多不懂的地方,一点点慢慢学,开始是装的win环境,后来又尝试了jetson-orin-nx和ubuntu上,在Linux 下开发都习惯使用命令行,但是在Windows下习惯使用软件点,而调试esp32的话,还是建议使用命令行形式。

当然说得有点远了,本次主要是说明ESP32在Linux下搭建环境部分。

2、实验环境

硬件信息:Jetson Orin nx

软件版本:Linux ubuntu 5.10.120-tegra #1 SMP PREEMPT Tue Aug 1 12:32:50 PDT 2023 aarch64 aarch64 aarch64 GNU/Linux (注意因为重新刷机,版本有点改变)

另一台PC电脑:ubuntu20.04

其它硬件:ESP32-。

3、 物品说明

ESP32-S3 是一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 芯片,支持远距离模式 (Long Range)。ESP32-S3 搭载 Xtensa® 32 位 LX7 双核处理器,主频高达 240 MHz,内置 512 KB SRAM (TCM),具有 45 个可编程 GPIO 管脚和丰富的通信接口。ESP32-S3 支持更大容量的高速 Octal SPI flash 和片外 RAM,支持用户配置数据缓存与指令缓存。

(1)模块资料

资料连接:https://www.espressif.com.cn/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf

(2)开发板模块

链接文档:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/hw-reference/esp32s3/user-guide-devkitm-1.html

外设资源:

(3)实际购买

一边来说,网页有相对比较便宜的设备也是一样的,不一定非要官方的。

物品链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-6273769129.12.1dd077717uSpIM&id=669443108979

4、参考资料与自我总结

(1)大致了解了一段时间ESP32后,也就基本熟悉了,可以当作一个单片机来调试,可以认为是整合了wifi和蓝牙的一个IOT的单片机。

(2)相关资料有个官网地方,相关资料也比较齐全。不过有些时候,可能太多了,需要仔细看,一般都是参照官网的。

官网链接:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32s3/get-started/linux-macos-setup.html

(3)对于安装环境部分,关网可能写的太多了,要兼顾不同系统,反而不如网上一些总结文章来的快,我自己也是按照网上来进行操作的,针对自己实际情况。

博文链接:https://blog.csdn.net/m0_61411989/article/details/125363829

5、实验过程

自己虽然参照他人博文,但是觉得有一些值得改进的地方,和更多细节部分。

1、创建目录

打开终端,输入如下命令,创建目录和进入目录

shell 复制代码
mkdir ~/esp  
cd esp/

如下是我自己的操作,最好先建立目录

2、克隆下载文件

进入目录后,进行clone:

(1)拉去esp-idf官方源码

(2)拉取esp-gitee-tools工具

一步步操作

shell 复制代码
 
git clone https://gitee.com/EspressifSystems/esp-idf.git

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git//拉取esp-gitee-tools工具
 

如下,有时候还有可能回失败,多尝试下。

3、 拉取子目录安装和交叉编译工具链等其他工具

继续按照博文说操作,先进入这个目录下"~/esp/esp-gitee-tools",然后操作。

(1)拉取子目录

(2)安装交叉编译工具链和其他工具

shell 复制代码
cd ~/esp/esp-gitee-tools
./submodule-update.sh  ../esp-idf
./install.sh   ../esp-idf    

4、添加环境变量

  1. 设置环境变量
  2. 添加最后一行 ==home/xxx/esp/esp-idf/export.sh,其中xxx可以在终端中查看,你自己用户名,请坐对应更改。
  3. 你的esp-idf路径
  4. 立即生效。
  5. 安装所有芯片这块根据需要,可以安装部分或者遇到问题可以单独操作这步
  6. 设置用户 完成后要重启下。
shell 复制代码
sudo vim ~/.bashrc
alias get_idf=". /home/xxx/esp/esp-idf/export.sh"
export IDF_PATH=/home/xxx/esp/esp-idf 
source ~/.bashrc

./install.sh all

sudo usermod -a -G dialout $USER

如下图,是添加环境变量。

这里有个问题就是,如果知道自己的home下的名字是啥呢,就是/home/xxx/esp/...中xxx的内容,当时自己不是很确定,其实一般来说,可以在终端中直接看到。如下图,就是@符前面那一段。

也可以通过文件系统看到。

6、将样例文件拷贝到桌面目录

这块涉及Linux 复制命令,我是根据自己情况,请大家根据自己情况改变

shell 复制代码
265  cp /home/wjl-linux/esp/esp-idf/examples/get-started/hello_world/  /home/wjl-linux/Desktop/esp32_work/
266  cp /home/wjl-linux/esp/esp-idf/examples/get-started/hello_world/  /home/wjl-linux/Desktop/esp32_work/ -rf
267  cd Desktop/esp32_work/hello_world/

这块就按照自己需要,将eps/esp-idf/examples/get-stated/hello_world的dome文件拷贝到桌面上自己定义文件夹里。

7、使用get_idf环境变量

一个命令直接输入即可

shell 复制代码
get_idf

如下图,使用get_idf之后,出现 idf.py build那么就可以编译了。

8、根据自己实际模块型号设置芯片

另外从此步骤之后,就是用工具的过程了,安装已经完成了。

我虽然使用小开发板,但是实际上使用模块是esp32s3

所以指令如下,如果你使用型号不一样,要改的

shell 复制代码
idf.py set-target esp32s3

如下图是根据自己实际模型,设置指令,自己实际根据自己情况更换后面部分。

9、编译过程

shell 复制代码
idf.py build

如果没有问题的话,就会出现.bin文件,等待烧写flash.

10、下载过程

自己也是尝试了很多指令,涉及硬件部分,还需要摁住boot按键,然后按一下rst按键,最后撒开boot按键。

cpp 复制代码
idf.py flash -p /dev/ttyACM0

成功下载截图

11、结果验证

使用一个串口工具,按下rst复位键后,会出对应消息。

6 细节部分

(1)变通,更改操作顺序

自己实际操作时,发现如果完全按照参考博文中那样,会有问题,只有简单对调步骤就可以了。

自己实际操作时,发现,其实博主是在已有目录esp下,进行克隆的,如仿照上述一样操作,就回发现克隆的文件在外面,还需要复制到文件夹内,如下图。

如下实际操作时,我发现提示我没有这个文件,才意识到这个问题

(2)报错:输入gitee账号和密码

当时不知道哪里操作问题,一使用相关 idf.py,就会让输入gitee用户和密码,自己都克隆了,编译啥的扯不到那去啊,有点想不通,如下图。

使用指令idf.py build后,如下。

(3)变通:使用串口工具

我并没按照步骤,使用命令行监控,其实也可以使用一些工具看自己选择了,如果使用工具,可以了解下cutecom。

链接:https://blog.csdn.net/JAZZSOLDIER/article/details/70183995

当然如果你依然可以按照博文所说的使用命令行监视。

(4)尝试跟驱动端口权限

如下图,如果无法打开端口,那么可以给其权限尝试下

5、错误:无法下载或不到端口

碰到类似问题,只能多尝试,自己作为初学者,暂时还没有找到规律,另外就是报错都是命令行,一堆,都不太好搜索。但基本情况类似,要不就打不开端口啥的,一般只能反复尝试命令,和手先摁住boot键,再摁一下res键,最后撒开boot键,进行尝试。即 全程按住boot键,在按住boot键时,按一下res键,随后撒开boot键。

6、在Linux 下或者 jetson 下,一般端口为/dev/ttyACM0或者/dev/USB**啥的

也可以通过相关命令查看设备

shell 复制代码
ls /dev/tty*

7、在PC的ubuntu20.04上测试

因为相关指令都依然知晓,重复操作后,基本也是可以的,如下,是在pc上的命令行整个过程,用于记录吧。

8、一些错误记录

(1)无法打开设备,可能需要权限 chmod

shell 复制代码
 --port /dev/ttyACM0 erase_flash
esptool.py v4.6.2
Serial port /dev/ttyACM0

A fatal error occurred: Could not open /dev/ttyACM0, the port doesn't exist

(2)要重启

然后注销并重新登录用户以使更改生效。

shell 复制代码
sudo usermod -a -G dialout $USER

(3)重装,不知道为啥要用户密码

shell 复制代码
Username for 'Gitee - 基于 Git 的代码托管和研发协作平台': 45
Password for 'Gitee - 基于 Git 的代码托管和研发协作平台': 
remote: [session-eb49ef84] 45: Incorrect username or password (access token)
fatal: Authentication failed for 'https://gitee.com/espressif/esp32c3-bt-lib.git/'
fatal: clone of 'https://gitee.com/espressif/esp32c3-bt-lib.git' into submodule path '/home/wjl-linux/esp/esp-idf/components/bt/controller/lib_esp32c3_family' failed
Failed to clone 'components/bt/controller/lib_esp32c3_family'. Retry scheduled
Cloning into '/home/wjl-linux/esp/esp-idf/components/bt/controller/lib_esp32c3_family'...
Username for 'Gitee - 基于 Git 的代码托管和研发协作平台': 
Password for 'Gitee - 基于 Git 的代码托管和研发协作平台': 
remote: [session-4641aa9a] Unauthorized
fatal: Authentication failed for 'https://gitee.com/espressif/esp32c3-bt-lib.git/'
fatal: clone of 'https://gitee.com/espressif/esp32c3-bt-lib.git' into submodule path '/home/wjl-linux/esp/esp-idf/components/bt/controller/lib_esp32c3_family' failed
Failed to clone 'components/bt/controller/lib_esp32c3_family' a second time, aborting
CMake Error at /home/wjl-linux/esp/esp-idf/tools/cmake/git_submodules.cmake:48 (message):
  Git submodule init failed for components/bt/controller/lib_esp32c3_family
Call Stack (most recent call first):
  /home/wjl-linux/esp/esp-idf/tools/cmake/build.cmake:80 (git_submodule_check)
  /home/wjl-linux/esp/esp-idf/tools/cmake/build.cmake:242 (__build_get_idf_git_revision)
  /home/wjl-linux/esp/esp-idf/tools/cmake/idf.cmake:53 (__build_init)
  /home/wjl-linux/esp/esp-idf/tools/cmake/project.cmake:29 (include)
  CMakeLists.txt:5 (include)

(4)未知

shell 复制代码
t /dev/ttyACM0 write_flash -z 0x1000   /home/wjl-linux/Desktop/esp32_work/esptool/app-template1.bin 
./esptool.py: line 7: import: command not found
./esptool.py: line 8: import: command not found
./esptool.py: line 11: syntax error near unexpected token `subprocess.run'
./esptool.py: line 11: `    sys.exit(subprocess.run([sys.executable, '-m', 'esptool'] + sys.argv[1:]).returncode)'

7、总结

那就1024程序员节快乐吧~~!

相关推荐
学传打活7 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续3)
微信公众平台·1024程序员节·汉字·昆仑正义文化
学传打活13 天前
【边打字.边学昆仑正义文化】_进阶篇5 宇宙星系的运转(续1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
fangzhanpeng16820 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心23 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u0103055271 个月前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u0103055271 个月前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝1 个月前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u0103055271 个月前
Java图像处理实战指南
人工智能·1024程序员节
u0103055271 个月前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u0103055271 个月前
Java实用类应用精讲
人工智能·1024程序员节