Archivo del sitio

Escudo de Ethernet W5100 – III

En este caso el control lo realizaré a través de una aplicación creada con “App Inventor”.

Como solo es un ejemplo he decidido realizar la implementación de tres salida digitales y dos entradas analógicas, simulando la temperatura de dos estancias de una casa.

La programación es muy fácil, para las salidas digítales, se trata de realizar un “Get” con uno de estos códigos:

  • OnXXX para encender la estancia
  • OffXXX para apagar la estancia

Módulo de Control de un Led con AppInventos.

Para las entradas analógicas simuladas, se implementa un “Web” dentro de la aplicación y se referencia a la dirección del servidor web (192.168.1.177).

Esquema de los LED

Circuito teórico

Circuito Práctico.

Programa Arduino

AppInventos

Aspecto Simulado

Captura de Pantalla desde un móvil

Archivo aia de AppInventor.

Casa_Domotica_I.aia

App de la Aplicación.

Casa_Domotica_I.apk

Códigos Fuente  Arduino

Ethetnet_AppInventor.ino

Vídeo resumen:

Escudo de Ethernet W5100 – II

Esta entrada es una evolución de la anterior “Escudo de Ethernet W5100 – I” . Esta vez nos centraremos en representar los valores de las seis entradas analógicas de las que cuenta el Arduino UNO, además puliremos un poco el interface de la página para darle un aspecto uno poco más profesional (solo un poco).

Programamos el aspecto de un botón y lo sustituimos por el del enlace anterior.

boton

Otro de los aspecto que debemos programar es la visualización de las entradas analógicas.

escribir_entradas-analogicas

Esquema de los LED

semaforo_ethernet

Circuito teórico

semaforo_ethernert_bb

 

Circuito Práctico.

vista_general_02

Otra Foto

Programa Arduino

Página Web

paguina_web_led_e_analogicas

Códigos Fuente  Arduino

Ethetnet_Entradas_Salidas.ino

Vídeo resumen:

Escudo de Ethernet W5100 – I

Vamos a conectar un arduino duemilanove con un escudo Ethernet W5100 y realizaremos un servidor Web.

Cuando conectamos un Arduino Ethernet Shield en un Router, éste le asigna una dirección IP dentro de tu propia Red que se encuentre libre, es decir, una identificación que le permite diferenciar a tu Arduino del resto de ordenadores y demás elementos que tengas conectados a la red local de tu casa. Si no conocemos esa IP, el sistema dejará de funcionar. Para solucionar esto, lo que realizamos es asignarle mediante programación un IP conocida que se encuentre libre en nuestra Red Local con los siguientes pasos:

  1. Pulsa el botón de inicio.
  2. En la barra de búsquedas, escribe “cmd” y ejecuta el programa encontrado.
  3. Te habrá salido otra ventana de fondo negro.
  4. Escribe en ella “ipconfig”.
  5. Vamos a mirar si la dirección IP 192.168.1.177 se encuentra libre
  6. Escribe ping 192.168.1.177

ip_sin_ocupada

IP Libre

ip_ocupada

IP Ocupada

Todas los dispositivos que conectas a tu red poseen un número identificativo “MAC”, de cara a la red, es como su DNI. Al igual que la IP, no debe haber otro dispositivo con el mismo MAC. El MAC de tu Arduino puede ser fijado por ti, por defecto puede ser: byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }, salvo que tengas especial interés por utilizar otra.

Vamos a crear un página Web con seis enlaces, tres enlaces encenderán un LED, o otros tres lo apagarán de la siguiente forma:

  1. Cargamos las librerías y realizamos la asignaciones de la dirección IP, MAC y puerto del servidor.codigo_libreria_ip_mac
  2. Establecemos los pines de Salida para los LED
  3. Inicializamos la conexión Ethernet
  4. Creamos una conexión Cliente
  5. Creamos la página Web
  6. Y por último evaluamos si ha sido pulsado algún enlace

Esquema de los LED

semaforo_ethernet

Circuito teórico

semaforo_ethernert_bb

 

Circuito Práctico.

vista_general_02

Programa Arduino

codigo_ethernet

Página Web

pagina_web_led

Códigos Fuente  Arduino

ConexionEthernet.ino

Vídeo resumen:

 

ArduRover VIII (Creando Recorridos)

Creación de un Recorrido Definido.

Esta parte del proyecto es continuación de los proyectos anteriores  y trata de crear un recorrido como suma de secuencias de movimientos que se grabarán en un registro.

Para ello, lo primero que hay que realizar, son los procedimientos básico para la gestión de una BD:

Añadir un Registro

Eliminar un Registro

Modificar un Registro

Para ello, he creado una lista y la he manejado utilizado las funciones que nos ofrece App Inventor  sobre “TinyDB”.

Una vez terminada esta labor, lo siguiente en realizar la sincronización de la secuencia a utilizar, para ello, he utilizado un sistema de sincronización que se basa en la siguiente secuencia:

La aplicación envía una orden a ejecutar y espera respuesta.

Arduino ejecuta la orden, y cuando acaba envía a la aplicación “OK”

Cuando la aplicación lo recibe, pasa a la siguiente orden.

Esto acaba con el ultimo registro grabado

Como podéis ver he implementado cuatro botones de recorridos, aunque solo está habilitado el primero, dejando para un futuro la implementación de cuatro posibles recorridos.

Diagrama de Flujo del Funcionamiento de Arduino al recibir una Orden

Presentación_Recorrido

SCREEN 1

Pantalla1SCREEN 2

Pantalla2
SCREEN 3

Pantalla3

SCREEN 4

Pantalla4Bloque de Inicialización

Bloque_Inicializacion

Bloques del Control de Registros

Bloque_Reguistro_Recorrido

Bloques Ejecutar Recorrido del Registro

Bloques_Recorridos

Esquema Teórico Parcial:

Sensor_Hall

Esquema Práctico:

Placa_1_ArduRover_Codificador_Hall

Modificación del Programa Arduino:

Extracto_Codigo_Recorrido

Fotos:

Vista_General

Vista General

DetalleDetalle de las conexiones

TabletPantalla Tablet

—————-

Código fuente

ArduRover_Recorridos.ino

APP de Proyecto:

APP ArduRover_VIII.apk

Ficha del Proyecto:

ArduRover_VIII_Ficha_35

Vídeo resumen:

ArduRover III (Luz)

Encender una Luz y Realizar Medidas de Luminosidad.

La implementación de esta parte del proyecto es una continuación del proyecto anterior (ArduRover II Bluetooth).

Se trata de seguir incorporando funcionalidades al Rover, en este caso he incorporado una luz delantera y la medición de la luz ambiente con dos LDR incorporadas en la delantera del Rover.

He modificado el Screen de programa y he implementado dos bloques más.

SCREEN

Screen_1.2

Bloque del Evento Clock

Bloque_Clock

El bloque se ejecuta coda segundo y realiza lo siguiente:

Comprueba si está conectado y si es así

Envía una “M” por Bluetooth.

Recoge los datos suministrado por el Arduino (He tenido que realizarlo dos veces, por que con una solo captaba parte de los datos enviados. Seguiré investigando)

Si no está conectado, no realiza nada

Bloque del Evento Pulsar el Botón Luces

Boton_Luces

Creo una variable global que dice como se encuentra la luz.

El Bloque se ejecuta cada vez que pulsamos el botón de la Luz, y realiza lo siguiente:

Comprueba si está conectado y si es así

Comprueba si la variable global es “true” y si es así

Envía  “LOOF” por Bluetooth.

Establece la variable global a “false”

Pone la etiqueta del botón de luz en “OOF”

Si la variable global es “false”

Envía  “LON” por Bluetooth.

Establece la variable global a “true”

Pone la etiqueta del botón de luz en “ON”

Si no está conectado, informa de que no puede realizar la operación dada por encontrase desconectado.

Esquema Teórico Parcial:

Esquema_Practico_LDR

 

Esquema Práctico:

Placa_1_ArduRover_3_bb

Código del Programa:

Codigo_ArduRover_1.2

Fotos:

Vista_Lateral

Vista de perfil

Superior

Vista Superior

Tablet

Funcionamiento en una Tablet

Detalle_de_Conexion

Detalle de las conexiones

Código fuente:

ArduRover_Traccion_Bluetooth_Luz.ino

APP de Proyecto:

ArduRover_IV.apk

Ficha del Proyecto:

ArduRover_III_Ficha_30

Vídeo resumen:

LED RGB

Un poco de teoría

El color es un atributo que percibimos de los objetos cuando hay luz. La luz es constituida por ondas electromagnéticas que se propagan a unos 300.000 Km/s, las ondas forman distintos tipos de luz, como infrarroja, visible, ultravioleta o blanca. Las ondas visibles son aquellas cuya longitud de onda está comprendida entre los 380 y 770 nanómetros.

Espectro_del_Color

Los objetos devuelven la luz que no absorben hacia su entorno. Nuestro campo visual interpreta estas radiaciones electromagnéticas que el entorno emite o refleja, esto significa que lo que vemos es la incidencia de la energía en nuestra retina y no a la materia en sí.

Lo que denominamos color no es algo físico sino que es una sensación que se produce en nuestro cerebro, por acción de la luz sobre los cuerpos. Por ello, nuestra percepción del color cambia cuando la luz se modifica, o cuando el rayo luminoso se refleja sobre superficies distintas.

Las tres variables principales del color usadas por los físicos para describirlo son las siguientes:

1) Tono (matiz o tinte)

2) Saturación (dureza o croma)

3) Luminancia (brillo)

Para obtener la gama completa teórica de colores se deben mezclar tres colores primarios, esta mezclar de colores se puede realizar de dos maneras, con luces o con pinturas.

La mezcla con luces, se llama mezcla aditiva. Cuantos más colores se añadan, más claro será el resultado. Todos los colores juntos forman luz blanca. Los colores primarios de este tipo de mezcla son:

* Luz Verde

* Luz Roja

* Luz Azul

Mezcla_aditiva

La mezclar con pinturas, se llama mezcla sustractiva. El color mezclado es siempre más oscuro que el más claro de los colores que se han mezclado. Los colores primarios de este tipo de mezcla son:

* Pintura Magenta

* Pintura Amarilla

* Pintura Azul

Mezcla_sustractiva

Basta de teoría, lo que vamos a realizar es un ejemplo básico de funcionamiento de un Led RGB.

Un Led RGB no es más que en un mismo encapsulado tres Led de los colores rojo, azul y verde. En mi caso el Led que he utilizado es de cátodo común, o lo que es lo mismo tres diodos con el cátodo unido.

Led_RGB_Patillas

Como podéis ver cuando alimento solo uno de los Led, cada uno ocupa un espacio físico distinto.

He introducido el Led en una pelota de Pin-Pon para que el efecto del color se pueda apreciar mejor

Tricolor

Los alimento con una señal PWM, y dependiendo del valor tenemos una luminosidad distinta.

Esquema Eléctrico:

LED_RGB_Esquema

Esquema Práctico:

Led_RGB_bb

Código del Programa:

Led_RGB_Codigo

Fotos:

Vista_1

Vista General

Led_Rojo

Led Rojo

Led_Verde

Led Verde

Led_Azul

Led Azul

Código fuente:

Led_RGB_Color.ino

Ficha del Proyecto:

Led_RGB_Ficha_24

Vídeo resumen: