最近树莓派4b发布了8gb的版本,这么大的内存用在嵌入式设备上,简直是为了深度计算而生,果断入手了一块,遂开启了一轮踩坑之旅。为了避免重复网上已有的树莓派教程,后续系列文章,我尽量以2020年为基准,先打造一个最新最稳定的软硬件开发环境,再在其上构建AI应用。比如选择构建OpenCV 4.4,pyTorch 1.6和1.7,Tensorflow 2.1,然后在上面跑yolo v5应用,用intel NCS2加速等等…
这篇我们先来选用一些必要的硬件设备,其中标明必备的,则是运行系统所要求的,型号规格尽量保持一致,可选的部分可根据实际AI应用选择即可。
如果是开发折腾用推荐8gb版本,无论是tensorflow还是pytorch,甚至想在树莓派上开个chrome查下文档,都占相当大的内存。不过由实际使用来看,4gb的版本足已满足当前需求,性价比很高,预算有限的优先选择。而2gb的版本不推荐,在编译大型应用或跑推理模型的时候容易OOM,需要设置很大交换内存,会显著的拖慢编译速度,极度缩减tf卡的寿命。
烧写镜像或是读写配置文件都需要用到,SD卡套或usb读卡器都行,笔记本的话用卡套方便些。读卡器可以考虑usb 3.0,不过大多数情况2.0的480Mbps匹配MircoSDXC的速度也够用了。
跑CV类的AI应用必备,推荐采用CSI的视频接口,树莓派的USB口太紧凑了,USB的摄像头不一定有位置可以插。必要的时候还需要扩展一个USB HUB解决多外设的问题。如果要跑工业CV应用,可以选用 IMX477R 高清摄像头配相应的长焦和微距镜头。
官方电源和国产配套电源(带开关方便重启)都能满足需要,普通手机充电器一般才2A,有太多外设的话,电源的压力就很大。连接太多外设的跑应用时候,会看到屏幕右上方的闪电亏电标志。
如果想直接把树莓派当PC用,配一个Nano的无线键鼠,有物理输入设备,会方便调试代码。没有的话,也可以用VNC来远程桌面访问,所以根据需要可选。
AI应用往往是会进行大量浮点数计算,一般会采用GPU进行运算,通过GPU强大的浮点数运算能力,可以有效提升神经网络运算的效能,但若是要将神经网络运算放到如树莓派的单板计算机进行运算,却往往受限于单板计算机的GPU运算效能,使得神经网络运算的速度不足。
虽然树莓派4b的运行速度是3b的3倍以上,但跑AI推理还是无法达到实时(实测跑yolo v4s,0.3fps),但是透过单板计算机进行AIoT的应用促进了边缘运算技术的发展,若单板计算机要在神经网络运算上获得较佳的运算效能,可以考虑透过USB即插即用的外接神经运算装置解决神经网络运算的效能需求。
Google Coral Edge TPU USB加速棒 或者 intel Neural Compute Stick 2 都是可以使用的,就性价比来说,NCS2会更高些。
树莓派的USB口都集中在一起,直插设备的话(比如NCS2)会把其他的口都挡住,所以多外设的话,最好再配一些usb延长线或是usb hub扩展接口数量。
如果想外出采集数据或是实验AI应用的话,还需要配备一个足够大的充电宝。前文提到普通充电宝接口电流最大2A,如要更大电流,就需要采用两节18650那种提供稳定的电源支持。
在户外的车载项目或AIoT应用中,4G模块可以提供无线的远程连接。可以提供云端推理或是传感器数据云端存储,实现4G高速上网,无线通信,打电话,发短信,全球定位等功能。
| # | 硬件清单 | 规格 |
|---|---|---|
| 1 | 树莓派4b | 4gb,8gb |
| 2 | microSD卡 | 64gb |
| 3 | 读卡器 | 卡套 或 usb |
| 4 | 摄像头 | CSI 接口 |
| 5 | 散热外壳 | 乌金铠甲 |
| 6 | 充电器 | 5v 3A |
| 7 | 无线键盘鼠标 | (可选) |
| 8 | HDMI 转接线 | (可选) |
| 9 | intel神经棒NCS2 | (可选) |
| 10 | Usb延长线或usb hub | (可选) |
| 11 | 树莓派UPS或充电宝 | (可选) |
| 12 | 树莓派 4G模块 | (可选) |
上述器件入手后,一顿操作将他们组合到一起就搞定硬件平台了。
整体上来看,相对于 NVIDIA的 Jetson 和Google的 Coral 而言,树莓派是一个比较低廉的边缘计算设备,对于大规模对成本敏感的传感器网络来说,是一个很好的可选方案。
本文给出了一个ESP32与SPI 接口TFT显示屏接线的详细说明,供大家参考。
wiringPi库是由Gordon Henderson所编写并维护的一个用C语言写成的类库。主要是作为 BCM2835 芯片的 GPIO 库。还包括了I2C 库、SPI 库、UART 库和软件 PWM 库等。
ESP32-S3 是乐鑫发布的一款集成 2.4 GHz Wi-Fi 和 Bluetooth 5 (LE) 的 MCU 系统级芯片。
Jetbot 需要与很多周边设备互动,并且使用很多深度学习框架以及 Jupyter 交互界面进行操作,因此需要安装与调试的内容很多。
LVGL(Light and Versatile Graphics Library,轻巧而多功能的图形库)是一个免费的开放源代码图形库,它提供创建具有易于使用的图形元素,精美的视觉效果和低内存占用的嵌入式GUI所需的一切。
近日,教育部基础教育教学指导委员会正式发布《中小学人工智能通识教育指南(2025年版)》。
掌控板由创客教育专家委员会推出, 是一款教学用开源硬件。可以编程,不管是图形还是python编程都可以,也可以造物,还可以轻松玩转物联网或是可穿戴应用。
本教程基于树莓派4B打造一个稳定的软硬件开发环境,再在其上构建AI应用。比如选择构建OpenCV 4.4,pyTorch 1.6和1.7,Tensorflow 2.1,然后在上面跑yolo v5应用,用intel NCS2加速等等…