jueves, 22 de diciembre de 2016

Actualizar el Firmware del ESP8266 con Arduino Nano

Y Felices Fiestas a todos!!! Ayer tuve un pequeño problema cuando estaba programando un menú configurador para hacer más sencilla la manera de configurar el ESP8266. Estaba con el menú del Baudrate cuando me equivoque al meter un baudrate que no era valido, el ESP8266 dejo de funcionar.
Tengo varios módulos más, pero ya que estaba en faena me decidí a solucionarlo en el momento...
Eso pensé en un principio, pero no fue tan sencillo unirlas piezas, me explico:
Ante la imposibilidad de comunicarme con él, la solución era evidente, tenia que volver a cargar el firmware del ESP8266.
Buscando información sobre como actualizar el firmware, casi todo lo que encontré era referido al adaptador de FTDI a USB. Hasta que en alguna parte leí que uno de esos adaptadores utiliza el chip CH340 y recordé que este es el driver que utiliza el Arduino Nano.

El circuito no podía ser más simple:

Una vez montado solo hay que subir el siguiente Sketch:


int ch_pd = 3; int io0 = 2;
void setup() {
pinMode(ch_pd, OUTPUT);
pinMode(io0, OUTPUT);
digitalWrite(io0,LOW);
digitalWrite(ch_pd, LOW);
delay(1000);
digitalWrite(ch_pd, HIGH);
}
void loop()
{
}
Y ahora si, podemos actualizar el firmware del ESP8266 sin adaptador y con nuestro Arduino Nano.
Para esto he utilizado el ESP8266_flasher desde Windows. Es un programa muy sencillo pero que cumple a la perfección con su cometido:



En este punto hay que decir que si al probar el nuevo firmware no funcionara bien o no fueramos capaces de conectar con el ESP8266 seria conveniente cambiar la dirección 0x00000 por la 0x40000080. Ahora si ya podemos conectar con el módulo con los comandos AT para configurarlo.
El firmware que he utilizado para la actualización es el v0.9.2.2 AT Firmware.bin

Os dejo el archivo con todo lo necesario para instalar el firmware:


  • Esquema de conexión
  • ESP8266_flasher.exe
  • Firmware v0.9.2.2 AT Firmware.bin


Recordad poner el ESP8266 en modo AP o BOTH con AT+CWMODE=3 antes de buscar una red WiFi, si no seguramente no detecte nada.

Pues esto es todo, espero que os sirva de ayuda si tienes que actualizar el firmware y no dispones de un adaptador de FTDI a USB

Saludos!!!

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.

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.

Related Posts Plugin for WordPress, Blogger...