需求
- 硬件能进行图像采集及网络传输功能
- 硬件中的软件开发侧重于使用 熟悉的语言 如go , python
- 硬件知识的学习 倾向于 软件层面的实现,如PWM,PIN等方式直接通过软件控制相关硬件,不要涉及 电路基础,电路设计等过于偏向硬件的知识;
- 尽量使用集成度高的硬件,能直接进行编译运行,不能进行电焊,面包板等相关实践;
- 价格要便宜,百元以内;
需求分析
- 硬件要经济实惠,具备联网传输功能,图片采集功能,且算力不能太低
- 硬件要能用python或go进行编写相关软件代码并在硬件运行
- 硬件要高集成度,拿来即用
硬件调研
树莓派+Grove系统
树莓派简介
此为一个微型的计算机,运行linux系统,上面提供各种引脚,用来接入其他硬件,进行供电控制及数据交互; 以4B版本的树莓派为例,其包括的硬件功能分布如下
Grove系统
- 引用简介:
Grove是一个模块化的标准连接器原型系统。Grove采用积木式组装电子技术。与基于跳线或焊接的系统相比,连接,试验和构建更容易,并简化了学习系统;
- 优点如下:
- 不用再使用 焊枪进行电线焊接,改为基于拔插式;
- 不用过于考虑 2个硬件间 的连错线问题,人家提供的每个硬件会告诉用户怎么接线;
- 不用担心人家提供的硬件 在软件层怎么调用的问题,人家提供 各个语言的包,直接调用包里的函数就行对硬件进行控制及数据交互;
- 硬件不用担心垄断价格贵等问题,电路图都是开源的,哪都能买到;
- 总结:就像人家说的,简化了学习系统,让大家更偏向于软件层实现,不过于关注硬件底层;
总结
- 优点: 两者结合使用,外加摄像头硬件便可满足需求,且可以使用python语言进行开发调试,简化硬件知识学习成本,且 树莓派算力强大,甚至将涉及到opencv的大量消耗算力的任务也可完成; 在网络良好时,甚至能提供较高的视频FPS;
- 缺点: 太贵了,不符合需求
Jetson Nano
简介
- 此为 NVIDIA(英伟达) 开发生产的 一个微型计算机,和树莓派差不多,只是此硬件的GPU比树莓派强大一些,能进行AI相关应用;
总结
- 此硬件也能结合 Grove使用,缺点 是 价格比树莓派还贵
Arduino
简介
- Arduino平台提供 不同类型的 arduino开发板,包括 usb,引脚,微控制器,稳压器等等基础功能,保证基础的插电即可编程使用; 以 Arduino UNO 开发板为例,其电路如下
- Arduino平台使用C/C++编程语言,提供可以跨平台的IDE(代码编辑器),可以写代码,编译上传到硬件中;
- Arduino平台提供 封装好的C/C++库文件,通过调用库文件里的函数即可操作硬件,非常方便易学;
- Arduino可以结合Grove套件共同使用,Grove各种硬件(如传感器)对应提供了Arduino平台的库文件,因此也是通过函数调用即可控制硬件,且通过Grove提供的拔插式线缆,无需再使用 面包板;
- Arduino平台未来会支持MicroPython语言;
总结
- C/C++语言基础编程没问题
- 价格不符合需求,但是低于树莓派;
ESP32-CAM开发套件
简介
- esp32-cam开发板 是 安信可公司开发的一个 摄像头模块,其包含功能有 wifi联网(2.4G),图像采集,闪光灯,支持TF卡,有可观的运算能力; 是一种单片机,和Arduino开发板相似,和上面的树莓派等不在一个层级,无法运行linux系统;只能 按照固定的程序运行;
- esp32-cam串口通信板及烧录板 能扩展开发板与其他硬件通信能力(增加引脚)及烧录新固件及提供电力支持;
总结
- 此硬件满足需求,价格便宜,尺寸秀珍,无需过多关注硬件问题;
软件调研
前言
- 硬件选择了esp32-cam,那么在此基础选择 编程语言及IDE
Arduino IDE
用法
- 从Arduino社区下载相关esp32包后,能够编译上传到esp32单片机上;
- 使用C/C++语言;
总结
- 不使用此方式
MicroPython+Thonny+Pycharm
- MicroPython语言是在python3的基础上 进行简化适配到单片机(微控制器),精简删除了python3的一部分标准库,如requests;语法和python3相同;
- 编译上传到单片机的IDE用Thonny,
- 代码编写的IDE用Pycharm;因为Thonny代码编辑器太过于初级,代码提示,自动补全等等均没有;
总结
使用此方式,python熟悉,编辑器只需简单学习
最终决定
- 硬件部分 使用ESP32-CAM开发套件;总价 80元左右;
- 软件部分 使用 MicroPython+Thonny+Pycharm 进行开发;