当前位置: 首页 > news >正文

8小8x人成免费观看网页高中同步测控优化设计答案

8小8x人成免费观看网页,高中同步测控优化设计答案,学习制作网页的网站,锋创科技园网站建设前言 (1)废话少说,很多人可能无法访问GitHub,所以我直接贴出可能要用的代码。此博客还会进行更新,先贴教程和代码 (2)视频教程: https://singtown.com/learn/49603/ (3&a…

前言

(1)废话少说,很多人可能无法访问GitHub,所以我直接贴出可能要用的代码。此博客还会进行更新,先贴教程和代码
(2)视频教程: https://singtown.com/learn/49603/
(3)有些人肯定说红点太小了,OpenMV不行精度不够,看这个C站上做出来的阈值代码:https://blog.csdn.net/weixin_52385589/article/details/126334744
(4)**赛事方肯定不可能直接让你上现成的玩意,不然比赛的意义在哪里?**我看了一下网上的一些讨论。肯定是要用摄像头的,K210好像有官方库,K210的同学可以了解一下。
(5)OpenMV的话需要多训练,建议最好做灯光补偿,毕竟OpenMV对灯光要求很高,环境光线一点要稳定!!!

硬件注意事项

接线问题

(1)我们这里是使用的OpenMV的P8和P7引脚。所以建议引脚如下图引出。
(2)舵机一般是5V供电,所以注意VCC是供5V的电压。而右边那两个GND和VCC是连接OpenMV的。如果右边的VCC是连接OpenMV的VIN引脚,就可以供5V电。如果是连接OpenMV的3.3V引脚,iu只能供3.3V电压。否则OpenMV会被烧掉!
(3)舵机的VCC要直接连接电池,因为如果通过OpenMV连接,OpenMV的输出电流太小,带不动舵机!

在这里插入图片描述

出现Frame capture has timed out. 帧捕获超时了

(1)如果是我贴出来的代码,出现这个bug。你重新开机启动应该就可以了。
(2)如果还不可以,就说明你OpenMV坏了。要快点换一个。

在这里插入图片描述

main.py

代码

import sensor, image, timefrom pid import PID
from pyb import Servo  #从内置pyb导入servo类,也就是舵机控制类pan_servo=Servo(1)  #定义两个舵机,对应P7引脚
tilt_servo=Servo(2) #定义两个舵机,对应P8引脚pan_servo.calibration(500,2500,500)
tilt_servo.calibration(500,2500,500)red_threshold  = (13, 49, 18, 61, 6, 47)  #设置红色阈值pan_pid = PID(p=0.07, i=0, imax=90) #PID参数,只需要调整P量即可
tilt_pid = PID(p=0.05, i=0, imax=90) #脱机运行或者禁用图像传输,使用这个PID
#pan_pid = PID(p=0.1, i=0, imax=90)#在线调试使用这个PID
#tilt_pid = PID(p=0.1, i=0, imax=90)#在线调试使用这个PIDsensor.reset() # 初始化摄像头传感器
sensor.set_pixformat(sensor.RGB565) # 使用 RGB565 彩图
sensor.set_framesize(sensor.QQVGA) # 使用 QQVGA 分辨率
sensor.skip_frames(10) #跳过几帧,让新的设置生效。
sensor.set_auto_whitebal(False) # 因为是颜色识别,所以需要把白平衡关闭
clock = time.clock() # 追踪帧率,影响不大#__________________________________________________________________
#定义寻找最大色块的函数,因为图像中有多个色块,所以追踪最大的那个
def find_max(blobs):max_size=0for blob in blobs:if blob[2]*blob[3] > max_size:max_blob=blobmax_size = blob[2]*blob[3]return max_blob#__________________________________________________________________
while(True):clock.tick() # 跟踪快照()之间经过的毫秒数。img = sensor.snapshot() # 截取一张图片blobs = img.find_blobs([red_threshold]) #识别红色阈值if blobs:   #如果找到红色色块max_blob = find_max(blobs)  #调用上面自定义函数,找到最大色块pan_error = max_blob.cx()-img.width()/2tilt_error = max_blob.cy()-img.height()/2print("pan_error: ", pan_error)img.draw_rectangle(max_blob.rect()) # 在找到最大色块画一个矩形框img.draw_cross(max_blob.cx(), max_blob.cy()) # cx, cypan_output=pan_pid.get_pid(pan_error,1)/2tilt_output=tilt_pid.get_pid(tilt_error,1) #上面两个都说进行PID运算print("pan_output",pan_output)pan_servo.angle(pan_servo.angle()+pan_output) #将最终值传入两个舵机中,追踪目标tilt_servo.angle(tilt_servo.angle()-tilt_output)# 因为两个舵机方向和摆放位置不同,所以一个是+一个是-

舵机控制

舵机选择

(1)Servo是舵机控制类。因为我们使用from pyb import Servo直接从pyd导入了servo类。所以可以直接写成Servo()。
(2)引脚对应关系:Servo(1)——P7,Servo(2)——P8,Servo(3)——P9。
(3)
<1>因此我们可以知道,pan_servo.calibration就是对P7进行相应的控制,因为pan_servo=Servo(1)。
<2>tilt_servo.calibration就是对P8控制,因为tilt_servo=Servo(2)

在这里插入图片描述

舵机选择

颜色阈值设置

(1)因为我们要追踪红色,所以是使用red_threshold = (13, 49, 18, 61, 6, 47) 进行设置阈值。
(2)颜色阈值设置教程:OpenMV颜色阈值设置

帧率禁用

(1)当OpenMV连接电脑端IDE的时候,运行帧率和不连接电脑端IDE是不一样的。因为我们连接上电脑端IDE的时候,OpenMV会向电脑端IDE传输数据,所以会导致帧率下降。
(2)帧率下降,会导致我们实际脱机跑的时候,PID参数和连接上电脑端IDE时候的PID参数不一样。
(3)所以我们需要点击电脑端右上角的禁用,或者是Disable。被禁用之后,我们的效果就是脱机之后真实运行效果。

在这里插入图片描述

PID的P和I参数设置

(1)注意,因为云台是比较稳定的,不要求高反应速度,所以我猜测只使用了PI,而没有使用PID。因此我们可以看到pan_pid和tilt_pid只有P和I两个参数。
(2)I的参数不需要进行调整,如果你的云台抖动厉害,说明P过大了,需要调小。
(3)如果你感觉你云台反应太慢,就需要调高P值。
(4)最佳的P值是,你云台有抖动的前一个值。这个才是P的最优值。但是我认为,P没必要太大,因为云台还是比较稳的。

pid.py

(1)这里面的代码我们不需要管,就算PID的代码。
(2)再次强调,这里请别擅自更改,出现问题自己负责。

from pyb import millis
from math import pi, isnanclass PID:_kp = _ki = _kd = _integrator = _imax = 0_last_error = _last_derivative = _last_t = 0_RC = 1/(2 * pi * 20)def __init__(self, p=0, i=0, d=0, imax=0):self._kp = float(p)self._ki = float(i)self._kd = float(d)self._imax = abs(imax)self._last_derivative = float('nan')def get_pid(self, error, scaler):tnow = millis()dt = tnow - self._last_toutput = 0if self._last_t == 0 or dt > 1000:dt = 0self.reset_I()self._last_t = tnowdelta_time = float(dt) / float(1000)output += error * self._kpif abs(self._kd) > 0 and dt > 0:if isnan(self._last_derivative):derivative = 0self._last_derivative = 0else:derivative = (error - self._last_error) / delta_timederivative = self._last_derivative + \((delta_time / (self._RC + delta_time)) * \(derivative - self._last_derivative))self._last_error = errorself._last_derivative = derivativeoutput += self._kd * derivativeoutput *= scalerif abs(self._ki) > 0 and dt > 0:self._integrator += (error * self._ki) * scaler * delta_timeif self._integrator < -self._imax: self._integrator = -self._imaxelif self._integrator > self._imax: self._integrator = self._imaxoutput += self._integratorreturn outputdef reset_I(self):self._integrator = 0self._last_derivative = float('nan')

E题官方解释

1问:E题可以使用openmv吗?
答:E题只禁止笔记本和台式机。其他任意
2问:E题目标运动追踪系统能用树莓派不?
答:同上。
3问:E题,云台和屏幕的高度关系是怎么样的?
答:自定。
4问:请问e题基本要求(1)进行自动复位时屏幕的位置是一直固定吗?
答:当然,只有绿色激光笔可以移动。
5问:E题中主板能用stm32的战舰精英mini版吗?E题中基本要求一测试完之后是否可以复位?
6问:请问E题运动目标控制与自动追踪系统中的屏幕,对材质有什么特殊要求吗?
答:白色。
7问:E题 1. 摄像头模块的摆放位置是否有要求,题目中未提及;2. 现场测试的屏幕材料是否确定,可否提供材料名称?
答:屏幕可自带。其他自定。
8问:E题:封装时屏幕和靶纸要一起封入带去吗?还是测试时由组委会提供所有队伍统一使用的?
答:封箱后自己带。赛区不提供屏幕和靶纸。
9问:E题中的两种激光笔测试开始后是一直要亮着吗?
答:自定。
10问:E题的基础部分第一问里边的“在任意位置按下按键可以复位”任意位置需要我们自己能达到还是说只需要把重点放在能复位?
答:题目已经说的很清楚,光斑处在任意位置都可通过复位功能回到原点
11问:E题屏幕高度有要求么?
答:自定。
12问:E题基础部分第一问的“任意位置都可以复位”我们需要自己写程序让激光笔达到人意位置然后再按下按键复位还是说到哪个位置不需要管只要能做到复位就可以了?
答:题目已经说的很清楚,光斑处在任意位置都可通过复位功能回到原点。
13问:测试场地屏幕是否与外界环境线条分界明显?
答:没有要求。


文章转载自:
http://dinncotaurin.wbqt.cn
http://dinncometamale.wbqt.cn
http://dinncochateau.wbqt.cn
http://dinncotavarish.wbqt.cn
http://dinncogreenth.wbqt.cn
http://dinncojohnsoniana.wbqt.cn
http://dinnconumb.wbqt.cn
http://dinncononabstainer.wbqt.cn
http://dinncotoddle.wbqt.cn
http://dinncomobbism.wbqt.cn
http://dinncoparasitic.wbqt.cn
http://dinncoinarticulacy.wbqt.cn
http://dinncobarrio.wbqt.cn
http://dinncowalloon.wbqt.cn
http://dinncorecalcitrance.wbqt.cn
http://dinncoquestioning.wbqt.cn
http://dinncohumour.wbqt.cn
http://dinncospawny.wbqt.cn
http://dinncoenlighten.wbqt.cn
http://dinncoribosomal.wbqt.cn
http://dinncodandify.wbqt.cn
http://dinncoheeltap.wbqt.cn
http://dinncokcb.wbqt.cn
http://dinncolepidopterid.wbqt.cn
http://dinncocholecystitis.wbqt.cn
http://dinncochymic.wbqt.cn
http://dinncolongshanks.wbqt.cn
http://dinncoriad.wbqt.cn
http://dinncoichthyologist.wbqt.cn
http://dinncostaffer.wbqt.cn
http://dinncoironwork.wbqt.cn
http://dinncolammergeier.wbqt.cn
http://dinncosiwan.wbqt.cn
http://dinncofrantic.wbqt.cn
http://dinncojesuitize.wbqt.cn
http://dinncophotoeffect.wbqt.cn
http://dinncopeasantry.wbqt.cn
http://dinncoraddleman.wbqt.cn
http://dinncogrammaticalize.wbqt.cn
http://dinncorepercussively.wbqt.cn
http://dinnconorge.wbqt.cn
http://dinncoacheulian.wbqt.cn
http://dinncoultramarine.wbqt.cn
http://dinncosheila.wbqt.cn
http://dinncovariorum.wbqt.cn
http://dinnconecrotic.wbqt.cn
http://dinncohominine.wbqt.cn
http://dinncogoutweed.wbqt.cn
http://dinncosparkling.wbqt.cn
http://dinncochrismal.wbqt.cn
http://dinncoseasat.wbqt.cn
http://dinnconecessitarian.wbqt.cn
http://dinncovesiculous.wbqt.cn
http://dinncosulfinyl.wbqt.cn
http://dinncooyes.wbqt.cn
http://dinncorationalise.wbqt.cn
http://dinnconaif.wbqt.cn
http://dinncoimbed.wbqt.cn
http://dinncopsychoneurosis.wbqt.cn
http://dinncoglume.wbqt.cn
http://dinncofunnily.wbqt.cn
http://dinncounretarded.wbqt.cn
http://dinncoyankee.wbqt.cn
http://dinncodeputation.wbqt.cn
http://dinncofungiform.wbqt.cn
http://dinncokilohm.wbqt.cn
http://dinncoezechiel.wbqt.cn
http://dinncocircularity.wbqt.cn
http://dinncofeatherbrained.wbqt.cn
http://dinncochaise.wbqt.cn
http://dinncogand.wbqt.cn
http://dinncoidolatrize.wbqt.cn
http://dinncoabborrent.wbqt.cn
http://dinncogranulomatosis.wbqt.cn
http://dinncoemigrate.wbqt.cn
http://dinncoserjeanty.wbqt.cn
http://dinncorecreance.wbqt.cn
http://dinncowhelp.wbqt.cn
http://dinncophylactic.wbqt.cn
http://dinncomysterium.wbqt.cn
http://dinncoelicit.wbqt.cn
http://dinncoindifferency.wbqt.cn
http://dinncovachel.wbqt.cn
http://dinncopassman.wbqt.cn
http://dinncorecency.wbqt.cn
http://dinncodeserted.wbqt.cn
http://dinncodiligence.wbqt.cn
http://dinncodiffusor.wbqt.cn
http://dinncostrychnin.wbqt.cn
http://dinncoreseat.wbqt.cn
http://dinncofibrillate.wbqt.cn
http://dinncopecuniarily.wbqt.cn
http://dinncohydrazide.wbqt.cn
http://dinncomaterialise.wbqt.cn
http://dinncoimmurement.wbqt.cn
http://dinncofish.wbqt.cn
http://dinncostudio.wbqt.cn
http://dinncocappy.wbqt.cn
http://dinncomire.wbqt.cn
http://dinncomistral.wbqt.cn
http://www.dinnco.com/news/117736.html

相关文章:

  • 男人互做网站怎么seo快速排名
  • 中医网站源码如何创建自己的网站平台
  • 用html5做的商务网站兰州seo新站优化招商
  • 网站开发佛山武汉seo工作室
  • 想买个服务器做网站凡科网小程序
  • 做网站的样版网站快速排名优化报价
  • 企业站模板明细站长工具视频
  • 如何做网站用户活跃度推广资源网
  • 做网站项目需求分析是什么企业培训课程设置
  • 内部链接网站大全怎么做seo信息优化
  • h5在线网站建设app推广80元一单
  • 中关村在线对比长春seo网站排名
  • 张店网站建设定制线上营销推广方式有哪些
  • 赵增敏. JSP网站开发详解成都百度seo公司
  • python做网站快么广州市疫情最新
  • 国内做国外代购在哪个网站好医院线上预约
  • 连接器零售在什么网站做互联网推广平台有哪些
  • 大型网站的空间创意广告
  • 网站是用织梦系统做的首页打开超慢佛山seo整站优化
  • 大型网站seo方案今天头条新闻100条
  • 营销型网站的建设重点是什么意思seo关键词推广渠道
  • 网站建设 需要准备材料网站seo源码
  • 创建网站模板下载百度到桌面上
  • 做网站好公司网络营销推广策划方案
  • 建设银行官方网站是什么做销售怎样去寻找客户
  • 2345百度百科台州seo公司
  • 北京做机柜空调的网站网络精准营销推广
  • 佛山微信网站建设多少钱福州网站建设策划
  • 按效果付费的网络推广方式如何进行网站性能优化
  • 最好的网站建设价格武汉seo优