En annan enklare inverterad pendel Robot (5 / 9 steg)
Steg 5: Ladda upp provet skiss till Arduino
Använda IDE, är provet skiss för inverterad robot upp till Arduino.
- Anslut Arduino till PC via en USB-kabel
- Koppla bort batteriet fäst från 4AA batterihållare
- Fastställa robot på skrivbordet eller golv och lämna den i vila
- Hämta (*) i pdf-filen bifogas nästa till sista raden i det här steget (* du får en skadad program om du öppnar filen i webbläsaren och kopiera dess innehåll)
- Öppna filen i rätt läsare och kopiera den hela texten i filen
- Klistra in kopian till IDE och korrekt tryckflar
- Ladda upp korrigerade skiss till Arduino använder IDE
:
[not 4]
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.
Gyro-sensor ger andra variabelvärdet, vinkelformig hastighet av pendel, dynamiskt av en 16-bitars heltal. 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 sensoren. 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 5]
L3GD20 digital gyro sensor har tre olika mätning spänner; + /-250dps, +/-500dps och +/-2000dps (dps: grad per sekund). Denna sensor utgångar vinkelformig hastighet som en 16-bitars heltal. Detta instructable minimiutbud (+/-250dps) antogs, där en siffra av produktionen innebär 0.00875dps.
:
[Not 6]
Produktionen av gyro sensoren överförs till Arduino av SPI gränssnitt. Allmän teknisk diskussion om SPI eller kablar för det beskrivs inte här. Om modulen gyro som Pololu användes i stället för Akizukis en, se "(3) motsvarande eller alternativ Gyro modul" [i kommentar för Gyro modul] i steg 1. Jag har inte provat Pololus modul. I programmet prov bifogas i slutet av detta steg, mäts vinkeln runt y-axeln för att balansera. Men när Pololu användes, andra axel (X eller Z) kan mätas eller tecken på utdata kan inverteras. Till exempel om hållningen av robot upptäcktes runt x-axeln av L3GD20 och tecken på utdata är inverterad, högra hand linje DL28 i programmet prov bör skrivas "-((L3GD20_read(0x29) << 8) | L3GD20_read(0x28)) ".
:
[Urval skissen (program) för inverterad robot]
Kopiera hela texten i "invertedRobot_v20d_noTimer.pdf" nedan, klistra in den till IDE och ladda upp den till Arduino (** 1-5).
(* 1) 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.
(* 2). If "; 72"inte visas i slutet av raden 72, suppleant hela en ekvationen nedan för den. Det är inte samma som den ursprungliga versionen.
powerScale = (kAngle * thetaI / 100) + (kOmega * omegaI / 100) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000); 72
(* 3). Klistra in kopian till IDE eller redaktör, tryckflar som "/ /" som "/ /" (ett hinder mellanslag infogas) skulle hända, sedan korrigeras.
(* 4). Linjen nummer skrivet i provet skissen som kommentar (t.ex. //DL2) stämmer överens med den tidigare skiss "invertedRobot.pdf" eller "invertedRobot_v20_noTimer.pdf" i den ursprungliga versionen.
(* 5). Copyright (C) 2015 ArduinoDeXXX alla rättigheter reserverade.
:
[Skissen att återställa L3GD20 carrier gyro modul]
Om produktionen av gyro modul blir konstigt, se "(2) onormal produktion av Gyro" [i kommentar för Gyro modul] i steg 1. Det finns två motåtgärder visas. Den skiss som används i det andra måttet, "dgtlGYRO_L3GD20_SPI_recover.pdf," är kopplad till den sista raden i detta steg.