Mångsidiga mobila Manipulator Mk 1 (66 / 80 steg)
Steg 66: Python-bibliotek
När du har slutfört föregående steg, bör du börja använda medföljande Multipurpose mobil Manipulator biblioteket för att börja utveckla applikationer med hjälp av Python 2.7. Den huvudsakliga skript som kontrollerar robotens ställdon och givare kallas MMM.py. Här är en översikt över hur det fungerar:
Seriell kommunikation kommandon:
- Mmm(portName) öppnar en ny seriell kanal på robotens Arduino Mega 2560 portname. Ge Arduino ungefär 5 sekunder för att initiera efter anslutning innan du skickar några ytterligare kommandon.
- parseData() får sensormätningar på roboten genom att läsa den seriella porten och tolka indata.
- Update() skickar alla ställdon positioner till Arduino genom att skriva till den seriella porten, uppdatera verkliga roboten. Observera att roboten inte kommer att flytta någon av dess manöverdon förrän update() kallas!
Manöverdonet placering och Sensor läsa kommandon:
- Reset() återställer alla ställdon positioner till deras standardvärden.
- setWheelVelocity (leftSpeed, rightSpeed) styr hjulen. Enheter är i meter och positiva värden flyttar hjulen framåt medan negativa värden skickar hjulen bakåt. Input är +.18 m/s till -.18 m/s.
- rotateShoulders (leftAngle, rightAngle) roterar axlarna. Spänna av ingång är från 0 till 120 grader, där 120 grader roterar axlarna fullt inåt.
- rotateElbows (leftAngle, rightAngle) roterar armbågarna. Ingång är från-60 till 60 grader, där 60 grader roterar armbågarna helt uppåt.
- extendArms (leftAmount, rightAmount) sträcker armarna i meter. Ingång är från 0 meter till.127 meter (ungefär 5 inches).
- setLeftGrippers (l1, l2, l3, l4, l5) roterar upp till 5 servomotorer på vänster griparen. Ingång för varje servo är 0 till 180 grader.
- setRightGrippers (r1, r2, r3, r4, r5) roterar upp till 5 servomotorer på rätt griparen. Ingång för varje servo är 0 till 180 grader.
- getLeftRange() och getRightRange() tillbaka avläsningarna som vänster och höger avståndsmätare avstånd, från 0 till 100 cm. mätvärden som är out of bounds tillbaka -1.
Här är ett mycket grundläggande exempel manus av hur dessa kommandon används för att göra roboten flytta i Python 2.7:
från MMM import importera MMM < br > tid
mmm = MMM('COM3') # skapar en seriell anslutning på COM3
Time.Sleep(5) # ge lite tid för att ansluta
#continuous slinga
mmm.setWheelVelocity(.18,-.18) # roterar robot vänster
mmm.rotateShoulders(120,0) # ena axeln in, en ut
mmm.rotateElbows(60,-60) # en armbåge upp, en ned
mmm.extendArms(0,.127) # en arm indragen, en utökad
mmm.setLeftGrippers(0,0,0,0,0) # alla servon vid 0 grader
mmm.setRightGrippers(0,0,0,0,0) # alla servon på 180 grader
mmm.Update() # skicka uppdaterad manöverdonet stater till robot