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



    • import pyb
      VL51L1X_DEFAULT_CONFIGURATION = bytes([
      0x00,
      0x00,
      0x00,
      0x01,
      0x02,
      0x00,
      0x02,
      0x08,
      0x00,
      0x08,
      0x10,
      0x01,
      0x01,
      0x00,
      0x00,
      0x00,
      0x00,
      0xff,
      0x00,
      0x0F,
      0x00,
      0x00,
      0x00,
      0x00,
      0x00,
      0x20,
      0x0b,
      0x00,
      0x00,
      0x02,
      0x0a,
      0x21,
      0x00,
      0x00,
      0x05,
      0x00,
      0x00,
      0x00,
      0x00,
      0xc8,
      0x00,
      0x00,
      0x38,
      0xff,
      0x01,
      0x00,
      0x08,
      0x00,
      0x00,
      0x01,
      0xdb,
      0x0f,
      0x01,
      0xf1,
      0x0d,
      0x01,
      0x68,
      0x00,
      0x80,
      0x08,
      0xb8,
      0x00,
      0x00,
      0x00,
      0x00,
      0x0f,
      0x89,
      0x00,
      0x00,
      0x00,
      0x00,
      0x00,
      0x00,
      0x00,
      0x01,
      0x0f,
      0x0d,
      0x0e,
      0x0e,
      0x00,
      0x00,
      0x02,
      0xc7,
      0xff,
      0x9B,
      0x00,
      0x00,
      0x00,
      0x01,
      0x01,
      0x40
      ])
      class VL53L1X:
      def init(self,i2c, address=0x29):
      self.i2c = i2c
      self.address = address
      self.reset()
      pyb.delay(1)
      if self.read_model_id() != 0xEACC:
      raise RuntimeError('Failed to find expected ID register values. Check wiring!')
      self.i2c.writeto_mem(self.address, 0x2D, VL51L1X_DEFAULT_CONFIGURATION, addrsize=16)
      self.writeReg16Bit(0x001E, self.readReg16Bit(0x0022) * 4)
      pyb.delay(200)
      def writeReg(self, reg, value):
      return self.i2c.writeto_mem(self.address, reg, bytes([value]), addrsize=16)
      def writeReg16Bit(self, reg, value):
      return self.i2c.writeto_mem(self.address, reg, bytes([(value >> 😎 & 0xFF, value & 0xFF]), addrsize=16)
      def readReg(self, reg):
      return self.i2c.readfrom_mem(self.address, reg, 1, addrsize=16)[0]
      def readReg16Bit(self, reg):
      data = self.i2c.readfrom_mem(self.address, reg, 2, addrsize=16)
      return (data[0]<<8) + data[1]
      def read_model_id(self):
      return self.readReg16Bit(0x010F)
      def reset(self):
      self.writeReg(0x0000, 0x00)
      pyb.delay(100)
      self.writeReg(0x0000, 0x01)
      def read(self):
      data = self.i2c.readfrom_mem(self.address, 0x0089, 17, addrsize=16)
      range_status = data[0]
      stream_count = data[2]
      dss_actual_effective_spads_sd0 = (data[3]<<8) + data[4]
      ambient_count_rate_mcps_sd0 = (data[7]<<8) + data[8]
      final_crosstalk_corrected_range_mm_sd0 = (data[13]<<8) + data[14]
      peak_signal_count_rate_crosstalk_corrected_mcps_sd0 = (data[15]<<8) + data[16]
      return final_crosstalk_corrected_range_mm_sd0



    • https://singtown.com/learn/50539/
      按照视频操作。