openmv串口发送数据_关于arduino和openmv串口通信的问题
#openmv的代码
import sensor, image, time
import json
from pyb import UART
# For color tracking to work really well you should ideally be in a very, very,
# very, controlled enviroment where the lighting is constant...
blue_threshold = ( 0, 60, -20, 64, -128, 0)
# You may need to tweak the above settings for tracking green things...
# Select an area in the Framebuffer to copy the color settings.
#p4_10,p5_11,gnd_gnd
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.
uart = UART(3, 115200)
'''
扩宽roi
'''
def expand_roi(roi):
# set for QQVGA 160*120
extra = 5
win_size = (160, 120)
(x, y, width, height) = roi
new_roi = [x-extra, y-extra, width+2*extra, height+2*extra]
if new_roi[0] < 0:
new_roi[0] = 0
if new_roi[1] < 0:
new_roi[1] = 0
if new_roi[2] > win_size[0]:
new_roi[2] = win_size[0]
if new_roi[3] > win_size[1]:
new_roi[3] = win_size[1]
return tuple(new_roi)
K=680 #the value should be measured
while(True):
clock.tick() # Track elapsed milliseconds between snapshots().
img = sensor.snapshot() # Take a picture and return the image.
blobs = img.find_blobs([blue_threshold], area_threshold=150)
if blobs:
#如果找到了目标颜色
data=[]
#print(blobs)
for blob in blobs:
#迭代找到的目标颜色区域
b = blob[0]
is_circle = False
max_circle = None
max_radius = -1
new_roi = expand_roi(blob.rect())
Lm = (blob[2]+blob[3])/2
length = K/Lm
length = str(length)
length = float(length)
for c in img.find_circles(threshold = 2000, x_margin = 10, y_margin = 10, r_margin = 10, roi=new_roi):
is_circle = True
# img.draw_circle(c.x(), c.y(), c.r(), color = (255, 255, 255))
if c.r() > max_radius:
max_radius = c.r()
max_circle = c
if is_circle:
# 如果有对应颜色的圆形 标记外框
# Draw a rect around the blob.
img.draw_rectangle(new_roi) # rect
img.draw_rectangle(blob.rect()) # rect
#用矩形标记出目标颜色区域
img.draw_cross(blob[5], blob[6]) # cx, cy
img.draw_circle(max_circle.x(), max_circle.y(), max_circle.r(), color = (0, 255, 0))
img.draw_circle(max_circle.x(), max_circle.y(), max_circle.r() + 1, color = (0, 255, 0))
data.append((max_circle.x(),max_circle.y(),length))
#data.append(length)
data_out = json.dumps(set(data))
uart.write(data_out +'\n')
print('you send:',data_out)
else:
print("not found!")
else:
print("not found!")
#print(clock.fps()) # Note: Your OpenMV Cam runs about half as fast while
# connected to your computer. The FPS should increase once disconnected.
openmv串口发送数据_关于arduino和openmv串口通信的问题相关推荐
- python串口发送数据_第六课python来写串口助手-串口发送数据
https://m.toutiaocdn.com/group/6716026491689239044/?app=news_article×tamp=1563807838&re ...
- stm32串口发送数据的配置,以及通过串口发送结构体数组总是多一个00字节的问题
最近用stm32编写串口发送程序,在硬件方面需要做如下准备: 1.stm32开发板,这里我的是stm32f030f4p4开发板,单片机的串口发送的引脚为PA9-TX,PA10-RX. 2.为了调试串口 ...
- arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...
1.什么是串口触摸屏 触摸屏是工业控制上很常见的人机交互部件,很多设备.系统都在使用它,它至少有两个功能:显示,触摸控制. 串口触摸屏是采用串行数据通信协议进行数据交换的触摸屏,具有简单.可靠.易于操 ...
- MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据
MJKDZ PS2手柄控制OskarBot小车(一):Arduino串口发送数据 [目录] - 1.无线通信模块设置 - 1.1 设置参数 - 1.2 调试步骤 - 2.按键与通信格式 - 2.1 P ...
- OpenMV:23串口发送数据
文章目录 产品 Hello World 简单的数据发送 本节讲解 如何使用OpenMV通过串口来发送数据 OpenMV 是可以直接通过串口发送字符串的. 为什么要用串口呢?因为要时候需要把信息传给其他 ...
- python树莓派串口通信实例_树莓派通过串口发送数据
可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...
- java串口发送16进制_串口发送数据——字符串发送与十六进制发送的区别
在计算机中,数据是以二进制的形式存储的,例如十进制 1(10)在计算机中用 0000 0001(2)来表示.我们在用串口发送数据的时候首先将待数据转换为对应的ASCII码,然后再将这些ASCII码按照 ...
- 向STM32串口发送数据的标准函数
向STM32串口发送数据的标准函数 例子:1 void UART_Send_Message(u8 *Data,u8 lenth) {while(lenth--){USART_SendData(USAR ...
- 安捷伦万用表--Agilent34401A数字万用表串口发送数据只上位机使用说明
Agilent34401A数字万用表串口发送数据使用说明 安捷伦34410A万用表可以通过背后的RS232接口与电脑连接,进行串口通信. 仪表的串口有两种工作方式,一种是交互模式–既能接收命令,又能发 ...
最新文章
- 2020年,对薪资不满意的程序员要注意了...
- IIS部署ASP.Net Core 502.5错误和解决
- js 后台调用前台的JS
- 下列代码之后的结果为()?
- KeyDown,KeyPress和KeyUp详解(转)
- ORA-01506: missing or illegal database name
- python3怎样交换数字顺序_python中怎么交换列的顺序
- 关于SQLSERVER的全文目录跟全文索引的区别
- 自己封装的一个原生JS拖动方法。
- 中蒙俄经济走廊背景_上海外国语大学师生代表团参观访问G60科创走廊俄罗斯院士创新基地...
- 【Kafka】kafka 客户端 控制台 flink 都无法消费的情况
- hive 建表_Hive建表和内外部表的使用
- matlab检测串口数据帧头,用matlab从串口读入数据产生图像进行分析遇到的问题,求大虾帮助!...
- Android上按钮解决快速点击问题
- 工具类 --UUIDUtil ---32位UUID生成器
- 二进制负数转换成十进制
- 从通信的角度理解现场总线
- 拼刀刀店铺后台的参数anti-content逆向分析
- 用python turtle画人_家里蹲太孤单?用 Python 画一只单身狗
- 毕业四年后的程序员继续租房子