首页 > 其他分享 >OPENMV——识别绿色小球并通过串口把信息发送到单片机,进而控制小车追小球

OPENMV——识别绿色小球并通过串口把信息发送到单片机,进而控制小车追小球

时间:2024-06-06 20:58:50浏览次数:20  
标签:blobs img 小球 120 单片机 length 串口 128 sensor

OPENMV代码

# Measure the distance
#
# This example shows off how to measure the distance through the size in imgage
# This example in particular looks for yellow pingpong ball.

import sensor, image, time
from machine import UART
uart = UART(3, 115200)   #OpenMV RT 注释掉这一行,用下一行UART(1)


roi1 = [(32, 0, 32, 120),
        (52, 0, 52, 120),
        (108, 0, 108, 120),
        (128, 0, 128, 120),
        ]


# For color tracking to work really well you should ideally be in a very, very,
# very, controlled enviroment where the lighting is constant...
yellow_threshold   = (53, 25, -128, -13, -128, 127)
# You may need to tweak the above settings for tracking green things...
# Select an area in the Framebuffer to copy the color settings.

sensor.reset() # Initialize the camera sensor.
sensor.set_pixformat(sensor.RGB565) # use RGB565.
sensor.set_framesize(sensor.QQVGA) # use QQVGA for speed.
sensor.skip_frames(10) # Let new settings take affect.
sensor.set_auto_whitebal(False) # turn this off.
clock = time.clock() # Tracks FPS.

K=5000#the value should be measured
length=0;
while(True):
    clock.tick() # Track elapsed milliseconds between snapshots().
    img = sensor.snapshot() # Take a picture and return the image.

    blobs = img.find_blobs([yellow_threshold])
    if len(blobs) == 1:
        # Draw a rect around the blob.
        b = blobs[0]
        img.draw_rectangle(b[0:4]) # rect
        img.draw_cross(b[5], b[6]) # cx, cy
        Lm = (b[2]+b[3])/2
        length = K/Lm       
        print(length)
    if length < 400:
        uart.writechar(0x41)                     #发送停止
        time.sleep_ms(50)
        
        
    else:
        if 52<b[5]<=108:
            uart.writechar(0x30)                     #发送前进
            time.sleep_ms(50)
            
            
        elif 32<b[5]<=52:
            uart.writechar(0x4C)                     #发送左转
            time.sleep_ms(50)
            
            
        elif 108<b[5]<=128:    
            uart.writechar(0x31)                     #发送右转
            time.sleep_ms(50)
        
        
        elif 0<b[5]<=32 :
            uart.writechar(0x4C)                     #发送迅速左转52
            time.sleep_ms(50)    
    
    
        elif 128<b[5]<=160 :
            uart.writechar(0x31)                     #发送迅速右转32
            time.sleep_ms(50)    
        else:
            uart.writechar(0x41)                     #发送停止
            time.sleep_ms(50)
            
  
    
    
    for rec in roi1:
        img.draw_line(rec, color=(255, 0, 0))
          

    

标签:blobs,img,小球,120,单片机,length,串口,128,sensor
From: https://blog.csdn.net/2302_80529671/article/details/139509894

相关文章

  • OPENMV——追踪AprilTags,并将位置信息传给单片机从而控制小车追AprilTags
    #AprilTagsExample##ThisexampleshowsthepoweroftheOpenMVCamtodetectAprilTags#ontheOpenMVCamM7.TheM4versionscannotdetectAprilTags.importsensor,image,time,mathfrommachineimportUARTuart=UART(3,115200)#OpenMVRT注......
  • 51单片机独立按键控制流水灯,按一次左流水,再按一次反向流水
    1、功能描述独立按键控制流水灯,按一次左流水,再按一次反向流水2、实验原理单片机的I/O口可以通过编程设置为输入或输出模式。在流水灯实验中,我们将I/O口配置为输出模式,用于控制LED灯的亮灭。同时,我们还需要一个输入口来检测按键的状态,以实现按键控制流水灯的功能。流水灯的效......
  • 51单片机独立按键控制LED灯,按键按一次亮,再按一次灭
    1、功能描述独立按键控制LED灯,按键按一次亮,再按一次灭2、实验原理轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开;独立按键原理图如下:其在MCU上的位置如下所示:由上面两张图可以知道,独立按键......
  • 51单片机实现流水灯
    单片机的流水灯控制,无非就是控制led等的开通与关断,而开通与关断依照电路结构,就是某个引脚输入高低电平,比如说引脚P2.1控制led1灯的开通与关断,而引脚P2.2控制led2灯的开通与关断,那么交替闪烁,是不是就是流水灯了呢?我这里使用的是51单片机,用的软件是keil软件。具体代码如下:#i......
  • 基于51单片机的智能晾衣架设计资料
    第三章:硬件单元电路经过上述分析明确了本次设计的主要目标,为了实现晾衣自身能够完成对外界数据的采集与分析,集成控制环节我们采用了ATMEL公司生产的AT89C52单片机,与市面上的其他嵌入式控制单元相比较在体积与功耗方面都相当出色。此次设计主要突破在于设计合理的控制电路单元......
  • 单片机火灾报警器(防火系统)设计
    火灾作为一种在时空上失去控制的燃烧所引发的灾害,对人类生命财产和社会安全构成了极大的威胁。由此引发的重大安全事故比皆是,所以人类一直也未停止过对它的研究。火灾早已成为我国常发性和破坏性以及影响力最强的灾害之一。随着经济和城市建设的快速发展,城市高层、地下建筑以......
  • 基于单片机的脉搏测量仪毕业设计
    脉搏携带有丰富的人体健康状况的信息,自公元三世纪我国最早的脉学专著《脉经》问世以来,脉学理论得到不断的发展和提高。在中医四诊(望、闻、问、切)中,脉诊占有非常重要的位置。脉诊是我国传统医学中最具特色的一项诊断方法,其历史悠久,内容丰富,是中医“整体观念”、“辨证论证”的基......
  • 402、基于51单片机的火灾报警(3房间,温度,数码管)(程序+Proteus仿真+原理图+流程图+元器件
    毕设帮助、开题指导、技术解答(有偿)见文未目录方案选择单片机的选择一、设计功能二、Proteus仿真图单片机模块设计三、原理图四、程序源码资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择单片机的选择方......
  • 400、基于51单片机的电压表(1路,ADC0832,LCD1602)(程序+Proteus仿真+原理图+流程图+元器件
    毕设帮助、开题指导、技术解答(有偿)见文未目录方案选择单片机的选择显示器选择方案一、设计功能二、Proteus仿真图单片机模块设计三、原理图四、程序源码资料包括:需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。方案选择......
  • 80C51单片机-LED流水灯效果(汇编版)
    8051单片机跑马灯实验:LED流水灯效果本文将介绍一个基于8051单片机的跑马灯实验,通过编写汇编代码实现LED流水灯效果。这个实验将使用8051单片机的P2口来控制8个LED灯,实现流水灯效果。实验准备8051单片机8个LED灯8PIN排线JP11(P2)和J12(LED灯)连接将JP11(P2)和J12(LED灯)使用8PIN排......