Archivo de la etiqueta: bluetooth

Bluetooth con Arduino MEGA

El módulo Bluetooth es uno de los más utilizados para poder enviar o recibir información remotamente a dispositivos como móviles, tablets, …

Módulo HC-06

Al igual que en Arduino UNO, en Arduino MEGA también podemos usar el módulo Bluetooth con dos pines cualesquiera. Para ello ArduinoBlocks implementa internamente un puerto serie emulado por software (el módulo HC-06 se comunica con Arduino por conexión serie igual que el Arduino con el PC con la consola)

Pero a diferencia de Arduino UNO, en el modelo MEGA tenemos más puertos serie integrados en el hardware Arduino MEGA. Si utilizamos estos pines en concreto internamente utilizaremos la conexión implementada por Hardware lo que reduce el tamaño del programa y esta conexión será más óptima que cuando se emula por software.

Pines donde conectar el Bluetooth para usar uno de los puertos serie extra en Arduino MEGA

Serie 1 -> Bluetooth RX al pin 18 de Arduino MEGA / Bluetooth TX al pin 19  de Arduino MEGA

Serie 2 -> Bluetooth RX al pin 16 de Arduino MEGA / Bluetooth TX al pin 17 de Arduino MEGA

Serie 3 -> Bluetooth RX al pin 14 de Arduino MEGA / Bluetooth TX al pin 15 de Arduino MEGA


Ejemplo 1

Conexión bluetooth en pines 2 y 3  (conexión serie emulada por software)

Desde el móvil con una aplicación tipo “Bluetooth terminal” o similar visualizamos los datos recibidos:


Ejemplo 2

Conexión en los pines 18 y 19 (puerto serie 1 implementado en el Hardware )

y el funcionamiento es exactamente el mismo


La diferencia en el código generado es que en el ejemplo 1 se utiliza la librería SoftwareSerial para implementar un puerto serie por software (esto utiliza más recursos y el programa ocupa más memoria)

#include <SoftwareSerial.h>
SoftwareSerial bt_serial(3,2);

En el caso del ejemplo 2 se implementa utilizando HardwareSerial y de esta forma se optimiza el funcionamiento interno.

#include <HardwareSerial.h>
HardwareSerial &bt_serial=Serial1;
Compartir

Control por Voz (Arduino + Android)

Vamos a ver una forma muy sencilla de implementar un sistema de control por voz en nuestros proyectos con Arduino con la ayuda de un dispositivo Android conectado a Arduino por Bluetooth.

Aplicación Android

La aplicación Android es muy sencilla de programar gracias a la fantástica aplicación online “appinventor”.

La aplicación permite realizar la conexión Bluetooth y se encargará de “escuchar” nuestra voz y convertirla a texto. Una vez reconocido el texto (gracias al reconocimiento de voz de Google) el texto será enviado vía Bluetooth al Arduino.

Antes de enviar el texto la aplicación se procesa de la siguiente forma:

  • convierte todo el texto reconocido en minúsculas
  • quitar las vocales acentuadas (las deja sin acentuar)
  • cambia las “ñ” por “ny” para evitar problemas en la codificación.

El programa Arduino recibirá los comandos de texto y actuará en función de lo que cada comando queramos que haga.

Comandos de voz y acción a realizar en Arduino:

“encender rele” => enceder relé
“apagar rele” => apagar el relé
“parpadear rele” => enciende y apaga el relé dos veces
“led rojo” => led rgb en rojo
“led verde” => led rgb en verde
“led azul” => led rgb en azul
“led naranja” => led rgb en naranja
 “led apagar” => led rgb apagado

“reiniciar” => apaga todo

Aplicación Android:

Descarga de la App (archivo .apk):

http://www.arduinoblocks.com/web/apk/ArduinoBlocks_ControlVoz.apk

O búscala en la galeria de App Inventor 2…

Programa ArduinoBlocks:

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

La función ejecutar comando realiza la acción correspondiente para cada comando de voz:

Este proyecto se puede modificar fácilmente  para cualquier tipo de proyecto. La aplicación Android para el reconocimiento de voz es totalmente reutilizable en otros proyectos similares.

Esquema de conexiones utilizado en el proyecto:

Video en funcionamiento:

Ánimo y añade el control por voz a tus proyectos!

+Info

http://blog.arduinoblocks.com/

https://www.facebook.com/ArduinoBlocks/

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

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

 

Compartir

Coche con servos controlado por Bluetooth

Vamos a realizar un pequeño vehículo que utiliza dos servos de rotación continua para el movimiento y un módulo Bluetooth HC06 para comunicarse con una aplicación móvil y ser controlado.

Material necesario:

  • Plataforma metálica
  • 2 x Servo rotación continua
  • 1 x Arduino UNO
  • 1 x Arduino Sensor Shield
  • 1 x Modulo Bluetooth HC06
  • 1 x Batería de 9v 1000mAh

Esquema de conexión

Se ha utilizado una “sensor shield” para simplificar el cableado:

El montaje se va a realizar sobre una plataforma lista para acoplar los dos servos de rotacion continua con ruedas y una rueda loca delante:Los servos están montados de forma invertida, por lo que para que el robot avance debemos hacerlos girar en sentidos inversos para que las ruedas giren en la misma dirección:

Utilizaremos esta aplicación gratuita para dispositivos Android para controlar el coche:

https://play.google.com/store/apps/details?id=braulio.calle.bluetoothRCcontroller

La aplicación envía un comando en forma de letra para indicar cada acción, en ArduinoBlocks la forma más sencilla es leer un byte (equivalente a una letra) y comprobar su valor numérico que será el correspondiente al valor ASCII de cada letra:

Comandos usados:
Avanzar -> ‘F’ (ASCII: 70)
Retroceder -> ‘B’ (ASCII: 66)
Izquierda -> ‘L’ (ASCII: 76)
Derecha -> ‘R’ (ASCII: 82)
Avanzar derecha -> ‘G’ (ASCII: 71)
Avanzar izquierda -> ‘I’ (ASCII: 73)
Parar -> ‘S’ (ASCII: 83)
Control de los servos

El control de los servos de rotación continua funciona de la siguiente manera:

90º -> el motor está parado

-> el motor gira en un sentido a máxima velocidad

180º -> el motor gira en sentido contrario a máxima velocidad

Indicando valores cercanos a 90 podemos hacer que gire más lento en un sentido u otro:

80º -> el motor gira en un sentido a velocidad lenta

100º -> el motor gira en el sentido contrario a velocidad lenta

Por tanto para avanzar programamos los servos así:

Para retroceder hacemos justo lo contrario:

Para girar a la derecha o izquierda hacemos que las ruedas giren en sentidos contrarios y así el robot prácticamente pivota sobre sí mismo:

Y podemos hacer que avance y gire a la vez haciendo las combinaciones de movimientos:

En el bucle principal comprobaremos el comando que hemos recibido por Bluetooth y ejecutaremos la  función correspondiente a cada movimiento:

¡el programa completo queda así de sencillo!

Video del funcionamiento:

Programa + información + descargas:

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

Enlaces donde conseguir algunos componentes:
Electan:
Microlog:
Feetech:
 www.arduinoblocks.com
Compartir

Led controlado desde móvil por bluetooth (ArduinoBlocks + AppInventor)

La conexión Bluetooth nos va a permitir controlar y monitorizar nuestros proyectos Arduino de forma inalámbrica. El módulo HC-06 es sencillo de conectar y utilizar.

Existen aplicaciones genéricas tipo  “blueterm” que nos permite recibir y enviar datos de forma genérica, pero estas soluciones quedan “poco profesionales”

Aplicación para móvil

Vamos a ver como programar nuestra propia aplicación para móvil gracias a la aplicación AppInventor (sistema Android). Lo único que necesitamos es una cuenta de Google y empezar un nuevo proyecto en la web http://ai2.appinventor.mit.edu

Iniciaremos un nuevo proyecto y en primer lugar tendremos que diseñar la interfaz de usuario:

Y procederemos a realizar la programación por bloques:

  1. Conexión Bluetooth
  2. Desconexión Bluetooth
  3. Envío de un “1” al pulsar el botón “On” y un “2” al pulsar el botón “Off”De esta forma tan sencilla ya tendríamos la aplicación móvil preparada. Sólo falta generar y descargar la aplicación

Programa ArduinoBlocks.

El programa de Arduino que recibe los comandos Bluetooth y enciende o apaga el led también es muy sencillo:

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

 

+Info y proyectos:

Compartir