def __init__(self, comPort, pinNumbers): assert len(pinNumbers) > 0, "Parameter pinNumbers has to contain at least one number" assert type(pinNumbers[0]) is int and type(pinNumbers[1]) is int, "pinNumbers must contain integers" self.arduino = Board(comPort, boards.BOARDS["arduino_due"]) if(len(pinNumbers)>1): self.pins = pinNumbers[:2] else: self.pins = pinNumbers self.servos = servoFirmata.servoFirmata(self.arduino, self.pins, [90,90]) time.sleep(2)
from pyfirmata import Board, util, boards from random import randint import math PORT = '/dev/cu.usbmodem1411' def test_handle(*data): print list(data[::2]) b = Board(PORT, boards.BOARDS['arduino'], 57600) b.add_cmd_handler(0x71, test_handle) random_strings = [] for i in xrange(10): r = map(lambda x: randint(0, 127), xrange(8))] print r s = ''.join(map(lambda x: chr(x), r)) b.send_sysex(0x71, util.str_to_two_byte_iter(s)) print '=================' b.pass_time(2) while b.bytes_available(): b.iterate()
# set the post Comport = "/dev/ttyACM0" #-------------select servo locations------------ servoPos1 = GUI.selectPoint(camera.getNewFrame()) GUI.setCircle(servoPos1, 5, (0, 0, 255)) servoPos2 = GUI.selectPoint(camera.getNewFrame()) GUI.setCircle(servoPos2, 5, (0, 0, 255)) servoPos3 = GUI.selectPoint(camera.getNewFrame()) GUI.setCircle(servoPos3, 5, (0, 0, 255)) print('servo positions set') #----------------------------------------------- # create a Board object arduino = Board(Comport, boards.BOARDS["arduino_due"]) # set initial servo position servoInitPos = 65 # create a servoFirmate object per servo servoFirmata1 = servoFirmata(arduino, [2], [servoInitPos]) servoFirmata2 = servoFirmata(arduino, [3], [servoInitPos]) servoFirmata3 = servoFirmata(arduino, [4], [servoInitPos]) #---------------------------create servo objects---------------------------------------------------------------------- # calculate the avarage of servoPos2 and servoPos3 and substract servoPos1. result is direction of servo1 dirServo1 = [(servoPos2[0] + servoPos3[0]) / 2 - servoPos1[0], (servoPos2[1] + servoPos3[1]) / 2 - servoPos1[1]] # create servo1 object