Fenrisulven: En Open source hund robot (13 / 14 steg)
Steg 13: Servo kontroll
Jag kommer att tala kort om hur du styr servo för att testa och skapa ben rörelse här om du vill skapa din egen rörelsen algoritm. Det genomföra två huvudsakliga sätt att testa och modell servon rörelsen innan du fullt ut den.
Den första metoden att är att ansluta Mini Maestro Servo Controller direkt till den datorn och använda Maestro Control Center Software att skapa ben rörelse. Detta är den lättare metoden av två.
Den andra metoden är kontroll servo via Node.js i smaken Pi 2. Raspberry Pi 2 använder i huvudsak ett maestro bibliotek ( https://github.com/omcaree/node-pololumaestro.git) skapad av omcaree för att kommunicera med Mini Maestro Servo Controller. Du måste ha alla nödvändiga Node.js biblioteket som jag nämner i Sig Raspberry Pi 2 redo för att detta ska fungera. Nedan är en exempel javascript koden med Node.js för att styra servo.
Exempelkod för hur användaren Node.js Mini Maestro Servo Controller bibliotek
Denna kod flytta servo fram och tillbaka på obestämd tid
var PololuMaestro = require("node-pololumaestro"); / / behövs för att använda servo bibliotek
var maestro = nya PololuMaestro("/dev/ttyACM0"); / / ingång din USB-portnamn här
Maestro.on ("ready", function() {//initiate kommunikation med Servo Controller
Console.log ("anslutningen skapade");
maestro.setSpeed (0, 100); / / set servo på pin 0 till hastighet 100.
});
var dröjsmål = 500. vår försening timer
var multiplikator = 0; dröjsmål multiplikator
While(1==1) {//loop
setTimeout(function() {/ / simulera dröjsmål
maestro.setTarget (0, 800); / / flytta servo på pin 0 medurs
}, Dröjsmål * multiplikator) ;// kommer att utföra maestro.setTarget (0, 800); efter 500 ms
Multiplikatorn ++; öka multiplikatorn så nästa fördröjning kommer att 1000ms
setTimeout(function() {
maestro.setTarget(0,2300); flytta servo på pin 0 motsols
}, Dröjsmål * multiplikator); //will utföra maestro.setTarget (0, 2300); efter 1000 ms
Multiplikatorn ++; / / öka multiplikatorn igen så nästa fördröjning kommer att 1500ms
}
Vad jag brukar göra är att simulera ben rörelsen i datorn först. Detta ger dig en sekvens av servo positioner i mikrosekund. Från där jag ser på alla nummer och se om jag kan kom upp med en algoritm för att genomföra den i Node.js.