Want to make creations as awesome as this one?

Transcript

¿Pertenecer o morir?

Misión:Seguridad en neoterra

Comenzar

1

2

3

4

5

La misión

La ciudad de NeoTerra ha emergido como un refugio de desarrollo sostenible con el fin de proteger a los pocos humanos del planeta que han logrado sobrevivir a un virus mortal sumamente contagioso, el virus cada vez se hace más resistente y se ha apoderado de cualquier ser con vida fuera de esta ciudad. Aunque todo parece estar bajo control,la gran capacidad de mutación de este virus ha traído consigo nuevas amenazas que ponen en riesgo la seguridad y estabilidad de la ciudad.

La misión

Como ingenieros de élite, mejor conocidos como los “Ingenieros de la resistencia” tienen la misión de proteger NeoTerra desarrollando y programando soluciones tecnológicas avanzadas utilizando una poderosa herramienta llamada Arduino. Solo hay una regla en Neo Terra, todos los habitantes sin excepción están llamados a involucrarse con el crecimiento de la ciudad y su seguridad, en caso de no hacerlo, serán desterrados y quedarán al acecho del virus que se ha apoderado del resto de la humanidad.

La base

NIVEL UNO

NIVEL UNO

NeoTerra ha sido blanco de ataques continuos que intentan burlar los sistemas de seguridad de la ciudad. Han habido reportes de intentos de intrusión en áreas restringidas, lo que requiere un sistema de alarma confiable para proteger los puntos críticos. ¿Están listos para el desafío?

ADELANTE

¡¡¡PREFIERO EL DESTIERRO!!!

¡atentos ingenieros!

DESAFÍO 6

DESAFÍO 1

DESAFÍO 2

DESAFÍO 4

DESAFÍO 3

DESAFIO 5

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

Programar una entrada o salida

deSAFÍO 1ALARMA ANTI-INTRUSOS

AYUDA

Instalación de librerías: “Grove_Chainable_RGB_LED”. Configuración de entradas y salidas:

  • Salida Digital: buzzer (variable - “alarma”)
  • Entrada Digital: sensor Pirolico (variable - “intruso”)
  • Instrucciones para led RGB:
#include "ChainableLED.h" ChainableLED leds(6,7,1); Acciones:
  • Encender la alarma (buzzer) 2 segundos y apagarla (esto solo lo hará una vez).
  • Encender el led en color azul por 1 segundo, apagarlo y encender el led en color rojo por 2 segundos.. y así cíclicamente.

Nivel 2

Desafío 1: Alarma Anti intrusos

  • Instalar la librería: Grove_Chainable_RGB_LED
  • Incluir la librería #include "ChainableLED.h" hasta arriba del programa.
  • Usar la función ChainableLED leds(6,7,1); definir pines del led en “D6”.
  • Recuerde usar la función delay para crear retardos de tiempo para el buzzer
  • Usar la función leds.setColorRGB(0,R,G,B); donde se indica el led, color rojo, verde y azul.
  • El valor de 255 indica la intensidad del color, experimente si quiere con ella.

Configuración de entradas y salidas: Alumbrado público

  • Salida Digital: led rojo (variable - “foco”),
  • Salida Digital: relay (variable - “cerradura”).
  • Entrada Analógica: sensor de luz (variable - “luz”).
Acciones:
  • Encender la cerradura (relay) 3 segundos y apagarlo (esto solo lo hará una vez).
  • Encender el foco ( led rojo) 5 segundos, apagarlo 2 segundos … y así cíclicamente.

Programar una entrada o salida

deSAFÍO 2

AYUDA

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

Nivel 2

Desafío 2: Alumbrado Público

  • En sensor de luz es analógico, puede conectarlo en uno de los puertos marcados A0 al A3.
    • Antes del setup:
  • Configurar el led, el relay y el sensor de luz.
    • En el setup:
  • Configurar entradas o salidas a los sensores.
    • En el loop:
  • Escribir en el led y relay
  • Recuerde usar la función delay para crear retardos de tiempo para el led y relay

IMaterial a utilizar

IINSIGNIA LOGRADA

Programar una entrada o salida

deSAFÍO 3

Instalación de librerías: “Grove_LED_Bar” y “Grove Ultrasonic Ranger”Configuración de entradas y salidas:

  • Salida Digital: led verde (variable - “indicador”)
Instrucciones para el sensor ultrasónico:#include <Ultrasonic.h>Ultrasonic ultrasonic(7);Instrucciones para la barra led:#include <Grove_LED_Bar.h>Grove_LED_Bar bar(4, 3, 0);Acciones:
  • Encender el indicador (led verde) 5 segundos y apagarla (esto solo lo hará una vez).
  • Encender la barra led completamente por 3 segundos, usando la instrucción bar.setLevel(10); después apagarla por 2 segundos usando la instrucción bar.setLevel(10);... y así cíclicamente.

AYUDA

Nivel 2

Desafío 3:

Antes del setup:

  • Asegurarse de instalar las librerías buscando en el Arduino IDE: Grove_LED_Bar y Grove Ultrasonic Ranger
  • Incluir la librería en el código #include <Ultrasonic.h>
  • Incluir la librería en el código #include <Grove_LED_Bar.h>
  • El voltaje al que trabaja la barra led es de 3.3V, si lo tiene a 5V puede que no funcione correctamente.
  • Usar la función Grove_LED_Bar bar(4, 3, 0); para configurar la barra led (En este ejemplo está conectado en D3).
  • Usar la función Ultrasonic ultrasonic(7); para configurar el sensor ultrasónico (En este ejemplo está conectado en D7).
    • En el setup:
  • Configurar el led como salida.
    • En el loop:
  • Escribir en el led y usar el delay para crear retardos de tiempo
  • Usar la función bar.setLevel(10); para encender la barra led donde 10 es todos los leds encendidos y 0 todos los leds apagados.

IMaterial a utilizar

Instalación de librerías: “Grove-LCD RGB Backlight” y “Grove Temperature And Humidity Sensor”Configuración de entradas y salidas:

  • Salida Digital: led del botón (variable - “indicador”)
  • Entrada Digital : botón (variable -” interruptor”)
  • Instrucciones para el display LCD:
#include <Wire.h>#include <rgb_lcd.h>rgb_lcd lcd;lcd.begin(16,2);
  • Instrucciones para el sensor de temperatura y humedad:
#include "Grove_Temperature_And_Humidity_Sensor.h"#define DHTTYPE DHT11DHT dht(3, DHTTYPE);dht.begin();Acciones:
  • Encender el indicador (led del botón) 10 segundos y apagarlo (esto solo lo hará una vez).
  • Desplegar su nombre en el display LCD con las instrucciones:
lcd.setCursor(A,B); Donde A es la columna del LCD y B las filas, considere que empieza en 0.lcd.print("Nombre"); Para mostrar texto en el LCD

IINSIGNIA LOGRADA

Programar una entrada o salida

deSAFÍO 4

AYUDA

Nivel 2

Desafío 4:

Antes del setup:

  • Asegurarse de instalar las librerías buscando en el Arduino IDE: Grove-LCD RGB Backlight y Grove Temperature And Humidity Sensor
  • Incluir las librerías en el código #include <Wire.h> #include <rgb_lcd.h> //Librerías del LCD
  • Incluir la librería en el código #include "Grove_Temperature_And_Humidity_Sensor.h"
  • Definir el sensor que vamos a ocupar con la instrucción #define DHTTYPE DHT11
  • Usar función DHT dht(3, DHTTYPE); para configurar el pin en el que conectamos al sensor, en este caso está conectado a D3.
  • Con la función rgb_lcd lcd; se declara al LCD como salida
  • Recuerde antes del setup configurar el botón
    • En el setup:
  • Configurar el led del botón como salida y prenderlo
  • Utilice las funciones lcd.begin(16,2); y dht.begin(); para inicializar el sensor y el LCD
    • En el loop:
  • Declare una variable numérica que se le asigne dht.readTemperature();
  • Utilizar función lcd.setCursor(A,B); Donde A es la columna del LCD y B las filas, considere que empieza en 0.
  • Utilice la función lcd.print("Texto"); Para mostrar texto en el LCD
  • Utilice la función lcd.print(variable); Para mostrar el valor de la variable en el LCD.

IMaterial a utilizar

IINSIGNIA LOGRADA

Programar una entrada o salida

deSAFÍO 5

AYUDA

Instalación de librerías: “Grove-LCD RGB Backlight”Configuración de entradas y salidas:

  • Entrada Digital: sensor de vibración (variable - “sismografo”)
  • Salida Digital: speaker (variable - “alerta”)
  • Instrucciones para el display LCD:
#include <Wire.h>#include <rgb_lcd.h>rgb_lcd lcd;lcd.begin(16,2);Acciones:
  • Encender la alerta (speaker) 5 segundos y apagarla (esto solo lo hará una vez).
  • Desplegar cíclicamente su nombre en el display LCD con las instrucciones:
lcd.setCursor(A,B); Donde A es la columna del LCD y B las filas, considere que empieza en 0.lcd.print("Texto"); Para mostrar texto en el LCD

Nivel 2

Desafío 5:

  • Antes del setup:
  • Asegurarse de instalar la librería buscando en el Arduino IDE: Grove-LCD RGB Backlight
  • Incluir las librerías en el código #include <Wire.h> #include <rgb_lcd.h> //Librerías del LCD
  • Con la función rgb_lcd lcd; se declara al LCD como salida
  • Configurar el sensor y la bocina con sus pines.
  • Declare una variable tipo entero sonido = 1911; El 1911 es el tono que va a emitir nuestra bocina
  • En el setup:
  • Configurar el sensor y la bocina como entradas o salidas
  • Utilice la función lcd.begin(16,2); para inicializar el LCD
  • En el loop:
  • Utilizar función lcd.setCursor(A,B); Donde A es la columna del LCD y B las filas, considere que empieza en 0.
  • Utilice la función lcd.print("Texto"); Para mostrar texto en el LCD
  • Escribir en la bocina y usar el delay para crear retardos de tiempo

IMaterial a utilizar

  • Instalación de librerías: “Grove 4-Digit Display”
    • Configuración de entradas y salidas:
  • Entrada Digital: sensor touch (variable - “interruptor”)
  • Salida Digital: motor (variable - “microsismo”)
    • Instrucciones para el display de 4 dígitos:
  • #include "TM1637.h"
  • TM1637 tm1637(6,7);
  • tm1637.init();
  • tm1637.set(BRIGHT_TYPICAL);
    • Acciones:
  • Encender el microsismo (motor) 5 segundos y apagarlo durante 7 segundos (esto solo lo hará una vez).
  • Desplegar cíclicamente los números 1,1,3 y 0 en el display de con la ayuda de las instrucciones:
  • char numero=0;
  • tm1637.display(0,numero); Donde 0 es la posición del display y num es el número que se va a poner

IINSIGNIA LOGRADA

Programar una entrada o salida

deSAFÍO 6

AYUDA

Nivel 2

Desafío 6:

    • Antes del setup:
  • Asegurarse de instalar la librería buscando en el Arduino IDE: Grove 4-Digit Display
  • Incluir la librería en el código #include "TM1637.h"
  • Declara variables CLK y DIO para los pines donde conectaste el display (Por ejemplo si lo conectas en D6, deben ser CLK=6 y DIO=7)
  • Usar la función TM1637 tm1637(CLK,DIO); para configurar el display
  • Configurar el sensor y el motor con sus pines.
    • En el setup:
  • Usar los comandos tm1637.init(); y tm1637.set(BRIGHT_TYPICAL); para inicializar el display.
  • Configurar el sensor y el motor como entradas o salidas
    • En el loop:
  • Declara una variable tipo char y asigna el numéro que quieres que se ponga en el display (ejemplo char num=0;)
  • tm1637.display(0,num); Donde 0 es la posición del display , num es lo que se va poner
  • Escribir en el motor y usar el delay para crear retardos de tiempo

La base

NIVEL DOS

Ataques dirigidos a la red eléctrica están causando apagones inesperados, esto afecta a todos nuestros sistemas. Es crucial desarrollar sistemas más inteligentes, el virus sigue asechando.

ADELANTE

¡¡¡PREFIERO EL DESTIERRO!!!

¡vamos bien, pero no es suficiente!

NIVEL 2

DESAFÍO 6

DESAFÍO 1

DESAFÍO 2

DESAFÍO 4

DESAFÍO 3

DESAFIO 5

Nivel 2

deSAFÍO 1ALARMA ANTI-INTRUSOS

Monitorear un sensor en el monitor serial

MATERIAL A UTILIZAR

IINSIGNIA LOGRADA

AYUDA

Declaración de variables

  • Variable tipo entero: num1 = 7
  • Variable tipo entero: num2 = 6
  • Variable tipo entero: dividendo = 89
  • Variable tipo flotante: divisor = 2.84
Acciones:
  • Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
  • Desplegar el texto “Resultado de la suma:” seguido del valor que da la suma de num1 y num2.
  • Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.

Nivel 3

DESAFÍO 1: AYUDA

  • En el setup:
    • Ocupar Serial.begin(9600); Para inicializar el monitor serial
  • En el loop:
    • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial.
    • Los valores numéricos enteros se declaran con int
    • Recuerde la prioridad de los operadores aritméticos al hacer los cálculos ()​, *, /, %​, +, -

deSAFÍO 2Alumbrado público

Monitorear un sensor en el monitor serial

MATERIAL A UTILIZAR

IINSIGNIA LOGRADA

AYUDA

Declaración de variables

  • Variable tipo entero: dividendo = 89
  • Variable tipo flotante: divisor = 2.84
  • Variable tipo entero: sensor = analogRead()
Acciones:
  • Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
  • Desplegar en el monitor serial el valor que arroja la lectura del sensor de luz cada 2 segundos.
  • Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.

Nivel 3

AYUDA PARA EL DESAFÍO 2

En el setup:

  • Ocupar Serial.begin(9600); Para inicializar el monitor serial
En el loop:
  • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial.
  • Cuando se declare la variable “sensor”, hacerlo en el void loop().
  • Los valores numéricos enteros se declaran con int

deSAFÍO 3medidor de nivel de agua

Monitorear un sensor en el monitor serial

MATERIAL A UTILIZAR

IINSIGNIA LOGRADA

AYUDA

Declaración de variables

  • Variable tipo entero: cm = ultrasonic.MeasureInCentimeters()
  • Variable tipo flotante: inch
Acciones:
  • Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
  • Desplegar en el monitor serial el texto “Medicion en centimetros:” seguido del valor de la variable cm
  • Realizar la operación para convertir de centímetros a pulgadas y asignar el resultado a la variable “inch”
  • Desplegar en el monitor serial el texto “Medicion en pulgadas:” seguido del valor de la variable inch.

Nivel 3

  • En el setup:
    • Ocupar Serial.begin(9600); Para inicializar el monitor serial
  • En el loop:
    • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
    • Declarar una variable entera y asignarle función ultrasonic.MeasureInCentimeters();
    • Desplegar en el monitor serial, dividiendo el valor de la variable entera entre 2.14 para obtener pulgadas.

AYUDA PARA EL DESAFÍO 3

deSAFÍO 4control de temperatura

Monitorear un sensor en el monitor serial

MATERIAL A UTILIZAR

IINSIGNIA LOGRADA

AYUDA

Declaración de variables

  • Variable tipo flotante: celcius =dht.readTemperature()
  • Variable tipo flotante: kelvin
Acciones:
  • Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
  • Desplegar cada 2 segundos en el monitor serial el texto “Temperatura en celsius” seguido del valor de la variable celsius.
  • Realizar la operación para convertir de grados celsius a kelvin y asignar el resultado a la variable “kelvin”
  • Desplegar cada 1 segundo en el monitor serial el texto “Temperatura en kelvin” seguido del valor de la variable kelvin.
  • Desplegar en el display LCD el texto “Temperatura” y abajo el valor de la variable celsius.

Nivel 3

  • En el setup:
    • Ocupar Serial.begin(9600); Para inicializar el monitor serial
  • En el loop:
    • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para que se despliegue una línea de texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
    • El sensor entrega la temperatura en grados celsius, para pasarlo a kelvin se tiene que sumar 273.15
    • Utilice la función lcd.print("Texto"); Para mostrar texto en el LCD
    • Utilice la función lcd.print(variable); Para mostrar el valor de la variable en el LCD.

AYUDA PARA EL DESAFÍO 4

deSAFÍO 5alerta sísmica

Monitorear un sensor en el monitor serial

MATERIAL A UTILIZAR

IINSIGNIA LOGRADA

AYUDA

Declaración de variables

  • Variable tipo entero: num1 = 7
  • Variable tipo entero: num2 = 6
  • Variable tipo entero: dividendo = 89
  • Variable tipo flotante: divisor = 2.84
Acciones:
  • Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
  • Desplegar en el monitor serial y el display LCD el texto “Resultado suma:” seguido del valor que da la suma de num1 y num2.
  • Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.

Nivel 3

DESAFÍO 5: AYUDA

    • En el setup:
  • Ocupar Serial.begin(9600); Para inicializar el monitor serial
    • En el loop:
  • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para poner texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
  • Los valores numéricos enteros se declaran con int
  • Aplicar una conversión de valores numéricos ejemplo double(valor2);
  • Utilice la función lcd.print(variable); Para mostrar el valor de la variable en el LCD.
  • Recuerde la prioridad de los operadores aritméticos al hacer los cálculos ()​, *, /, %​, +, -

deSAFÍO 6generador de microsismo

Monitorear un sensor en el monitor serial

MATERIAL A UTILIZAR

IINSIGNIA LOGRADA

AYUDA

Declaración de variables

  • Variable tipo entero: num1 = 7
  • Variable tipo entero: num2 = 6
  • Variable tipo entero: dividendo = 89
  • Variable tipo flotante: divisor = 2.84
Acciones:
  • Desplegar su nombre, edad y ocupación en diferentes líneas de texto en el monitor serial.
  • Desplegar el texto “Resultado de la suma:” seguido del valor que da la suma de num1 y num2.
  • Realizar una división con el valor de dividendo y divisor, mostrar el resultado como tipo double en el monitor serial.

Nivel 3

Desafío 6: Ayuda

    • En el setup:
  • Ocupar Serial.begin(9600); Para inicializar el monitor serial
    • En el loop:
  • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para poner texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
  • Declare más variables char num=1;para poner más números en el display con la sentencia tm1637.display(3,num);
  • Los valores numéricos enteros se declaran con int
  • Aplicar una conversión de valores numéricos ejemplo double(valor2);
  • Recuerde la prioridad de los operadores aritméticos al hacer los cálculos ()​, *, /, %​, +, -

La base

NIVEL tres

Ustedes son Ingenieros de Élite, ¿lo están demostrando?El resto de la vida humana depende de ustedes, ¿qué harán para que no se extinga?

ADELANTE

¡¡¡PREFIERO EL DESTIERRO!!!

¿realmente lo son?

NIVEL 3

DESAFÍO 6

DESAFÍO 1

DESAFÍO 2

DESAFÍO 4

DESAFÍO 3

DESAFIO 5

Nivel 4

Controlar los sensores con estructuras de control

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

deSAFÍO 1ALARMA ANTI-INTRUSOS

  • Declaración de variables
    • Variable tipo entero: lectura=digitalRead(intruso);
  • Acciones:
    • Con el ciclo if, hacer un programa que cuando intruso (sensor Pirolico) detecte movimiento:
      • Encender la alarma (buzzer) 3 segundos y apagarla por 2 segundos cíclicamente.
      • Encender el led en color azul por 1 segundo, apagarlo y encender el led en color rojo por 2 segundos.. y así cíclicamente.
      • Desplegar en el monitor serial el texto “Intruso detectado!”
    • En caso contrario (cuando intruso no detecte nada):
      • Desplegar en el monitor serial el texto “No hay intrusos”
      • Mantener apagado el led y la alarma (buzzer).

Nivel 4

Encuentra la pista que necesitas para seguir avanzando

  • En el setup:
    • Ocupar Serial.begin(9600); Para inicializar el monitor serial
  • En el loop:
    • Usar Serial.println("Texto"); o Serial.print(variable, decimales); para poner texto en el monitor serial, use más de una para escribir todos los datos como nombre, ocupación y edad.
    • Declare más variables char num=1;para poner más números en el display con la sentencia tm1637.display(3,num);
    • Los valores numéricos enteros se declaran con int
    • Aplicar una conversión de valores numéricos ejemplo double(valor2);
    • Recuerde la prioridad de los operadores aritméticos al hacer los cálculos ()​, *, /, %​, +, -

Controlar los sensores con estructuras de control

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

Declaración de variables

  • Variable tipo entero: lectura = analogRead(luz);
Acciones:
  • Identificar cual es el valor máximo del sensor de luz en el lugar donde se encuentra
  • Con el ciclo if, hacer un programa que cuando luz (sensor de luz ) sea menor que el (máximo valor- 200):
    • Encender la cerradura (relay) 3 segundos y apagarla por 2 segundos … cíclicamente.
    • Encender el foco ( led rojo) .
    • Desplegar en el monitor serial el texto “Es noche, sistema de seguridad activado”
  • En caso contrario (cuando luz tenga más que (máximo valor- 200)):
    • Desplegar en el monitor serial el texto “Aún hay luz, sistema de seguridad esperando”
    • Mantener apagado el foco ( led rojo)y la cerradura (relay).

deSAFÍO 2Alumbrado público

Nivel 4

Encuentra la pista que necesitas para seguir avanzando

  • Identificar cual es el valor máximo del sensor de luz en el lugar donde se encuentra
    • En el loop:
  • Declarar una variable entera asignándole analogRead(variable);
  • Cuando el valor del sensor sea máximo el led y relay deben estar apagados.
  • Cuando el valor del sensor disminuya a ValorMáximo-150 el led y relay deben estar encendidos.
  • Recuerde usar los operadores como mayor que <, menor que > o mayor igual <= y menor igual >= para la condición del if. ejemplo (if (valor<300))

Controlar los sensores con estructuras de control

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

Declaración de variables

  • Variable tipo entero: cm = ultrasonic.MeasureInCentimeters();
Acciones:
  • Con el ciclo if, hacer un programa que cuando cm (sensor ultrasónico ) sea mayor o igual que 11:
    • Apagar la barra led
    • Encender el indicador ( led verde) .
    • Desplegar en el monitor serial el texto “Ya no hay agua, llenar de inmediato”
  • Crear con ciclos else if (cuando cm vaya de 1 cm hasta 10 cm detectados):
    • Encender la barra led con el número de leds que corresponden inversamente a cada condición (ejemplo detecta 10 cm, enciende 1 led, detecta 7 cm encienden 4 led)
    • Desplegar en el monitor serial el texto “Tanque al x% de su capacidad”, donde x cambia de acuerdo a la medida de cm.

deSAFÍO 3medidor de nivel de agua

Nivel 4

DESAFÍO 3: AYUDA

  • La barra led funciona correctamente con 3.3 V, no tener el shield a 5V.
    • En el loop:
  • Con varios if, condicionar al código para que cuando la medida sea 10 cm, prenda el led y la barra led esté solamente con un led encendido y cuando vaya disminuyendo la distancia, la barra se ilumine con más leds. Cuando alcance la distancia de 1 cm, la barra led debe tener todos los leds, y el led verde debe estar apagado.
  • Usar la función bar.setLevel(10); para encender la barra led donde 10 es todos los leds encendidos y 0 todos los leds apagados
  • Recuerde usar los operadores como mayor que <, menor que > o mayor igual <= y menor igual >= para la condición del if.

Controlar los sensores con estructuras de control

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

Declaración de variables

  • Variable tipo entero: lecturaboton= digitalRead(interruptor);
Acciones:
  • Con el ciclo if, hacer un programa que cuando lecturaboton (interruptor ) sea igual a 0:
    • Encender el indicador (led del botón)
    • Desplegar en el monitor serial el texto “Temperatura en kelvin” seguido del valor de la variable kelvin.
    • Desplegar en el display LCD el texto “Temperatura” y abajo el valor de la variable celsius.
  • En caso contrario ( lecturaboton (boton ) sea igual a 1):
    • Apagar el indicador (led del botón)
    • Desplegar en el monitor serial el texto “Presionar el botón para desplegar datos en el display ”
    • Usar la instruccion lcd.clear(); para limpiar el display y que no aparezca ningún mensaje.

deSAFÍO 4control de temperatura

Nivel 4

Encuentra la pista que necesitas para seguir avanzando

  • El valor del botón es siempre 1 hasta que es presionado, cuando eso sucede su valor es 0.
    • En el loop:
  • Declarar una variable entera asignándole digitalRead(variabledelsensor);
  • Crear un ciclo if, en donde si la variable recién creada es igual a 0, despliegue en el monitor serial que el sensor mide la temperatura en grados kelvin, en el LCD la temperatura en grados celsius y el led se encienda.
  • Use la condición else para limpiar el LCD usando lcd.clear(); y apagar el led.
  • Recuerde usar el operador == para la condición del if.Ejemplo (if(variable==1))

Controlar los sensores con estructuras de control

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

Declaración de variables

  • Variable tipo entero: lecturasismo= digitalRead(sismografo);
  • Variable tipo entero : tono= 1911;
Acciones:
  • Con el ciclo if, hacer un programa que cuando lecturasismo(boton ) sea igual a 0:
    • Desplegar en el display LCD el texto “Alerta sísmica”
    • Con un ciclo for que su máximo valor sea 49, prender la bocina con un delay en microsegundos de la variable tono.
  • En caso contrario ( lecturasismo (sensor de vibración ) sea igual a 1):
    • Apagar la bocina (speaker)
    • Usar la instrucción lcd.clear(); para limpiar el display y después desplegar el texto “Todo bien”.
    • Mostrar en el monitor serial el texto “Placas tectónicas tranquilas”

deSAFÍO 5alerta sísmica

Nivel 4

DESAFÍO 5: AYUDA

    • En el loop:
  • Declarar una variable entera asignándole digitalRead(variabledelsensor);
  • Crear un ciclo if, en donde si la variable recién creada es igual 1, despliegue en el LCD “alerta sismica” y el speaker encienda y apague mediante un for; cuando la variable sea igual a 0 despliegue en el LCD “Todo bien” y el speaker no suene.
  • Recuerde la sintaxis del for(int variable=0; condición ;incremento de variable)
  • Recuerde usar el operador == para la condición del if. Ejemplo (if(variable==1))

Controlar los sensores con estructuras de control

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

Declaración de variables

  • Variable tipo entero: touch= digitalRead(interruptor);
Acciones:
  • Con el ciclo if, hacer un programa que cuando touch(sensor touch ) sea igual a 1:
    • Desplegar en el monitor serial el texto “Sismo activado”
    • Encender el microsismo (motor) durante 5 segundos y apagarlo.
    • Mantener los números 1,1,3 y 0 en el display
  • En caso contrario (touch (sensor touch ) sea igual a 0):
    • Apagar el microsismo (motor)
    • Desplegar en el monitor serial el texto “Placas tectónicas tranquilas”
    • Mostrar en el display los números 0,0,0 y 0

deSAFÍO 6generador de microsismo

Nivel 4

DESAFÍO 6: AYUDA

    • En el loop:
  • Declarar una variable entera asignándole digitalRead(variabledelsensor);
  • Crear una ciclo if, en donde si la variable recién creada es igual 1, en el monitor serial despliegue “Sismo activado” y el motor encienda durante 5 segundos; cuando la variable sea igual a 0 en el monitor serial despliegue"Placas tectonicas tranquilas" y el motor esté apagado.
  • Recuerde que en el delay() se usan microsegundos, por lo tanto 1000 es 1 segundo.
  • Recuerde usar el operador == para la condición del if. Ejemplo (if(variable==1))

La base

NIVEL cuatro

"El verdadero poder de un ingeniero de élite no está en lo que puede hacer solo, sino en lo que podemos lograr juntos."

ADELANTE

¡¡¡PREFIERO EL DESTIERRO!!!

el equipo

NIVEL 4

DESAFÍO 6

DESAFÍO 1

DESAFÍO 2

DESAFÍO 4

DESAFÍO 3

DESAFIO 5

Nivel Final

Complemento con el uso de funciones

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

deSAFÍO 1 y 2

    • Pasos a seguir
  • Nombrar una carpeta con el mismo nombre del código del Desafío 2.
  • Guardar ambos códigos en la misma carpeta.
  • Modificar los códigos ya creados en el nivel 3
    • Modificaciones a los códigos del nivel 3:
  • En el desafío 3
    • Cambiar el nombre de la función setup(), por el nombre configuracióndesafio1
    • Cambiar el nombre de la función loop(), por el nombre programadesafio1
    • Verificar que ningún sensor o actuador estén conectados en los mismos pines.
  • En el desafío 4
    • En la función setup(), colocar la función del desafío 1 que solo se hará una vez
    • En la función loop(), colocar la función del desafío 1 que se repetirá cíclicamente.

Nivel 5

Encuentra la pista que necesitas para seguir avanzando

DESAFÍO 1 y 2

  • Ambos códigos deben estar en la misma carpeta creada en el explorador de windows.
  • La carpeta debe tener el mismo nombre que uno de los códigos (ejemplo: Desafío_2_Nivel4)
  • Un solo sketch debe tener las funciones void setup() y void loop()
  • Verifique que las funciones no tengan el mismo nombre, no pueden existir dos funciones o más que tengan el mismo nombre.
  • Si la función solo se ejecutará una vez en el desafío, colóquela en la función setup()
  • Si la función se repetirá cíclicamente, colóquela en la función loop()

Complemento con el uso de funciones

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

deSAFÍO 3 y 4: Temperatura y agua

    • Pasos a seguir
  • Nombrar una carpeta con el mismo nombre del código del Desafío 4.
  • Guardar ambos códigos en la misma carpeta.
  • Modificar los códigos ya creados en el nivel 3.
    • Modificaciones a los códigos del nivel 3:
  • En el desafío 3
    • Cambiar el nombre de la función setup(), por el nombre configuracióndesafio3
    • Cambiar el nombre de la función loop(), por el nombre programadesafio3
    • Verificar que ningún sensor o actuador estén conectados en los mismos pines.
  • En el desafío 4
    • En la función setup(), colocar la función del desafío 3 que solo se hará una vez
    • En la función loop(), colocar la función del desafío 3 que se repetirá cíclicamente.

Nivel 5

Encuentra la pista que necesitas para seguir avanzando

DESAFÍO 3 y 4

  • Ambos códigos deben estar en la misma carpeta creada en el explorador de windows.
  • La carpeta debe tener el mismo nombre que uno de los códigos (ejemplo: Desafío_4_Nivel4)
  • Un solo sketch debe tener las funciones void setup() y void loop()
  • Verifique que las funciones no tengan el mismo nombre, no pueden existir dos funciones o más que tengan el mismo nombre.
  • Si la función solo se ejecutara una vez en el desafío, colóquela en la función setup()
  • Si la función se repetirá cíclicamente, colóquela en la función loop()

Complemento con el uso de funciones

IINSIGNIA LOGRADA

MATERIAL A UTILIZAR

AYUDA

.Desafío 5 y 6: Sismo

    • Pasos a seguir
  • Nombrar una carpeta con el mismo nombre del código del Desafío 6.
  • Guardar ambos códigos en la misma carpeta.
  • Modificar los códigos ya creados en el nivel 3
    • Modificaciones a los códigos del nivel 3:
  • En el desafío 5
    • Cambiar el nombre de la función setup(), por el nombre configuracióndesafio5
    • Cambiar el nombre de la función loop(), por el nombre programadesafio5
    • Verificar que ningún sensor o actuador estén conectados en los mismos pines.
  • En el desafío 6
    • En la función setup(), colocar la función del desafío 5 que solo se hará una vez
    • En la función loop(), colocar la función del desafío 5 que se repetirá cíclicamente.

Nivel 5

Encuentra la pista que necesitas para seguir avanzando

DESAFÍO 5 Y 6

  • Ambos códigos deben estar en la misma carpeta creada en el explorador de windows.
  • La carpeta debe tener el mismo nombre que uno de los códigos (ejemplo: Desafío_6_Nivel4)
  • Un solo sketch debe tener las funciones void setup() y void loop()
  • Verifique que las funciones no tengan el mismo nombre, no pueden existir dos funciones o más que tengan el mismo nombre.
  • Si la función solo se ejecutara una vez en el desafío, colóquela en la función setup()
  • Si la función se repetirá cíclicamente, colóquela en la función loop()

La base

NIVEL cinco

REPORTE AL CUARTEL GENERAL

¿CUÁL FUE EL RESULTADO DE LA MISIÓN?

Respuesta incorrecta

Respuesta incorrecta

Respuesta correcta

Respuesta incorrecta

¿Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat enim ad minima veniam?

pregunta 3/3

Misión completada

Has ayudado al desarrollo sostenible de NeoTerra y con ello, asegurar tu supervivencia

Empezar de nuevo

¿Seguro que quieres salir?

Perderás el progreso

Volver

salir

Misión fallida

Hasta la vista, baby...

Intentar de nuevo