class Omniwheel(object): def __init__ (self, pin1, pin2, pwmA, pin3, pin4, pwmB, steppingMode, wheelAngle): self.motor = StepperMotor(pin1, pin2, pwmA, pin3, pin4, pwmB, steppingMode) self.wheelAngle = wheelAngle def calculateVelocity (self, drivingAngle, drivingSpeed): w = self.wheelAngle d = drivingAngle wheelSpeed = drivingSpeed * (math.cos(w) * math.cos(d) + math.sin(w) * math.sin(d)) if wheelSpeed > 0: self.motor.forward(wheelSpeed) else: self.motor.reverse(abs(wheelSpeed))
def plant3(): st.stepForward(800) st.stopMotor() pu.activate() time.sleep(5) pu.deactivate() st.stepBackward(800) st.stopMotor()
def plant1(): st.stepForward( 267 ) # static values since we did not implement switching plant positions st.stopMotor() pu.activate() time.sleep( 5 ) # Keep the pump active for 5 seconds, in a later iteration of this program this value would be dynamic pu.deactivate() st.stepBackward(267) st.stopMotor()
def __init__(self, motor_pins, pen_pin, best_callback): self.__PEN_PIN = pen_pin self.__pi = pigpio.pi() self.__pi.set_mode(self.__PEN_PIN, pigpio.OUTPUT) self.__x = 0 self.__y = 0 self.__one_step_x = 1 self.__one_step_y = 1 self.__cam_width = 640 self.__cam_height = 480 self.__paper_width = 210 self.__paper_height = 297 self.__width_scale = self.__paper_height / self.__cam_height self.__height_scale = self.__paper_width / self.__cam_width self.__scale = min(self.__paper_height / self.__cam_height, self.__paper_width / self.__cam_width) self.__motors = StepperMotor.StepperMotor(motor_pins, best_callback)
class Omniwheel(object): def __init__ (self, stepPin, directionPin, wheelAngle): self.motor = StepperMotor(stepPin, directionPin) self.wheelAngle = wheelAngle def calculateVelocity (self, drivingAngle, drivingSpeed): w = self.wheelAngle d = drivingAngle wheelSpeed = drivingSpeed * (math.cos(w) * math.cos(d) + math.sin(w) * math.sin(d)) if wheelSpeed > 0: self.motor.forward(wheelSpeed) else: self.motor.reverse(abs(wheelSpeed)) def rotate (self, speed): if speed >= 0: self.motor.forward(speed) else: self.motor.reverse(abs(speed))
import Adafruit_BBIO.GPIO as GPIO import time from StepperMotor import * motorYellow = StepperMotor("P9_21", "P9_23", "P9_16", "P9_25", "P9_27", "P9_22", StepperMotor.MICRO_STEP) motorGreen = StepperMotor("P8_8", "P8_10", "P8_19", "P8_12", "P8_14", "P8_13", StepperMotor.MICRO_STEP) motorBlue = StepperMotor("P9_24", "P9_26", "P9_42", "P9_30", "P9_41", "P9_28", StepperMotor.MICRO_STEP) motorBlue.forward(5) motorYellow.forward(5) motorGreen.forward(5) time.sleep(1) motorBlue.stop() motorYellow.stop() motorGreen.stop() while True: time.sleep(5)
import Adafruit_BBIO.GPIO as GPIO import time from StepperMotor import * steppingMode = SteppingMode("P9_23", "P9_25", "P9_27") motorBlue = StepperMotor("P9_22", "P9_24") motorGreen = StepperMotor("P9_16", "P9_15") motorYellow = StepperMotor("P9_42", "P9_41") steppingMode.setMode(5) motorBlue.forward(3) motorGreen.forward(10) motorYellow.forward(20) time.sleep(2) motorBlue.reverse(3) motorGreen.reverse(10) motorYellow.reverse(20) time.sleep(10) motorBlue.stop() motorGreen.stop() motorYellow.stop()
def initializeMotors(self): for i, p in enumerate(self.motorpins): self.motor.insert(i, StepperMotor.Motor(p, 12, Queue.Queue())) return
def __init__ (self, pin1, pin2, pwmA, pin3, pin4, pwmB, steppingMode, wheelAngle): self.motor = StepperMotor(pin1, pin2, pwmA, pin3, pin4, pwmB, steppingMode) self.wheelAngle = wheelAngle
#!/usr/bin/env python from time import sleep import random import RPi.GPIO as GPIO import StepperMotor GPIO.setmode(GPIO.BCM) GPIO.cleanup() m = StepperMotor.Motor([6, 13, 19, 26], 3) #if rpm is too high or low motor will just vibrate m.rpm = 15.0 i = 0 while i < 10: r = random.randint(0, 180) m.move_to(r) sleep(0.5) i = i + 1 GPIO.cleanup()
def __init__ (self, stepPin, directionPin, wheelAngle): self.motor = StepperMotor(stepPin, directionPin) self.wheelAngle = wheelAngle
return to_return #else: # return False def reset(self): self.angle_index = 0 #def next_available_angle(): # for angle in AVAILABLE_ANGLES: # yield angle if __name__ == "__main__": try: init_gpio() color_detector = ColorDetector.ColorDetector() stepper_motor = StepperMotor.StepperMotor(STEPPER_MOTOR_IN1, STEPPER_MOTOR_IN2, STEPPER_MOTOR_IN3, STEPPER_MOTOR_IN4) linear_selenoid = LinearSelenoid.LinearSelenoid(SELENOID_PIN) angle_generator = AngleGenerator(AVAILABLE_ANGLES) color_to_angle = {} #angle_generator = next_available_angle() new_angle = 0.0 print 'Waiting...' GPIO.output(STANDBY_LED, True) #GPIO.wait_for_edge(PAUSE_RESUME_BUTTON, GPIO.RISING)#Wait for first button press GPIO.add_event_detect(PAUSE_RESUME_BUTTON, GPIO.RISING, callback=pause_resume, bouncetime=1000) while keep_going:
#!/usr/bin/env python import Adafruit_BBIO.GPIO as GPIO from time import sleep from StepperMotor import * from termcolor import colored import math from IMU import * from Omnibot import * from PID import * motorYellow = StepperMotor("P9_21", "P9_23", "P9_16", "P9_25", "P9_27", "P9_22", StepperMotor.HALF_STEP) motorGreen = StepperMotor("P8_8", "P8_10", "P8_19", "P8_12", "P8_14", "P8_13", StepperMotor.HALF_STEP) motorBlue = StepperMotor("P9_24", "P9_26", "P9_42", "P9_30", "P9_41", "P9_28", StepperMotor.HALF_STEP) motorBlue.forward(10) sleep(.25) motorBlue.stop() motorGreen.forward(10) sleep(.25) motorGreen.stop() motorYellow.forward(10) sleep(.25) motorYellow.stop() sleep(5)