问题标签 [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.
esp32 - 接收(全部)LoRa 数据包时出现问题
目前,我尝试通过读取串行线并通过 LoRa 发送输入,在一个 Heltec WIFI LoRa V2 和另一个之间发送数据包。
小数据包(如 30 字节)每次都有效,但随着数据包的增大,每次都不会收到数据包,甚至永远不会收到数据包。
所以我写了一个小发送循环,我的发送者在每次迭代中发送一个数据包,每次都会变大 10 个字节,令人惊讶的是,发送者收到了每个数据包(我试过直到 500 个字节)。
之后,我想发送一个 80 字节的串行输入消息,但没有成功。你知道这有什么问题吗?
c - 启用换行符或回车符
我正在阅读一些机器人代码,并且遇到了 Newline 和 Carriage 之类的东西。那两件事是什么?我找不到任何与代码本身相关的有用用法。这是代码
arduino - ESP32 无法连接到 iPhone 个人热点
这是我的代码
我可以使用 WiFiscan 例程找到我 iPhone 的个人热点,但我无法连接到它。
arduino - 检查 Arduino 平台的变量数据类型
编写 Arduino 代码时如何检查变量的数据类型。就像在 python 中使用 type() 一样,如果需要在 Arduino 上做同样的事情,请指教。
arduino-esp32 - 与 microSD 卡交互时出错?
我有一个附有 microSD 卡 (8GB) 的 ESP32-CAM 板。在我的设置功能中,我创建了一个目录。ESP32-CAM 在循环中获取图像并存储在目录中。代码成功创建了目录并在目录中捕获了一张图像。但是,当循环函数第二次运行时,出现以下错误:
arduino - boot_app0.bin 和 bootloader_dio_80m.bin 文件是干什么用的?(ESP32 - Arduino IDE)
由 Arduino IDE 执行的 ESP32 flash 命令似乎会刷新两个引导加载程序文件:boot_app0.bin
at offset0xe000
和bootloader_dio_80m.bin
at 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
。还有两个引导加载程序文件分别被闪存到地址0xe000
和0x1000
(见下一段)。
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 芯片的启动过程。我相信它看起来像这样:
FIRST STAGE BOOTLOADER:
硬连线ROM-bootloader首先运行。此第一阶段引导加载程序位于闪存之外,无法编程。它加载第二阶段引导加载程序(参见下一步)。第二阶段引导加载程序:
第一阶段 ROM-引导加载程序在 Flash中的地址加载第二阶段ESP-IDF 软件引导加载程序。0x1000
这里的代码是bootloader_dio_80m.bin
可执行文件,可以在components/bootloader
ESP-IDF 框架的目录下找到。第二阶段引导加载程序读取默认在 offset 找到的分区表0x8000
。如果在分区表中找到 OTA 应用程序分区,则引导加载程序会查询该ota_data
分区以确定应该引导哪个分区。BOOT SWITCH
该ota_data
部分可以认为仅仅是一个开关,位于0xe000
Flash 中。它确定是否启动app0
或app1
应该启动。开关本身是boot_app0.bin
二进制的。正如 Juraj 所说,2kB 大小也用于在 OTA 刷新期间做笔记。APPLICATION
应用程序在app0
或app1
执行。
也感谢您向我指出这些资源:
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>
twilio - 如何使用 Twilio 从浏览器 pc 到 esp32 进行语音通话?
如何使用 Twilio 从浏览器 pc 到 esp32 进行语音通话?我想找到使用 esp32-cam 进行远程医疗以流式传输视频的方法,现在我也在寻找音频流,请建议我。
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 所需的功能。任何有关下一步尝试或阅读的建议将不胜感激!
提前致谢。
esp32 - ESP32 启动引导加载程序
我有一个GPIO0
通过开关接地的 ESP32 板。这个想法是,如果我按下按钮并发出一个ESP.restart()
板将进入闪光模式。相反,ESP.restart()
只是重新启动应用程序,忽略GPIO0
状态。
是否可以强制整个引导过程,也许直接 JMP 到硬件复位向量?