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



    • 请问用open mv控制单个舵机,线应该怎么接。先用一个电源通过降压模块与舵机连接,然后将舵机的信号线接到open mv的servo1引脚上,再将舵机上的地线引出,接到openmv 的GND引脚上,这样可以么?



    • 核心:你要保证每个舵机有1A的电流

      降压模块如果是LDO,电流不够。

      http://book.openmv.cc/MCU/motor.html#舵机



    • @kidswong999 好的,谢谢!



    • 所以,买的套件里面带的那个洞洞板接上两个舵机后,虽然舵机的V接omv的V,S接P7P8,G接G,但舵机是不能转的。
      要在另外那两个洞上接上VCC,GND吗?



    • 需要额外的电源,不应该使用USB给电机供电。



    • @kidswong999 我想用open mv 控制单个舵机进行x轴方向上的颜色追踪,pid.py文件需不需要修改?



    • 不需要,在main.py里面把y轴动的那句话注释掉就可以了



    • @kidswong999 教程视频追小球的云台用的舵机是180度的么?如果改为360度旋转的舵机代码还能用么?



    • @渔阳 不能,180度的舵机,和360度的舵机,控制完全不一样。

      https://singtown.com/learn/93/



    • @kidswong999
      import sensor, image, time
      from pyb import UART,Timer,Servo

      has_data = False # 初始化为没有数据读入
      def is_data_coming(timer):
      global uart
      global has_data

      if uart.any():
          has_data = True
      else:
          has_data = False
      

      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) # turn this off.
      clock = time.clock() # Tracks FPS.

      s1=Servo(1)

      uart = UART(3, 115200)
      uart.init(115200, bits=8, parity=None, stop=1)

      timer = Timer(4)
      timer.init(freq=10)
      timer.callback(is_data_coming)
      while(True):

      if uart.readline()==b'a':   
          print('yes')
          #s1.angle(-90)   
      else:
          continue		 
                        
      while(True):
          
          img = sensor.snapshot()
          
          print(has_data)
          if has_data:
              data = uart.readline()
              if data==b'b':
                  break
              else:
                  print('not b')
      while(True):
          pass
      

      利用定时器的回调函数检测串口是否有数据,在运行uart.readline()==b'a',当底下加上控制舵机代码s1.angle(-90)时即使发送字符b,第二个while中 if has_data也检测不到串口有数据;如果删除s1.angle(-90),发送字符b,if has_data成功检测到数据并跳出循环,这是为什么?



    • @渔阳
      一个提问,一个帖子,标题为问题的介绍

      新的问题,请新发一个帖子。