lunes, 4 de enero de 2016

Arduino + Modulo Wifi ESP8266

Este pequeño tutorial pretende servir de introducción al manejo del modulo Wifi ESP8266 con Arduino IDE sin depender de librerías ni herramientas externas

Modulo ESP8266 (ESP-12)















Notas: Aunque en algunos modulos vienen con la etiqueta de certificacion FCC, solo algunos realmente la poseen, en este caso el modulo ESP-12, si parece complir con esta normativa, ver https://fccid.io/2ADUIESP-12#axzz3Wd49oIRfhttp://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

Para este caso vamos a trabajar con el modulo ESP12, que tiene todos los puertos GPIO disponibles, como contrapartida, este modulo viene en formato SMD, con lo cual hay que fabricar un adaptador para poder usarlo en la protoboard.

- Esquema Adaptador ESP-12












Los modulos ESP8266 tienen dos modos de funcionamiento, "normal mode" y "flash mode" este depende de una configuracion de los pines GPIO0 y GPIO2 como se puede ver en este esquema:

(MTDO es GPIO15).

MTDOGPIO0GPIO2ModeDescription
LLHUARTDownload code from UART
LHHFlashBoot from SPI Flash
HxxSDIOBoot from SD-card
* Informacion obtenida de https://github.com/esp8266/esp8266-wiki/wiki/Boot-Process#esp-boot-modes

Para nuestro caso necesitamos GPIO15-> GND y GPIO0->GND, GPIO2 tiene un pull up interno y no necesita conectarse

La conexión mas correcta para nuestro modulo seria:

GPIO0->Resistor 10K a  GND ( Flash Mode )
GPIO2->Resistor 10K a VCC ( 3v3 )
GPIO15->Resistor 10K a GND


- Instalar las herraminta de compilacion desde el board manager

Para instalar el soporte de la placa ESP8266 y similares en Arduino hay que entrar en "Archivo->Preferencias" y configurar una URL extra para el manejo de boards:

La dirección en cuestión es "http://arduino.esp8266.com/stable/package_esp8266com_index.json"


A continuación entramos en "Herramientas->Placa*->Gestor de tarjetas" e instalamos el soporte para "esp8266"


La descarga de las herramientas son mas de 100MB...

Por ultimo para comprobar que tenemos todo preparado nos vamos a "Herramientas->Placa:*->Generic ESP8266 Module" o el modulo que nos interese.

El único valor de los que viene por defecto que nos interesa cambiar, es el "Upload Speed" que cambiaremos de "9600" a "115200" para no desesperarnos entre los Uploads de los sketchs.


Ahora abriremos un Sketch de ejemplo en "Archivo->Ejemplos->ESP8266->Blink", para nuestra versión de board, modificaremos el ejemplo y cambiaremos el valor BUILTIN_LED por el puerto que nos interese, el modulo ESP-12 tiene conectado el GPIO2 al led azul de manera interna.



Aqui se aprecia el mapeo de pins GPIO entre el modulo ESP-12 y Arduino:























Notas: los GPIO son tolerantes a 5v input, pero se recomienda usar siempre 3v3 


Success!!!

Enlaces de interés:



sábado, 14 de marzo de 2015

Programador USB AVR ISP con Attiny85

Esta es una muy interesante alternativa a los programadores comerciales con la que podemos montar un programador usb-avr a un precio muy reducido y totalmente funcional

Pagina principal del proyecto http://www.instructables.com/id/VUSBTiny-AVR-SPI-Programmer/

Los componentes necesarios son bastante básicos, si es cierto que hay que contar previamente con un programador para flashear el Attiny85, con una placa Arduino se puede emular perfectamente, pero eso es otra historia.

Componentes:
  • Attiny45 o Attiny85
  • 2 diodos zener de 3.6v
  • 2 resistencias de 68 ohmios
  • 1 resistencia de 1500k
  • placa de prototipos o similar
He creado mi propio diseño con componentes SMD, que tienen tal que este aspecto:



Renderizado 3D previo:


PCB definitiva:


Como se puede apreciar el proyecto es muy facil de construir, tenemos una guia muy adecuada de uso en este tutorial  https://learn.adafruit.com/usbtinyisp/avrdude

Un pequeño inconveniente del proyecto, es que como hay que modificar los FUSES del ATTINY para deshabilitar la función de RESET, si nos equivocamos programando una flash incorrecta, no se puede volver a acceder a la FLASH, hay que ejecutar una recuperación con un programador especial HVP ( High Voltage Programmer ).

viernes, 5 de diciembre de 2014

Miniaturizando proyectos con Arduino Tiny

Miniaturizando proyectos con Arduino Tiny


Arduino Tiny no es mas que una version adaptada del core de Arduino para hacer uso de los pins IO de la serie de microcontroladores Attiny de Atmel.

Actualmente el proyecto mas estable es Arduino-Tiny https://code.google.com/p/arduino-tiny/ 

Este entorno es compatible con los siguientes modelos:
  • ATtiny84 (84/44/24)
  • ATtiny85 (85/45/25)
  • ATtiny2313 (4313)
Ejemplo del tamaño final de compilación del Sketch Blink para Attiny85:


Ejemplo del tamaño final de compilación de un sketch usando funciones de Serial, LM35, FAN y PWM. 
Notas: Sin la funcionalidad de Serial, el tamaño es de 3206 bytes, con lo cual entraría en la flash de un Attiny45

Como se puede apreciar, se pueden realizar proyectos muy interesantes en un tamaño reducido, tanto lógico como físico.

Guia de uso del entorno Arduino-Tiny:

Descarga del software de la pagina del proyecto el fichero "arduino-tiny-0150-0020.zip"

$ cd arduino-1.5.8/hardware
$ unzip  /arduino-tiny-0150-0020.zip
$ cp tiny/avr/Prospective Boards.txt tiny/avr/boards.txt 
Notas: tambien se puede crear el fichero boards.txt solo con los modelos que necesitemos a partir del original.

Después de arrancar el IDE, elegimos la Placa que nos interese de la lista:


Subir el sketch:

La serie Attiny no tiene Bootloader protegido, también debido a su poco espacio para programas no tendría sentido malgastar espacio, por ese motivo para poder subir los sketchs, necesitamos un programador AVR que pueden ser alguno de los siguientes: 
En el menu "Herramientas - > Programador" tenemos la lista de dispositivos compatibles con el IDE:


A partir de ahora podemos usar el entorno IDE como siempre 

Otras cuestiones

Precios aproximados de los integrados :
  • Atmega328 DIP ( 2,45€ )
  • Atmega168 DIP ( 2,13€ )
  • Atmega88 DIP ( 2€ )
  • Attiny85 DIP ( 1,20€ )
  • Attiny45 DIP ( 1,06 )
Notas: las versiones SMD son bastante mas baratas.

lunes, 15 de julio de 2013

Nueva gastada Nikon D3200

Aprovechando las ofertas del verano me he agenciado una interesante oferta de NikonD3200 + accesorios


Las primeras pruebas han dado unos resultados muy decentes


Continuará...

miércoles, 3 de julio de 2013

Adaptador QFP32 a DIP32

Interesante adaptador de encapsulado QFP32 a DIP32 adquirido en ebay por 15€, permite programar el bootloader de Arduino o similares y luego soldarlo en la PCB sin tener que diseñar un conector ISP con el consecuente ahorro de los problemas que conlleva.




Notas: el pinout no parece ser 1-1 con el zocalo QFP32, sino a partir del 4 del pin DIP corresponde con el 1 del QFP