原来采用RGB565识别红色再转换为灰度识别继续进行下面的循迹代码,
但是无法实现多次识别,只能在摄像头第一次初始化后可识别红色,
但转化为灰色后,进入了死循环,程序转换为在灰度识别下对黑线的识别,
无法运行下面的循迹代码。根据这一特点,我将初始化摄像头加入while循环,发现多次初始化摄像头图像会不断闪烁。
最终,重新编写代码,关于识别色块的程序,一但识别的红色则车速为0,一但识别到黑色向左加速,一但没有识别到黑色向右加速,这样就能实现在跑道内左转。欢迎大家评论指出不足之处

main.py

import sensor, image, time
import car# For color tracking to work really well you should ideally be in a very, very,
# very, controlled enviroment where the lighting is constant...
red_threshold_01 = (61, 48, -128, 127, -128, 127)
black_threshold_02=(0, 22, -22, 127, -33, 18)
#设置红色的阈值,括号里面的数值分别是L A B 的最大值和最小值(minL, maxL, minA,
# maxA, minB, maxB),LAB的值在图像左侧三个坐标图中选取。如果是灰度图,则只需
#设置(min, max)两个数字即可。# 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)
#关闭白平衡。白平衡是默认开启的,在颜色识别中,需要关闭白平衡。
clock = time.clock() # Tracks FPS.while(True):clock.tick() # Track elapsed milliseconds between snapshots().img = sensor.snapshot() # Take a picture and return the image.#  pixels_threshold=100, area_threshold=100blobs = img.find_blobs([red_threshold_01], area_threshold=150)if blobs:#如果找到了目标颜色print(blobs)for b in blobs:#迭代找到的目标颜色区域# Draw a rect around the blob.img.draw_rectangle(b[0:4]) # rect#用矩形标记出目标颜色区域img.draw_cross(b[5], b[6]) # cx, cy#在目标颜色区域的中心画十字形标记car.run(0,0)else:clock.tick() # Track elapsed milliseconds between snapshots().img = sensor.snapshot() # Take a picture and return the image.#  pixels_threshold=100, area_threshold=100blobs = img.find_blobs([black_threshold_02], area_threshold=150)if blobs:#如果找到了目标颜色print(blobs)for b in blobs:#迭代找到的目标颜色区域# Draw a rect around the blob.img.draw_rectangle(b[0:4]) # rect#用矩形标记出目标颜色区域img.draw_cross(b[5], b[6]) # cx, cy#在目标颜色区域的中心画十字形标记car.run(30,60)else:car.run(60,30)#car.run(60,60)print(clock.fps()) # Note: Your OpenMV Cam runs about half as fast while# connected to your computer. The FPS should increase once disconnected.

Car.py

from pyb import Pin, Timer
inverse_left=False  #change it to True to inverse left wheel
inverse_right=False #change it to True to inverse right wheelain1 =  Pin('P0', Pin.OUT_PP)
ain2 =  Pin('P1', Pin.OUT_PP)
bin1 =  Pin('P2', Pin.OUT_PP)
bin2 =  Pin('P3', Pin.OUT_PP)
ain1.low()
ain2.low()
bin1.low()
bin2.low()pwma = Pin('P7')
pwmb = Pin('P8')
tim = Timer(4, freq=1000)
ch1 = tim.channel(1, Timer.PWM, pin=pwma)
ch2 = tim.channel(2, Timer.PWM, pin=pwmb)
ch1.pulse_width_percent(0)
ch2.pulse_width_percent(0)def run(left_speed, right_speed):if inverse_left==True:left_speed=(-left_speed)if inverse_right==True:right_speed=(-right_speed)if left_speed < 0:ain1.low()ain2.high()else:ain1.high()ain2.low()ch1.pulse_width_percent(abs(left_speed))if right_speed < 0:bin1.low()bin2.high()else:bin1.high()bin2.low()ch2.pulse_width_percent(abs(right_speed))

基于openmv的小车相关推荐

  1. 无人机寻迹要两个单片机吗_基于OpenMV的循迹无人机设计

    基于OpenMV的循迹无人机设计 发表时间:2020-08-24 基于OpenMV机器视觉模块进行目标识别算法的研究.利用图像的滤波.二值化等算法对摄像头采集的图像进行预处理;利用边缘检测和形状识别算 ...

  2. 基于OpenMV的自动驾驶智能小车模拟系统

    一.项目简介 基于机器视觉模块OpenMV采集车道.红绿灯.交通标志等模拟路况信息,实现一辆能车道保持.红绿灯识别.交通标志识别.安全避障以及远程WiFi控制的多功能无人驾驶小车. 赛道规格: 1.编 ...

  3. 基于openMV的口罩检测

    基于openMV的口罩检测 什么是openmv openmv可以做什么 学习过程 好久没有更新了,这学期过得有点狼狈,暑假留校做一辆stm32智能小车,会不时更新一些我学习到的东西,今天分享一下我这两 ...

  4. 无碳小车 matlab,基于无碳小车前轮运动关系的MATLAB运动轨迹仿真.doc

    基于无碳小车前轮运动关系的MATLAB运动轨迹仿真 基于无碳小车前轮运动关系的MATLAB运动轨迹仿真 clear all;clc; R=50; r=15; L=150; k=1/5; e=12.5; ...

  5. 用matlab结合STM32作上位机,基于stm32智能小车视觉控制导航的设计参考.pdf

    第 25 卷 第 9 期 电子设计工程 2017 年 5 月 Vol.25 No.9 Electronic Design Engineering May. 2017 基于STM32 智能小车视觉控制导 ...

  6. 无碳小车 matlab,基于无碳小车前轮运动关系的MATLAB运动轨迹仿真

    <基于无碳小车前轮运动关系的MATLAB运动轨迹仿真>由会员分享,可在线阅读,更多相关<基于无碳小车前轮运动关系的MATLAB运动轨迹仿真(4页珍藏版)>请在人人文库网上搜索. ...

  7. 基于openMV的颜色识别

    基于openMV的颜色识别 openMV简介 OpenMV是一个可编程的摄像头,通过Python语言可实现你想要的逻辑.而且摄像头本身也内置了一些图像处理的算法,使用起来也更加的方便,仅需要写一些简单 ...

  8. 基于openmv的色域识别(测距和测角度)

    基于openmv的色域识别和巡线代码 写在前面:由于最近做比赛和着急,有很多东西都是着急去实现并没有做整理,直到昨天才觉得感觉到内心的空虚,发现知识并没有成型,所以决定来写写总结.做些看似有意义的东西 ...

  9. 基于OpenMV和正点原子开发的自动追球小车(带云台舵机)

    电赛备赛前,通过OpenMV加舵机云平台由,做了一个追着球跑的小车,由于疫情,以前录制的视频也删除了,最终呈现的效果和B站一位Up主的相似,大家可以参考参考,链接如下:STM32 颜色识别 自动跟随小 ...

最新文章

  1. Red Hat 5.8 CentOS 6.5 共用 输入法
  2. 360浏览器卸载_有恃无恐“弹弹弹”,安全卫士360自己就是最大的流氓“弹窗王”!...
  3. python创建一个元组、输出元组下标为1、3、5的元素_【Python 1-9】Python手把手教程之——元组和元组的使用技巧...
  4. python创建nc文件_如何python写nc文件
  5. 幂的末尾(信息学奥赛一本通-T1084)
  6. Spring Security:基于内存的认证信息
  7. 005.在Windows下编程让效率起飞
  8. Latex中参考文献排序
  9. 如何使用CSDN写博客?—CSDN基础知识汇总
  10. sql语句动态拼接多个查询条件查询数据库
  11. 生鲜行业数字化采购管理系统:助力生鲜企业解决采购难题,全程线上化采购执行
  12. lol最克制诺手的英雄_LOL:最克制诺手的三个英雄,剑姬上榜,第一能打得诺手出不了塔...
  13. 世界杯梦幻阵容HTML5代码,俄罗斯世界杯巴西梦幻阵容你必须知道!国足要进 只有这一个办法...
  14. myeclipse如何导入外部jar包
  15. 3D游戏设计——模型与动画
  16. WI-FI LOGO认证学习记录
  17. SpringBoot事务详解
  18. 实验六:分析Linux内核创建一个新进程的过程
  19. 实现Windows文件复制到vm虚拟机
  20. 一个优酷会员账号可以登录几台设备

热门文章

  1. 什么是类比估算法=自上而下的估算
  2. linux fq队列,QOS各种队列详解(FIFO,FQ,CBWFQ,PQ).doc
  3. (python + 雷电模拟器)frida下载与安装
  4. pythonic词源_python的意思在线翻译,解释python中文英文含义,短语词组,音标读音,词源【澳典网ODict.Net】...
  5. [关注大学生]大学毕业生择业:是当鸡头还是凤尾?
  6. discuz点击会员名字默认进入个人空间首页
  7. Mybatis多表操作
  8. hackme1新手教学
  9. 在线视频播放示例代码
  10. 关于软件工程课程的学习计划