• 免费好用的星瞳AI云服务上线!简单标注,云端训练,支持OpenMV H7和OpenMV H7 Plus。可以替代edge impulse。 https://forum.singtown.com/topic/9519
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 我想用OpenMVH7来直接控制舵机转动



    • import sensor, image, time
      from pyb import Pin, Timer
      
      sensor.reset()  # 重置摄像头传感器
      sensor.set_pixformat(sensor.RGB565)  # 设置像素格式为RGB565,可以根据需要选择其他支持的格式
      sensor.set_framesize(sensor.QVGA)  # 设置帧大小为QVGA,可以根据需要选择其他支持的帧大小
      sensor.skip_frames(time = 2000)  # 等待摄像头稳定(2秒)
      
      
      red_threshold =(24, 100, -128, 127, 16, 127)
      yellow_threshold = (74, 100, -128, 127, 9, 127)
      green_threshold =(51, 100, -69, 127, 18, 127)
      
      red_color_code = 1
      yellow_color_code = 2
      green_color_code = 8
      
      servo1_pin = Pin('P7') # 初始化舵机1引脚P7
      servo2_pin = Pin('P8') # 初始化舵机2引脚P8
      
      timer1 = Timer(4, freq=50) # 设置定时器4的频率为50Hz
      timer2 = Timer(4, freq=50) # 设置定时器3的频率为50Hz
      
      
      servo1_pwm = timer1.channel(1, Timer.PWM, pin=servo1_pin, pulse_width=1500) # 设置舵机1的PWM信号输出通道
      servo2_pwm = timer2.channel(1, Timer.PWM, pin=servo2_pin, pulse_width=1500) # 设置舵机2的PWM信号输出通道
      
      while True:
          img = sensor.snapshot()
      
          blobs = img.find_blobs([red_threshold, yellow_threshold, green_threshold], area_threshold=100)
      
          if blobs:
              for blob in blobs:
                  x = blob[0]
                  y = blob[1]
                  width = blob[2]
                  height = blob[3]
      
                  center_x = blob[5]
                  center_y = blob[6]
      
                  color_code = blob[8]
      
                  if color_code == red_color_code:
                      img.draw_string(x, y - 10, "red", color=(0xFF, 0x00, 0x00))
                      print("3")
                      servo1_pwm.pulse_width(1500 + 30 * 11.11) # 舵机1旋转30度
                      servo2_pwm.pulse_width(1500 + 30 * 11.11) # 舵机2旋转30度
                  elif color_code == yellow_color_code:
                      img.draw_string(x, y - 10, "yellow", color=(0xFF, 0x00, 0x00))
                      print("2")
                      servo1_pwm.pulse_width(1500) # 舵机1保持不动
                      servo2_pwm.pulse_width(1500 + 30 * 11.11) # 舵机2旋转30度
                  elif color_code == green_color_code:
                      img.draw_string(x, y - 10, "green", color=(0xFF, 0x00, 0x00))
                      print("1")
                      servo1_pwm.pulse_width((1500 + 30 * 11.11)) # 舵机1旋转30度
                      servo2_pwm.pulse_width(1500 ) # 舵机2保持不动
      
      
                  img.draw_rectangle([x, y, width, height])
                  img.draw_cross(center_x, center_y)
      
      
      
      
      
      
      
      
      #,我接的是P7和P8引脚,代码如下,代码不报错,但是舵机也不转动,我的舵机是MG995,旋转180度的,请问是为什么