Satellitpositioneringssystem för VEX Cortex (8 / 9 steg)
Steg 8: Skriva en autonom
Du har gjort det till en av de svåraste delarna i detta Instructable, skriver de autonoma. Se till att alla dina motorer och sensorer är anslutna innan du ens börjar en autonom, och ställer in ordentligt i koden. Om du skriver en autonom för en tävling, rekommenderar jag starkt tar en birds eye view bild av fältet, och skissa den väg som du vill använda roboten att ta.
För detta autonoma, vi ska sticka med en mycket enkel kod, men allt du lär dig här kan användas till en mycket komplex och höga poäng autonoma!
Programmera en enkel autonoma:
Låt oss säga att jag vill ha roboten att driva framåt, vända 90 grader medurs, lyft upp hissen, och sedan köra baklänges, detta kan enkelt göras med de funktioner som du har gjort!
standardMove (200, 80); Ring funktionen flytta, för 2 millisekunder hastighet 80
standardTurn(900); Anropa funktionen tur, vänd 900 eller 90 grader. Om du ville vända 45 grader, skulle du ange 450
standardLift (500, 127); Lyfta hissen på full effekt, för 5 millisekunder
standardMove (300,-80); Flytta bakåt för 3 millisekunder, hastighet 80 eller-80 i detta fall
Det är det, se hur användbara dessa funktioner kan vara, det blir bara fyra flera dussin rader med kod! Utan autonoma funktioner, skulle att koden se något mer så här...
motor [BackL] = 80. Gå framåt
motor [italienska] = 80.
motor [BackR] = 80.
motor [FrontR] = 80.
wait1Msec(200);
motor [BackL] = 0;
motor [italienska] = 0;
motor [BackR] = 0;
motor [FrontR] = 0;
SensorValue [Gyro] = 0;
om (SensorValue [Gyro] < 900) {//Turn 90 grader
motor [BackL] = 50;
motor [italienska] = 50;
motor [BackR] = -50;
motor [FrontR] = -50
wait1Msec(100);
motor [BackL] = 0;
motor [italienska] = 0;
motor [BackR] = 0;
motor [FrontR] = 0;
}
annars om (SensorValue [Gyro] > 900) {
motor [BackL] = -50;
motor [italienska] = -50;
motor [BackR] = 50;
motor [FrontR] = 50;
wait1Msec(100);
motor [BackL] = 0;
motor [italienska] = 0;
motor [BackR] = 0;
motor [FrontR] = 0;
}
annars om (SensorValue [Gyro] == 900) {
motor [BackL] = 0;
motor [italienska] = 0;
motor [BackR] = 0;
motor [FrontR] = 0;
}
annat {
Gör ingenting
}
motor [BackL] = 127; Lyft upp hissen
motor [BackR] = 127;
motor [TopL] = 127;
motor [TopR] = 127;
wait1Msec(500);
motor [BackL] = 0;
motor [BackR] = 0;
motor [TopL] = 0;
motor [TopR] = 0;
motor [BackL] =-80; Flytta bakåt
motor [italienska] =-80;
motor [BackR] =-80;
motor [FrontR] =-80;
wait1Msec(300);
motor [BackL] = 0;
motor [italienska] = 0;
motor [BackR] = 0;
motor [FrontR] = 0;
Ja... Använd funktionerna, det gör din uppgift mycket lättare.