Skip to content

Instantly share code, notes, and snippets.

@sprusr
Last active March 12, 2017 11:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sprusr/7bc4d06fa8adf54cc365f7f344d7977a to your computer and use it in GitHub Desktop.
Save sprusr/7bc4d06fa8adf54cc365f7f344d7977a to your computer and use it in GitHub Desktop.
For controlling a linear motorised pot
import serial
from Adafruit_MotorHAT import Adafruit_MotorHAT, Adafruit_DCMotor
import time
class Slider():
def __init__(self, serial_device='/dev/tty.usbserial'):
self.ser = serial.Serial(serial_device, 9600)
mh = Adafruit_MotorHAT(addr=0x60)
self.motor = mh.getMotor(3)
#self.motor_setup()
"""
def motor_setup(self):
self.motor.run(Adafruit_MotorHAT.FORWARD)
self.motor.setSpeed(255)
time.sleep(0.5)
self.motor.setSpeed(0)
time.sleep(0.5)
self.maxpos = ser.readline()
self.motor.run(Adafruit_MotorHAT.BACKWARD)
self.motor.setSpeed(255)
time.sleep(0.5)
self.motor.setSpeed(0)
time.sleep(0.5)
self.minpos = ser.readline()
"""
def get_pos(self):
return int(self.ser.readline().split()[1])
def get_pot_pos(self):
return int(self.ser.readline().split()[2])
def is_touched(self):
return int(self.ser.readline().split()[0]) == 1
def set_pos(self, pos, speed=100):
while (self.get_pos() != pos):
if self.get_pos() > pos:
self.motor.run(Adafruit_MotorHAT.FORWARD)
self.motor.setSpeed(speed)
else:
self.motor.run(Adafruit_MotorHAT.BACKWARD)
self.motor.setSpeed(speed)
self.motor.run(Adafruit_MotorHAT.RELEASE)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment