Author: Ben van Eekelen Language: python
Description: Code voor het aansturen van de motor Timestamp: 2017-02-02 11:35:59 +0000
View raw paste Reply
  1. from RPi import GPIO as GPIO
  2. import time
  3.  
  4. GPIO.setmode(GPIO.BCM)
  5. GPIO.setwarnings(False)
  6.  
  7. linksFwd = 8
  8. linksRev = 7
  9. rechtsFwd = 10
  10. rechtsRev = 9
  11.  
  12. REVS = 10
  13.  
  14. GPIO.setup(linksFwd, GPIO.OUT)
  15. GPIO.setup(linksRev, GPIO.OUT)
  16. GPIO.setup(rechtsFwd, GPIO.OUT)
  17. GPIO.setup(rechtsRev, GPIO.OUT)
  18.  
  19. lf = GPIO.PWM(linksFwd, REVS)
  20. rf = GPIO.PWM(rechtsFwd, REVS)
  21. rb = GPIO.PWM(rechtsRev, REVS)
  22. lb = GPIO.PWM(linksRev, REVS)
  23.  
  24. lf.start(0)
  25. rf.start(0)
  26. rb.start(0)
  27. lb.start(0)
  28.  
  29. '''
  30. Duty cycle korter -> langzamger
  31. '''
  32.  
  33. def init():
  34.     GPIO.output(linksFwd, 0)
  35.     GPIO.output(linksRev, 0)
  36.     GPIO.output(rechtsFwd, 0)
  37.     GPIO.output(rechtsRev, 0)
  38.  
  39.  
  40. def forward(dutyCycle):
  41.     lf.ChangeDutyCycle(dutyCycle)
  42.     rf.ChangeDutyCycle(dutyCycle)
  43.  
  44.  
  45. def backward(dutyCycle):
  46.     lb.ChangeDutyCycle(dutyCycle)
  47.     rb.ChangeDutyCycle(dutyCycle)
  48.  
  49.  
  50. def leftF(dutyCycle):
  51.     lf.ChangeDutyCycle(dutyCycle)
  52.  
  53.  
  54. def rightF(dutyCycle):
  55.     rf.ChangeDutyCycle(dutyCycle)
  56.  
  57.  
  58. def leftB(dutyCycle):
  59.     lb.ChangeDutyCycle(dutyCycle)# Importeren van de GPIO module
  60. from RPi import GPIO as GPIO
  61. import time
  62.  
  63.  
  64. # Instellen van de modus op 'board'
  65. GPIO.setmode(GPIO.BCM)
  66. GPIO.setwarnings(False)
  67.  
  68. # Zet variabelen voor de pinnen
  69. linksFwd = 8
  70. linksRev = 7
  71. rechtsFwd = 10
  72. rechtsRev = 9
  73.  
  74. # Zet een variabele voor de Frequency van de PWM
  75. REVS = 10
  76.  
  77. # Maak de juiste GPIO pinnen gereed
  78. GPIO.setup(linksFwd, GPIO.OUT)
  79. GPIO.setup(linksRev, GPIO.OUT)
  80. GPIO.setup(rechtsFwd, GPIO.OUT)
  81. GPIO.setup(rechtsRev, GPIO.OUT)
  82.  
  83. # Maak objecten van de GPIO PWM functies
  84. lf = GPIO.PWM(linksFwd, REVS)
  85. rf = GPIO.PWM(rechtsFwd, REVS)
  86. rb = GPIO.PWM(rechtsRev, REVS)
  87. lb = GPIO.PWM(linksRev, REVS)
  88.  
  89. # Start alle PWM cyclussen maar zet deze op 0
  90. # dit omdat het starten  en stoppen via 'ChangeDutyCycle'
  91. # problemen oplevert
  92. lf.start(0)
  93. rf.start(0)
  94. rb.start(0)
  95. lb.start(0)
  96.  
  97. '''
  98. Duty cycle korter -> langzamger
  99. '''
  100.  
  101. # De init functie. Dit maakt alle
  102. # pinnen leeg
  103. def init():
  104.     GPIO.output(linksFwd, 0)
  105.     GPIO.output(linksRev, 0)
  106.     GPIO.output(rechtsFwd, 0)
  107.     GPIO.output(rechtsRev, 0)
  108.  
  109.  
  110. # Stuurt de pinnen voor vooruit aan met een
  111. # PWM duty-cycle die wordt meegegeven
  112. def forward(dutyCycle):
  113.     lf.ChangeDutyCycle(dutyCycle)
  114.     rf.ChangeDutyCycle(dutyCycle)
  115.  
  116.  
  117. # Stuurt de pinnen voor achteruit aan met
  118. # een PWM duty-cycle die wordt meegeven
  119. def backward(dutyCycle):
  120.     lb.ChangeDutyCycle(dutyCycle)
  121.     rb.ChangeDutyCycle(dutyCycle)
  122.  
  123.  
  124. # Stuurt de pinnen voor linksvooruit aan met
  125. # een PWM duty-cycle die wordt meegeven
  126. def leftF(dutyCycle):
  127.     lf.ChangeDutyCycle(dutyCycle)
  128.  
  129.  
  130. # Stuurt de pinnen voor rechtsvooruit aan met
  131. # een PWM duty-cycle die wordt meegeven
  132. def rightF(dutyCycle):
  133.     rf.ChangeDutyCycle(dutyCycle)
  134.  
  135.  
  136. # Stuurt de pinnen voor linksachteruit aan met
  137. # een PWM duty-cycle die wordt meegeven
  138. def leftB(dutyCycle):
  139.     lb.ChangeDutyCycle(dutyCycle)
  140.  
  141.  
  142. # Stuurt de pinnen voor rechtsachteruit aan met
  143. # een PWM duty-cycle die wordt meegeven
  144. def rightB(dutyCycle):
  145.     rb.ChangeDutyCycle(dutyCycle)
  146.  
  147.  
  148. # Zet alle dutycycles op 0
  149. def halt():
  150.     lf.ChangeDutyCycle(0)
  151.     rf.ChangeDutyCycle(0)
  152.     lb.ChangeDutyCycle(0)
  153.     rb.ChangeDutyCycle(0)
  154.     init()
  155.  
  156.  
  157. # Zodra de file wordt aangeroepen wordt de init
  158. # init functie aangeroepen
  159. init()
  160.  
  161.  
  162. def rightB(dutyCycle):
  163.     rb.ChangeDutyCycle(dutyCycle)
  164.  
  165.  
  166. def halt():
  167.     lf.ChangeDutyCycle(0)
  168.     rf.ChangeDutyCycle(0)
  169.     lb.ChangeDutyCycle(0)
  170.     rb.ChangeDutyCycle(0)
  171.     init()
  172.  
  173.  
  174. init()
View raw paste Reply