OpenMV——串口通信+发送中心位置
串口通信
OpenMV本质还是一个单片机,可以通过调用pyb中的UART使用串口通信,注意发送的数据类型为字符串,可以通过json.dumps()进行字符串转换
from pyb import UARTuart = UART(3, 9600)
uart.write('hello')
uart.read(5) # read up to 5 bytes
数据类型转换
blob色块的各类方法:http://book.openmv.cc/image/blob.html
通过方法得到的数据类型为int,需要对其进行一系列操作
1.对其进行0拓展,保证每个数据4位数,方便单片机进行解析
2.进行0拓展的时候,先利用json.dumps()将坐标值转换为字符串,然后利用list将字符串转换为列表,利用列表的insert()方法在头部进行插入
3.完成0拓展之后,将list转换为字符串,利用’’.join()
附上全部代码
功能描述:找到最大的红色色块的中心,通过串口发送其中心坐标数据
# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!import sensor, image, time
import json
from pyb import UARTsensor.reset() # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA) # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000) # Wait for settings take effect.
clock = time.clock() # Create a clock object to track the FPS.#对list进行拓展,高位补0
def Expand_String(str):while(len(str)<4):str.insert(0,'0')return str#所需要寻找的颜色的LAB范围
red_range=(43, 64, 27, 127, -128, 127)
#开串口3,波特率为115200
uart=UART(3,115200)while(True):clock.tick() # Update the FPS clock.img = sensor.snapshot() # Take a picture and return the image.#寻找红色色块blobs=img.find_blobs([red_range])#画出所有红色色块for blob in blobs:#print(blob.rect())img.draw_rectangle(blob.rect())#找出面积最大的色块,放到blob_maxif blobs!=[]:blob_max=blobs[0]for blob in blobs:if blob_max.area()<blob.area():blob_max=blob#画出blob_max的中心img.draw_cross(blob_max.cx(),blob_max.cy(),size=5,color=(0,255,0))#将int型的blob_max的中心转换成json形式(字符形式),再转换为listcentre_x=list(json.dumps(blob_max.cx()))centre_y=list(json.dumps(blob_max.cy()))#此时用list存放的中心坐标做0拓展Expand_String(centre_x)Expand_String(centre_y)#将list转换为字符串形式centre_x=''.join(centre_x)centre_y=''.join(centre_y)#利用串口发出中心坐标值uart.write(centre_x+' '+centre_y+'\r\n')print(centre_x+' '+centre_y+'\n')else:#如果没有找到的话,返回print('0000'+' '+'0000'+'\n')#print(clock.fps()) # Note: OpenMV Cam runs about half as fast when connected# to the IDE. The FPS should increase once disconnected.
OpenMV——串口通信+发送中心位置相关推荐
- 【串口通信】K210与STM32串口通信、K210与OpenMV串口通信
[串口通信]K210与STM32串口通信.K210与OpenMV串口通信 串口通信 前言 为何需要串口通信 K210如何进行串口通信 K210串口配置 K210串口发送相关定义 K210串口发送测试 ...
- java串口发送16进制数据_MFC串口通信发送16进制数据的方法
本文实例为大家分享了MFC串口通信发送16进制数据的具体代码,供大家参考,具体内容如下 MFC串口通信会使用m_mscomm控件. 发送数据一般是在edit control 里输入自己想发送的内容,然 ...
- 51单片机串口通信发送以及接收代码详解1
#include <reg51.h> //实验现象:单片接收电脑发送的字符串,并发回给PC端的代码.//函数声明 void uart_init(void); void uart_seng_ ...
- 51单片机串口通信发送以及接收代码详解2
#include <reg51.h> //实验现象:在电脑端没按下发送的时候,单片一直给电脑发送aaa字符串: //实验现象:在电脑端按下发送的时候,结束字符串aaa的发送代码,执行单片接 ...
- delphi 串口通信发送_STM32第五章串口通讯详解
点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达! 串口通信是串行通信里面的异步方式.串行通信是相对于并行通信来说的.串口是一个事实存在的 ...
- 蓝桥杯51单片机之串口通信发送接收信息【单片机开发初学者串口必会】
文章目录 一.上位机发送信号控制单片机 1.显示对应的流水灯 2.显示对应数码管 3.控制数码管显示的数字 二.两机收发信息 一.上位机发送信号控制单片机 1.显示对应的流水灯 实现现串口通信接收上位 ...
- 串口通信发送hello windows
文章目录 一. 原理 1.串口协议 2.RS-232 3.485标准 4.RS232.485电平与TTL电平的区别 5."USB/TTL转232"模块(以CH340芯片模块为例)的 ...
- delphi 串口通信发送_关于串口通信232、485、422和常见问题,就没见过能讲这么清楚的...
先讲串口通信的一些基本概念,术语.如果对串口通信比较熟悉的,就当复习,如果哪里讲的不到位,欢迎及时指出. 这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲.因为更多的时候,都是产品做好了,比如触 ...
- FPGA自学笔记--串口通信发送多字节数据(verilog版)
1.需求分析 关于uart协议实现这部分大家可以参考我上一篇的博客.<FPGA自学笔记--串口通信实现(vivado&verilog版)>.在上一篇博客中,主要实现了将单字节的数据 ...
最新文章
- Android APK的签名--笔记版 V1 签名和V2签名总结
- python语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性
- 数据科学很性感?不,其实它非常枯燥!
- Mybatis入门及于hibernate的区别
- 简单的WinInet编程
- 实力封装:Unity打包AssetBundle(二)
- http消息当中,post和get两种请求方式的区别
- ubuntu pycharm mysql_ubuntu安装mysql pycharm sublime
- 关于php车服务论文,「PHP」行车服务app后端代码简析
- [POJ3254]Corn Fields
- Input Output
- python lambda函数介绍
- 一种在JS代码中实现模板变量替换的方法
- python还可以这么玩?用Python把视频转换为字符动画(含音频、高清、彩图)【附源码】
- python- re模块(正则表达式)
- golang Leaf 游戏服务器框架简介
- 罗克韦尔自动化通过收购ASEM加强控制和可视化产品组合
- 基于JAVA疫情物资商城和疫情数据可视化系统设计与实现 开题报告
- Java POI SXSSFWorkbook 读取模板,输出
- 如何在面试中介绍自己的项目经验(面向java改进版)
热门文章
- scrapy使用selenium抓取深圳证券交易所考评表数据
- 多进程IterableDataset流式读取数据的坑:每个进程会读取一遍完整数据
- selenium配置无界面chrome浏览器
- python四中方法获取列表中最大/最小的前n个数值的位置索引
- hadoop 依赖式job_Java项目中使用XXL-JOB调度框架
- js加密代码的分析[转]
- Java抓取Codeforces——针对某一次提交的源码和数据
- P2057 [SHOI2007]善意的投票 最小割
- lua --- 表操作
- AIX7.1环境打补丁缺少bash OPATCHAUTO-72049