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



    • 为什么我定义的P1输入口,它的value一直是“1”,不管是否用P1接触VIN:

      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(20)
      
      p1_in = Pin('P1', Pin.IN, Pin.PULL_NONE)
      value1 = p1_in.value()
      
      while(True):
      
          img = sensor.snapshot()
      
      
          if value1 == 1:
              led = pyb.LED(2)
              led.off()
              led = pyb.LED(1)
              led.on()
              time.sleep(1)
              led.off()
              print(value1)
          else:
              led = pyb.LED(2)
              led.on()
      
              print(value1)
      

      0_1639551483460_P1口接线.jpg



    • 有2个问题都要解决

      1,要么硬件上加下拉电阻;要么把Pin.PULL_NONE改为Pin.PULL_DOWN,开启芯片内部下拉电阻。
      2,p1_in.value()要在死循环里面调用。你的代码只在最开始调用一次,value1永远都不会更新。

      import sensor
      from pyb import Pin
      import pyb
      import time
      
      sensor.reset()
      sensor.set_pixformat(sensor.RGB565)
      sensor.set_framesize(sensor.QVGA)
      sensor.skip_frames(time = 2000)
      
      p1_in = Pin('P1', Pin.IN, Pin.PULL_DOWN)
      
      while(True):
          value1 = p1_in.value()
          img = sensor.snapshot()
      
          if value1 == 1:
              led = pyb.LED(2)
              led.off()
              led = pyb.LED(1)
              led.on()
              time.sleep(1)
              led.off()
              print(value1)
          else:
              led = pyb.LED(2)
              led.on()
              print(value1)
          
      


    • 另外,为了安全,应该用3.3V引脚连接P1,而不是VIN引脚连接P1。



    • @kidswong999 谢谢大咖