Advertisement
Guest User

Robotprosjektet | utils.py

a guest
Nov 17th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.51 KB | None | 0 0
  1. import RPi.GPIO as GPIO
  2. import time
  3.  
  4. class agent():
  5.     def __init__(self, pins, frequency):
  6.         GPIO.setmode(GPIO.BCM)
  7.         GPIO.setwarnings(False)
  8.        
  9.         self.pins = pins
  10.         self.pwms = []
  11.         self.frequency = frequency
  12.            
  13.         for pin in self.pins:
  14.             print(pin)
  15.             GPIO.setup(pin, GPIO.OUT)
  16.             self.pwms.append(GPIO.PWM(pin, self.frequency))
  17.            
  18.         for pwm in self.pwms:
  19.             pwm.start(0)
  20.    
  21.     def stop_motors(self):
  22.         for pwm in self.pwms:
  23.             pwm.ChangeDutyCycle(0)
  24.    
  25.     def drive(self, left_motor, right_motor):
  26.         right_motor *= 100
  27.         left_motor *= 100
  28.         print(left_motor, right_motor)
  29.         print(self.pwms)
  30.         if left_motor >= 0:
  31.             print("left", )
  32.             self.pwms[0].ChangeDutyCycle(left_motor)
  33.             self.pwms[1].ChangeDutyCycle(0)
  34.         else:
  35.             print("-left")
  36.             self.pwms[1].ChangeDutyCycle(left_motor * -1)  # It is currently negative so making it positive
  37.             self.pwms[0].ChangeDutyCycle(0)
  38.        
  39.         if right_motor >= 0:
  40.             print("right")
  41.             self.pwms[2].ChangeDutyCycle(right_motor)
  42.             self.pwms[3].ChangeDutyCycle(0)
  43.         else:
  44.             print("-right")
  45.             self.pwms[3].ChangeDutyCycle(right_motor * -1)  # It is currently negative so making it positive
  46.             self.pwms[2].ChangeDutyCycle(0)
  47.        
  48.     def cleanup(self):
  49.         GPIO.cleanup()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement