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 "Nieuwe regel" en "115200 baud" rechts onderaan van seriële monitor
- Maak omgekeerde robot evenwicht zich volgens stap 6 (zonder de steun van een vinger in de lijnen 6 tot en met 8)
- 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 8]
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)
:
[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.
int drct = 0;
Booleaanse rechts = false;
Booleaanse links = false;
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 lijnen 55 en DL26 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.