Author: Ben van Eekelen Language: python
Description: Code voor het aansturen van de motor Timestamp: 2017-02-02 11:36:16 +0000
View raw paste Reply
  1. # Importeren van de GPIO module
  2. from RPi import GPIO as GPIO
  3. import time
  4.  
  5.  
  6. # Instellen van de modus op 'board'
  7. GPIO.setmode(GPIO.BCM)
  8. GPIO.setwarnings(False)
  9.  
  10. # Zet variabelen voor de pinnen
  11. linksFwd = 8
  12. linksRev = 7
  13. rechtsFwd = 10
  14. rechtsRev = 9
  15.  
  16. # Zet een variabele voor de Frequency van de PWM
  17. REVS = 10
  18.  
  19. # Maak de juiste GPIO pinnen gereed
  20. GPIO.setup(linksFwd, GPIO.OUT)
  21. GPIO.setup(linksRev, GPIO.OUT)
  22. GPIO.setup(rechtsFwd, GPIO.OUT)
  23. GPIO.setup(rechtsRev, GPIO.OUT)
  24.  
  25. # Maak objecten van de GPIO PWM functies
  26. lf = GPIO.PWM(linksFwd, REVS)
  27. rf = GPIO.PWM(rechtsFwd, REVS)
  28. rb = GPIO.PWM(rechtsRev, REVS)
  29. lb = GPIO.PWM(linksRev, REVS)
  30.  
  31. # Start alle PWM cyclussen maar zet deze op 0
  32. # dit omdat het starten  en stoppen via 'ChangeDutyCycle'
  33. # problemen oplevert
  34. lf.start(0)
  35. rf.start(0)
  36. rb.start(0)
  37. lb.start(0)
  38.  
  39. '''
  40. Duty cycle korter -> langzamger
  41. '''
  42.  
  43. # De init functie. Dit maakt alle
  44. # pinnen leeg
  45. def init():
  46.     GPIO.output(linksFwd, 0)
  47.     GPIO.output(linksRev, 0)
  48.     GPIO.output(rechtsFwd, 0)
  49.     GPIO.output(rechtsRev, 0)
  50.  
  51.  
  52. # Stuurt de pinnen voor vooruit aan met een
  53. # PWM duty-cycle die wordt meegegeven
  54. def forward(dutyCycle):
  55.     lf.ChangeDutyCycle(dutyCycle)
  56.     rf.ChangeDutyCycle(dutyCycle)
  57.  
  58.  
  59. # Stuurt de pinnen voor achteruit aan met
  60. # een PWM duty-cycle die wordt meegeven
  61. def backward(dutyCycle):
  62.     lb.ChangeDutyCycle(dutyCycle)
  63.     rb.ChangeDutyCycle(dutyCycle)
  64.  
  65.  
  66. # Stuurt de pinnen voor linksvooruit aan met
  67. # een PWM duty-cycle die wordt meegeven
  68. def leftF(dutyCycle):
  69.     lf.ChangeDutyCycle(dutyCycle)
  70.  
  71.  
  72. # Stuurt de pinnen voor rechtsvooruit aan met
  73. # een PWM duty-cycle die wordt meegeven
  74. def rightF(dutyCycle):
  75.     rf.ChangeDutyCycle(dutyCycle)
  76.  
  77.  
  78. # Stuurt de pinnen voor linksachteruit aan met
  79. # een PWM duty-cycle die wordt meegeven
  80. def leftB(dutyCycle):
  81.     lb.ChangeDutyCycle(dutyCycle)
  82.  
  83.  
  84. # Stuurt de pinnen voor rechtsachteruit aan met
  85. # een PWM duty-cycle die wordt meegeven
  86. def rightB(dutyCycle):
  87.     rb.ChangeDutyCycle(dutyCycle)
  88.  
  89.  
  90. # Zet alle dutycycles op 0
  91. def halt():
  92.     lf.ChangeDutyCycle(0)
  93.     rf.ChangeDutyCycle(0)
  94.     lb.ChangeDutyCycle(0)
  95.     rb.ChangeDutyCycle(0)
  96.     init()
  97.  
  98.  
  99. # Zodra de file wordt aangeroepen wordt de init
  100. # init functie aangeroepen
  101. init()
View raw paste Reply