openmv与stm32通讯实现控制舵机跟随颜色块转动[hal库]_openmv与是stm32二维自由度舵机(1)

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

threshold = [(6, 16, 19, 63, 4, 25)]

sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.skip_frames(time = 2000 )
sensor.set_auto_whitebal(False)

clock = time.clock()

uart = UART(3, 115200)

uart.init(115200, bits=8, parity=None, stop=1) #8位数据位,无校验位,1位停止位、

while(True):
clock.tick()
img = sensor.snapshot()
blob = img.find_blobs(threshold, area_threshold=300)
if blob: #如果找到了目标颜色
FH = bytearray([0xb3,0xb4])
uart.write(FH)
for b in blob:
#迭代找到的目标颜色区域
img.draw_cross(b[5], b[6]) # cx, cy
img.draw_edges(b.min_corners(), color=(0,255,0))
x = b.cx()
y = b.cy()

        data = bytearray([x,y])
        uart.write(data)

        end = bytearray([0x01,0x01,0xb5,0xb6])
        uart.write(end)

* **stm32串口中断接收**



void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) //opmv-receive
{
if(huart==&huart1)
{
HAL_UART_Receive_IT(&huart1,&my_re_buf1[++pt_w1],1);
trans(my_re_buf1[pt_w1]);
}
}


* **舵机控制函数**



void measure(void)
{

  if(m>6){
	
		  if(x<130&&x>10){
			
			if(servo_angle<90){
								
     	servo_angle+=5;
     	MG996R\_Set\_Angle(servo_angle); 	//SERVO
				
			}
	
  	}else if(x>170&&x<300){
				
				
				if(servo_angle>-90){
								
     	servo_angle-=5;
     	MG996R\_Set\_Angle(servo_angle); 	//SERVO
				
			}
	
}
m=0;
	
}
m++;

}


* **数据帧头判断部分代码**



static int state = 0;

if(state==0&&data==0xb3)
{
	state=1;
	opmvdata[0]=data;

}
else if(state==1&&data==0xb4)
{
	state=2;
	opmvdata[1]=data;
}

* **数据帧尾不符清除部分**



    else if(data != 0xb6)
    {
        state = 0;
        for(i=0;i<8;i++)
        {
            opmvdata[i]=0x00;
        }           
    }

#### 遇到的问题


舵机控制的时候容易跑偏,后面发现是openmv代码里颜色识别容易对摄像头内多对象进行颜色识别,传回来的数据就会波动较大,因此改变了颜色识别的阈值,实现了较为稳定的颜色识别舵机跟随效果


#### 总结



![img](https://img-blog.csdnimg.cn/img_convert/12794c3bbecb0d3d6ce2e99389dcdc9a.png)
![img](https://img-blog.csdnimg.cn/img_convert/ae034b9b32d9ccf8420abd144421af47.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值