3. 开发环境配置:Arduino IDE / PlatformIO 环境搭建、Python 环境搭建(用于PC端原型验证)、常用库安装(TensorFlow Lite、MediaPipe、Arduino_LSM9DS1)
好,咱们正式开始动手了。
这一章,说白了就是给你的电脑装上「武器库」。没有趁手的工具,再牛的算法也跑不起来。我见过太多学员卡在环境配置上,一卡就是两三天,最后连传感器的数据都读不出来——嗯,这其实挺打击人的。
所以咱们一步步来,把 Arduino IDE、PlatformIO、Python 环境,还有那几个关键的库,全部搞定。我保证,跟着我的节奏走,半小时内你就能看到传感器数据在屏幕上跳动了。
3.1 为什么需要两套开发环境?
你可能会问:搞个智能音箱,为啥要装这么多东西?
其实道理很简单。Arduino IDE 和 PlatformIO 是给嵌入式端用的,也就是跑在 ESP32 或者 Arduino 板子上的代码。而 Python 环境是给 PC 端用的,用来快速验证算法原型。
我个人习惯是:先用 Python 在电脑上把手势识别的逻辑跑通,再移植到嵌入式端。这样做的好处是——调试方便,不用每次烧录固件。你想想看,在 PC 上改个参数只要 1 秒,在嵌入式端可能要花 30 秒编译+烧录,一天下来能省多少时间?
3.2 Arduino IDE 环境搭建
Arduino IDE 是最基础的开发工具,适合快速上手。咱们先把它装好。
3.2.1 下载与安装
- 去 Arduino 官网下载最新版 IDE(我建议用 2.x 版本,界面更现代,功能也更全)
- 安装时一路默认选项就行,Windows 用户注意勾选「安装 USB 驱动」
- 安装完成后,打开 IDE,你会看到一个简洁的编辑界面
3.2.2 配置 ESP32 开发板支持
默认的 Arduino IDE 是不支持 ESP32 的,需要手动添加开发板管理器地址。
- 打开 文件 → 首选项,在「附加开发板管理器网址」里填入:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json - 点击 工具 → 开发板 → 开发板管理器,搜索「ESP32」
- 找到「esp32 by Espressif Systems」,点击安装(大约 200MB,需要等几分钟)
3.2.3 安装 Arduino_LSM9DS1 库
这个库是用来驱动 LSM9DS1 九轴传感器的(加速度计+陀螺仪+磁力计)。
- 点击 工具 → 管理库
- 搜索「Arduino_LSM9DS1」
- 找到由 Arduino 官方维护的版本,点击安装
装好之后,你可以打开一个示例程序验证一下:文件 → 示例 → Arduino_LSM9DS1 → SimpleAccelerometer。如果编译通过,说明环境没问题。
3.3 PlatformIO 环境搭建
说实话,Arduino IDE 做小项目还行,但一旦工程大了,它的项目管理能力就捉襟见肘了。这时候,PlatformIO 就派上用场了。
PlatformIO 是一个基于 VS Code 的嵌入式开发插件,支持 1000+ 种开发板,而且有完善的库管理和调试功能。我个人现在大部分项目都用它。
3.3.1 安装 VS Code 和 PlatformIO 插件
- 先安装 Visual Studio Code(官网下载,免费)
- 打开 VS Code,点击左侧扩展图标,搜索「PlatformIO IDE」
- 点击安装,等待完成(第一次安装会下载一些依赖,大概 5-10 分钟)
3.3.2 创建第一个 PlatformIO 项目
- 安装完成后,VS Code 底部会出现一个「蚂蚁头」图标(PlatformIO 的 logo)
- 点击它,选择 Open → New Project
- 填写项目名称(比如
smart_speaker_gesture) - Board 选择 Espressif ESP32 Dev Module
- Framework 选择 Arduino
- Location 选一个你喜欢的文件夹,点击 Finish
项目创建后,你会看到 platformio.ini 这个配置文件。它长这样:
[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
monitor_speed = 115200
嗯,这里要注意:monitor_speed 我习惯设成 115200,因为 ESP32 默认就是这个波特率,省得后面还要改。
3.3.3 在 PlatformIO 中安装库
PlatformIO 的库管理比 Arduino IDE 方便多了。你只需要在 platformio.ini 里加上一行:
lib_deps =
arduino-libraries/Arduino_LSM9DS1
tensorflow/tensorflow-lite
mediapipe/mediapipe
保存文件后,PlatformIO 会自动下载并安装这些库。你可以在终端看到下载进度。
lib 目录下。PlatformIO 会自动识别。
3.4 Python 环境搭建(PC端原型验证)
Python 环境是用来在电脑上跑算法原型的。比如,你可以先用 Python 读取传感器数据,训练一个手势识别模型,再把它转换成 TensorFlow Lite 格式,最后部署到 ESP32 上。
3.4.1 安装 Python 和 pip
- 去 Python 官网下载 3.8 或 3.9 版本(我建议用 3.9,兼容性最好)
- 安装时记得勾选 Add Python to PATH
- 打开命令行(CMD 或终端),输入
python --version验证安装
3.4.2 创建虚拟环境(强烈推荐)
为什么需要虚拟环境?因为不同项目可能依赖不同版本的库,混在一起容易出问题。我曾经有一次因为全局安装了新版 TensorFlow,导致另一个项目直接崩了——从那以后,我每个项目都用虚拟环境。
# 创建虚拟环境
python -m venv gesture_env
# 激活虚拟环境
# Windows:
gesture_env\Scripts\activate
# Mac/Linux:
source gesture_env/bin/activate
激活后,命令行前面会出现 (gesture_env) 字样,说明你已经在虚拟环境里了。
3.4.3 安装必要的 Python 库
在虚拟环境里,执行以下命令:
pip install tensorflow==2.10.0
pip install mediapipe==0.10.3
pip install numpy
pip install pyserial
pip install matplotlib
这里我解释一下每个库的用途:
| 库名 | 用途 |
|---|---|
| TensorFlow | 训练和转换手势识别模型 |
| MediaPipe | 提供手势关键点检测的预训练模型 |
| NumPy | 数据处理,几乎每个项目都会用到 |
| PySerial | PC 和 ESP32 之间的串口通信 |
| Matplotlib | 可视化传感器数据,调试时很有用 |
pip install tensorflow==2.12.0。另外,MediaPipe 目前对 Python 3.11 支持不太好,所以尽量用 3.9。
3.5 验证环境是否配置成功
环境配好了,总得跑个例子验证一下吧?
咱们写一个简单的 Python 脚本,模拟读取传感器数据并打印出来:
import numpy as np
import time
# 模拟 LSM9DS1 传感器数据
def read_sensor():
accel = np.random.randn(3) * 2 # 模拟加速度计
gyro = np.random.randn(3) * 0.1 # 模拟陀螺仪
return accel, gyro
# 主循环
print("传感器数据模拟开始...")
for i in range(10):
accel, gyro = read_sensor()
print(f"第{i+1}次读取: 加速度={accel.round(2)}, 陀螺仪={gyro.round(2)}")
time.sleep(0.5)
print("验证完成!环境配置成功。")
把这个脚本保存为 test_env.py,然后在虚拟环境里运行:
python test_env.py
如果你看到类似这样的输出,说明 Python 环境没问题:
第1次读取: 加速度=[ 1.23 -0.56 0.89], 陀螺仪=[ 0.02 -0.01 0.03]
第2次读取: 加速度=[-0.78 1.34 -0.12], 陀螺仪=[ 0.01 0.02 -0.01]
...
3.6 常见问题与解决
我整理了几个学员常遇到的问题,你如果遇到了,直接对照着解决:
- 问题: Arduino IDE 编译时报错 "ESP32 board not found"
解决: 检查开发板管理器里是否成功安装了 ESP32 包。如果安装了还是报错,重启 IDE 试试。 - 问题: PlatformIO 下载库时卡住不动
解决: 检查网络,或者手动下载库放到lib目录。我一般用后者,更可控。 - 问题: Python 安装 TensorFlow 时报错 "Microsoft Visual C++ 14.0 is required"
解决: 去微软官网下载并安装 "Microsoft C++ Build Tools"。或者用pip install tensorflow-cpu试试。 - 问题: 串口通信时找不到端口
解决: 检查 USB 线是否支持数据传输(有些线只能充电)。另外,Windows 用户需要安装 CH340 或 CP2102 驱动。
总结一下:
这一章我们完成了三件事:
- 搭建了 Arduino IDE 和 PlatformIO 两套嵌入式开发环境
- 配置了 Python 虚拟环境,安装了 TensorFlow、MediaPipe 等关键库
- 通过一个简单的模拟脚本验证了环境可用
现在,你的电脑已经准备好迎接传感器数据了。下一章,咱们就真正开始读取 LSM9DS1 的数据,看看它到底能告诉我们什么信息。
嗯,环境配置这块确实有点琐碎,但相信我——磨刀不误砍柴工。把这些基础打牢了,后面做手势识别的时候你会感谢现在的自己。