martes, 29 de noviembre de 2016

Comandos AT para módulo ESP8266

Buenas a todos!! Ahora que aun tenemos frescos en la memoria el tema de los comandos AT, vamos a ver que para los módulos WiFi ESP8266 también se utiliza para configurar internamente este módulo.


Empecemos describiendo un poco el ESP8266:

ESP8266 es un puente de puerto serie a WiFi, este incluye un pequeño microcontrolador para poder manejar el protocolo TCP/IP además incluye el software necesario para la conexión 802.11. 
La mayoría de modelos dispone de entradas/salidas digitales y algunos modelos una entrada analógica. Su punto fuerte es disponer de acceso WIFI y por su reducido precio el ESP8266 es uno de los percusores de lo que se ha llamado "El Internet de las cosas".


Caracteristicas Técnicas:

  • Wi-Fi Direct (P2p), Soft Access Point
  • Stack TCP/IP integrado
  • PLL, reguladores y unidades de manejo de energía integrados
  • Potencia de salida: +19.5dBm en modo 802.11b
  • Sensor de temperatura integrado
  • Tamaño ultra reducido (11.5mm x 11.5mm)
  • Consumo en modo de baja energía: (< 10 uA)
  • Wi-Fi 2.4 GHz, soporta WPA/WPA2
  • Procesador integrado de 32 bits, puede ser utilizado como procesador de aplicaciones
  • Conversor analogico a digital de 10-bit
  • Integrated low power 32-bit MCU
  • SDIO 2.0, SPI, UART, I2C
  • Encendido y transmicion de datos en menos de 2ms
  • Rango de operacion -40C° ~ 125C°

viernes, 25 de noviembre de 2016

Arduino: Los comandos AT para el modulo bluetooth HC-06




Hace poco que he empezado a trastear con el modulo de comunicaciones bluetooth HC-06 y me he
dado cuenta de su gran versatilidad. Pero este modulo viene con una configuración de fábrica (Nombre, Contraseña, Baud rate...), pero es algo que se puede cambiar.
Para ello utilizaremos los comandos AT.

¿Que son los comandos AT?
En un principio los Comandos AT eran un grupo pequeño de instrucciones con los que se comunicaban un ordenador con módem. Con el tiempo a este tipo de comandos para comunicarse con diferentes dispositivos se popularizaron con el termino "Comandos AT". Nuestro modulo bluetooth se pueden comunicar con un ordenador, microcontrolador o cualquier dispositivo que cuente con una conexión serial.
No existen un conjunto de comandos universales para todos los dispositivos, aunque su estructura es muy similar entre ellos. Si un equipo puede trabajar con este tipo de instrucciones, si enviamos el comando AT nos devolvera un OK indicandonos que esta preparado para recibir instrucciones o devolver condiciones de estado y funcionamiento
En mayoría de los módulos bluetooth este enlace se realiza o bien durante un enlace inalambrico con un ordenador o como es el caso de HC-06 con los pines Rx/Tx.


martes, 15 de noviembre de 2016

Arduino: Brazo robot con servos ( Robot arm ) Parte 2

Buenas a todos, como ya publique hace un tiempo, tenia este brazo robot de 4 ejes hecho con una impresora 3D, en la primera entrada no publique código por un problema que tuve con el PC, pero esta vez va completo.
Bueno todo empezó cuando buscando algo, vaya usted a saber que... encontré un viejo gamepad USB, (a decir verdad encontré varios) y se me ocurrió la idea de usar los thumbsticks o joys para controlar los movimientos del brazo.

Después de desmontar el mando en este modelo vienen los dos joys montados en una misma plaquita, con la ayuda de un multímetro identificamos alimentación y las salidas de los potenciómetros además de los dos pulsadores que tiene cada joy, en mi caso solo tuve que seguir las pistas y hacer una pequeña modificación con la resistencia que venia de casa en el joydad. 





Solo nos hace falta:

  • 1 Arduino (Uno o Nano)
  • 5 Servos
  • 2 joysticks
Una vez tengamos todas las piezas el montaje es el siguiente: 


Los joystick controlan los movimientos y los pulsadores que llevan incorporados se utilizan para abrir y cerrar la pinza.
Lo único que habría que retocar serian los máximos (maxSerXpos) y mínimos (minSerXpos) de cada servo además de el punto medio donde quedaran los ejes una vez soltemos los joysticks. Se configura justo después del comentario "//estos son los valores para los joysticks en reposo".

Y bueno en principio esto es todo, os dejo el enlace para que lo podáis descargar y probar en vuestro arduino.

Descargar Ejemplo para brazo robot 4 ejes y joypad

lunes, 26 de septiembre de 2016

Arduino: Pantalla TFT de 3.5" primeros pasos

     Ya estamos de vuelta del verano!! Ya hace un tiempo que he adquirido una pantalla TFT. Es una pantalla que puedes encontrar fácilmente en Ebay y a la cual se le puede sacar mucho jugo. Lo único malo es que no dispone de panel táctil aunque si adaptador de tarjeta microSD. Tiene una resolución de 320x480.

Para poder utilizar este modelo de pantalla hacen falta las librerías. En un principio he probado con varias hasta hacerlo funcionar con las siguientes librería: Adafruit_GFX Mcufriend kbv 2.90. Este ultimo trae bastantes ejemplos de las cosas que puede llegar a hacer este Shield para Arduino.

Lo primero que quiero hacer es hacer aparecer un texto en la pantalla tipo "Hola mundo!".
Para eso lo primero es cargar las librerías:

#include <Adafruit_GFX.h>;
#include <MCUFRIEND_kbv.h>;
MCUFRIEND_kbv tft; //renombramos la libreria
Despues iniciamos la pantalla TFT en el Setup:
void setup()
{
    tft.reset();
    uint16_t identifier = tft.readID();
    if (identifier == 0xEFEF) identifier = 0x9486;
    tft.begin(identifier);
}
Y ahora en el Loop escribimos el mensaje que queramos que aparezca en la pantalla:
void loop()
{ 
 tft.setCursor(20,20);
 tft.println("Hola Mundo!!!");
 }
Y este sera el resultado en la pantalla:


Como se puede ver el texto aparece en la esquina superior izquierda. todo esto se puede cambiar en setCursor.

 tft.setCursor(0,20);

Donde la primera cantidad, (0) se refiere a la altura de la pantalla y la segunda (20) a la altura. Parece bastante sencillo para empezar, y realmente lo es!!! También con unas pocas lineas más podemos cambiar color, tamaño de la letra, orientación, fondo.. vamos a poner el fodo negro y las letras un poco más grandes
#include <Adafruit_GFX.h> // Hardware-specific library
#include <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

void setup()
{
  tft.reset();
  uint16_t identifier = tft.readID();
  if (identifier == 0xEFEF) identifier = 0x9486;
  tft.begin(identifier);
  tft.fillScreen(0x0000); //Rellenamos la pantalla de color negro
}

void loop()
{ 
  tft.setCursor(0,20); //Posicion del cursor
  tft.setTextSize(4); //Tamaño de la fuente
  tft.setTextColor(0xF800); //Color de la fuente en rojo
  tft.println("Hola Mundo!!!"); //Texto a escribir
  }
Y este sera el resultado:

Con estas pocas lineas ya se puede empezar a trastear con la pantalla, es un código muy sencillo que se puede utilizar para, por ejemplo, comprobar el buen funcionamiento de nuestra pantalla, o incluso para dejar un mensaje, eso ya lo dejo a cada cual ;) 
Un saludo y espero les sirva!!!

lunes, 21 de marzo de 2016

Arduino: leer códigos de mando a distancia (Read remote control)

Buenas, hace un tiempo que quería hacer este ejemplo ya que considero que puede tener muchas posibilidades. Aunque en este ejemplo solo vamos a leer los códigos de un mando a distancia, lo bueno es que puede ser casi cualquier mando a distancia tanto de TV, DVD, etc. Con esto que podemos hacer, podemos por ejemplo encender luces conectadas a reles, subir y bajar unas persianas, abrir una puerta... en fin lo que se os pueda ocurrir.

Solo vamos a necesitar una librería llamada IRremote.h 

AVISO: esta librería me ha dado problemas ya que se supone que ya viene incluida en el IDE de Arduino, pero no se por que no funciono, leyendo en foros descrubrí que la mejor solución es reinstalar la librería. Para esto lo primero que tenemos que hacer es eliminar estos archivos que están alojados en libraries\RobotIRremote\IRremoteTools.cpp y libraries\RobotIRremote\IRremoteTools.h 

Estos archivos están alojados en la carpeta de librerías de ArduinoIDE que no es la misma que la carpeta donde se alojan las librerías que cargamos nosotros al añadir una libreria.


Dicho esto, solo nos queda conectar el receptor de infrarojos en Arduino y comenzar a recibir datos de nuestro mando. Para conectarlo hay que mirar que tipo de IR tenemos, en nuestro caso es el VS1838B cuyo patillaje es: 1-OUT, 2-GND, 3-VSS.



A la hora de crear el ejemplo en Fritzing solo me deja este tipo de sensor IR que en lo único que se diferencia es en la posición de las conexiones.
Una vez tenemos esto empezamos con este sencillo programa:

#include "IRremote.h"

/*Declarar Constantes*/
const int receiver = 11; //Declaramos que el pin de recepcion es el 11

/*Declarar objetos*/
IRrecv irrecv(receiver);  //Creamos una instancia para 'irrecv'
decode_results results;   //Creamos una instancia para 'decode_results'


void setup()   /*SETUP: solo se lee una vez*/
{
  Serial.begin(9600);
  Serial.println("Lector de infrarojos Infotronikblog ");
  irrecv.enableIRIn(); //Activar el receptor
}

void loop()   /*LOOP: se ejecuta constantemente */
{
  if (irrecv.decode(&results)) //Cuando recibe una señal IR

  {
    Serial.println(results.value, HEX);  // Imprime el codigo de cada boton
    irrecv.resume(); //Recibe el siguiente valor
    delay(100);
  }
}
 //FIN




domingo, 13 de marzo de 2016

Arduino: Efecto soldadura con arco para maquetas

Arduino es una plataforma que gracias a su bajo coste podemos incluir en nuestras maquetas con multiples efectos tanto visuales como sonoros.

En este caso vamos a tratar la soldadura con arco, un efecto que quedara muy vistoso en cualquier obra o taller de reparaciones que incluyamos en nuestra maqueta. 

El efecto se consigue con varios random para encender y apagar el led de manera aleatoria, dando así el efecto de un equipo de soldadura. 
La idea original y el programa lo he descargado de la web Locoduino donde también se pueden encontrar varios ejemplos con luces. 

El ejemplo traducido lo puedes descargar Aqui.

Este ejemplo también me ha servido para, haciendo algunos cambios, poder añadirlo a un a decodificador DCC también realizado con Arduino que podéis descargar Aqui.

Este proyecto solo lleva un led blanco conectado al pin13 y a GND.


Related Posts Plugin for WordPress, Blogger...