问题标签 [arduino-esp32]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
251 浏览

esp32 - 接收(全部)LoRa 数据包时出现问题

目前,我尝试通过读取串行线并通过 LoRa 发送输入,在一个 Heltec WIFI LoRa V2 和另一个之间发送数据包。

小数据包(如 30 字节)每次都有效,但随着数据包的增大,每次都不会收到数据包,甚至永远不会收到数据包。

所以我写了一个小发送循环,我的发送者在每次迭代中发送一​​个数据包,每次都会变大 10 个字节,令人惊讶的是,发送者收到了每个数据包(我试过直到 500 个字节)。

之后,我想发送一个 80 字节的串行输入消息,但没有成功。你知道这有什么问题吗?

0 投票
1 回答
107 浏览

c - 启用换行符或回车符

我正在阅读一些机器人代码,并且遇到了 Newline 和 Carriage 之类的东西。那两件事是什么?我找不到任何与代码本身相关的有用用法。这是代码

0 投票
2 回答
896 浏览

arduino - ESP32 无法连接到 iPhone 个人热点

这是我的代码

我可以使用 WiFiscan 例程找到我 iPhone 的个人热点,但我无法连接到它。

0 投票
1 回答
353 浏览

arduino - 检查 Arduino 平台的变量数据类型

编写 Arduino 代码时如何检查变量的数据类型。就像在 python 中使用 type() 一样,如果需要在 Arduino 上做同样的事情,请指教。

0 投票
1 回答
205 浏览

arduino-esp32 - 与 microSD 卡交互时出错?

我有一个附有 microSD 卡 (8GB) 的 ESP32-CAM 板。在我的设置功能中,我创建了一个目录。ESP32-CAM 在循环中获取图像并存储在目录中。代码成功创建了目录并在目录中捕获了一张图像。但是,当循环函数第二次运行时,出现以下错误:

0 投票
1 回答
1504 浏览

arduino - boot_app0.bin 和 bootloader_dio_80m.bin 文件是干什么用的?(ESP32 - Arduino IDE)

由 Arduino IDE 执行的 ESP32 flash 命令似乎会刷新两个引导加载程序文件:boot_app0.binat offset0xe000bootloader_dio_80m.binat offset 0x1000。我想知道这两个引导加载程序文件实际上是做什么的,以及为什么有两个。下面我提供更多信息。

1. 背景

我是为微控制器开发新的免费 IDE 的团队的一员:Embeetle IDE。我们计划在不久的将来支持 ESP32 微控制器系列。因此,我现在正在研究 ESP32 构建系统ESP-IDF——ESP32 项目的工具和 Arduino IDE 方法。

2. ESP32 项目的 Arduino IDE flash 程序

构建.elf文件后,Arduino IDE 启动命令将其转换为二进制文件:

最后,该WiFiScan.ino.bin文件连同两个引导加载程序文件和分区表一起刷新到开发板:

Arduino IDE 使用的默认分区表如下所示(csv 格式):

此 csv 文件的二进制等效文件被刷新到 address 0x8000。还有两个引导加载程序文件分别被闪存到地址0xe0000x1000(见下一段)。

3.引导加载程序文件

正在刷新的两个引导加载程序文件是:

和:

问题 1:这两个引导加载程序文件有什么作用?

观察它们的位置也很有趣。第一个boot_app0.bin位于名为'partitions'. .csv它与几个分区文件一起坐在那里。为什么?但是,当问题 1 得到回答时,这可能会变得很清楚。

另一个bootloader_dio_80m.bin位于一个名为的文件夹中'sdk/bin/',并与其他文件一起使用,这些文件的名称都以'bootloader_'前缀开头:

在此处输入图像描述

问题 2:关于在地址刷入的引导加载程序文件0x1000,我认为'_40m''_80m'后缀代表以 MHz 为单位的闪存速度。但我不知道'_dio','_dout''_qout'后缀代表什么。

请赐教^_^


回答

感谢@Juraj,我现在可以更好地了解 ESP32 芯片的启动过程。我相信它看起来像这样:

  1. FIRST STAGE BOOTLOADER
    硬连线ROM-bootloader首先运行。此第一阶段引导加载程序位于闪存之外,无法编程。它加载第二阶段引导加载程序(参见下一步)。

  2. 第二阶段引导加载程序:
    第一阶段 ROM-引导加载程序在 Flash中的地址加载第二阶段ESP-IDF 软件引导加载程序。0x1000这里的代码是bootloader_dio_80m.bin可执行文件,可以在components/bootloaderESP-IDF 框架的目录下找到。第二阶段引导加载程序读取默认在 offset 找到的分区表0x8000。如果在分区表中找到 OTA 应用程序分区,则引导加载程序会查询该ota_data分区以确定应该引导哪个分区。

  3. BOOT SWITCH
    ota_data部分可以认为仅仅是一个开关,位于0xe000Flash 中。它确定是否启动app0app1应该启动。开关本身是boot_app0.bin二进制的。正如 Juraj 所说,2kB 大小也用于在 OTA 刷新期间做笔记。

  4. APPLICATION
    应用程序在app0app1执行。

也感谢您向我指出这些资源:

0 投票
0 回答
96 浏览

python-3.x - 如何在 python 中读取 IP 地址(视频)并将其连接到 ROS?

️ 我正在尝试将 IP 地址连接到 ROS。

我有一个 ESP32 摄像头,可以发送带有 IP 地址的视频无线。

所以,我有 IP 地址,我想把它放到 python 中,以便与 ROS 1 NOETIC 连接。

这是代码:

我认为错误在课堂上:

class IPCamera(object):

在此处输入图像描述

如何将 IP 地址连接到 ROS?或者也许有人可以帮我做什么 我有一个 ESP32 摄像头,我想用这个摄像头通过无线通信发送视频。

然后用 cam 和 Programmation 检测物体......全部在 ROS 中。

请如果有人可以帮助我,我是初学者...谢谢☘️☘️⭐</p>

0 投票
1 回答
76 浏览

twilio - 如何使用 Twilio 从浏览器 pc 到 esp32 进行语音通话?

如何使用 Twilio 从浏览器 pc 到 esp32 进行语音通话?我想找到使用 esp32-cam 进行远程医疗以流式传输视频的方法,现在我也在寻找音频流,请建议我。

0 投票
0 回答
155 浏览

c++ - 使用 ESP32 通过 HTTP Web 服务器将 MLX90640 IR 视频流式传输为 MJPEG

对于 HTTP 或任何 Web 服务器代码,我完全没有经验。我正在尝试使用 ESP32 在 Web 服务器上流式传输我的 MLX90640 视频。目前,我将 MLX90640 连接到 ESP32,并且可以在串行监视器中重复打印像素以显示 ASCII 视频。我现在正在努力从这个开始,到在我的网络服务器上观看视频。

我的 MLX90640 被输出到一个 32x24 的浮点数组中。然后我将其映射到 0-255 并将其用作 16 位相机颜色数组的输入。我想我在尝试将 uint16_t 转换为描述 jpeg 帧所需的任何类型的数据时遇到问题。

当我在 Chrome 上启动我的服务器时,我目前看到一个全黑屏幕,屏幕中央有一个小白框。下面,我已将所有相关功能附加到项目的这一部分,但我会监控并在需要时发布我的其余代码!

我读过很多类似的项目,但大多数都使用不同的相机类型,而且我无法复制 MLX90640 所需的功能。任何有关下一步尝试或阅读的建议将不胜感激!

提前致谢。

0 投票
2 回答
1508 浏览

esp32 - ESP32 启动引导加载程序

我有一个GPIO0通过开关接地的 ESP32 板。这个想法是,如果我按下按钮并发出一个ESP.restart()板将进入闪光模式。相反,ESP.restart()只是重新启动应用程序,忽略GPIO0状态。

是否可以强制整个引导过程,也许直接 JMP 到硬件复位向量?