Stap 5: Het uploaden van de schets van de steekproef aan Arduino
Met behulp van IDE, is het monster schets voor omgekeerde robot geüpload naar de Arduino.
- Arduino verbinden met PC via een USB-kabel
- De batterij module verbreken 4AA batterijhouder
- Robot op desktop of vloer vast en laat het gerust
- Downloaden (*) het PDF-bestand gekoppeld aan het volgende naar de laatste regel in deze stap (* u een beschadigde programma krijgen als u dit bestand in webbrowser openen en kopiëren van de inhoud)
- Open het bestand in goede lezer en kopieer de hele tekst in het bestand
- Plak het kopiëren naar IDE en juiste drukfouten
- Gecorrigeerde schets aan de Arduino IDE met uploaden
:
[Noot 4]
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.
De gyro-sensor geeft de tweede waarde van de variabele, hoeksnelheid van de slinger, dynamisch door een 16-bits integer opgehaald. 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.
:
[Opmerking 5]
L3GD20 digitale gyro sensor heeft drie verschillende meting bereiken; +/-250dps, +/-500dps en +/-2000dps (dps: mate per seconde). Deze sensor output hoeksnelheid als een 16-bits geheel getal. In dit instructable de minimale afstand (+/-250dps) wordt aangenomen, waarin een cijfer van uitvoer "0.00875dps" betekent.
:
[Toelichting 6]
De output van de gyro-sensor wordt doorgegeven aan de Arduino door SPI interface. Algemene technische discussie over SPI of bedrading voor het wordt hier niet beschreven. Als de gyro module gemaakt door Pololu werden gebruikt in plaats van Akizuki van één, zie '(3) Equivalent of alternatief Gyro Module' [in commentaar voor Gyro Module] in stap 1. Ik heb niet geprobeerd de Pololu module. In de steekproefprogramma gekoppeld aan het einde van deze stap, wordt de hoek rond de y-as gemeten om evenwicht te brengen. Maar wanneer het de Pololu werden gebruikt, andere as (X of Z) kan worden gemeten of teken van output kan worden omgekeerd. Bijvoorbeeld, als de houding van de robot rond de x-as van L3GD20 zijn aangetroffen en teken van uitvoer is omgekeerd, de rechterhand van regel DL28 in het steekproefprogramma moet worden herschreven "-((L3GD20_read(0x29) << 8) | L3GD20_read(0x28)) ".
:
[De monster schets (programma) voor omgekeerde robot]
Kopieer de hele tekst van "invertedRobot_v20d_noTimer.pdf" hieronder, stijfsel op voor naar de IDE en deze uploaden naar de Arduino (** 1-5).
(* 1) 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.
(* 2). If "; 72"wordt niet weergegeven aan het einde van regel 72, plaatsvervanger geheel een vergelijking hieronder voor het. Het is niet hetzelfde als de originele versie.
powerScale = (kAngle * thetaI / 100) + (kOmega * omegaI / 100) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000); 72
(* 3). Zoals het plakken van de kopie IDE of editor, drukfouten "/ /" als "/ /" (een obstakel spatie ingevoegd) kan gebeuren, dan moet u deze corrigeren.
(* 4). De lijn nummer geschreven in de monster-schets zoals commentaar (bv //DL2) komt overeen met de eerdere schets "invertedRobot.pdf" of "invertedRobot_v20_noTimer.pdf" in de oorspronkelijke versie.
(* 5). Copyright (C) 2015 ArduinoDeXXX-alle rechten voorbehouden.
:
[De schets te herstellen L3GD20 vervoerder gyro module]
Als de uitvoer van gyro module vreemd wordt, zie "(2) abnormale productie van Gyro" [in commentaar voor Gyro Module] in stap 1. Daar twee tegenmaatregelen worden weergegeven. De schets gebruikt in de tweede maatregel, "dgtlGYRO_L3GD20_SPI_recover.pdf," is aangesloten op de laatste regel van deze stap.