2021-11-07 2021-电赛-Openmv

这篇博客分享了2021年电子竞赛中使用OpenMV进行视觉导航的代码实践。前视OpenMV能识别条形码并触发特定功能,下视OpenMV则用于识别起飞点、目标点'A'以及0.5cm宽的边界线,提供飞机相对于Y轴负方向的夹角和距离信息。作者提到,由于时间紧张,代码仍有优化空间,欢迎有改进意见的读者私信交流。
摘要由CSDN通过智能技术生成

2021电赛openmv代码

  1. 前视OpenMV,识别条形码并进行亮灯功能。
# 识别条形码数字,并进行闪灯

import sensor, image, time, math, pyb

sensor.reset()
sensor.set_pixformat(sensor.GRAYSCALE)
sensor.set_framesize(sensor.VGA) # High Res!
sensor.set_windowing((640, 80)) # V Res of 80 == less work (40 for 2X the speed).
sensor.skip_frames(30)
sensor.set_auto_gain(False)  # must turn this off to prevent image washout...
sensor.set_auto_whitebal(False)  # must turn this off to prevent image washout...
clock = time.clock()

num = 0
led = pyb.LED(2)
flag = True

while(flag):
    clock.tick()
    img = sensor.snapshot()
    codes = img.find_barcodes() #得到识别的数字

    for code in codes:
        img.draw_rectangle(code.rect())
        
        #print_args = (barcode_name(code), code.payload(), (180 * code.rotation()) / math.pi, code.quality(), clock.fps())
        print_args = ("CODE128", code.payload(), (180 * code.rotation()) / math.pi, code.quality(), clock.fps())
        print("Barcode %s, Payload \"%s\", rotation %f (degrees), quality %d, FPS %f" % print_args)
        num = int(code.payload())
        flag = False
    if not codes:
        print("FPS %f" % clock.fps())

#LED灯控制
#import time, pyb

#将绿灯赋值给变量led
num = "%04d" % num
num = int(num)
num1 = int(num*0.001)
num2 = (int(num*0.01))%10
num3 = (int(num*0.1))%10
num4 = int(num%10)
print(num1,num2,num3,num4)

led = pyb.LED(2) # Switch to using the green LED.
 
#usb = pyb.USB_VCP() # This is a serial port object that allows you to

# 第一个数字
flag = True
while (flag):
    if(num1 == 0):
        flag = False
        break
    else:
        led.on()
        time.sleep(0.5)
        led.off()
        time.sleep(0.5)
        num1 -=1

time.sleep(3)

#第二个数字
flag = True
while (flag):
    if(num2 == 0):
        flag = False
        break
    else:
        led.on()
        time.sleep(0.5)
        led
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值