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

Stap 6: Ultimas conexiones y programa


Nl las kunt lineas, explicare un poco el funcionamiento del programa y algunas istruzioni Gebruikershandleiding. 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 geen quereis, podeis bajar a la parte de Gonzalez y consejos y saltaros todo esto para saber las ultimas conexiones del proyecto y algun pequeño consejo. Aun asi repito que me parece algo muy interesante de saber, pero es vuestra eleccion jaja.

Explicacion del programa

Ya hemos conectado y sabemos como funcionan casi todos los elementos de nuestro proyecto. Individuele amendementen falta ver el programa, entenderlo, y acabar de verbinden Oenas pocas cosas mas para ejecutarlo.

El programa funciona de la siguiente manera:

Nl, Primero, como siempre, le decimos een arduino las librerias que vamos een necesitar 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 zonde descargar nada, que os la dejo aquí arriba.

Después, al contact arduino a la corriente, el programa entero se queda nl 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 permitteert, pues neen tiene corchetes y tiene un "punto y coma". Si después de VN "Terwijl" ponemos punto y coma zonde corchetes, significa que el terwijl geen hará nada mientras la condición de dentro zee verdad, esta simplemente esperando. Nl este caso. een que se pulse el botón. Como haremos para que detecte el botón pulseren? Conectaremos el boton nl modo "Pull-Down" que ya usamos nl mi anterior proyecto de "alarma/despertador con arduino". Bedriegen todo el rato leyendo el estado del pin 11 de arduino, hasta que zee hoog, pues mientra zee laag, bedriegen dentro de el "while();" esperando.

Cuando pulsemos el botón, escribiremos nl la pantalla LCD que comenzamos, y le pediremos al jugador que se coloque een una mínima distancia, ya elegida nl la variabele "mínimo", en mi caso 130 cm. nl la pantalla amendementen 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 "Do {ordenes} While(condicion);". Un "doen-terwijl" funciona igual que un terwijl, pero la condición se evalúa al finale, por lo que como mínimo las ordenes se ejecutan una vez. Es valido nl este caso, así, mínimo una vez amendementen aparece nl la pantalla la distancia a la que nos encontramos. Si amendementen encontramos een mas distancia de la mínima, lo escribirá una vez nl la pantalla, y el programa seguirá. La distancia, sera medida con la función "medirDistancia", explicada anteriormente.

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

Ahora, zwaartelijn un "While()" leeremos el sensor para ver si hay movimiento. Si hay movimiento, el jugador perderá y tendremos que salir del tijdje. Pero geen solo si hay movimiento, también podremos salir si el jugador ha pasado un tiempo mínimo quieto, y arduino deba empezar de nuevo een contar para que este se mueva de nuevo. Aparte, si se ha pulseren el botón, el jugador van significara que ha llegado, y ha ganado. Como hacemos esto?

Bueno, mi idee ha sido, crear 2 variabelen booleanas, een 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á hoog, y como podemos ver nl la condicion del while(), saldremos, y el jugador habrá perdido. Si nl cambio, el botón ha sido anteriormente pulseren (mientras arduino contaba), 'b' se pone hoge y neen entramos nl el while(). Y la parte difícil ha sido esta: como creamos un cronometro nl arduino para contar si el tiempo mínimo ya ha pasado a la vez que seguimos el ejecutando 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 geen se ejecuta nada mas mientras este activo. Millis() es un contador que empieza een arduino contar desde que ha sido conectado a la corriente. Esto geen amendementen vale pues nosotros queremos que mientras contemos el tiempo leamos por el sensor si alguien se mueve. Para ello, se me ocurrió esta idee (que puede que haya mas geavanceerde, y mas voor, pero solo se me ocurrió esta, que me parece bastante buena, y me 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 nl nuestro arduino mientras este kent conectado a la corriente. Lo que hij echo, ha sido fijarle una fecha iedereen een arduino nl la variabele t con (setTime(...)), pues la fecha y la hora amendementen dan igual, solo amendementen 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 een estar quieto), así sabremos todo el rato cuanto tiempo ha pasado desde entonces, y podremos seguir ejecutando el programa de mientras. Cuando ese tiempo zee mas que el tiempo mínimo impuesto para estar parado (variabele "Parado", 8 seg nl mi caso), saldremos de el while(); y el programa se seguirá ejecutando.

De aquí nl adelante hay 3 Options. Si el jugador se ha movido, zwaartelijn 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 neen se ha movido, arduino empezara de nuevo een 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();"

Gonzalez y consejos

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

El sensor, PIR, esta leyendo si hay movimiento o geen cuando arduino esta contando "1,2,3 pajarito ingles". Esto es onvermijdelijk porque el sensor da pulsos y geen hace falta que este conectado een arduino, como hemos dicho, por lo que si cuando esta contando 3, nos movemos, a la hora de que leamos con el pin 12 si alguien se ha movido, amendementen dara hoog, dat al tiempo que el sensor esta nl hoge y puede empezar de nuevo een leer , y perderemos. Por lo tanto, recomiendo dejar de moverse ya nl 2 o inclusief nl 1. Aun así, podemos arreglar esto poniendo un pequeño delay() despues de "1,2,3... Pajarito Ingles", así mientras esta ese delay() (que geen sera muy largo), el sensor pakket volver een leer de nuevo, aunque yo lo prefiero así.

Si llegamos zonde 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 pulseren un rato para que lea bien que el botón ha sido pulseren.

Cuando estas cerca, el sensor PIR puede llegar een ser muy verstandig, por lo que hay que estar muy quietos.


Finalmente espero que os haya situação 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 neen es invencible! ;)

Gerelateerde Artikelen

Proyecto Arduino - Android - comunicaión Bluethooth

Proyecto Arduino - Android - comunicaión Bluethooth

VN proyecto muy facil de ralizarlo, y muy diverso para visitar aplicacionesStap 1: Programación grafica el app uitvinder 2 para telefono androidSe colocan los botones y textos que van een ser programados en la interfas de BlockStap 2: Programación de
Mini Alarma PIR Arduino

Mini Alarma PIR Arduino

Saludos een 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 anterior no me quise aventurar een hacerlo nl ingles aun, por otro lado es waarschijnlijk
Pozycjonowanie Arduino XY

Pozycjonowanie Arduino XY

Nl el pasado el plotter es una file que proyecta vectores additional, la máquina tijdperk DAtecnologia para ayudar al diseño nl una computadora. El plotter tiene controle sobre dos ejes y un mecanismo especial para levantar una pluma o plumín. El plo
Robot Educativo Fischertechnik Arduino (RAFA)

Robot Educativo Fischertechnik Arduino (RAFA)

Este proyecto trata de como crear VN robot con boetes educativos usando el sistema Fishertechnik y potenciandolo con todas las prestaciones de Arduino, con ello conseguimos una plataforma educativa:-muy processor-flexibele een diferentes niveles-dive
Caja para Arduino con corte laser - Uno, Mega, Leonardo, Yun

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?Nl este Instructable encontrarás los archivos para fab
Seguidor Solar con motores een paso + Arduino

Seguidor Solar con motores een paso + Arduino

Con el enorme gusto de que algunas personas les haya agradado mi primer instructable: Deshidratador solar + Arduino les comparto un nuevo proyecto que realice, se trata de un seguidor zonne-energie, geen zonde antes mencionar que mi inspiración fuero
(Ascensor) Lift model met behulp van de Arduino, uitvinder van de App en andere vrije software

(Ascensor) Lift model met behulp van de Arduino, uitvinder van de App en andere vrije software

ESPConstrucción, paso een paso, de VN ascensor een escala usando arduino (como controlador del motor y Relacionadas y salidas por bluetooth), uitvinder van de app (para diseño de aplicación como deelvenster de controle del ascensor) y freeCAD y Libre
C/C++ nl Arduino: setup y lus

C/C++ nl Arduino: setup y lus

La plataforma arduino se programa nl C/C++. Nl esta serie de instructables, vamos een ver aspectos kern gereedschappen de la programación, controlar nl C, pues neen voy een entrar nl detalles de objetos C++, aplicados een proyectos sencillos de Ardui
Link De muy Arduino

Link De muy Arduino

Este es un link de desagüe. Se conecta een aun amplificador de guitarra o cualquier shell, y al verhuizer las dos perillas geslachten diferentes y con textura de corriente eléctrica. Bruikbaar libremente la idee de onda zaagtand, pero el objetivo no
Aprendiendo een automatiseren con Arduino

Aprendiendo een automatiseren con Arduino

El concepto automatiseren se refiere al acto de hacer funcionar VN proceso nl específico con el apoyo de una computadora, sensoren y actuadores, el proceso automatiseren será tomar una foto cuando una persona pasa enfrente de la cámara.Este tutorial
Deshidratador zonne- + Arduino

Deshidratador zonne- + Arduino

El proyecto inicio con la idee de conservar los alimentos por un periodo de tiempo más largo que el gewone, utilizando la deshidratación por un medio pasivo podemos evitar que los microorganismos den origen a la presencia de enfermedades que nl los f
NFC Arduino y Android Cap 1

NFC Arduino y Android Cap 1

OS presentamos una nueva serie de tutoriales nl la que trastearemos con la tecnología NFC, aun llevando algunos años nl el mercado geen termina de extenderse al publico algemene. Y es que esta tecnologia tiene muchas utilidades que pueden hacer cambi
WebCam Con Arduino YUN Y PIR MOTION

WebCam Con Arduino YUN Y PIR MOTION

Aunque exist diversas formas de verbinden una cámara al Arduino YUN y realizar VN proyecto parecido, una forma sencilla de hacerlo es con un teléfono celular que ya geen usemos, para bruikbaar como una WebCam.Sin embargo la complejidad estaría nl la
Arduino Master Modbus RTU Scada Conexion Scada industriële

Arduino Master Modbus RTU Scada Conexion Scada industriële

Esta pruebas aunque es simular een otras pruebas realizadas nl Post anteriores implementando Arduino y el protocolo Modbus RTU seriële Modo Maestro, es el primer paso para la Conexión de arduino een VN Entorno Scada industriële que veremos mas delan