电赛智能送药小车_OpenMV巡线&识别十字路口完整代码

这篇具有很好参考价值的文章主要介绍了电赛智能送药小车_OpenMV巡线&识别十字路口完整代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 整体思路:通过划分ROI区域分区进行识别,中央ROI区域为巡线,左右两侧的ROI_LROI_R为十字路口识别.

主程序如下

# Description: 本程序为OpenMV的主程序,通过串口与单片机通信,接收单片机发送的图像数据,进行图像处理,然后发送处理结果给单片机
import sensor, image, time, json, pyb
from pid import PID
from pyb import UART
THRESHOLD = (29, 63, 38, 81, 3, 66) # 红线
uart = UART(3, 115200)  # p4为TX,p5为RX
rho_pid = PID(p=-20, i=0)   # rho是距离
theta_pid = PID(p=-0.2, i=0)
sensor.reset()
sensor.set_vflip(True)      # 左右镜像
sensor.set_hmirror(True)    # 上下镜像
sensor.set_pixformat(sensor.RGB565) # 使用RGB565模式
sensor.set_framesize(sensor.QQQVGA) # 80*60分辨率
sensor.skip_frames(time=1000)   # 跳过1000帧
clock = time.clock()        # 跟踪FPS帧率
global cross    #十字路口标志位
while True:
	clock.tick()
	img = sensor.snapshot().binary([THRESHOLD]) # 二值化图像
	ROI = (39, 0, 15, 59)  						 # 47为小车摄像头正中间
	blobs = img.find_blobs([(100, 100)], roi=ROI, area_threshold=15, merge=True)    # 100,100代表色值max和min
	line = img.get_regression([(100, 100)], roi=ROI, robust=True)
	ROI_L = (0, 45, 32, 50)
	ROI_R = (59, 45, 21, 50)
	blobs1 = img.find_blobs([(100, 100)], roi=ROI_L, area_threshold=15, merge=True)
	blobs2 = img.find_blobs([(100, 100)], roi=ROI_R, area_threshold=15, merge=True)

	#试试img.draw_rectangle(ROI)
	img.draw_line((35, 0, 35, 60), color=(0, 255, 0))   # !注意画的线颜色也会被色块查找函数使用,所以不要画白线
	img.draw_line((59, 0, 59, 60), color=(0, 255, 0))

	img.draw_line((0, 45, 35, 45), color=(0, 255, 0))
	img.draw_line((59, 45, 80, 45), color=(0, 255, 0))
	if blobs1 and blobs2:
		cross = 1	#十字路口标志位
		print('2')
		uart.write("2" + "\r\n")
		pyb.delay(500)
	else:
		cross = 0
		pass
	if blobs:
		if line:
			rho_err = abs(line.rho()) - 47	# 47为小车摄像头正中间
			if line.theta() > 90:
				theta_err = line.theta() - 180
			else:
				theta_err = line.theta()
			img.draw_line(line.line(), color=127)
			if line.magnitude() > 8:
				rho_output = rho_pid.get_pid(rho_err, 1)
				theta_output = theta_pid.get_pid(theta_err, 1)
				output = rho_output + theta_output
				obj = [output]
				output = json.dumps(obj)
				print("1" + output + "\r\n")
				uart.write("1" + output + "\r\n")
			else:	#线太短,停止
				print(3)
				uart.write("3"  + "\r\n")
				pass
		else:	#没有找到线
			print(3)
			uart.write("3" + "\r\n")
			pass

# 本文代码中所导入的pid.py就是OpenMV官网上例程的代码

需要完整源码请私信我。文章来源地址https://www.toymoban.com/news/detail-517451.html

到了这里,关于电赛智能送药小车_OpenMV巡线&识别十字路口完整代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 智能送药小车完整版【电赛、课设】开源(含源代码)

    目录 任务要求 摘要 1、前言 2、系统方案设计 3、理论分析与计算 3.1 病房选择: 3.2 电机引脚及状态 3.3 灰度传感器及电机状态 4、系统电路设计与仿真 4.1系统硬件框图 4.2 单片机最小板电路 4.3 驱动电路设计 4.4 灰度传感器设计 5、系统软件设计 6、系统测试及结果分析 6.1 系

    2024年02月09日
    浏览(50)
  • 分享21年电赛F题-智能送药小车-做题记录以及经验分享

    自己是今年准备电赛的同学一名,电赛结束了,想把自己之前刷过的题目,通过这篇文章,来分享一波做这道题的思路和调试方法 自己在做之前的电赛题目时,也苦苦没有思路,不知道该怎么去下手,面对题目的要求和限制,应该如何去分析和实现 由于我们主要是准备小车

    2024年02月13日
    浏览(41)
  • 2021全国大学生电子设计竞赛论文(智能送药小车(F题))(电赛论文模板)

    电赛是一个很奇妙的过程,可能有些人觉得电赛的门槛太高,那便意味着,当你决定要参加电赛的那一刻起,这一段路、这些日子就注定不会太轻松; 我现在回头看真的很感谢电赛,从前期备赛面对自己未曾涉猎的技术不知如何下手的迷茫与怀疑,再到后来四天三夜紧张到不

    2024年02月05日
    浏览(54)
  • OpenMV:14巡线小车

    这个例子展示了在OpenMV Cam上使用get_regression()方法获得ROI的线性回归。使用这种方法,可以轻松让机器人跟踪所有指向相同大致方向的线。 本例程可以用于机器人巡线,效果非常好。 “巡线小车”的原理和“追小球的小车”是差不多一样的,其中car.py和pid.py完全一样,改

    2024年02月17日
    浏览(37)
  • OPENMV巡线转弯代码 适用于电赛优化版2022.6.29

    OPENMV通过UART进行通信 ROIS为5块感性区域,在160x120范围内分为5块,方便遇到路口和前方无道路的处理 largest_blob为blob模块[2]为色块w,[3]为色块h,官方docs上有说明 对out_str进行设置可看到串口输出的内容 然后就是一些变量有用没用的自己使用的时候删一下,这一份的逻辑还是

    2024年02月15日
    浏览(53)
  • 单K210模块低成本实现21电赛题送药小车

    博主已经大三,想着暑假参加电赛,于是将21电赛的控制题尝试做了一下,由于成本有限,想着能不能仅使用一块k210完成这个项目,但是看网上查找资料都没人这样做,于是博主就按照自己的想法实现了这个,为了让更多和博主一样的小白能够简单制作这个项目,博主决定写

    2024年02月16日
    浏览(54)
  • Openmv+STM32F103C8T6视觉巡线小车

    机器视觉巡线处理是参考openmv官方代码 Openmv官网源代码:book. openmv.cc/project/follow-lines.html 根据官网视频及教程将源码注入openmv中。 小车巡的是黑线,所以颜色阈值要更改。 在文件示例中打开helloworld.py。 打开工具/机器视觉/阈值编辑器/缓冲区。 将我们需要寻迹的黑线调至全

    2023年04月09日
    浏览(58)
  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次,但是我后来申请的免毕设后,用到了一些文字,所以删了这篇文章,但是还是查重了,于是我把一些程序讲解先删了,等毕设结束后再编辑加上。 这次电赛我没有准备多少东西,只提前准备了图像识别和坐标计算一类的。在20年的省赛帮过雪地调过k

    2024年02月07日
    浏览(57)
  • 基于OpenCV的巡线小车多赛道识别

    对摄像头拍摄到的多赛道进行检测并输出每条赛道的角度和中点坐标 运行结果: 下面的代码都有注释 下面函数是先对整个画面进行扫描,选取合适的色块并排列得到他们的面积和对应的索引 设置判断赛道之间的间距,根据的是得到的赛道边缘的横坐标 计算赛道的角度 完整代

    2024年02月15日
    浏览(79)
  • 全国电子设计竞赛-国二--智能送药小车

    不过这一次的比赛是真的很幸运,因为参加过比赛都知道,这一次没有了线下比赛,线上评审,不过拿到试题的那一天也是蛮紧张的,我们队伍做的是F题智能送药小车,现在的控制类的题目是真的越来越难了,相对于之前的控制类的题目。 还是讲一下比赛期间发生的一些事

    2024年02月14日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包