1、概述
最近在使用一直在調試ESP32,作為新手,也有很多不懂的地方,一點點慢慢學,開始是裝的win環(huán)境,后來又嘗試了jetson-orin-nx和ubuntu上,在Linux 下開發(fā)都習慣使用命令行,但是在Windows下習慣使用軟件點,而調試esp32的話,還是建議使用命令行形式。
當然說得有點遠了,本次主要是說明ESP32在Linux下搭建環(huán)境部分。
2、實驗環(huán)境
硬件信息: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,支持用戶配置數(shù)據緩存與指令緩存。
(1)模塊資料
資料連接:https://www.espressif.com.cn/sites/default/files/documentation/esp32-s3-wroom-1_wroom-1u_datasheet_cn.pdf
(2)開發(fā)板模塊
鏈接文檔: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)對于安裝環(huán)境部分,關網可能寫的太多了,要兼顧不同系統(tǒng),反而不如網上一些總結文章來的快,我自己也是按照網上來進行操作的,針對自己實際情況。
博文鏈接:https://blog.csdn.net/m0_61411989/article/details/125363829
5、實驗過程
自己雖然參照他人博文,但是覺得有一些值得改進的地方,和更多細節(jié)部分。
1、創(chuàng)建目錄
打開終端,輸入如下命令,創(chuàng)建目錄和進入目錄
mkdir ~/esp
cd esp/
如下是我自己的操作,最好先建立目錄
2、克隆下載文件
進入目錄后,進行clone:
(1)拉去esp-idf官方源碼
(2)拉取esp-gitee-tools工具
一步步操作
git clone https://gitee.com/EspressifSystems/esp-idf.git
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git//拉取esp-gitee-tools工具
如下,有時候還有可能回失敗,多嘗試下。
3、 拉取子目錄安裝和交叉編譯工具鏈等其他工具
繼續(xù)按照博文說操作,先進入這個目錄下“~/esp/esp-gitee-tools”,然后操作。
(1)拉取子目錄
(2)安裝交叉編譯工具鏈和其他工具
cd ~/esp/esp-gitee-tools
./submodule-update.sh ../esp-idf
./install.sh ../esp-idf
4、添加環(huán)境變量
- 設置環(huán)境變量
- 添加最后一行 ==home/xxx/esp/esp-idf/export.sh,其中xxx可以在終端中查看,你自己用戶名,請坐對應更改。
- 你的esp-idf路徑
- 立即生效。
- 安裝所有芯片這塊根據需要,可以安裝部分或者遇到問題可以單獨操作這步
- 設置用戶 完成后要重啟下。
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
如下圖,是添加環(huán)境變量。
這里有個問題就是,如果知道自己的home下的名字是啥呢,就是/home/xxx/esp/…中xxx的內容,當時自己不是很確定,其實一般來說,可以在終端中直接看到。如下圖,就是@符前面那一段。
也可以通過文件系統(tǒng)看到。
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環(huán)境變量
一個命令直接輸入即可
get_idf
如下圖,使用get_idf之后,出現(xiàn) idf.py build那么就可以編譯了。
8、根據自己實際模塊型號設置芯片
另外從此步驟之后,就是用工具的過程了,安裝已經完成了。
我雖然使用小開發(fā)板,但是實際上使用模塊是esp32s3
所以指令如下,如果你使用型號不一樣,要改的
idf.py set-target esp32s3
如下圖是根據自己實際模型,設置指令,自己實際根據自己情況更換后面部分。
9、編譯過程
idf.py build
如果沒有問題的話,就會出現(xiàn).bin文件,等待燒寫flash.
10、下載過程
自己也是嘗試了很多指令,涉及硬件部分,還需要摁住boot按鍵,然后按一下rst按鍵,最后撒開boot按鍵。
idf.py flash -p /dev/ttyACM0
成功下載截圖
11、結果驗證
使用一個串口工具,按下rst復位鍵后,會出對應消息。
6 細節(jié)部分
(1)變通,更改操作順序
自己實際操作時,發(fā)現(xiàn)如果完全按照參考博文中那樣,會有問題,只有簡單對調步驟就可以了。
自己實際操作時,發(fā)現(xiàn),其實博主是在已有目錄esp下,進行克隆的,如仿照上述一樣操作,就回發(fā)現(xiàn)克隆的文件在外面,還需要復制到文件夾內,如下圖。
如下實際操作時,我發(fā)現(xiàn)提示我沒有這個文件,才意識到這個問題
(2)報錯:輸入gitee賬號和密碼
當時不知道哪里操作問題,一使用相關 idf.py,就會讓輸入gitee用戶和密碼,自己都克隆了,編譯啥的扯不到那去啊,有點想不通,如下圖。
使用指令idf.py build后,如下。
(3)變通:使用串口工具
我并沒按照步驟,使用命令行監(jiān)控,其實也可以使用一些工具看自己選擇了,如果使用工具,可以了解下cutecom。
鏈接:https://blog.csdn.net/JAZZSOLDIER/article/details/70183995
當然如果你依然可以按照博文所說的使用命令行監(jiān)視。
(4)嘗試跟驅動端口權限
如下圖,如果無法打開端口,那么可以給其權限嘗試下
5、錯誤:無法下載或不到端口
碰到類似問題,只能多嘗試,自己作為初學者,暫時還沒有找到規(guī)律,另外就是報錯都是命令行,一堆,都不太好搜索。但基本情況類似,要不就打不開端口啥的,一般只能反復嘗試命令,和手先摁住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/ttyACM0
A 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 的代碼托管和研發(fā)協(xié)作平臺': 45
Password for 'Gitee - 基于 Git 的代碼托管和研發(fā)協(xié)作平臺':
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 的代碼托管和研發(fā)協(xié)作平臺':
Password for 'Gitee - 基于 Git 的代碼托管和研發(fā)協(xié)作平臺':
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)未知文章來源:http://www.zghlxwxcb.cn/news/detail-720088.html
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程序員節(jié)快樂吧~~!文章來源地址http://www.zghlxwxcb.cn/news/detail-720088.html
到了這里,關于【在英偉達nvidia的jetson-orin-nx和PC電腦ubuntu20.04上-裝配ESP32開發(fā)調試環(huán)境-基礎測試】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!