Stap 9: Opereren omgekeerde Robot via seriële Monitor
Nu heb je een omgekeerde balancing robot. Vervolgens laten we beheersen door seriële monitor. Je kan er rechts/linksaf en ga vooruit/terug.
- update de gemodificeerde steekproefprogramma gekregen in stap 8 volgens onderstaande gegevens
- de bijgewerkte die arduino IDE met uploaden
- na het einde van de upload, begin seriële monitor vanuit IDE
- Selecteer 'Newline' en '115200 baud"rechts onderaan van seriële monitor
- verlof robot nog steeds gelegd voor 5 seconden
- Maak omgekeerde robot evenwicht zich volgens stap 6 (zonder de steun van een vinger in de regels 8 tot en met 10)
- input numerieke waarden in het bovenste linker venster van seriële monitor en Druk op de [Enter]-toets
- Zie actie of wijziging van de actie van uw robot
[tutorial voor stap 9]
[toelichting 7]
U kunt uw robot dynamisch door seriële monitor van PC via USB-kabel. Bijvoorbeeld u "00" in het venster van seriële monitor input en druk op de [Enter] ontvangen-toets, dan robot '0' en '0' afzonderlijk. Vandaar blijkt het recht op een regelmatige hoek onder twee keer zonder te stoppen.
- een "0" verzonden maakt robot slaat u rechtsaf bij een regelmatige hoek ter plaatse
- een '1' verzonden maakt robot linksaf bij een regelmatige hoek ter plaatse
- een aantal (n) voor '2' verzonden maken robot versneld vooruit naar rato van het aantal (n)
- een aantal (n) voor '3' verzonden maken robot versnellen achterwaarts naar rato van het aantal (n)
[een update op de schets van de steekproef (voor 4 plaatsen)]
(1) de volgende 5 regels kopiëren en plakken tussen de lijnen 17 en 18 in de gemodificeerde schets gekregen in stap 8.
vluchtige int drct = 0;
vluchtige boolean rechts = false;
vluchtige boolean links = false;
vluchtige int fwdBck = 0;
Copyright (C) 2014 ArduinoDeXXX alle rechten voorbehouden.
(2) de volgende 26 regels kopiëren en plakken ze over lijn 32 in de gemodificeerde schets gekregen in stap 8, namelijk het vervangen van deze lijnen voor "als (power > 0) {".
Als (Serial.available()) {}
drct = Serial.read();
Serial.println(drct);
}
Als (drct == 48) {rechts = true;}
else if (drct == 49) {links = true;}
else if (drct == 50) {fwdBck ++; drct = 0;}
else if (drct == 51) {fwdBck--; drct = 0;}
Als (recht == true) {}
analogWrite (6, 140);
digitalWrite (4, HIGH);
digitalWrite (5, laag);
analogWrite (9, 140);
digitalWrite (7, laag);
digitalWrite (8, hoge);
delay(40);
} else if (links == true) {}
analogWrite (6, 140);
digitalWrite (4, laag);
digitalWrite (5, hoge);
analogWrite (9, 140);
digitalWrite (7, hoge);
digitalWrite (8, laag);
delay(40);
} else if (power > 0) {}
Copyright (C) 2014 ArduinoDeXXX alle rechten voorbehouden.
(3) de volgende 4 regels kopiëren en plakken tussen de lijnen 55 en 56 in de gemodificeerde schets gekregen in stap 8.
drct = 0;
rechts = false;
links = false;
Copyright (C) 2014 ArduinoDeXXX alle rechten voorbehouden.
(4) de volgende 2 regels kopiëren en plakken ze over lijn 74 in de gemodificeerde schets gekregen in stap 8, namelijk het vervangen van deze lijnen voor "sumPower = sumPower + macht;".
sumPower = sumPower + macht + fwdBck * 4; 74a
Copyright (C) 2014 ArduinoDeXXX alle rechten voorbehouden.