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

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

  • 1、概述
  • 2、实验环境
  • 3、 物品说明
  • 4、参考资料与自我总结
  • 5、实验过程
    • 1、创建目录
    • 2、克隆下载文件
    • 3、 拉取子目录安装和交叉编译工具链等其他工具
    • 4、添加环境变量
    • 6、将样例文件拷贝到桌面目录
  • 7、使用get_idf环境变量
    • 8、==根据自己实际模块型号==设置芯片
    • 9、编译过程
    • 10、下载过程
    • 11、结果验证
  • 6 细节部分
    • (1)变通,更改操作顺序
    • (2)报错:输入gitee账号和密码
    • (3)变通:使用串口工具
    • (4)尝试跟驱动端口权限
    • 5、错误:无法下载或不到端口
    • 6、在Linux 下或者 jetson 下,一般端口为/dev/ttyACM0或者/dev/USB**啥的
    • 7、在PC的ubuntu20.04上测试
    • 8、一些错误记录
  • 7、总结

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、创建目录

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

mkdir ~/esp  
cd esp/

如下是我自己的操作,最好先建立目录
在这里插入图片描述

2、克隆下载文件

进入目录后,进行clone:
(1)拉去esp-idf官方源码
(2)拉取esp-gitee-tools工具
一步步操作

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

如下,有时候还有可能回失败,多尝试下。
在这里插入图片描述

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

继续按照博文说操作,先进入这个目录下“~/esp/esp-gitee-tools”,然后操作。
(1)拉取子目录
(2)安装交叉编译工具链和其他工具

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. 设置用户 完成后要重启下。
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 allsudo usermod -a -G dialout $USER

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

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

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

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

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环境变量

一个命令直接输入即可

get_idf

如下图,使用get_idf之后,出现 idf.py build那么就可以编译了。
在这里插入图片描述

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

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

我虽然使用小开发板,但是实际上使用模块是esp32s3
所以指令如下,如果你使用型号不一样,要改的

idf.py set-target esp32s3

如下图是根据自己实际模型,设置指令,自己实际根据自己情况更换后面部分。
在这里插入图片描述

9、编译过程

idf.py build

如果没有问题的话,就会出现.bin文件,等待烧写flash.
在这里插入图片描述

10、下载过程

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

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**啥的

在这里插入图片描述
也可以通过相关命令查看设备

ls /dev/tty*

在这里插入图片描述

7、在PC的ubuntu20.04上测试

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

8、一些错误记录

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

 --port /dev/ttyACM0 erase_flash
esptool.py v4.6.2
Serial port /dev/ttyACM0A fatal error occurred: Could not open /dev/ttyACM0, the port doesn't exist

(2)要重启
然后注销并重新登录用户以使更改生效。

sudo usermod -a -G dialout $USER

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

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)未知

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程序员节快乐吧~~!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL比较两次的字段集合,找出并返回差异,主要用于更新记录事件

Create PROCEDURE [dbo].[SysGetTableFieldsCompare] -- Description: <比较两次的字段集合&#xff0c;找出并返回差异&#xff0c;主要用于更新记录事件> -- Return 0- 成功&#xff0c; -1- 没有这个表 -- Rev: 1.00 -- FieldsSource Nvarchar(max) , FieldsTarg…

【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步

MySQL数据同步到Elasticsearch之N种方案解析&#xff0c;实现高效数据同步 前提介绍MySQL和ElasticSearch的同步双写优点缺点针对于缺点补充优化方案 MySQL和ElasticSearch的异步双写优点缺点 定时延时写入ElasticSearch数据库机制优点缺点 开源和成熟的数据迁移工具选型Logsta…

软考系列(系统架构师)- 2016年系统架构师软考案例分析考点

试题一 软件架构&#xff08;质量属性、架构风格对比、根据描述填空&#xff09; 试题二 系统开发&#xff08;用例图参与者、用例关系、类图关系&#xff09; 学生、教师、管理员、时间、打印机【问题2】&#xff08;7分&#xff09; 用例是对系统行为的动态描述&#xff0c;用…

ant框架下 a-input-number组件的宽度问题

如图所示&#xff0c;在使用a-input-number组件时虽然设置了宽度但是没有生效&#xff0c;加上了一个!important就好了&#xff1a;

【Java 进阶篇】使用 Java 和 Jsoup 进行 XML 处理

XML&#xff08;可扩展标记语言&#xff09;是一种常用的数据交换格式&#xff0c;它被广泛用于在不同系统之间传递和存储数据。Java作为一种强大的编程语言&#xff0c;提供了多种方式来处理XML数据。其中&#xff0c;Jsoup 是一个流行的Java库&#xff0c;用于解析和操作XML文…

Leetcode—2678.老人的数目【简单】

2023每日刷题&#xff08;八&#xff09; Leetcode—2678.老人的数目 int countSeniors(char ** details, int detailsSize){ int ans 0; int i; int tens 0; int ones 0; for(i 0; i < detailsSize; i) { tens ((details i) 11) - ‘0’; ones ((details i) 12)…

FOC系列(一)----DRV8301芯片的学习

一、 写在前面 从今年四五月份一直就想玩个无刷直流电机&#xff08;BLDC&#xff09;&#xff0c;但是碍于一直没时间。其实很早就做出来了测试板的控制板&#xff0c;可以当做开发板使用&#xff0c;考虑到成本问题&#xff0c;最后选用STM32F103CBT6芯片&#xff0c;下面是很…

Hadoop核心机制详细解析

Hadoop核心机制详细解析 Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。在现实的实例中&#xff0c;通过Hadoop&#xff0c;可以轻易的将多台普通的或低性能的服务器组合成分布式的运算-存储集群&#xff0c;提供大数据量的存…

Python爬虫网易云音乐,Tkinter制作音乐播放器

目录 一、效果展示 二、环境 三、实现过程 四、源码 一、效果展示 页面的美化以及功能还有待升级~ 先来说一下已有功能吧&#xff1a; 可以在搜索框中通过歌曲或歌手名称进行搜索&#xff0c;效果和在网易云官网搜索一样。 点击开始下载&#xff0c;就会将搜索结果的第一…

关于语雀 23 日故障的公告

10 月 23 日语雀出现重大服务故障&#xff0c;且持续 7 个多小时才完全恢复&#xff0c;给用户使用造成极大不便&#xff0c;对此我们深感抱歉。经过复盘&#xff0c;我们在这里向大家进一步说明故障原因、修复过程和改进措施。 故障原因及处理过程&#xff1a; 10 月 23 日下…

xshell+xming显示jmeter的gui页面

1.下载和安装xming&#xff0c;下载地址&#xff1a;https://sourceforge.net/projects/xming/ 2.配置xming 记住这个端口&#xff0c;一会要用到 修改进入xming安装目录修改host文件 此处是远程服务器的ip 3.服务器执行vi /etc/ssh/sshd_config&#xff0c;修改成如图所示…

Class类文件中的“咖啡宝贝”

Class文件是一组以8个字节为基础单位的二进制流&#xff0c;各个数据项目严格按照顺序紧凑地排列在文件之中&#xff0c;中间没有添加任何分隔符&#xff0c;整个Class文件中存储的内容几乎全部是程序运行的必要数据&#xff0c;没有空隙存在。 字节码&#xff08;Byte Code&am…

力扣第134题 加油站 c++ 暴力 + 贪心

题目 134. 加油站 中等 相关标签 贪心 数组 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;…

Mybit-Plus

1.MyBatis-Plus的代码生成器快速生成后端代码 实体类 持久层代码 注意&#xff1a;mapper接口都继承于BaseMapper 服务层代码 注意&#xff1a;service接口都继承于IService&#xff0c;service实现类都继承ServiceImpl 控制层代码 注意&#xff1a;只有类&a…

SpringAOP源码解析之advice构建排序(二)

上一章我们知道Spring开启AOP之后会注册AnnotationAwareAspectJAutoProxyCreator类的定义信息&#xff0c;所以在属性注入之后initializeBean的applyBeanPostProcessorsAfterInitialization方法执行的时候调用AnnotationAwareAspectJAutoProxyCreator父类(AbstractAutoProxyCre…

CDC实时数据同步

一丶CDC实时数据同步介绍 CDC实时数据同步指的是Change Data Capture&#xff08;数据变更捕获&#xff09;技术在数据同步过程中的应用。CDC技术允许在数据源发生变化时&#xff0c;实时地捕获这些变化&#xff0c;并将其应用到目标系统中&#xff0c;从而保持数据的同步性。…

Spring Security漏洞防护—HTTP 安全响应头

一、默认的 Security Header Spring Security提供了 一套默认的安全HTTP响应头&#xff0c;以提供安全默认值。虽然这些头信息中的每一个都被认为是最佳实践&#xff0c;但应该注意的是&#xff0c;并不是所有的客户端都使用这些头信息&#xff0c;所以鼓励进行额外的测试。 …

电脑软件:推荐一款非常强大的pdf阅读编辑软件

目录 一、软件简介 二、功能介绍 1、界面美观&#xff0c;打开速度快 2、可直接编辑pdf 3、非常强大好用的注释功能 4、很好用的页面组织和提取功能 5、PDF转word效果非常棒 6、强大的OCR功能 三、软件特色 四、软件下载 pdf是日常办公非常常见的文档格式&#xff0c;…

手写 Promise(2)实例方法与静态方法的实现

一&#xff1a;什么是 Promise Promise 是异步编程的一种解决方案&#xff0c;其实是一个构造函数&#xff0c;自己身上有all、reject、resolve这几个方法&#xff0c;原型上有then、catch等方法。 Promise对象有以下两个特点。 &#xff08;1&#xff09;对象的状态不受…

SOCKS5代理与网络安全:如何安全地进行爬虫操作

随着网络技术的不断发展&#xff0c;代理技术在网络安全和数据爬取中扮演着越来越重要的角色。本文将重点介绍SOCKS5代理、SK5代理和IP代理的基本概念&#xff0c;以及如何在保证网络安全的前提下&#xff0c;利用这些技术进行有效的爬虫操作。 1. SOCKS5代理与SK5代理 SOCKS…