Con G de GNU

Shield para ATtiny85

por en may.22, 2012

Buenas una vez más! Hoy vengo a hablarte del ATtiny85. Empiezo diciendo que este microcontrolador me ha enamorado por la sencilla razón de ser funcional y muy sencillo de manejar. Yo lo definiría como un “arduino” en pequeño. Cuenta con cuatro pines digitales (dos de ellos pwm), y tres de entrada analógica.pero es que en vez de tener 28 pines tiene apenas 8. Esto permite que su tamaño sea muy reducido. Para fabricar pequeños circuitos autónomos es realmente práctico. Además, se puede programar con el mismo IDE de arduino que es lo que voy a tratar.Si bien existen un montón de microcontroladores, para muchos de ellos el programarlos es una tarea bastante complicada. Sobretodo cuando no queda otra opción que programar en ensamblador necesitando haber leído antes el datasheet para conocer todas las instrucciones y registros. Por suerte para arduino tenemos un compilador de C que se encarga de todo y eso mismo vamos a hacer con el attiny85. El único problema que nos queda es cómo meter el programa en el chip. Pues fácil, utilizaremos el propio arduino.

Software

Lo primero y más sencillo es obtener el software desde este enlace

Ahora vamos a nuestro directorio de arduino, donde están los directorio lib, libraries y examples entre otros

Si no existe, creamos el directorio hardware y descomprimimos ahí el archivo descargado de tal manera que dentro del directorio hardware exista uno llamado attiny45_85

Ya tenemos el software listo. El siguiente paso es cargar un programa en arduino. Este programa se encargará, por decirlo sencillamente, de escribir en el attiny lo que enviemos al arduino. Una especie de pasarela. Entonces abrimos el IDE de arduino (si lo tenías abierto, reinícialo). Desde el IDE de arduino, pincha en “examples -> ArduinoISP” y carga ese programa en arduino. Por último, sólo queda indicar que lo vamos a utilizar para cargar programas en un attiny85 y esto lo hacemos desde el IDE pinchando en “Tools ->Board -> ATtiny85 (w/ Arduino as ISP)”. Ya está listo, esta parte la he resumido mucho pero puedes echar un ojo al post original

Hardware

Nos queda la parte hardware. Enlazo del post original la siguiente imagen

Como puedes ver es realmente sencillo. Básicamente se conectan unos pines y un condenador de 10 uF. El condesador es muy importante, mucha gente ha tenido problemas y es por no usar ese condensador. Reconozco que fastidia más el tener que ir a comprarlo que el comprarlo (costará un céntimo o así).

Si lo conectas de esa manera verás que ahora puedes cargar programas sin problemas. Si tienes algún problema, echa un ojo al post original o pregúntame debajo.

Construir una shield

Como prueba está bien montarlo en una breadboard pero es muy poco práctico, sobretodo si tienes que andar montando y desmontando cada ve que quieras cargar un programa. Como alternativa yo propongo una shield. De esta manera cada vez que quiera cargar un programa en el attiny pincho la shield en el arduino y listo. Mostraré paso a paso cómo lo he hecho.

Lo primero, reunir material.

Socket DIP-8 para encajar el chip attiny
Condensador de 10 uF
Placa PCB
Pines para pincharlo en el arduino
Opcional: Un led y una resistencia de 150 Ohmios. Así se puede saber cuándo está escribiendo.

Siguiendo el esquema, simplemente soldar. Pongo unas fotos para ver cómo ha quedado.

Sí, se que está soldado al revés pero para conectar los pinesme es más práctico así

Shield pinchada al arduino. Aunque todavía no está puesto el led

Una vez comprobado que funciona, le paso un poco la pistola de pegamento para proteger las conexiones y evitar cualquier cortocircuito o que arranque un cable sin querer

Y esto es el producto acabado. No es tan bonito como uno comercial pero funciona perfectamente. Cuando cargamos el programa en attiny lo quitamos del socket y ala, a funcionar. Cuando queramos meterle otro programa pues le enchufamos al socket y cargamos el programa

Hablando en euros, el precio de todo el material (sin contar el chip) no llega ni a los 50 céntimos. El tiempo de trabajo pues no lo he cronometrado pero seguramente sea del orden de 30 o 40 minutos (y me lo he tomado con calma). Vamos, que vale más el tiempo que el material :P

Por último, repito que este chip es muy práctico. Permite tanto procesamiento como el arduino (20mhz) en un espacio muy reducido. Yo lo utilizo para módulos intercambiables en mis robots. Utilizo un protocolo sencillo de comunicación entre módulos por ejemplo entre beaglebone y un attiny por serie, o arduino y attiny a través de i2c. Pongámonos en el caso de detector de líneas. Yo diseño mi software de tal manera necesita saber si está sobre la línea, si se ha salido por la derecha y si se ha salido por la izquierda. A mi software le da igual si se está utilizando un sensor de infrarrojos, láser, gps o cualquier cosa. Quien se encarga de trabajar a nivel de hardware con los sensores es el attiny, que en el caso de un sensor de infrarrojos pues tendrá conectados unos transistores y diodos que en función de la tensión pues calculará la posición del sensor sobre la línea y codificará esa información para enviársela luego a quien le esté escuchando.

De esta manera puedo intercambiar sensores o modificarlos sin tocar nada del software principal. Además esto permite sustituir de manera sencilla cualquier elemento del robot que en esta vida siempre se rompen cosas y poder sustituirlas lo más rápido posible es importante.

Un saludo!

 

 

Hardware
2 cometarios:
  1. Scottie
    Google Chrome 25.0.1364.97 Windows 7

    Es necesario cargar el programa ArduinoISP en el arduino para programar el ATtiny??

    atentamente, un novato que tiene un attiny y no consigue cargar el blink… ^^

  2. Maxpowel
    Google Chrome 25.0.1364.97 GNU/Linux

    Sí claro, tienes que cargar ese programa en el arduino y luego en Herramientas->tarjeta seleccionar uno que pone attiny a través de ISP o algo así (no recuerdo exactamente).

    Piensa que quien escribe el en el attiny es el arduino.

    Esto al final acaba siendo un poco coñazo, yo con el tiempo he acabado poniendo un atmega328 (el microcontrolador sobre el que se basa arduino uno) con ese programa cargado para tener un programador siempre disponible (equivalente a tener esta shield con un arduido dedicado exclusivamente para esta tarea)

Deja tu comentario! no mordemos!

¿Buscando algo?

Usa el formulario de debajo:

¿Sigues sin encontrar lo que buscas? ¡Deja un comentario o ponte en contacto con nosotros para que lo encontremos por ti!