Stap 5: Het uploaden van de schets van een monster aan Arduino
Met behulp van IDE een steekproef schets voor omgekeerde robot is geüpload naar de arduino.
- Als u niet kan MsTimer2 bibliotheek in IDE vinden, installeren vanaf website(*)
(* Een andere eenvoudiger schets, ver2.0, is al beschikbaar sinds augustus 2014. Het doet geen behoefte aan MsTimer2.)
[Noot 3]
Om een omgekeerde slinger evenwicht zelf, wordt motor koppel dynamisch geregeld. Deze methode voor de controle wordt uitgedrukt met de formule van een vliegtuig met 4 variabelen die verband houden met de staat van de slinger.
"motor koppel = k1 * hoek van slinger
+ k2 * hoeksnelheid van de slinger
+ k3 * snelheid van de onderkant van de slinger
+ k4 * verplaatsing van het onderste uiteinde van de slinger van een referentiepunt "
zijn statische coëfficiënten en bijbehorende waarden K1, k2, k3 en k4. Een lange vergelijking op lijn 72 spreekt in een monster schets in PDF-bestand hieronder, deze formule. We moeten om omgekeerde robot evenwicht zelf, respectievelijk selecteren van de juiste waarden voor deze 4 coëfficiënten en weet de juiste waarde van elk van deze 4 variabelen in real-time.
Een gyro-sensor geeft de tweede waarde van de variabele, hoeksnelheid van de slinger, dynamisch als een spanning op de uitgang-Pins. En arduino schat de eerste waarde van de variabele, hoek van de slinger, zich door de integratie van de tweede variabele.
Aan de andere kant, kan niet de derde of de vierde variabele waarde worden gemeten door gyro-sensor. Dus een ander soort sensor of meter moet worden gebruikt om hen te krijgen in real-time. Maar onze omgekeerde robot heeft geen meer apparaat dan een gyro-module. Zo wordt het een puzzel te schatten deze 2 variabelen waarden dynamisch. In een monster sketch in PDF-bestand hieronder, moeten 2 gemaskerde vergelijkingen op lijnen 76 en 77 worden gebruikt om te schatten hen. Hier zitten ze gemaskerde niet te bederven deze puzzel op te lossen.
[Noot 4]
Als sommige andere gyro-module dan vermeld in stap 1 wordt gebruikt, zou 2 constanten op lijn 10 en 11 in de schets van de steekproef in het PDF-bestand worden gewijzigd. Deze constanten express k1 en k2 respectievelijk in de bovenstaande formule. Voor het voorbeeld als een ENC-03R, gyro-sensor op de vermelde module wordt gebruikt zonder op de versterker, de ingangsspanning om arduino wordt 1/10 keer. Vervolgens moet de constanten op lijn 10 en 11 in de schets verandering aan tien keer schaal respectievelijk.
[een monster schets (programma) voor omgekeerde robot]
Kopieer de hele tekst van "invertedRobot.pdf" of "invertedRobot_v20_noTimer.pdf" hieronder, stijfsel op voor naar de IDE en deze uploaden naar de arduino.
(* 1) Met enkele parameters van de taal op de site, een icoon van de pdf file is niet hieronder (aan het einde van de lijn van deze stap). Vervolgens moet u typt u " in de adresbalk van uw browser of een Japanse versie van dit Instructable verwijzen.
(* 2). Het PDF-bestand opslaan in uw PC en open het in de juiste pdf-lezer. Of u een beschadigde programma krijgen door het te openen in de webbrowser.
(* 3). If "; 72"wordt niet weergegeven aan het einde van een vergelijking op lijn 72, plaatsvervanger geheel een vergelijking hieronder voor het.
powerScale = (kAngle * thetaI / 200) + (kOmega * omegaI / 78) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000); 72
(* 4). Plakken van de kopie IDE of editor, drukfouten zoals "/ /" als "/ /" (een obstakel spatie ingevoegd) kan gebeuren, dan moet u deze corrigeren.
(* 5). Een analoge gyro-module gebruikt hier wordt beïnvloed door de temperatuur. Als je robot kan niet sluitend zelf goed in de zomer, constante waarden (85, 45, 57) op lijnen 10 tot en met 12 in de oorspronkelijke steekproef schets "iknvertedRobot.pdf" moet worden gewijzigd zoals "95, 52, 53" (toegevoegd op 20 Aug.-2014).
(* 6). Een eenvoudiger alternatief schets "invertedRobot_v20_noTimer.pdf" is toegevoegd als versie 2.0 op Aug. 20 2014. Hoewel het geen timer bibliotheek, MsTimer2, voor de interrupt handling, zou het robot evenwicht beterkon maken.
(* 7). Copyright (C) 2014 ArduinoDeXXX alle rechten voorbehouden.