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



    • from pyb import udelay
      class Stepper:
          def __init__(self, step_pin, dir_pin, step_time=200):
              #初始化
              self.stp = step_pin
              self.dir = dir_pin
              self.stp.init(Pin.OUT_PP)
              self.dir.init(Pin.OUT_PP)
              self.step_time = step_time # us
              self.steps_per_rev = 1600
              self.current_position = 0
          def steps(self, step_count=1):
              #驱动电机走几步
              self.dir.value(0 if step_count > 0 else 1)#当step_count为正数的时候,设置dir引脚为低电平。否则为高电平。
              for i in range(abs(step_count)):#发送step_count数量的脉冲
                  self.stp.value(1)
                  udelay(self.step_time)
                  self.stp.value(0)
                  udelay(self.step_time)
              self.current_position += step_count#记录现在的角度
          def rel_angle(self, angle):
              #驱动电机旋转相应的角度(相对角度控制)
          def abs_angle(self, angle):
              #驱动电机旋转到相应的位置(绝对角度控制)
      

      这是一个类,放在了根目录中

      from stepper import Stepper
      from pyb import Pin
      dir_pin = Pin(‘P0’)
      stp_pin = Pin(‘P1’)
      s = Stepper(step_pin=stp_pin, dir_pin=dir_pin)
      s.steps()#电机动一步
      s.steps(100)#电机动100步
      s.steps(-100)#电机反转100步
      

      运行这个程序后提示P0未定义是怎么回事啊?

      这是1网页链接:http://book.openmv.cc/module/write-module-motor.html