Archivo por meses: febrero 2017

Proyecto: Chaqueta inteligente para ciclismo

Aníbal y Mark, dos alumnos de Formación Profesional Básica de Informática y comunicaciones de  Salesianos Juan XXIII de Alcoy (Alicante – España) nos presentan su proyecto “chaqueta inteligente para ciclismo

Un proyecto programado íntegramente con ArduinoBlocks y AppInventor.

  • Encendido automático de intermitentes por reconocimiento de gestos (con la ayuda de dos acelerómetros ADXL335 en el brazo y antebrazo para detectar el ángulo de inclinación).

  • Sensor GPS para monitorizar velocidad y detectar automáticamente la frenada.

  • Sensor DHT-11 para monitorizar temperatura y humedad ambiente

  • Módulo Bluetooth para conectar con aplicación móvil Android donde monitorizar los parámetros: intermitente actual, estado de freno, velocidad, temperatura y humedad.

  • Detector de caídas automático con aviso de llamada a servicio de emergencia.

Esquema de montaje completo:

Montaje en una proto-shield

Aplicación móvil Android:

Programación de Arduino con ArduinoBlocks:

Fotos del proceso de programación, montaje y puesta en marcha del proyecto:

Video del proyecto en funcionamiento:

Programa compartido en ArduinoBlocks:

http://www.arduinoblocks.com/web/project/1466

¡Enhorabuena a estos jóvenes por su proyecto!

 

https://www.amazon.es/ArduinoBlocks-Programaci%C3%B3n-visual-bloques-Arduino/dp/1535513284

http://www.arduinoblocks.com/shop/libros/5-libro-arduinoblocks.html

Compartir

ArduinoBlocks Connector

ArduinoBlocks Connector es la aplicación que conecta ArduinoBlocks.com con nuestra placa Arduino por USB.

Se encarga de compilar y subir el código generado desde ArduinoBlocks de forma automática y transparente.

ArduinoBlocks Connector es una aplicación programada en Python que se puede obtener de forma empaquetada para los principales sistemas operativos: Windows, Linux, RaspberryPi y MacOS.

ArduinoBlocks Connector es compatible con todos los navegadores que soportan WebSockets (firefox, chrome, opera, safari, …)

Descarga e instalación:

http://arduinoblocks.com/web/site/abconnector

Una vez instalado debemos dejarlo en ejecución, podemos minimizarlo y olvidarnos, la aplicación se encargará de hacer el trabajo por nosotros sin necesidad de interactuar con ella:

Con el botón podemos obtener la información sobre la conexión con la aplicación ArduinoBlocks Connector que se está ejecutando en el propio equipo:

ArduinoBlocks Connector es el encargado de detectar nuestra placa Arduino conectada por USB, si hemos conectado la placa posteriormente o ha habido algún cambio en la conexión podemos refrescar la lista de conexiones USB disponibles para saber donde está conectada:

Si todo está correcto y hemos seleccionado el puerto USB correctamente simplemente con la opción subir el sistema compilará, generará el archivo binario y lo subirá a la placa Arduino de forma transparente para el usuario de ArduinoBlocks:

AVISO: En las versiones Linux y MacOS en la primera compilación se descargará y actualizará el sistema de compilación de ArduinoBlocks Connector (basado en el sistema PlatformIO) por lo que tardará un poco… un poco de paciencia… a partir de esa primera ejecución la compilación y subida de nuestro programa será rapidísimo!

Configuración remota:

Si utilizamos ArduinoBlocks.com en un sistema que no es compatible con ArduinoBlocks Connector podemos configurar el sistema para hacer la compilación y upload de forma remota a través de la red local.

Por ejemplo: podemos utilizar ArduinoBlocks.com desde un dispositivo Android, iPad o ChromeBook y enviar el programa para compilar y subir a un ordenador en la red con Windows, Linux, MacOS o una RaspberryPi.

Para ello debemos configurar en ArduinoBlocks.com la IP del ordenador remoto en la red local que tiene conectado por USB la placa Arduino e instalado ArduinoBlocks Connector:

En el ejemplo anterior hemos configurado la conexión remota con un equipo en la IP de la red local: 192.168.0.15 donde debe estar conectado Arduino y la aplicación ArduinoBlocks Connector.

Ejemplo de programación remota en red:

-Programación desde tablet Android -Arduino+ArduinoBlocks Connector ejecutándose en una RaspberryPi

Más información…

https://www.amazon.es/s/ref=nb_sb_noss?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&url=search-alias%3Daps&field-keywords=arduinoblocks

http://www.arduinoblocks.com/shop/libros/7-libro-arduinoblocks.html

Compartir

Acelerómetro ADXL335

El sensor acelerómetro ADXL335 nos permite medir la aceleración en los tres ejes espaciales X,Y,Z. Es un sensor compacto y de tamaño muy reducido. Funciona a 3.3v y normalmente lo encontramos en forma de módulo con los componentes necesarios para su conexión directa a la placa  Arduino.

El rango capaz de medir este sensor  es de -3G a +3G (G=aceleración de la gravedad,  1G=9.8m/s2)

 

El sensor se conecta a tres entradas analógicas, una por cada eje de medición, el conector VCC se conecta a 3.3v

Con los valores de aceleración podemos medir la velocidad, detectar “sacudidas“, detectar “gestos” o analizar movimientos como andar o correr (podómetro). Un ejemplo del uso de acelerómetros es el famoso mando de la videconsola Wii (a parte de acelerómetros incluye otros sensores como giroscopios)

Con el sensor ADXL335 además de obtener los valores de aceleración, mediante algunos cálculos trigonométricos (que ArduinoBlocks realiza automáticamente) podemos obtener los valores de rotación: roll (ángulo de rotación en ejex X) y pitch (ángulo de rotación en eje Y).

roll = RAD_TO_DEG * (atan2(-yAng, -zAng) + PI);
pitch = RAD_TO_DEG * (atan2(-xAng, -zAng) + PI);

El valor de yaw (ángulo de rotación en eje Z) no podemos calcularlo sólo con un acelerómetro pues en este sentido de giro la aceleración por efecto de la gravedad no varía, por lo que necesitaríamos otros sensores más sofisticados que combinan acelerómetros con giroscopios  o sensores magnéticos (IMU).

Uso del bloque ADXL335 en ArduinoBlocks:

El bloque es muy fácil de utilizar, sólo debemos indicar los pines a donde está conectado cada eje X,Y,Z. Y elegir el tipo de dato que queremos: Accel-X, Accel-Y, Accel-Z, Roll o Pitch.

Ejemplo 1: En este programa de ejemplo leemos todos los datos que nos puede proporcionar el sensor y los mostramos por la consola serie:

Ejemplo 2:  Controlamos la posición de un servo a partir del ángulo roll del sensor:

Video del funcionamiento:

Programas compartidos:

http://www.arduinoblocks.com/web/project/1367

http://www.arduinoblocks.com/web/project/1382

Enlaces y recursos de interés:

http://bildr.org/2011/04/sensing-orientation-with-the-adxl335-arduino/

http://physics.rutgers.edu/~aatish/teach/srr/workshop3.pdf

http://cache.freescale.com/files/sensors/doc/app_note/AN3461.pdf

http://www.analog.com/media/en/technical-documentation/data-sheets/ADXL335.pdf

https://es.wikipedia.org/wiki/Fuerza_G

Más información y proyectos con ArduinoBlocks:

https://www.amazon.es/ArduinoBlocks-Programaci%C3%B3n-visual-bloques-Arduino/dp/1535513284/

Compartir