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



    • Traceback (most recent call last):
        File "<stdin>", line 42, in test1
        File "vl53l1x.py", line 128, in read
      OSError: [Errno 19] ENODEV
      

      初始化代码如下:

      THRESHOLD = (19, 56, 19, 127, 4, 127)
      import sensor, image, time,pyb
      import IR
      from machine import I2C
      from vl53l1x import VL53L1X
      from pyb import UART
      from pyb import LED
      from pid import PID
      from pyb import Pin
      import car
      import _thread
      
      rho_pid = PID(p=1.1, i=0) #偏移距离PID
      theta_pid = PID(p=0.8, i=0)#偏移角度PID
      
      i2c = I2C(2)
      distance = VL53L1X(i2c)
      
      uart = UART(1,115200)
      uart.init(115200, bits=8, parity=None, stop=1)
      
      L =0
      Information = [00,00,00,00,00] #[模式,速度,红外运动类型,遇障停止信号]
      tem =0
      
      #LED(1).on()
      #LED(2).on()
      #LED(3).on()
      
      sensor.reset()
      sensor.set_vflip(True)
      sensor.set_hmirror(True)
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QQVGA) # 80x60 (4,800 pixels) - O(N^2) max = 2,3040,000.
      #sensor.set_windowing([0,20,80,40])
      sensor.skip_frames(time = 2000)     #等待2000ms让摄像头启动
      clock = time.clock()                #创建一个时钟来追踪FPS(每秒拍摄帧数)
      
      #线程1
      def test1(*args, **kwargs):
          while True: 
              pyb.delay(70) # 延时 50 毫秒
              L = distance.read() #测距传感器
              if(L<150):
                  Information[4]=0
                  print("mm:",L)
              else:
                  Information[4]=1
      
      
      thread_1 = _thread.start_new_thread(test1, (1,)) #创建线程
      


    • 不要用线程_thread。这个库并不是线程安全,没加锁。而且用thread没啥意义。