视频链接:Openmv+stm32 云台视觉追踪_哔哩哔哩_bilibili
二维云台是淘宝上买的,用的是数字舵机,精度还可以,主控为STM32F103C8T6,单片机与openmv之间使用串口通信,通信格式采用json字符串。
程序逻辑很简单,openmv识别色块,持续发送小球的相对于以画面中心为原点的坐标系的坐标,由stm32进行pid控制,使小球保持在画面中心。
由于程序非常简单,所以pid直接放在空闲中断里进行。
舵机部分:
#include "servo.h"
#include "tim.h"
double roll_deg = 0,pitch_deg = 0;
void roll_angle(double deg) //-135~135 -- 500~2500
{
double temp = ((deg-(-135.0))/270.0)*2000 + 500;
__HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_1,temp);
}
void pitch_angle(double deg) //-90~90 -- 500~2500
{
double temp = ((deg-(-90.0))/180.0)*2000 + 500;
__HAL_TIM_SetCompare(&