资源简介
基于OpenMV与STM32的寻球小车.7z
代码片段和文件信息
#2018.8.2
import sensor image time pyb
from pyb import UART
from pyb import Timer
from pyb import LED
import json
led = pyb.LED(3) # Red LED = 1 Green LED = 2 Blue LED = 3 IR LEDs = 4.
thresholds = [(27 67 19 91 45 76) # 红色
#(21 75 3 -38 34 68) # 绿色
(27 90 -3 -28 31 125)
(0 30 0 64 -128 0)] # generic_blue_thresholds
threshold_index = 1 # 0 for red 1 for gre9en 2 for blue
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA) #320*240
sensor.skip_frames(time = 100)
sensor.set_auto_gain(False) # must be turned off for color tracking
sensor.set_auto_whitebal(False) # must be turned off for color tracking
clock = time.clock()
uart = UART(3 115200)
uart.init(115200 bits=8 parity=None stop=1 timeout_char=1000) # 使用给定参数初始化
def tick(timer): # we will receive the timer object when being called
global data
if blobs:
print(“Find“)
print(‘you send:‘output_str)
uart.write(data)
tim = Timer(4 freq=10) # create a timer object using timer 4 - trigger at 1Hz
tim.callback(tick) # set the callback to our tick function
def find_max(blobs):
max_size=0
for blob in blobs:
if blob[2]*blob[3] > max_size:
max_blob=blob
max_size = blob[2]*blob[3]
return max_blob
def Uart_Receive(): #UART接收 改变框小球的颜色阈值
global threshold_index
if uart.any():
temp_data = uart.readchar()
if temp_data==0: #红色
threshold_index=0
print(temp_datathreshold_index)
elif temp_data==1:
threshold_index=1
print(temp_datathreshold_index)
while(True):
clock.tick()
img = sensor.snapshot()
Uart_Receive()
blobs = img.find_blobs([thresholds[threshold_index]])
if blobs:
max_blob = find_max(blobs)
b = max_blob[0] #方框元组
L = (max_blob[2]+max_blob[3])/2
l=int(1000/L)
#x_error = max_blob[5]-img.width()/2 #求横向偏差
x_error = max_blob[5]-img.width()/2
img.draw_rectangle(max_blob[0:4]) # 画矩形
img.draw_cross(max_blob[5] max_blob[6]) # 画十字
#发送 小球的(xyln)
#x为横坐标,y为纵坐标,l为粗略的距离,n为小球颜色(0:红 1:绿)
output_str=“%d%d%d%d“ % (max_blob.cx()max_blob.cy()lthreshold_index) #10进制字符包
checkout=0xAA+0x55+0x07+int(max_blob.cx()/2)+max_blob.cy()+l+threshold_index
data = bytearray([0xAA0x550x07int(max_blob.cx()/2)max_blob.cy()lthreshold_index0x000x00checkout])#转成16进制
#uart.write(data)
time.sleep(1)
led.on()
else:
print(“NO FIND“)
data = bytearray([0xAA0x550x070x000x000x000x000x000x000x06])
uart.write(data)
led.off()
- 上一篇:ios12.1 真机开发包支持文件
- 下一篇:JDK 1.4.1本地
相关资源
- 工程优化.zip
- areful_1238702.zip
- aqqabqqb_10417087.zip
- OfficeFix破解版.zip
- 12526903130405sjel5vg7l8i848zz.rar
- cf自动开枪源码.e
- Shp.rar
- 传智播客.net黑马5期视频全套未加密
- Beautiful-Visualization.pdf
- QQLocation.zip
- ilo2.61ilo4高级激活码.rar
- 电路原理邱关源第五版教材+习题全解
- Office密码破解工具内含注册码.rar
- 车辆悬架设计及理论.pdf
- Location虚拟定位通杀全苹果机型.rar
- 教材亿阻电路与多稳定性包伯成.pdf
- 飞机大战3.0工程PPT视频.rar
- Hecht-optics-5ed.pdf
- AFirstCourseinOptimizationTheory.pdf
- weixin_42258871_10427784.zip
- SS-DSP笔记.pdf
- in-sight.zip
- 矩形波导.zip
- bootdo.zip
- SendMMS.zip
- 爱快Q25(089b4b6000b2)(1).bin
- 统计学习导论-基于R应用书+思维导图
- 海康威视VISIO图库图标大全.rar
- api.rar
- 大话数据结构_最高清版_带目录.pdf
评论
共有 条评论