AplTVY3-B3-1sk-4T: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Řádek 179: | Řádek 179: | ||
==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, 09: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
<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>