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



    • Blob Detection Example

      This example shows off how to use the find_blobs function to find color

      blobs in the image. This example in particular looks for dark green objects.

      import sensor, image, time
      import car
      from pid import PID
      from pyb import Servo

      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()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(10)
      sensor.set_auto_gain(False)
      sensor.set_auto_whitebal(False)
      sensor.set_auto_exposure(False,2000)#这里设置曝光时间

      #sensor.skip_frames(time = 2000)

      s3 = Servo(3) # servo on position 1 (P9)

      clock = time.clock()

      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 = (17, 50, -40, 110, 34, 127)
      size_threshold = 2500
      x_pid = PID(p=3, i=1, imax=100)
      h_pid = PID(p=0.03, i=0.1, imax=50)
      def find_max(blobs):
      max_size=0
      for blob in blobs:
      if blob[2]*blob[3] > max_size:
      max_blob=blob
      max_size = blob[2]*blob[3]
      return max_blob
      while(True):
      s3.angle(90) # move to 90 degrees
      clock.tick() # Track elapsed milliseconds between snapshots().
      img = sensor.snapshot() # Take a picture and return the image.

      blobs = img.find_blobs([red_threshold])
      if blobs:
          max_blob = find_max(blobs)
          x_error = max_blob[5]-img.width()/2
          h_error = max_blob[2]*max_blob[3]-size_threshold
          print("x error: ", x_error)
          '''
          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
          '''
          img.draw_rectangle(max_blob[0:4]) # rect
          img.draw_cross(max_blob[5], max_blob[6]) # cx, cy
          x_output=x_pid.get_pid(x_error,1)
          h_output=h_pid.get_pid(h_error,1)
          print("h_output",h_output)
          car.run(-h_output-x_output-50,-h_output+x_output-50)
      
      else:
          s3.angle(-90) # move to -90 degrees
          car.run(500,-500)


    • 请每个问题,单独提问

      比如第一个舵机的问题,请单独开一个帖子,把代码,连线,步骤,清楚的表达出来