11_motorControl.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/usr/bin/env python
  2. #version : 2023.06.01
  3. #language : ch
  4. #hardware : pi
  5. from maix import display
  6. from maix import image
  7. from maix import camera
  8. import time
  9. import sys
  10. sys.path.append('/root/')
  11. from CocoPi import BUTTON
  12. from CocoPi import dcMotor
  13. D1=dcMotor(1)
  14. D2=dcMotor(2)
  15. key_D = BUTTON(7)
  16. key_B = BUTTON(8)
  17. key_C = BUTTON(13)
  18. image.load_freetype("/root/preset/fonts/SourceHanSansCN-Regular.otf")
  19. camera.camera.config(size=(240,320))
  20. ScreenOrientation = False
  21. speed=0
  22. rotation=1
  23. addValue=1
  24. angle=0
  25. canvas = image.new(size = (320, 240))
  26. while True:
  27. if (key_B.is_pressed()):
  28. while key_B.is_pressed():
  29. time.sleep(0.001)
  30. rotation=(-1)*rotation
  31. if(key_C.is_pressed()):
  32. if speed<255:
  33. addValue=1
  34. else:
  35. addValue=0
  36. elif key_D.is_pressed():
  37. if speed>0:
  38. addValue=-1
  39. else:
  40. addValue=0
  41. else:
  42. addValue=0
  43. canvas = image.new(color=(0,0,0),size = (320, 240))
  44. speed=speed+addValue
  45. canvas.draw_string(80, 8, "转速:"+str(speed), 1, color=(0, 255, 0))
  46. if rotation==1:
  47. canvas.draw_image((image.open("/root/preset/img/clockwise_bfbfbf_24x24.png")).rotate(0, adjust=0),8,216,alpha=1)
  48. #canvas.draw_string(40, 24, "rotation:clockwise", 1, color=(0, 255, 0))
  49. else:
  50. canvas.draw_image((image.open("/root/preset/img/anticlockwise_bfbfbf_24x24.png")).rotate(0, adjust=0),8,216,alpha=1)
  51. #canvas.draw_string(40, 24, "rotation:anticlockwise", 1, color=(0, 255, 0))
  52. angle=angle-int(rotation*speed/3)
  53. if angle>3600:
  54. angle=angle-3600
  55. elif angle<-3600:
  56. angle=angle+3600
  57. else:
  58. angle=angle
  59. #canvas.draw_string(4, 180, "C:change fan's direction of rotation", 1, color=(0, 255, 0))
  60. #canvas.draw_string(4, 200, "D:increase fan's speed of rotation", 1, color=(0, 255, 0))
  61. #canvas.draw_string(4, 220, "B:decrease fan's speed of rotation", 1, color=(0, 255, 0))
  62. canvas.draw_image((image.open("/root/preset/img/ttMotor_200_64.png")).rotate(0, adjust=1),80,90,alpha=1)
  63. canvas.draw_image((image.open("/root/preset/img/fan_140_140.png")).rotate(angle, adjust=0),60,52,alpha=1)
  64. canvas.draw_image((image.open("/root/preset/img/increase_bfbfbf_24x24.png")).rotate(0, adjust=0),288,8,alpha=1)
  65. canvas.draw_image((image.open("/root/preset/img/decrease_bfbfbf_24x24.png")).rotate(0, adjust=0),8,8,alpha=1)
  66. canvas.draw_image((image.open("/root/preset/img/exit_ff0000_24x24.png")).rotate(0, adjust=0),288,216,alpha=1)
  67. if(speed<80):
  68. D1.dcMotorCtrl(0,1)
  69. D2.dcMotorCtrl(0,1)
  70. else:
  71. if rotation==1:
  72. D1.dcMotorCtrl(1,speed)
  73. D2.dcMotorCtrl(1,speed)
  74. else:
  75. D1.dcMotorCtrl(0,speed)
  76. D2.dcMotorCtrl(0,speed)
  77. if ScreenOrientation:
  78. canvasVER = canvas.crop(0,0,240,320)
  79. canvasVER = canvasVER.rotate(-90, adjust=1)
  80. display.show(canvasVER)
  81. else:
  82. display.show(canvas)