导航

    • 登录
    • 搜索
    • 版块
    • 产品
    • 教程
    • 论坛
    • 淘宝
    1. 主页
    2. nvfd
    N
    • 举报资料
    • 资料
    • 关注
    • 粉丝
    • 屏蔽
    • 帖子
    • 楼层
    • 最佳
    • 群组

    nvfd

    @nvfd

    0
    声望
    5
    楼层
    281
    资料浏览
    0
    粉丝
    0
    关注
    注册时间 最后登录

    nvfd 关注

    nvfd 发布的帖子

    • 怎么自己制作Cascade模型?

      因为edge制作的模型只能判断 摄像头目前画面属于哪个class ,不能把我想要追踪的物体框起来,

      发布在 OpenMV Cam
      N
      nvfd
    • 模型训练出来的.h5文件怎么用到openmv上

      模型训练出来的.h5文件怎么用到openmv上

      发布在 OpenMV Cam
      N
      nvfd
    • openmv的p7 或p8口好像坏了一个 ,控制不了舵机,我想用p9代替坏的那个,该怎么改代码啊

      from pyb import Pin, Timer#导入引脚和定时器
      inverse_left=False #change it to True to inverse left wheel 初始化
      inverse_right=False #change it to True to inverse right wheel 初始化

      ain1 = Pin('P0', Pin.OUT_PP)#控制左右两边电机方向
      ain2 = Pin('P1', Pin.OUT_PP)
      bin1 = Pin('P2', Pin.OUT_PP)
      bin2 = Pin('P3', Pin.OUT_PP)
      ain1.low()
      ain2.low()
      bin1.low()
      bin2.low()

      pwma = Pin('P7')
      pwmb = Pin('P8')
      tim = Timer(4, freq=1000)#设置定时器4 频率为1000hz
      ch1 = tim.channel(1, Timer.PWM, pin=pwma)
      ch2 = tim.channel(2, Timer.PWM, pin=pwmb)
      ch1.pulse_width_percent(0)
      ch2.pulse_width_percent(0)

      def run(left_speed, right_speed):
      if inverse_left==False: #如果接反了正负 就取反修正
      left_speed=(-left_speed)
      if inverse_right==True:# 同上
      right_speed=(-right_speed)

      if left_speed < 0:
          ain1.low()
          ain2.high()
      else:
          ain1.high()
          ain2.low()
      ch1.pulse_width_percent(int(abs(left_speed)))
      
      if right_speed < 0:
          bin1.low()
          bin2.high()
      else:
          bin1.high()
          bin2.low()
      ch2.pulse_width_percent(int(abs(right_speed)))
      发布在 OpenMV Cam
      N
      nvfd
    • 按照例程做的追踪小球的小车在没有识别到小球原地旋转的时候 如果发现了小球的话会突然冲刺,而不是像视频里面那个稳稳的跟踪它
      # Blob Detection Example
      #
      # This example shows off how to use the find_blobs function to find color
      # blobs in the image. This example in particular looks for dark green objects.
      
      import sensor, image, time
      import car
      from pid import PID
      
      # You may need to tweak the above settings for tracking green things...
      # Select an area in the Framebuffer to copy the color settings.
      
      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.
      
      # For color tracking to work really well you should ideally be in a very, very,
      # very, controlled enviroment where the lighting is constant...
      green_threshold   = (52, 82, -67, -47, 26, 61)
      size_threshold = 1000
      x_pid = PID(p=0.5, i=1, imax=100)
      h_pid = PID(p=0.01, i=0.1, imax=50)
      
      def find_max(blobs):
          max_size=0
          for blob in blobs:
              if blob[2]*blob[3] > max_size:
                  max_blob=blob
                  max_size = blob[2]*blob[3]
          return max_blob
      
      while(True):
          clock.tick() # Track elapsed milliseconds between snapshots().
          img = sensor.snapshot() # Take a picture and return the image.
      
          blobs = img.find_blobs([green_threshold])
          if blobs:
              max_blob = find_max(blobs)
              x_error = max_blob[5]-img.width()/2
              h_error = max_blob[2]*max_blob[3]-size_threshold
              print("x error: ", x_error)
              '''
              for b in blobs:
                  # Draw a rect around the blob.
                  img.draw_rectangle(b[0:4]) # rect
                  img.draw_cross(b[5], b[6]) # cx, cy
              '''
              img.draw_rectangle(max_blob[0:4]) # rect
              img.draw_cross(max_blob[5], max_blob[6]) # cx, cy
              x_output=x_pid.get_pid(x_error,1)
              h_output=h_pid.get_pid(h_error,1)
              print("h_output",h_output)
              car.run((-h_output+x_output)*0.5,(-h_output+x_output)*0.5)
          else:
              car.run(10,-10)
      发布在 OpenMV Cam
      N
      nvfd
    • 根据追踪小球的小车的例子做了一个出来,但是发现小车并没有像视频里面那样和小球保持一段距离,识别到了就往前顶,

      Blob Detection Example

      This example shows off how to use the find_blobs function to find color

      blobs in the image. This example in particular looks for dark green objects.

      import sensor, image, time
      import car
      from pid import PID

      You may need to tweak the above settings for tracking green things...

      Select an area in the Framebuffer to copy the color settings.

      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.

      For color tracking to work really well you should ideally be in a very, very,

      very, controlled enviroment where the lighting is constant...

      green_threshold = (76, 96, -110, -30, 8, 66)
      size_threshold = 2000
      x_pid = PID(p=3, i=1, imax=100)
      h_pid = PID(p=0.22, i=0.1, imax=50)

      def find_max(blobs):
      max_size=0
      for blob in blobs:
      if blob[2]*blob[3] > max_size:
      max_blob=blob
      max_size = blob[2]*blob[3]
      return max_blob

      while(True):
      clock.tick() # Track elapsed milliseconds between snapshots().
      img = sensor.snapshot() # Take a picture and return the image.

      blobs = img.find_blobs([green_threshold])
      if blobs:
          max_blob = find_max(blobs)
          x_error = max_blob[5]-img.width()/2
          h_error = max_blob[2]*max_blob[3]-size_threshold
          print("x error: ", x_error)
          '''
          for b in blobs:
              # Draw a rect around the blob.
              img.draw_rectangle(b[0:4]) # rect
              img.draw_cross(b[5], b[6]) # cx, cy
          '''
          img.draw_rectangle(max_blob[0:4]) # rect
          img.draw_cross(max_blob[5], max_blob[6]) # cx, cy
          x_output=x_pid.get_pid(x_error,1)
          h_output=h_pid.get_pid(h_error,1)
          print("h_output",h_output)
          car.run(-h_output-x_output,-h_output+x_output)
      else:
          car.run(10,-10)
      
      发布在 OpenMV Cam
      N
      nvfd