Reto Eaglebot 2da Parte
OBJETIVO DE LA SESIÓN
Que las y los estudiantes pongan a prueba lo anteriormente aprendido en programación y circuitos electrónicos. En esta sesión, realizarán retos con el robot Eaglebot con el fin de poner en práctica sus conocimientos en programación. La sesión se encuentra dividida en dos partes para garantizar el máximo aprovechamiento.
MATERIALES PARA TRABAJAR DURANTE LA SESIÓN
> Computadora
> Arduino UNO
> Robot Eaglebot
> Cable de descarga
> Push button
> Resistencias 220Ω y 10kΩ
> Potenciómetro
> Display de 7 segmentos
> Pista Maratón
> LEDs
> Jumpers M-M
> Lápiz
> Colores
Actividad 1. Reto de programación 1
Escribe el programa en lenguaje de programación de arduino, para hacer una cuenta regresiva de 9 a 0 en un display de 7 segmentos.
#define segmento_1 2
#define segmento_2 3
#define segmento_3 4
#define segmento_4 5
#define segmento_5 6
#define segmento_6 7
#define segmento_7 8
void setup() {
Serial.begin(9600);
pinMode(segmento_1, OUTPUT); pinMode(segmento_2, OUTPUT); pinMode(segmento_3, OUTPUT); pinMode(segmento_4, OUTPUT); pinMode(segmento_5, OUTPUT); pinMode(segmento_6, OUTPUT); pinMode(segmento_7, OUTPUT);
pinMode(A0, INPUT); }
void loop(){
int lectura = analogRead(A0); int numero = map(lectura, 0, 1023, 0, 10);
if(numero == 9){
Serial.println(numero);
digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, HIGH); digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, HIGH); digitalWrite(segmento_5, LOW); digitalWrite(segmento_6, HIGH); digitalWrite(segmento_7, HIGH); delay(1000); }
if(numero == 8){
// 8
Serial.println(numero); digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, HIGH); digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, HIGH); digitalWrite(segmento_5, HIGH); digitalWrite(segmento_6, HIGH); digitalWrite(segmento_7, HIGH); delay(1000); }
if(numero == 7){
//7
Serial.println(numero); digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, HIGH); digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, LOW); digitalWrite(segmento_5, LOW); digitalWrite(segmento_6, LOW); digitalWrite(segmento_7, LOW); delay(1000); }
if(numero == 6){
//6
Serial.println(numero); digitalWrite(segmento_1, HIGH); digitalWrite(segmento_2, LOW); digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, HIGH); digitalWrite(segmento_5, HIGH); digitalWrite(segmento_6, HIGH); digitalWrite(segmento_7, HIGH); delay(1000);
}
if(numero == 5){
//5
Serial.println(numero);
digitalWrite(segmento_1, HIGH);
digitalWrite(segmento_2, LOW);
digitalWrite(segmento_3, HIGH); digitalWrite(segmento_4, HIGH);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, HIGH);
digitalWrite(segmento_7, HIGH); delay(1000);
}
if(numero == 4){
//4
Serial.println(numero);
digitalWrite(segmento_1, LOW);
digitalWrite(segmento_2, HIGH);
digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, LOW);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, HIGH);
digitalWrite(segmento_7, HIGH); delay(1000);
}
if(numero == 3){
//3
Serial.println(numero);
digitalWrite(segmento_1, HIGH);
digitalWrite(segmento_2, HIGH);
digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, HIGH);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, LOW);
digitalWrite(segmento_7, HIGH); delay(1000);
}
if(numero == 2){
//2
Serial.println(numero);
digitalWrite(segmento_1, HIGH);
digitalWrite(segmento_2, HIGH);
digitalWrite(segmento_3, LOW);
digitalWrite(segmento_4, HIGH);
digitalWrite(segmento_5, HIGH);
digitalWrite(segmento_6, LOW);
digitalWrite(segmento_7, HIGH); delay(1000);
}
Actividad 2. Reto de programación 2
if(numero == 1){
//1
Serial.println(numero);
digitalWrite(segmento_1, LOW);
digitalWrite(segmento_2, HIGH);
digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, LOW);
digitalWrite(segmento_5, LOW);
digitalWrite(segmento_6, LOW);
digitalWrite(segmento_7, LOW); delay(1000);
} if(numero == 0){
//0
Serial.println(numero);
digitalWrite(segmento_1, HIGH);
digitalWrite(segmento_2, HIGH);
digitalWrite(segmento_3, HIGH);
digitalWrite(segmento_4, HIGH);
digitalWrite(segmento_5, HIGH); digitalWrite(segmento_6, HIGH);
digitalWrite(segmento_7, LOW); delay(1000);
Realiza un diagrama de flujo de un programa en Arduino, en el cual deberás controlar el Eaglebot con 2 potenciómetros y 2 botones. Un potenciómetro hará que el Eaglebot gire a la derecha, un botón hará que vaya hacia adelante, otro botón hará que avance hacia atrás y por último el segundo potenciómetro hará girar al robot hacia la izquierda. Recuerda que el diagrama de flujo expresa la lógica de programación, este diagrama debe ser capaz de pasarse al lenguaje de programación de Arduino sin ambigüedad. Posteriormente reflexiona y comparte con el grupo,dónde podrías utilizar esta programación en la vida cotidiana.
Inicio
Declarar las constantes para los pines de los motores
Preparación Setup
Declarar las variables para los pines de los push y los potenciómetros
Si la lectura de adelante es alta
Declarar una variable para la lectura de los pulsadores (adelante y atrás) )y los potenciómetros (poten1 y poten2)
Asignar los pines del led y del buzzer como salidas digitales
Asignar los pines de los pulsadores como entradas analógicas
Asignar los pines de los motores como salidas digitales
Loop
Apagar los pines de los motores
Si la lectura de atrás es alta
Encender los motores hacia adelante
Encender los motores hacia atrás
Crear una variable vuelta_ izquierda donde se utilice la función map sobre la variable poten1
Crear una variable vuelta_ derecha donde se utilice la función map sobre la variable poten2
Encender el motor de la izquierda según el valor de la variable vuelta_ izquierda
Encender el motor de la derecha según el valor de la variable vuelta_derecha