星瞳实验室APP,快速收到回复
  • 我们只解决官方正版的OpenMV的问题(STM32),其他的分支有很多兼容问题,我们无法解决。
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 请问,21年5月29号,更新了openmv后就不能控制舵机了,更新之前就可以,请问是为什么???



    • 😖



    • import sensor, image, time, pyb,math
      from pyb import Pin, Timer,LED,Servo
      import json
      from pyb import UART
      
      LED_R = pyb.LED(1) # Red LED = 1, Green LED = 2, Blue LED = 3, IR LEDs = 4.
      LED_G = pyb.LED(2)
      LED_B = pyb.LED(3)
      s1 = Servo(1)#servo on position 1 (P7)
      
      s2 = Servo(2)# servo on position 2 (P8)
      
      
      LED_R.off()
      LED_G.off()
      LED_B.off()
      ROI=(24,10,110,77)
      
      
      red_threshold  = (34, 78, 48, 104, -66, 80)
      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.
      
      uart = UART(1, 9600)
      uart.init(9600, bits=8, parity=None, stop=1)  #8位数据位,无校验位,1位停止位
      
      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):
          if uart.any():
             LED_R.on()
             time.sleep_ms(1000)
             LED_R.off()
             s2.angle(0) # move to 45 degrees
             s2.angle(90, 500)# move to -60 degrees in 1500ms
      
      
          clock.tick() # Track elapsed milliseconds between snapshots().
          img = sensor.snapshot().lens_corr(1.8) # Take a picture and return the image.
          for c in img.find_circles(threshold =1500,roi=ROI, x_margin =10, y_margin =10, r_margin =10,
          r_min = 5, r_max = 20, r_step = 5):
      
            blobs = img.find_blobs([red_threshold],pixels_threshold=600,pixels_threshold=600,merge=True)
            if blobs:
      
               max_blob = find_max(blobs)
               img.draw_cross(max_blob.cx(),max_blob.cy())
               img.draw_circle(max_blob.cx(),max_blob.cy(),max_blob.cx()-max_blob.x(), color = (255, 0, 0))
      
               LED_R.on()
               time.sleep_ms(100)
               LED_R.off()
      
               FH = bytearray([0x01])
               uart.write(FH)
               LED(1).toggle()#红灯亮
               time.sleep_ms(100)
               LED(1).off()
               time.sleep_ms(100)
               LED(2).toggle()#绿灯亮
               time.sleep_ms(100)
               LED(2).off()
               time.sleep_ms(100)
               LED(3).toggle()#红灯亮
               time.sleep_ms(100)
               LED(3).off()
               time.sleep_ms(100)
               s1.angle(45) # move to 45 degrees
               s1.angle(-45, 1000)# move to -60 degrees in 1500ms
               s1.angle(-135, 1000)
      
      
      
            else:
               LED_R.off()
      
      
      
               print("帧率 : ",clock.fps())
      

      这是代码



    • @g3n2 固件库版本4.0



    • https://github.com/openmv/openmv/issues/1325

      有bug,估计下一个版本修复。