由于官方的 PlatformIO 库索引中这个库对 i686 架构(32 位 Linux)不支持,所以我们可以手动添加。
操作
1. 你已经解压了 arduino-esp32-master,请确认 BLEDevice.h、BLEUtils.h 等 BLE 相关文件位于:
~/myenv/lib/arduino-esp32-master/libraries/BLE/src/
2. 为了让 PlatformIO 识别:
由于官方的 PlatformIO 库索引中这个库对 i686 架构(32 位 Linux)不支持,所以我们可以手动添加。
操作
1. 你已经解压了 arduino-esp32-master,请确认 BLEDevice.h、BLEUtils.h 等 BLE 相关文件位于:
~/myenv/lib/arduino-esp32-master/libraries/BLE/src/
2. 为了让 PlatformIO 识别:
你的系统可能使用的 apt-key 版本较旧或者功能受限,导致无法识别 --keyserver 选项。
由于你的 Debian 系统比较旧,并且 Jessie 已经停止官方支持,这种情况很常见。我们可以尝试其他方式来导入 GPG 密钥或绕过 GPG 认证。
你的系统可能使用的 apt-key 版本较旧或者功能受限,导致无法识别 --keyserver 选项。
由于你的 Debian 系统比较旧,并且 Jessie 已经停止官方支持,这种情况很常见。我们可以尝试其他方式来导入 GPG 密钥或绕过 GPG 认证。
说明 串口设备 /dev/ttyUSB0 正在被其他程序占用,所以 esptool.py 无法访问串口刷写。
⸻
【解决方法】
1. 确认没有 screen 或其他串口程序占用
你刚才运行过 screen /dev/ttyUSB0 115200,它可能还在后台运行。你可以尝试:
ps aux | grep screen
如果看到 screen /dev/ttyUSB0 进程号,说明它还在运行。手动关闭方法如下:
killall screen
说明 串口设备 /dev/ttyUSB0 正在被其他程序占用,所以 esptool.py 无法访问串口刷写。
⸻
【解决方法】
1. 确认没有 screen 或其他串口程序占用
你刚才运行过 screen /dev/ttyUSB0 115200,它可能还在后台运行。你可以尝试:
ps aux | grep screen
如果看到 screen /dev/ttyUSB0 进程号,说明它还在运行。手动关闭方法如下:
killall screen
--port /dev/ttyUSB0 write_flash -z \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware_gpio15.bin 复制运行这个,screen监视无限刷新页面,但是灯常亮
--port /dev/ttyUSB0 write_flash -z \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware_gpio15.bin 复制运行这个,screen监视无限刷新页面,但是灯常亮
问题分析与解决方案:
1. 缺少必要的 Bootloader 和分区表
你的程序只刷入了 firmware.bin,但 ESP32 启动需要:
• bootloader.bin(引导程序)
• partitions.bin(分区表)
• firmware.bin(主程序)
解决办法:
使用以下命令完整刷入这三个文件(确保这三个文件都在当前路径下):
问题分析与解决方案:
1. 缺少必要的 Bootloader 和分区表
你的程序只刷入了 firmware.bin,但 ESP32 启动需要:
• bootloader.bin(引导程序)
• partitions.bin(分区表)
• firmware.bin(主程序)
解决办法:
使用以下命令完整刷入这三个文件(确保这三个文件都在当前路径下):
⸻
一、检查是否已安装 Python
打开终端,输入以下命令:
python3 --version
如果你看到类似下面的输出:
Python 3.9.2
说明已经安装好了。
⸻
二、运行 Python 解释器(交互模式)
输入:
python3
你会看到像这样的一行提示:
Python 3.9.2 (default, ...)
>>>
这时候你就可以直接输入 Python 代码,比如:
print("你好,世界!")
按下回车后它会输出:
你好,世界!
⸻
一、检查是否已安装 Python
打开终端,输入以下命令:
python3 --version
如果你看到类似下面的输出:
Python 3.9.2
说明已经安装好了。
⸻
二、运行 Python 解释器(交互模式)
输入:
python3
你会看到像这样的一行提示:
Python 3.9.2 (default, ...)
>>>
这时候你就可以直接输入 Python 代码,比如:
print("你好,世界!")
按下回车后它会输出:
你好,世界!
1. 打开终端,进入解压后的文件夹
假设你解压的文件夹路径是:
~/Downloads/matlab_R2024b_glnxa64
你可以在终端中输入:
cd ~/Downloads/matlab_R2024b_glnxa64
2. 启动安装程序
输入以下命令来启动安装向导(图形界面):
./install
如果提示权限不足,可以加 sudo:
如果你的系统没有图形界面,或你想使用命令行安装,可以使用:
sudo ./install -mode silent -agreeToLicense yes
1. 打开终端,进入解压后的文件夹
假设你解压的文件夹路径是:
~/Downloads/matlab_R2024b_glnxa64
你可以在终端中输入:
cd ~/Downloads/matlab_R2024b_glnxa64
2. 启动安装程序
输入以下命令来启动安装向导(图形界面):
./install
如果提示权限不足,可以加 sudo:
如果你的系统没有图形界面,或你想使用命令行安装,可以使用:
sudo ./install -mode silent -agreeToLicense yes
⸻
一、硬件清单
每辆玩具车的基本硬件如下:
硬件
数量
说明
ESP32 开发板
1
BLE Mesh 通信、避障和控制主控
超声波传感器(HC-SR04/JSN-SR04T)
1
避障检测
直流电机驱动模块(L298N/L9110S)
1
控制左右电机的转动
直流电机
2
车轮驱动
车轮底盘
1
安装电机和硬件的支架
电池(18650/锂电池组)
1
提供电源
面包板与跳线
若干
连接硬件模块
⸻
一、硬件清单
每辆玩具车的基本硬件如下:
硬件
数量
说明
ESP32 开发板
1
BLE Mesh 通信、避障和控制主控
超声波传感器(HC-SR04/JSN-SR04T)
1
避障检测
直流电机驱动模块(L298N/L9110S)
1
控制左右电机的转动
直流电机
2
车轮驱动
车轮底盘
1
安装电机和硬件的支架
电池(18650/锂电池组)
1
提供电源
面包板与跳线
若干
连接硬件模块
这个项目基于 ESP32 BLE Mesh 实现多辆玩具车的避障和路径规划,可以应用于编队行驶、智能导航等场景。项目主要包括以下功能模块:
1. BLE Mesh 通信:多车之间的信息同步和指令传达。
2. 避障检测:使用超声波传感器实时感知前方障碍物。
3. 路径规划:车队间共享避障信息,实现动态避障和路径调整。
⸻
一、项目所需硬件
1. ESP32开发板 × 多个
2. 超声波传感器(HC-SR04 或 JSN-SR04T) × 每辆车1个或多个
这个项目基于 ESP32 BLE Mesh 实现多辆玩具车的避障和路径规划,可以应用于编队行驶、智能导航等场景。项目主要包括以下功能模块:
1. BLE Mesh 通信:多车之间的信息同步和指令传达。
2. 避障检测:使用超声波传感器实时感知前方障碍物。
3. 路径规划:车队间共享避障信息,实现动态避障和路径调整。
⸻
一、项目所需硬件
1. ESP32开发板 × 多个
2. 超声波传感器(HC-SR04 或 JSN-SR04T) × 每辆车1个或多个
⸻
第一步:安装Arduino IDE
你需要确保安装适用于32位系统的Arduino IDE:
方法 1: 使用APT安装
sudo apt update
sudo apt install arduino
这个版本可能偏旧,但支持32位系统,先试试看。如果安装的版本太旧或者有问题,可以用方法2。
方法 2: 手动下载安装
1. 访问 Arduino 官网的 旧版本页面:
Arduino Software (IDE) - Old Versions
⸻
第一步:安装Arduino IDE
你需要确保安装适用于32位系统的Arduino IDE:
方法 1: 使用APT安装
sudo apt update
sudo apt install arduino
这个版本可能偏旧,但支持32位系统,先试试看。如果安装的版本太旧或者有问题,可以用方法2。
方法 2: 手动下载安装
1. 访问 Arduino 官网的 旧版本页面:
Arduino Software (IDE) - Old Versions
根据你的描述,应该是Arduino IDE在编译ESP32程序时提示缺少 OpenOCD-ESP32 和 esptool_py 这两个工具包。我们来逐步排查和解决问题。
一、问题原因分析
1. ESP32开发板库未正确安装
Arduino IDE需要安装ESP32开发板的支持库,其中包含编译和烧录所需的工具包(OpenOCD、esptool_py等)。
2. 开发板URL未正确配置
ESP32的开发板管理需要通过 开发板管理器 下载,而这需要配置ESP32的开发板管理URL。
根据你的描述,应该是Arduino IDE在编译ESP32程序时提示缺少 OpenOCD-ESP32 和 esptool_py 这两个工具包。我们来逐步排查和解决问题。
一、问题原因分析
1. ESP32开发板库未正确安装
Arduino IDE需要安装ESP32开发板的支持库,其中包含编译和烧录所需的工具包(OpenOCD、esptool_py等)。
2. 开发板URL未正确配置
ESP32的开发板管理需要通过 开发板管理器 下载,而这需要配置ESP32的开发板管理URL。
很抱歉,之前提供的下载链接已失效,导致您在执行 wget dl.espressif.com/dl/openocd-e... 时遇到 404 Not Found 错误。由于官方可能未提供适用于 Linux 32 位 系统的预编译 OpenOCD 二进制文件,我们可以通过以下步骤从源代码编译适用于您系统的 OpenOCD。
🛠️ 解决方案:从源代码编译 OpenOCD
步骤 1:安装必要的依赖
在开始编译之前,确保您的系统安装了所需的工具和库。打开终端,执行以下命令:
很抱歉,之前提供的下载链接已失效,导致您在执行 wget dl.espressif.com/dl/openocd-e... 时遇到 404 Not Found 错误。由于官方可能未提供适用于 Linux 32 位 系统的预编译 OpenOCD 二进制文件,我们可以通过以下步骤从源代码编译适用于您系统的 OpenOCD。
🛠️ 解决方案:从源代码编译 OpenOCD
步骤 1:安装必要的依赖
在开始编译之前,确保您的系统安装了所需的工具和库。打开终端,执行以下命令:
既然你是 Linux 32 位系统,我们需要下载适合 32 位 Linux 的 openocd-esp32 工具。下面是针对 32 位系统的解决方案:
⸻
🔧 解决方案:手动下载适合 Linux 32 位的 openocd-esp32
步骤 1:进入 ESP32 的工具目录
如果没有这个目录,先创建它:
mkdir -p ~/Arduino/hardware/espressif/esp32/tools/
cd ~/Arduino/hardware/espressif/esp32/tools/
既然你是 Linux 32 位系统,我们需要下载适合 32 位 Linux 的 openocd-esp32 工具。下面是针对 32 位系统的解决方案:
⸻
🔧 解决方案:手动下载适合 Linux 32 位的 openocd-esp32
步骤 1:进入 ESP32 的工具目录
如果没有这个目录,先创建它:
mkdir -p ~/Arduino/hardware/espressif/esp32/tools/
cd ~/Arduino/hardware/espressif/esp32/tools/
既然 ~/Arduino/hardware/espressif/esp32/tools/openocd-esp32/bin/ 目录不存在,说明 OpenOCD 工具链安装不完整或路径有误。我们可以按照下面的步骤重新安装或手动补齐缺失的工具。
🔧 方案 1:重新安装 ESP32 开发板
1. 删除现有 ESP32 开发板
为避免冲突,先删除现有安装:
既然 ~/Arduino/hardware/espressif/esp32/tools/openocd-esp32/bin/ 目录不存在,说明 OpenOCD 工具链安装不完整或路径有误。我们可以按照下面的步骤重新安装或手动补齐缺失的工具。
🔧 方案 1:重新安装 ESP32 开发板
1. 删除现有 ESP32 开发板
为避免冲突,先删除现有安装:
🔍 问题分析
通常情况下,ESP32 的 OpenOCD 工具路径应该是:
~/Arduino/hardware/espressif/esp32/tools/openocd-esp32/bin/openocd
openocd-esp32 是工具的根目录,bin/ 目录下应该有 openocd 这个可执行文件。若没有,Arduino IDE 会报错找不到工具。
🔍 问题分析
通常情况下,ESP32 的 OpenOCD 工具路径应该是:
~/Arduino/hardware/espressif/esp32/tools/openocd-esp32/bin/openocd
openocd-esp32 是工具的根目录,bin/ 目录下应该有 openocd 这个可执行文件。若没有,Arduino IDE 会报错找不到工具。
提示“没有 openocd-esp32 工具”通常是因为 ESP32 开发板安装不完整或工具链配置问题。下面是详细的排查和解决方法:
⸻
🔧 Step 1: 检查工具目录
首先确认 ESP32 的工具目录中是否有 openocd-esp32 工具。
1. 打开终端,进入工具目录:
cd ~/Arduino/hardware/espressif/esp32/tools/
ls
看看是否有一个名为 openocd-esp32 的文件或文件夹。
提示“没有 openocd-esp32 工具”通常是因为 ESP32 开发板安装不完整或工具链配置问题。下面是详细的排查和解决方法:
⸻
🔧 Step 1: 检查工具目录
首先确认 ESP32 的工具目录中是否有 openocd-esp32 工具。
1. 打开终端,进入工具目录:
cd ~/Arduino/hardware/espressif/esp32/tools/
ls
看看是否有一个名为 openocd-esp32 的文件或文件夹。
提示“您的操作系统没有 opens-esp32 工具” 可能是因为 ESP32 开发板的安装不完整或工具路径错误。我们可以尝试以下几个方法进行修复:
⸻
🔧 方案 1:检查 ESP32 工具安装情况
首先检查是否有 opens-esp32 这个工具。通常 ESP32 工具中包含 esptool.py,但没有一个叫 “opens-esp32” 的工具。
1. 进入 ESP32 开发板的工具目录:cd ~/Arduino/hardware/espressif/esp32/tools/
提示“您的操作系统没有 opens-esp32 工具” 可能是因为 ESP32 开发板的安装不完整或工具路径错误。我们可以尝试以下几个方法进行修复:
⸻
🔧 方案 1:检查 ESP32 工具安装情况
首先检查是否有 opens-esp32 这个工具。通常 ESP32 工具中包含 esptool.py,但没有一个叫 “opens-esp32” 的工具。
1. 进入 ESP32 开发板的工具目录:cd ~/Arduino/hardware/espressif/esp32/tools/
如果在 ~/Arduino/hardware/espressif/esp32/tools/ 下没有 esptool.py,说明 ESP32 开发板的安装不完整或路径有问题。下面是修复的方法:
⸻
🔧 方案 1:重新安装 ESP32 开发板
1. 删除现有的 ESP32 开发板
确保删除旧的、不完整的安装:
rm -rf ~/Arduino/hardware/espressif/esp32/
这会删除 ESP32 开发板的全部文件,确保全新安装不冲突。
如果在 ~/Arduino/hardware/espressif/esp32/tools/ 下没有 esptool.py,说明 ESP32 开发板的安装不完整或路径有问题。下面是修复的方法:
⸻
🔧 方案 1:重新安装 ESP32 开发板
1. 删除现有的 ESP32 开发板
确保删除旧的、不完整的安装:
rm -rf ~/Arduino/hardware/espressif/esp32/
这会删除 ESP32 开发板的全部文件,确保全新安装不冲突。
根据你的描述,/home/debian808/下载/arduino-1.8.19/hardware/espressif/esp32/tools/ 目录不存在或者是空的,所以找不到 platform.txt 进行修改。如果你需要手动创建这个目录并将已有的 esptool.py 移过去,可以按照以下步骤操作:步骤 1: 创建目录
打开终端,执行以下命令:
根据你的描述,/home/debian808/下载/arduino-1.8.19/hardware/espressif/esp32/tools/ 目录不存在或者是空的,所以找不到 platform.txt 进行修改。如果你需要手动创建这个目录并将已有的 esptool.py 移过去,可以按照以下步骤操作:步骤 1: 创建目录
打开终端,执行以下命令: