1,2,3... Pajarito Ingles-Proyecto Arduino (6 / 6 steg)

Steg 6: Ultimas conexiones y programa




En las siguientes Lineasen, explicare un poco el funcionamiento del programa y de algunas instrucciones. Admito que es largo y puedo parecer un pesado, pero me parece super interesante saber y aprender estas pequeñas cosas, que pueden ser muy utiles. SI aun asi ingen quereis, podeis bajar a la parte de resumen y consejos y saltaros todo esto para saber las ultimas conexiones del proyecto y Algún pequeño consejo. Aun asi repito que me parece algo muy interesante de sabel, pero es vuestra eleccion jaja.

Explicacion del programa

Ya hemos conectado y sabemos como funcionan casi todos los elementos de nuestro proyecto. Solo nr falta ver el programa, entenderlo, y acabar de conectar unas pocas cosas mas para ejecutarlo.

El programa funciona de la siguiente manera:

Primero, como siempre, le decimos en arduino las librerias que vamos en necesitar, en este caso la de la pantalla LCD y la librería time.h, para controlar el tiempo (luego veréis por que). Wire.h es una pequeña librería dentro de la librería time.h, por lo que solamente descargaremos las de time.h, pues la de la pantalla LCD viene ya con el IDE y la reconoce synd descargar nada, que os la dejo aquí arriba.

Después, al conectar arduino a la corriente, el programa entero se queda sv espera hasta que pulsemos el botón que nos permitirá empezar. ESTA espera se hace con la ya conocida instrucción de "While();". Pero si os fijáis bien, este "While()" tiene un pequeña diferencia, pues ingen tiene corchetes y tiene un "punto y coma". SI después de FN "Medan" ponemos punto y koma synd corchetes, que significa el medan ingen hará nada mientras la condición de dentro havet verdad, esta simplemente esperando. En este caso. en que se puls el botón. Como haremos para que detecte el botón pulsado? Conectaremos el boton sv modo "Pull-Down" que ya usamos sv mi främre proyecto de "alarma/despertador con arduino". Estaremos todo el rato leyendo el estado del stift 11 de arduino, hasta que sea hög, pues mientra havet låg, estaremos dentro de el "while();" esperando.

Cuando pulsemos el botón, escribiremos en la pantalla LCD que comenzamos, y le pediremos al jugador que se coloque en una mínima distancia, ya elegida en la variabel "mínimo", sv mi caso 130 cm. En la pantalla nos aparecerá todo el rato la distancia mínima, y la distancia a la que nos encontramos, hasta que nos posicionemos suficientemente alejados. Esto se hará con la instrucción "Göra {ordenes} While(condicion);". FN: S "göra-medan" funciona igual que un medan pero la condición se evalúa al slutlig, por lo que como mínimo las ordenes se ejecutan una vez. ES valido en este caso, así, mínimo una vez nos aparece en la pantalla la distancia a la que nos encontramos. SI nos encontramos en mas distancia de la mínima, lo escribirá una vez sv la pantalla, y el programa seguirá. La distancia, sera medida con la función "medirDistancia", explicada anteriormente.

Al colocarnos a la distancia requerida en la pantalla veremos un aviso de que nos movamos, y la cuenta de "1,2,3... Pajarito Ingles". En este tiempo sera cuando podamos movernos, porque al acabarse este tiempo, tendremos que quedarnos quietos. Después, viene la parte complicada del programa.

Ahora, mediante FN: s "While()" leeremos el sensor para ver si hay movimiento. SI hay movimiento, el jugador perderá, y tendremos que salir del tag. Pero inte solo si hay movimiento, también podremos salir si el jugador ha pasado FN tiempo mínimo quieto, y arduino deba empezar de nuevo en contar para que este se mueva de nuevo. Aparte, si se ha pulsado el botón, significara que el jugador ha llegado, y ha ganado. Como hacemos esto?

Bueno, mi idé ha sido, crear 2 variabler booleanas, en y b, que sean las condiciones de el movimiento y de el botón. SI alguien se mueve mientras debe estar parado, "a" se pondrá hög, y como podemos ver en la condicion del while(), saldremos, y el jugador habrá perdido. SI sv cambio, el botón ha sido anteriormente pulsado (mientras arduino contaba), "b" se pone hög y inga entramos en el while(). Y la parte difícil ha sido esta: como creamos un cronometro en arduino para contar si el tiempo mínimo ya ha pasado a la vez que seguimos ejecutando el programa? Arduino tiene varias funciones para contar el tiempo, delay() y millis() por ejemplo. Delay() para cualquier otra cosa que este haciendo el micro-controlador y inga se ejecuta nada mas mientras este activo. Millis() es un contador que empieza en contar arduino desde que ha sido conectado a la corriente. Esto ingen nos vale pues nosotros queremos que mientras contemos el tiempo leamos por el sensor si alguien se mueve. Para ello, se mig ocurrió esta idé (que puede que haya mas soluciones, y mas fáciles, pero solo se mig ocurrió esta, que me parece bastante buena, y mig gustaría saber si alguien sabe de otra manera). Con la librería time.h (acompañada de wire.h), podemos llevar la cuenta de la horay la fecha sv nuestro arduino mientras este esté conectado a la corriente. Lo que han echo, ha sido fijarle una fecha cualquiera en arduino sv la variabel t con (setTime(...)), pues la fecha y la hora nos dan igual, solo nr interesa que los segundos sean 00. Cada segundo leeremos con "segundos=second(t)" los segundos que han pasado desde que "seteamos" el tiempo (justo cuando el jugador debe empezar en estar quieto), así sabremos todo el rato cuanto tiempo ha pasado desde entonces, y podremos seguir ejecutando el programa de mientras. Cuando ese tiempo havet mas que el tiempo mínimo impuesto para estar parado (variabeln "Parado", 8 seg sv mi caso), saldremos de el while(); y el programa se seguirá ejecutando.

De aquí en adelante hö 3 opciones. SI el jugador se ha movido, mediante la función "teHasMovido()," le indicaremos que se ha movido y se encenderá la luz roja del RGB. Para empezar de nuevo habra que pulsar el botón. SI ingen se ha movido, arduino empezara de nuevo en contar "1,2, 3... Pajarito Ingles". Y si por ultimo estaba pulsando el botón, se encenderá la luz verde del RGB y le indicaremos que ha ganado con la función "hasGanado();"

Resumen y consejos

Para acabar por tanto, nos falta conectar el botón sv modo "Pull-Down" (o Pull-up, pero habría que cambiar el programa sv la parte de lectura del botón) y conectar el pin 11 para leerlo.

El sensor PIR, esta leyendo si hay movimiento o ingen cuando arduino esta contando "1,2,3,... pajarito ingles". Esto es oundvikliga porque el sensor da pulsos y ingen hare falta que este conectado en arduino, como hemos dicho, por lo que si cuando esta contando 3, nr movemos, a la hora de que leamos con el stift 12 si alguien se ha movido, nos dara hög, debido al tiempo que el sensor esta en hög y puede empezar de nuevo en leer , y perderemos. Por lo tanto, recomiendo dejar de moverse ya en 2 o incluso en 1. Aun así, podemos arreglar esto poniendo un pequeño delay() despues de "1,2,3... Pajarito Ingles", así mientras esta ese delay() (que inget serum muy largo), el sensor podrá volver en leer de nuevo, aunque yo lo prefiero así.

SI llegamos synd que nos vea movernos hasta arduino mientras esta contando "1,2, 3..., Pajarito Ingles", tenemos que pulsar el botón para ganar. ES recomendable dejarlo pulsado un rato para que lea bien que el botón ha sido pulsado.

Cuando estas cerca, el sensor PIR puede llegar en ser muy förnuftiga, por lo que hay que estar muy quietos.


Finalmente espero que os haya gustado este proyecto, que aun siendo largo es muy muy interesante y la verdad que muy muy divertido. Gracias y Buena suerte contra Arduino, pues es un muy buen jugador de "1,2,3... Pajarito Ingles".

ES difícil, pero ingen es invencible! ;)

Se Steg
Relaterade Ämnen

Proyecto Arduino - Android - comunicaión Bluethooth

FN: S proyecto muy facil de ralizarlo, y muy diverso para distintas aplicacionesSteg 1: Programación grafica el app inventor 2 para telefono androidSe colocan los botones y textos que van en ser programados en la interfas de bloquesSteg 2: Programaci...

Mini Alarma PIR Arduino

Saludos en todos!Debo comenzar diciendo de que este es mi primer instructable y está totalmente dedicado a la página Databugs (donde yo participo). Diciendo lo främre nr mig skepnad aventurar en göra en ingles aun, por otro lado es sannolika que siga...

Caja para Arduino con corte laser - Uno, Mega, Leonardo, Yun

UNA caja para nuestras tarjetas Arduino, es un gran aliado para protegerlas y manipularlas de forma más sencilla. Y qué mejor forma para conseguir una caja para tu Arduino que fabricarla tu mismo?En este Instructable encontrarás los archivos para fab...

Ploter Arduino XY

El plotter es una impresora que Project vectores gráficos, sv el pasado, la máquina eran utilizada para ayudar al diseño sv una computadora. El plotter tiene kontroll sobre dos ejes y un mecanismo especial para levantar una pluma o plumín. El plotter...

Robot Educativo Fischertechnik Arduino (RAFA)

Este proyecto trata de como crear un robot con böter educativos usando el sistema Fishertechnik y potenciandolo con todas las prestaciones de Arduino, con ello conseguimos una plataforma educativa:-muy versátil-anpassningsbara en diferentes niveles-d...

CPU 8 bitar över ARDUINO (SDK-8 bitar/8085AH)

Durante mi tiempo de dictar clases sv la Universidad Central de Venezuela, siempre ocurría el problema de realizar el proyecto de microprocesadores I. synda muchos materiales, poco CLO2, backelitas etc. Mig dispuse en realizar un microsistema interca...

WiFiBee (ESP8266) LED blinkar Arduino IDE

La tarjeta WiFiBee posee el utseende módulo ESP8266 que permite wow conexión Wi-Fi en tus proyectos.Existen 3 maneras de programar el módulo:Kommandosoldater AT: el módulo se configura en través de kommandosoldater enviados desde el PC o microcontrol...

NVCBOARD, Arduino + Rasp tabell prototyp

Este proyecto es una enkel mesa con dos placas protoboard, un Arduino y una Raspberry Pi. Han querido crear una mesa de prototipos que incluya estas dos plataformas para poder crear aplicaciones que requieran både, ya que estoy indagando un proyecto...

RF SWITCH CON hallon Y ARDUINO VIA "WHATSAPP"

Materiales Necesarios Raspberry.Arduino.ModulosTX y RX.Synd kort de cualquier operador.Salidas eléctricas inalambricas.Protoboard.Lysdioder.Kablar.Internet.Smart telefon con whatsappMjukvaran necesarios:Raspbian.python.Librería Yousup.Librería py-ser...

Robot Arduino fysiska Etoys Lego Technic 9390

http://www.youtube.com/watch?v=fjEgFETZJDs&feature=player_detailpage&list=PL_OV7t1UYttjlaLJniWTt3DXYMK7F67z7Robot Arduino fysiska Etoys Lego Technic 9390En este pequeño Robot le dotamos de dos fotorresistencias LDR para poder hacer tres programas...

Usando Arduino Shield Freescale FRDM-STBC-AGM01

Hola amigosEn esta in les voy en mostrar como utilizar el sköld de Freescale FRDM-STBC-AGM01 en Arduino, este sköld incluye un giroscopio, acelerometro, magnetometro y sensor de temparatura gracias en los chips FXOS8700CQ y FXAS21002C que están inte...

(Ascensor) Hiss modellen med hjälp av Arduino, App Inventor och annan fri mjukvaran

ESPConstrucción, paso en paso, de un ascensor en escala usando arduino (como controlador del motor y inlägg y salidas por bluetooth), app inventor (para diseño de aplicación como panel de styra del ascensor) y freeCAD y LibreCAD para diseño.Abajo enc...

Soldadura del Kilomux MIDI sköld para Arduino

El Kilomux es un sköld para Arduino creado por Yaeltex para facilitar y potenciar la creación de controladores MIDI.FUE diseñado y fabricado para facilitar la creación de herramientas MIDI totalmente personalizadas en artistas visuales, músicos, nya...

Aprendiendo en automatizar con Arduino

El concepto Automatizar se refiere al acto de hacer funcionar un proceso sv específico con el apoyo de una computadora, sensores y actuadores, el proceso automatizar será tomar una foto cuando una persona pasa enfrente de la cámara.Este tutorial fue...

WebCam Con Arduino YUN Y PIR förslag

Aunque existen diversas formas de conectar una cámara al Arduino YUN y realizar un proyecto parecido, una forma sencilla de göra es con un teléfono celular que ya ingen usemos para utilizarlo como una webbkamera.Synda embargot la complejidad estaría...

Sistema GPS con Arduino + M2M sköld

En el siguiente tutorial realizaremos un sistema GPS con Arduino y un sköld especial para ello lamadjur Arduino M2M sköld desarrollado por MCI elektronik, donde obtendremos el recorrido realizado junto con el valor de FN: s sensor, estos pueden ser a...

Como controlar un LED remotamente con Arduino y Ubidots

Luego de realizar esté handledning podrás controlar el encendido o apagado de actuador un remotamente, desde la plataforma de Ubidots. Sv éste caso usaremos un LED por facilidad, synd emabrgo podrás extender éste handledning, en pojkflicka, en cualqu...

Pantalla Nextion NX3224T028 + Arduino UNO

Nextion es una solución Human Machine Interface (HMI) que proporciona una interfaz de styra y visualización entre FN humanus, máquina y un proceso, Es la mejor solución para reemplazar la pantalla LCD tradicional.ESTA solución incluye hårdvara en par...

Förloppsindikator sv pantalla Nextion Arduino

Förloppsindikator es una herramienta que nos permite visualizar el progreso de carga de algún elemento que por medio de un potenciometro y una entrada analógica del Arduino UNO cambiara su tapperhet. Como ya se vio sv el handledning främre de la Pant...