En enkel och mycket lätt inverterad pendel balansera Robot (5 / 11 steg)
Steg 5: Överför en prov skiss till Arduino
Med hjälp av IDE ett prov skiss för inverterad robot är upp till arduino.
- Om du inte hittar MsTimer2 bibliotek i IDE, installera det från website(*)
(* En annan enklare skiss, ver2.0, har varit tillgänglig sedan augusti 2014. Det behöver inte MsTimer2.)
[anmärkning 3]
För att göra en inverterad pendel balans själv, styrs motor vridmoment dynamiskt. Denna metod uttrycks som en plan formel med 4 variabler med anknytning till staten där pendeln.
"motor vridmoment = k1 * vinkel på pendeln
+ k2 * vinkelformig hastighet av pendel
+ k3 * hastighet av den nedre änden av pendel
+ k4 * förskjutning av den nedre änden av pendel från en referenspunkt "
K1, k2, k3 och k4 är statiska koefficienter med lämpliga värden. I en prov skiss i pdf filen nedan uttrycker en lång ekvation på linjen 72 denna formel. För att göra inverterade robot balans själv, har vi att välja rätt värden för koefficienterna 4 respektive och vet rätt värde för var och en av dessa 4 variabler i realtid.
En gyro-sensor ger andra variabelvärdet, vinkelformig hastighet av pendel, dynamiskt som en spänning på dess utgångsstiftet. Och arduino uppskattar första variabelvärdet, vinkel på pendeln, samtidigt genom att integrera den andra variabeln.
Å andra sidan, kan inte tredje eller fjärde variabelvärdet mätas med gyro-sensor. Så en annan sorts sensor eller mätare bör användas för att få dem i realtid. Men vår inverterade robot har ingen mer enhet än en gyro-modul. Således blir det ett pussel att uppskatta dessa 2 variabler värden dynamiskt. I en prov skiss i pdf filen nedan, bör 2 maskerade ekvationer på linje 76 och 77 användas för att uppskatta dem. Här är de lämnade maskerade för att inte skämma bort lösa detta pussel.
[not 4]
Om du använder några andra gyro-modul än som anges i steg 1 skulle 2 konstanter på linje 10 och 11 i provet skissen i pdf-filen ändras. Dessa konstanter express k1 och k2 respektive i formeln ovan. För exempel om en ENC-03R, gyro-sensor på börsnoterade modul, används utan op förstärkare, inspänning till arduino blir 1/10 gånger. Sedan bör konstanterna på linje 10 och 11 i skissen ändra att tio gånger skala respektive.
[en prov skiss (program) för inverterad robot]
Kopiera hela texten till "invertedRobot.pdf" eller "invertedRobot_v20_noTimer.pdf" nedan, klistra in den till IDE och ladda upp den till arduino.
(* 1) Med några språk parametrar på platsen, en ikon av pdf fil är inte visas nedan (i slutet av raden i detta steg). Sedan bör du skriver " i adressfältet i din webbläsare eller se en Japansk version av detta Instructable.
(* 2). Spara pdf-filen i din dator och öppna den i rätt pdf-läsare. Eller du får en skadad program genom att öppna den i webbläsaren.
(* 3). If "; 72"inte visas i slutet av en ekvation på linjen 72, suppleant hela en ekvationen nedan för den.
powerScale = (kAngle * thetaI / 200) + (kOmega * omegaI / 78) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000); 72
(* 4). Klistra in kopian till IDE eller redaktör, tryckflar som "/ /" som "/ /" (ett hinder mellanslag infogas) skulle hända, sedan korrigeras.
(* 5). En analog gyro-modul används här påverkas av temperaturen. Om din robot inte kan balansera sig väl på sommaren, konstanta värden (45, 85, 57) på linjer 10 till 12 i den ursprungliga prov skissen "jagnvertedRobot.pdf" bör ändras som "52, 95, 53" (La på Aug. 20 2014).
(* 6). Ett enklare alternativ skiss "invertedRobot_v20_noTimer.pdf" har lagts till som ver.2.0 på Aug. 20 2014. Om det inte innehåller timer bibliotek, MsTimer2, för avbrott hantering, kan du bli robot balansen bättre.
(* 7). Copyright (C) 2014 ArduinoDeXXX alla rättigheter reserverade.