嵌入式人工智能ESP32(1-初步上手使用)
u010152658 2024-09-03 09:31:02 阅读 71
我们之前学习过8051的8位单片机系列,8086的16位处理器,ARM的STM32、ARM的A9、ARM的A72树莓派等等,今天我们再学习一款新型的微处理器ESP32。
1、ESP32简介
ESP32是一款由乐鑫信息科技(Espressif Systems)推出的高度集成的低功耗系统级芯片(SoC),特别适用于各种物联网(IoT)应用。ESP32芯片具备以下核心特性。
处理器与内存:采用双核处理器设计,包括一个主频高达240MHz的主核和一个协处理器核心,通常配备约520KB到4MB的RAM,包括内部RAM和外部PSRAM,用于存储程序和数据。
无线通信:内置Wi-Fi和蓝牙功能,支持IEEE 802.11 b/g/n Wi-Fi标准(工作在2.4GHz频段)以及蓝牙4.2(包括BR/EDR和BLE),使得ESP32能够轻松连接到无线局域网络,进行Internet访问、局域网通信和远程控制,同时也能与各种蓝牙设备进行通信。
外设与接口:拥有丰富的外设和接口,包括最多34个可编程GPIO引脚、UART、SPI、I2C、I2S、PWM等多种通信协议支持,以及12位ADC(最多18通道)、8位DAC(2通道)、触摸传感器(最多10通道)等模拟和数字信号处理能力。
低功耗特性:支持深度睡眠模式,其中所有非必要的电路都被关闭,以最小化功耗。此外,Wi-Fi模块和蓝牙模块都支持功耗优化功能,可以在数据传输时限制功率消耗,从而延长电池寿命。ESP32还具有一个低功耗的RTC模块,可在芯片进入深度睡眠模式时继续运行,用于提供时间戳或执行时间相关的任务。
此外ESP32还有一个特性是易于开发:ESP32支持Arduino开发环境和MocroPython,开发者可以使用熟悉的Arduino、MicroPython语言和工具进行开发。ESP32还提供了丰富的软件开发工具和文档,方便开发者快速上手。
ESP32的应用领域广泛,包括智能家居、智能城市、工业物联网以及医疗健康等,为各种应用场景提供了智能化管理和远程控制的可能。此外,ESP32的开发环境和文档都是开源的,使得开发者可以轻松地使用它来创建各种物联网和嵌入式应用。
2、ESP32与ESP8266
ESP8266是乐鑫科技于2014年推出的一款单核处理器,主频为80MHz,也内置了Wi-Fi功能。ESP8266由于成本低廉和易于使用而迅速在物联网开发领域流行起来。然而,由于其处理能力和外设接口相对较少,它在一些复杂的应用场景下可能存在一定的限制。
(1)处理能力和内存
ESP8266是一个基于32位RISC CPU的芯片,工作频率可达160MHz,拥有内部SRAM和SPI Flash,允许用户在其中储存和运行代码。相比之下,ESP32具有更强的处理能力,它内置了两个32位的LX6微处理器,其工作频率可达240MHz。此外,ESP32还配备了更大的RAM和Flash存储空间,使其更适合处理复杂的任务和程序。
(2)无线通信能力
ESP8266只支持Wi-Fi通信(802.11b/g/n),但ESP32却可以同时支持Wi-Fi(802.11b/g/n)和蓝牙(包括经典蓝牙和蓝牙低功耗BLE)。ESP32的这个特性使得它在需要同时处理Wi-Fi和蓝牙通信的场景下,具有显著的优势。
(3)GPIO(通用输入/输出)引脚
ESP8266具有17个GPIO引脚,这使得它在需要连接较少设备的简单项目中足够使用。然而,ESP32具有高达36个GPIO引脚,使其能够处理更多的并行任务,对于更复杂的项目更为适合。
(4)电源消耗和价格
在电源消耗方面,由于ESP32具有更高的处理能力和更多的功能,它的功耗也更高。然而,ESP32设计了更多的电源管理功能,能在不影响性能的前提下,有效地降低功耗。
在价格方面,ESP32的售价略高于ESP8266,但考虑到其更强的功能和更高的性能,这个价格差异是可以接受的。
我们学习可以用ESP32来学习,但是具体应用需要考虑性价比的时候可以使用ESP8266。
3、用Thonny将MicroPython固件烧录至ESP32
(1)Thonny的基本特点、下载安装
面向初学者:Thonny的设计初衷是为了帮助Python初学者更轻松、更快速地入门编程。它提供了直观易懂的用户界面和丰富的功能,降低了编程的门槛。
轻量级:作为一款轻量级的IDE,Thonny不会占用过多的系统资源,使得初学者在有限的硬件条件下也能流畅地进行编程学习。
基于Python:Thonny是基于Python内置图形库tkinter开发的可视化工具,因此它完全面向Python初学者,与Python语言本身紧密相连。
下载安装都比较简单(Thonny, Python IDE for beginners)
(2)MicroPython
MicroPython ,是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。
MicroPython努力与普通的Python(称为CPython)尽可能兼容,这样如果你了解Python就已经知道了MicroPython。另一方面,您对MicroPython的了解越多,您在Python中的表现就越好。
除了实现一系列核心Python库之外,MicroPython还包括用于访问低级硬件的“机器”等模块。
MicroPython - Python for microcontrollers
下载这个没有操作系统也能运行的Python解释器,也叫固件。
(3)用Thonny将MicroPython固件烧录至ESP32
我这里买的ESP32位38Pin的CP2102的USB驱动版本,如果插上找不到驱动,需要下载驱动更新。CP210x USB to UART Bridge VCP Drivers - Silicon Labs
安装好驱动之后在设备管理器就能看到这个了。
打开Thonny,运行-配置解释器
这里如果你下载了micropython固件就选择本地文件,如果没有本地文件也可以通过网络下载。
安装正在写入固件。
4、测试简单的hello.py
写一个print,保存到MicroPython设备上,也就是ESP32上面。运行即可。
非常简单,非常NICE!
上一篇: 解密Prompt系列37. RAG之前置决策何时联网的多种策略
下一篇: Datawhale X 李宏毅苹果书 AI夏令营 Task3 批量归一化、卷积神经网络、自注意力机制原理 笔记
本文标签
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。