AplTVY3-B3-1sk-4T
Z MediaWiki SPŠ a VOŠ Písek
(Rozdíly mezi verzemi)
(→se pohyboval vpřed do vzdálenosti 1m) |
(→jel v před a pokud čidlo ultrazvuku zjistí překážku se zastavil, kousek zacouval, otočil se o 160° a celý cyklus pokračoval) |
||
(Není zobrazeno 8 mezilehlých verzí od 3 uživatelů.) | |||
Řádka 9: | Řádka 9: | ||
==se pohyboval vpřed do vzdálenosti 1m == | ==se pohyboval vpřed do vzdálenosti 1m == | ||
− | |||
− | |||
− | + | <source lang="Cpp"> | |
− | + | int motor_left[] = {6, 7} | |
− | int | + | int motor_right[] = {8, 10} |
− | + | ||
− | + | ||
− | + | ||
− | + | void setup() { | |
− | + | Serial.begin(9600); | |
− | + | int i; | |
− | + | for(i = 0; i < 2; i++){ | |
− | + | pinMode(motor_left[i], OUTPUT); | |
+ | pinMode(motor_right[i], OUTPUT); | ||
− | + | drive_forward(); | |
− | + | delay(6200); | |
+ | motor_stop(); | ||
+ | Serial.println("1"); | ||
− | + | } | |
+ | } | ||
− | } | + | void loop() { |
+ | |||
+ | } | ||
− | void motor_stop(){ | + | void motor_stop(){ |
− | digitalWrite(motor_left[0], LOW); | + | digitalWrite(motor_left[0], LOW); |
− | digitalWrite(motor_left[1], LOW); | + | digitalWrite(motor_left[1], LOW); |
− | digitalWrite(motor_right[0], LOW); | + | digitalWrite(motor_right[0], LOW); |
− | digitalWrite(motor_right[1], LOW); | + | digitalWrite(motor_right[1], LOW); |
− | } | + | } |
− | void drive_forward(){ | + | void drive_forward(){ |
− | digitalWrite(motor_left[0], HIGH); | + | digitalWrite(motor_left[0], HIGH); |
− | digitalWrite(motor_left[1], LOW); | + | digitalWrite(motor_left[1], LOW); |
− | digitalWrite(motor_right[0], HIGH); | + | digitalWrite(motor_right[0], HIGH); |
− | digitalWrite(motor_right[1], LOW); | + | digitalWrite(motor_right[1], LOW); |
− | } | + | } |
− | + | </source> | |
+ | |||
+ | {{#widget:YouTube|id=1WMYtVgvqE8|Video jízdy vpřed|right}} | ||
==se pohyboval vpřed ve čtyřúhelníku o straně cca 0,5m == | ==se pohyboval vpřed ve čtyřúhelníku o straně cca 0,5m == | ||
− | int motor_left[] = {6, 7}; | + | <source lang="Cpp"> |
+ | int motor_left[] = {6, 7}; | ||
− | int motor_right[] = {8, 10}; | + | int motor_right[] = {8, 10}; |
− | void setup() { | + | void setup() { |
− | Serial.begin(9600); | + | Serial.begin(9600); |
− | int i; | + | int i; |
− | for(i = 0; i < 2; i++){ | + | for(i = 0; i < 2; i++){ |
− | pinMode(motor_left[i], OUTPUT); | + | pinMode(motor_left[i], OUTPUT); |
− | pinMode(motor_right[i], OUTPUT); | + | pinMode(motor_right[i], OUTPUT); |
− | } | + | } |
− | } | + | } |
− | void loop() {} | + | void loop() {} |
− | drive_forward(); | + | drive_forward(); |
− | delay(3200); | + | delay(3200); |
− | motor_stop(); | + | motor_stop(); |
− | Serial.println("1"); | + | Serial.println("1"); |
− | turn_left(); | + | turn_left(); |
− | delay(420); | + | delay(420); |
− | motor_stop(); | + | motor_stop(); |
− | Serial.println("3"); | + | Serial.println("3"); |
− | motor_stop(); | + | motor_stop(); |
− | delay(1000); | + | delay(1000); |
− | motor_stop(); | + | motor_stop(); |
− | Serial.println("5"); | + | Serial.println("5"); |
− | } | + | } |
− | void motor_stop(){ | + | void motor_stop(){ |
− | digitalWrite(motor_left[0], LOW); | + | digitalWrite(motor_left[0], LOW); |
− | digitalWrite(motor_left[1], LOW); | + | digitalWrite(motor_left[1], LOW); |
− | digitalWrite(motor_right[0], LOW); | + | digitalWrite(motor_right[0], LOW); |
− | digitalWrite(motor_right[1], LOW); | + | digitalWrite(motor_right[1], LOW); |
− | delay(25); | + | delay(25); |
− | } | + | } |
− | void drive_forward(){ | + | void drive_forward(){ |
− | digitalWrite(motor_left[0], HIGH); | + | digitalWrite(motor_left[0], HIGH); |
− | digitalWrite(motor_left[1], LOW); | + | digitalWrite(motor_left[1], LOW); |
− | digitalWrite(motor_right[0], HIGH); | + | digitalWrite(motor_right[0], HIGH); |
− | digitalWrite(motor_right[1], LOW); | + | digitalWrite(motor_right[1], LOW); |
− | } | + | } |
− | void turn_left(){ | + | void turn_left(){ |
− | digitalWrite(motor_left[0], LOW); | + | digitalWrite(motor_left[0], LOW); |
− | digitalWrite(motor_left[1], HIGH); | + | digitalWrite(motor_left[1], HIGH); |
− | + | digitalWrite(motor_right[0], HIGH); | |
− | digitalWrite(motor_right[0], HIGH); | + | digitalWrite(motor_right[1], LOW); |
− | digitalWrite(motor_right[1], LOW); | + | } |
− | }< | + | </source> |
− | + | ||
==jel rovně a zastavil na 60 cm vzdáleném místě označeném černou lepící páskou == | ==jel rovně a zastavil na 60 cm vzdáleném místě označeném černou lepící páskou == | ||
==se pohyboval dokud nebude stisknutý dotykový senzor == | ==se pohyboval dokud nebude stisknutý dotykový senzor == | ||
+ | |||
+ | <source lang="Cpp"> | ||
+ | |||
+ | int analogPin = 1; //nastavení vstupního pinu ze senzoru | ||
+ | |||
+ | int val = 0; // hodnota, která přijde z analogového pinu | ||
+ | |||
+ | int motor_left[] = {6, 7}; | ||
+ | int motor_right[] = {8, 10}; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(9600); | ||
+ | int i; | ||
+ | for(i = 0; i < 2; i++){ | ||
+ | pinMode(motor_left[i], OUTPUT); | ||
+ | pinMode(motor_right[i], OUTPUT); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | val = analogRead(analogPin); // načtení vstupního pinu | ||
+ | |||
+ | if (val>600) | ||
+ | { | ||
+ | drive_forward(); | ||
+ | delay(1000); | ||
+ | } | ||
+ | if (val <600) | ||
+ | { | ||
+ | motor_stop(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void motor_stop(){ | ||
+ | digitalWrite(motor_left[0], LOW); | ||
+ | digitalWrite(motor_left[1], LOW); | ||
+ | |||
+ | digitalWrite(motor_right[0], LOW); | ||
+ | digitalWrite(motor_right[1], LOW); | ||
+ | delay(25); | ||
+ | } | ||
+ | |||
+ | void drive_forward(){ | ||
+ | digitalWrite(motor_left[0], HIGH); | ||
+ | digitalWrite(motor_left[1], LOW); | ||
+ | |||
+ | digitalWrite(motor_right[0], HIGH); | ||
+ | digitalWrite(motor_right[1], LOW); | ||
+ | } | ||
+ | |||
+ | void drive_backward(){ | ||
+ | digitalWrite(motor_left[0], LOW); | ||
+ | digitalWrite(motor_left[1], HIGH); | ||
+ | |||
+ | digitalWrite(motor_right[0], LOW); | ||
+ | digitalWrite(motor_right[1], HIGH); | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | {{#widget:YouTube|id=-Cz6nE9azLk|Video jízdy vpřed|right}} | ||
+ | |||
==se rozjel na zvukový povel == | ==se rozjel na zvukový povel == | ||
==jel ve čtyřúhelníku a zastavil se u počátečního bodu. == | ==jel ve čtyřúhelníku a zastavil se u počátečního bodu. == | ||
==jel v před a pokud čidlo ultrazvuku zjistí překážku se zastavil, kousek zacouval, otočil se o 160° a celý cyklus pokračoval == | ==jel v před a pokud čidlo ultrazvuku zjistí překážku se zastavil, kousek zacouval, otočil se o 160° a celý cyklus pokračoval == | ||
+ | <source lang="Cpp"> | ||
+ | int analogPin = 1; // potentiometer wiper (middle terminal) connected to analog pin 3 | ||
+ | // outside leads to ground and +5V | ||
+ | int val = 0; // variable to store the value read | ||
+ | |||
+ | int motor_left[] = {6, 7}; | ||
+ | int motor_right[] = {8, 10}; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(9600); // setup serial | ||
+ | int i; | ||
+ | for(i = 0; i < 2; i++){ | ||
+ | pinMode(motor_left[i], OUTPUT); | ||
+ | pinMode(motor_right[i], OUTPUT); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void loop() | ||
+ | { | ||
+ | val = analogRead(analogPin); // read the input pin | ||
+ | Serial.println(val); // debug value | ||
+ | if (val>600) | ||
+ | { | ||
+ | drive_forward(); | ||
+ | delay(1000); | ||
+ | } | ||
+ | if (val <600) | ||
+ | { | ||
+ | motor_stop(); | ||
+ | drive_backward(); | ||
+ | delay(1600); | ||
+ | turn_left(); | ||
+ | delay(1000); | ||
+ | motor_stop(); | ||
+ | |||
+ | drive_forward(); | ||
+ | delay(5000); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | void motor_stop(){ | ||
+ | digitalWrite(motor_left[0], LOW); | ||
+ | digitalWrite(motor_left[1], LOW); | ||
+ | |||
+ | digitalWrite(motor_right[0], LOW); | ||
+ | digitalWrite(motor_right[1], LOW); | ||
+ | delay(25); | ||
+ | } | ||
+ | |||
+ | void drive_forward(){ | ||
+ | digitalWrite(motor_left[0], HIGH); | ||
+ | digitalWrite(motor_left[1], LOW); | ||
+ | |||
+ | digitalWrite(motor_right[0], HIGH); | ||
+ | digitalWrite(motor_right[1], LOW); | ||
+ | } | ||
+ | |||
+ | void drive_backward(){ | ||
+ | digitalWrite(motor_left[0], LOW); | ||
+ | digitalWrite(motor_left[1], HIGH); | ||
+ | |||
+ | digitalWrite(motor_right[0], LOW); | ||
+ | digitalWrite(motor_right[1], HIGH); | ||
+ | } | ||
+ | |||
+ | void turn_left(){ | ||
+ | digitalWrite(motor_left[0], LOW); | ||
+ | digitalWrite(motor_left[1], HIGH); | ||
+ | |||
+ | digitalWrite(motor_right[0], HIGH); | ||
+ | digitalWrite(motor_right[1], LOW); | ||
+ | } | ||
+ | |||
+ | <source> | ||
+ | |||
== s pomocí čidla světla pohyboval po čáře == | == s pomocí čidla světla pohyboval po čáře == | ||
== Start ve vzdálenosti 60 cm od černé linie. Robot najde dráhu a sleduje ji == | == Start ve vzdálenosti 60 cm od černé linie. Robot najde dráhu a sleduje ji == |
Aktuální verze z 18. 6. 2012, 11:51
HW: Arduino realizace: Maxa David Charvát Jakub Lukáš Jílek
Úkoly:
- Sestavte robota, napište program a vyzkoušejte proto, aby robot:
se pohyboval vpřed do vzdálenosti 1m
int motor_left[] = {6, 7} int motor_right[] = {8, 10} void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); drive_forward(); delay(6200); motor_stop(); Serial.println("1"); } } void loop() { } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); }
se pohyboval vpřed ve čtyřúhelníku o straně cca 0,5m
int motor_left[] = {6, 7}; int motor_right[] = {8, 10}; void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); } } void loop() {} drive_forward(); delay(3200); motor_stop(); Serial.println("1"); turn_left(); delay(420); motor_stop(); Serial.println("3"); motor_stop(); delay(1000); motor_stop(); Serial.println("5"); } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void turn_left(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); }
jel rovně a zastavil na 60 cm vzdáleném místě označeném černou lepící páskou
se pohyboval dokud nebude stisknutý dotykový senzor
int analogPin = 1; //nastavení vstupního pinu ze senzoru int val = 0; // hodnota, která přijde z analogového pinu int motor_left[] = {6, 7}; int motor_right[] = {8, 10}; void setup() { Serial.begin(9600); int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); } } void loop() { val = analogRead(analogPin); // načtení vstupního pinu if (val>600) { drive_forward(); delay(1000); } if (val <600) { motor_stop(); } } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void drive_backward(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); }
se rozjel na zvukový povel
jel ve čtyřúhelníku a zastavil se u počátečního bodu.
jel v před a pokud čidlo ultrazvuku zjistí překážku se zastavil, kousek zacouval, otočil se o 160° a celý cyklus pokračoval
int analogPin = 1; // potentiometer wiper (middle terminal) connected to analog pin 3 // outside leads to ground and +5V int val = 0; // variable to store the value read int motor_left[] = {6, 7}; int motor_right[] = {8, 10}; void setup() { Serial.begin(9600); // setup serial int i; for(i = 0; i < 2; i++){ pinMode(motor_left[i], OUTPUT); pinMode(motor_right[i], OUTPUT); } } void loop() { val = analogRead(analogPin); // read the input pin Serial.println(val); // debug value if (val>600) { drive_forward(); delay(1000); } if (val <600) { motor_stop(); drive_backward(); delay(1600); turn_left(); delay(1000); motor_stop(); drive_forward(); delay(5000); } } void motor_stop(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], LOW); delay(25); } void drive_forward(){ digitalWrite(motor_left[0], HIGH); digitalWrite(motor_left[1], LOW); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } void drive_backward(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], LOW); digitalWrite(motor_right[1], HIGH); } void turn_left(){ digitalWrite(motor_left[0], LOW); digitalWrite(motor_left[1], HIGH); digitalWrite(motor_right[0], HIGH); digitalWrite(motor_right[1], LOW); } <source> == s pomocí čidla světla pohyboval po čáře == == Start ve vzdálenosti 60 cm od černé linie. Robot najde dráhu a sleduje ji == == Naučte robota šplhat přes minimálně 2,5 cm tlustou knihu. == == Najde předmět, uchopí a přiveze == == Nakombinujte různá čidla pro pohyb robota ==