当前位置:   article > 正文

基于Openmv的简单巡线(送药小车)_openmv巡线

openmv巡线

该代码可以识别十字路口,终点线的判断,完成简单巡线的要求,并将数据传给32进行处理

  1. import sensor, image, time,lcd
  2. from pyb import UART
  3. uart = UART(3, 115200, timeout_char=1000)
  4. red_threshold = ((29, 100, 38, 93, -82, 61))#红色阈值
  5. sensor.reset()
  6. sensor.set_pixformat(sensor.RGB565) #选择RGB模式
  7. sensor.set_framesize(sensor.QQVGA) #160*120选择分辨率(分辨率越高帧率可能越低)
  8. sensor.skip_frames(time = 2000)
  9. lcd.init()
  10. sensor.set_hmirror(True)#开启镜像
  11. uart.init(115200,8,None,1) #对串口3给定参数初始化
  12. line_roi1 = (25,5,110,10)#上方
  13. #line_roi2 = (25,30,110,10)#中方
  14. line_roi3 = (25,50,110,10)#下方
  15. flag=0 #0正常巡线,1十字路口,2终点线
  16. xx1=0
  17. xx2=0
  18. # 通信协议
  19. def Send_data_packet(data1,data2,data3):#data1 = xx1,data2 = xx2,data3 = flag
  20. x = '%03d'%data1
  21. y = '%03d'%data2
  22. z = '%01d'%data3
  23. data = 'W'+x+y+z+'Z'
  24. uart.write(data)
  25. #求绝对值
  26. def my_abs(x,y):
  27. xx = x - y
  28. if(xx>0):
  29. return xx
  30. else:
  31. return -xx
  32. def run():#巡线函数
  33. global flag # 0正常巡线,1十字路口,2终点线
  34. global xx1
  35. global xx2
  36. blobs_low = img.find_blobs([red_threshold], roi = line_roi1,pixels_threshold = 5)
  37. #blobs_high = img.find_blobs([red_threshold], roi = line_roi3, pixels_threshold = 5)
  38. if(blobs_low):#前方有线
  39. if(blobs_low[0].h()*blobs_low[0].w()>=210):#十字路口
  40. flag = 1
  41. xx1 = 80
  42. xx2 = 0
  43. print("across")
  44. else:#正常巡线
  45. img.draw_cross(blobs_low[0].cx(), blobs_low[0].cy(), (0,255,0), 5)
  46. #img.draw_cross(blobs_high[0].cx(), blobs_high[0].cy(), (255,255,255), 5)
  47. print("line")
  48. flag = 0
  49. xx1 = blobs_low[0].cx()
  50. xx2=0
  51. else:#前方无线
  52. flag = 4
  53. xx1 = 80
  54. xx2 = 0
  55. print("end")
  56. while (True):
  57. Send_data_packet(xx1,xx2,flag)
  58. img = sensor.snapshot()
  59. run()
  60. img_black=img.binary([red_threshold])#图像二值化,使图像只有黑白,白色为被追踪的颜色,注意:
  61. #要放在色块识别的后面,不然色块识别会出问题
  62. lcd.display(img)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/481674
推荐阅读
  

闽ICP备14008679号