一:系统概述
本系统使用OpenMV作为摄像头,追踪红色小球。系统利用OpenMV内置的MicroPython库中的find_blobs函数查找识别红色小球,接着调用find_max()函数进行滤波,将红色小球中心的X,Y坐标打包成数据包,通过串口发送给主控STM32F103C8T6最小系统板,当STM32F103C8T6通过串口中断接收到位置信息后通过PID算法输出合适的PWM波对X轴、Y轴的两个舵机控制旋转相应的角度,使OpenMV摄像头对准被测物体,以实现物体追踪功能。
二:硬件选型
(一):实验版本
1.云台部分
1.1:二维舵机云台带轴承
由于预算充足故选用了某宝的二维电动云台(带轴承)如图所示:
1.2:数字舵机
X轴采用S20系列270°舵机,工作电压5V,堵转电流1.8A,20KG负载马力十足。
Y轴采用S20系列180°舵机,工作电压5V,堵转电流1.8A,20KG负载马力十足。
Tips:
1:舵机必须与STM32F103C8T6共地!!否则无法控制舵机!!
2:舵机调试仪可以用来调试舵机中值,也可以检测舵机好坏。
2.主控部分
2.1:STM32F103C8T6最小系统板
本系统使用STM32F103C8T6最小系统板作为核心MCU,实物如所示。
本系统中STM32F103C8T6使用串口中断与OpenMV进行串口通信,进行数据接收,当其接收到数据后通过硬件IIC与OLED相连输出X轴与Y轴的坐标,并且输出两路PWM波分别控制X轴与Y轴的舵机。
3.传感器部分
3.1:0.96寸OLED显示屏
OLED模块供电可以是3.3V,也可以是5V。本系统使用5V供电。OLED屏具用于显示X轴与Y轴的点坐标。在实验的初期,主要利用OLED检验是否可以正常的通过串口中断进行数据传输,并且检验传输的数据是否正确。
Tips:1:GND与VCC千万不要接反,接反轻则烫手,重则烧屏。
3.2:OpenMV 4 H7 PLUS
本系统中OpenMV部分完成三个任务:
1:完成被测物体的识别(以红色小球为例)。
2:寻找最大色块区域。
3:通过串口将被测物体的位置信息发送给STM32F103C8T6。
Tips:
1:本实验中我们使用5V的电压脱机运行。
2:OpenMV与STM32F103C8T6进行数据传输必须共地!!!
4.稳压部分
4.1:稳压模块
MP1584固定输出5V的稳压模块。输出电压:5V;输出电流:3A(峰值),长时间工作1.5A左右。
5V的电压1.5A-3A的电流可以同时给Openmv与STM32F103C8T6,OLED,舵机供电。
5.电源部分
5.1:电源模块
本系统使用了两节18650锂电池搭配串联构成7.4V的电源。
(二):集成版本
杜邦线承载的电流有限,无法长时间负载大电流,并且信号传递不稳定。为了优化与简化电路,使得系统稳定工作,故绘制