• OpenMV VSCode 扩展发布了,在插件市场直接搜索OpenMV就可以安装
  • 如果有产品硬件故障问题,比如无法开机,论坛很难解决。可以直接找售后维修
  • 发帖子之前,请确认看过所有的视频教程,https://singtown.com/learn/ 和所有的上手教程http://book.openmv.cc/
  • 每一个新的提问,单独发一个新帖子
  • 帖子需要目的,你要做什么?
  • 如果涉及代码,需要报错提示全部代码文本,请注意不要贴代码图片
  • 必看:玩转星瞳论坛了解一下图片上传,代码格式等问题。
  • 光流例程无法实现,最新版的固件不支持吗?



    • # MAVLink OpticalFlow Script.
      #
      # This script sends out OpticalFlow detections using the MAVLink protocol to
      # an LIGHT/PixHawk UAV controller for position control using your OpenMV Cam.
      #
      # P4 = TXD 115200,8,N,1
      
      
      import sensor, image, time, pyb, struct, math
      
      sensor.reset() # Initialize the camera sensor.
      sensor.set_pixformat(sensor.RGB565) # or sensor.GRAYSCALE
      sensor.set_framesize(sensor.B64x64) # or B40x30 or B64x64
      clock = time.clock() # Tracks FPS.
      
      old = sensor.snapshot()
      
      uart = pyb.UART(3, 115200, timeout_char = 1000)
      
      def send_optical_flow_packet(x, y, c):
          temp = struct.pack("<bbiii",
                             0xAA,
                             0xAE,
                             int(x * 100000 ), # up sample by 4
                             int(y * 100000 ), # up sample by 4
                             int(c * 100000))
          uart.write(temp)
      
      
      while(True):
          clock.tick() # 获取时间
          img = sensor.snapshot() # 获取一帧图像
          '''
          find_displacement 这个功能函数使用是是2D FFT算法获得新旧两张图像的相位移动,由于OPenMV上单片机内存的问题,只能计算
          64x64或者64*32的图片(openmv2),如果使用OPenMV3可以计算128*32或者32*128的图片
          '''
          [delta_x, delta_y, response] = old.find_displacement(img) #获取前面一张图像与刚捕获的图像之间的偏移
          old = img.copy()
          #print("%0.6fX   %0.6fY   %0.2fC   %0.2fFPS" % (delta_x, delta_y, response, clock.fps()))
          if (not (math.isnan(delta_x) or math.isnan(delta_y) or math.isnan(response))):
              send_optical_flow_packet(delta_x, delta_y, response)
      
      

      0_1542096805486_QQ截图20181113161253.png





    • IDE的固件版本是3.0.0



    • 你的程序不对。复制我链接里的代码。



    • @kidswong999 找到原因了:因为我写的是B64x64,应该是B64X64