原来采用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. 史上最完整的Maven 教程
  2. Struts2学习小结
  3. Android流量统计TrafficStats类
  4. 2017-2018-2 165X 『Java程序设计』课程 助教总结
  5. pythonos pathjson_Python Json数据文件操作原理解析
  6. wx轮播图接口学习用json格式_零基础学小程序008----列表和轮播图的实现,小程序解析json数据...
  7. 妈的我好像发现是哪出问题了
  8. 游戏中按概率播放某个音效简单c++实现
  9. springboot配置log4j2
  10. fms 连 mysql_FMS+Thinkphp+Mysql 直播源代码,开源可消耗
  11. 4k纸是几厘米乘几厘米_4k纸有多大长多少宽多少
  12. 封装一个简单showToast组件 / 自定义toast组件
  13. mysql(zip版)下载安装教程
  14. 应用MATLAB建模与仿真
  15. 发力区块链,百度险中求胜 |链捕手
  16. initramfs模式介绍及解决方法
  17. python批量检索文献_快解锁新姿势,教你如何用Python搞定文献搜索和科研图片!...
  18. 2021高考成绩查询省排名,2021年全国高考难度省份排名 高考最难的省份排名公布...
  19. Thirteen 外卖店优先级
  20. [NE-B]脑电波(三)

热门文章

  1. 浙江计算机职业高考试题,浙江省信息技术高考试卷及答案
  2. asp.net 隐藏url 简便方法
  3. 瑞康医药携手亚马逊云科技,推动云上医药创新
  4. Kali [dnsenum]子域名查询工具
  5. Visual Basic开发实战1200例(第Ⅱ卷)pdf
  6. 图解如何修改github个人空间地址
  7. SqlServer 越南语乱码
  8. ICLOUD储存空间要升级吗_iPhone正确使用iCloud云空间,拒绝已满
  9. 维基百科-Android
  10. 第五模块:WEB开发基础-第8章 Jquery开发BootStrap