El pasado 28 de junio hicimos un taller de iniciación a la soldadura de estaño en el HacklabAlmería. Y como siempre… nos fuimos de tiempo.
Si bien la mayoría de las placas quedaron soldadas, el avrdude se nos resistió un poco (era nuestra primera vez con el) y nos costó programar el primer chip. Una vez dimos con la tecla (de vez en cuando está bien acudir a los FAQs), los demás fueron como la seda… menos mal que encontramos una sombra, porque lo rematamos en la puerta del instituto donde hicimos el taller.
El programa quedó cargado, …. pero los fuses no quedaron configurados (lo siento chicos) y es por eso que quiero compartir este mini tutorial para que todos los que se llevaron la placa a su casa y tengan un arduino uno (¿quién no tiene un arduino todavía?) pueda programar su chip.
La cosa es sencilla:
1.- Instalar el IDE de arduino (sudo apt-get install arduino para los ubunteros).
2.- Abrir el IDE de Arduino y Archivo -> ejemplos -> ArduinoISP
3.- Seleccionar la placa (Arduino Uno), el puerto serie al que esté conectado y cargar el sketch. Es hora de cerrar el IDE de Arduino, nosotros hemos terminado con él (Aunque se podría compilar programas y cargarlos a través del IDE).
4.- Conectar el arduino al Attiny de esta manera:
El condensador es de 10uF , lo podéis encontrar en tiendas de electrónica por céntimos o reciclarlo de cualquier aparato que tengáis roto por casa.
5.- Abrir la consola de vuestro sistema y utilizar el Avrdude (se instala el solito junto al IDE Arduino, si no es vuestro caso pues ya sabéis: sudo apt-get install avrdude). Para ello especificamos que utilice nuestra placa Arduino como si de un programador fuera (-c avrisp), le indicamos el puerto al que está conectado (-P /dev/ttyACM0), el “baudrate” o velocidad con la que se comunicará con el (-b 19200), el chip a programar, en nuestro caso un Attiny85 (-p t85) y por último el programa o configuración a cargar. Ojo, yo necesito ejecutarlo con permisos de administrador (sudo). Para los asistentes al taller, necesitan escribir algo similar a esto:
sudo avrdude -c avrisp -P /dev/ttyACM0 -b 19200 -p t85 -U lfuse:w:0xfd:m -U hfuse:w:0xde:m
/dev/ttyACM0 es el puerto en el que está conectado mi Arduino. En cada caso podéis saberlo, por ejemplo desde el IDE de Arduino en Herramientas -> Puerto serial
Voilá, ya habéis programado los fuses para que use el resonador externo y vaya a 8Mhz.
Para volver a cargar el programa, otra versión o cualquier cosa el comando sería algo así:
sudo avrdude -c avrisp -P /dev/ttyACM0 -b 19200 -p t85 -U flash:w:eu_tvbg.hex:i
podéis descargaros este fichero aqui. Es un código que incorpora “looping”, es decir, una vez que pulsáis el botón no para hasta que desconectáis la batería y además está modificado con códigos de televisiones europeas (incorpora algunos extras)
Y bueno, de aquí a la luna, os vale para cualquier otro micro y cualquier otro programa.
Funciona unicamente con arduino uno?
Con duemilanove seguro, tan sólo hay que hacer un pequeño cambio en el sketch y cambiar delay(20) por delay(40) .
Para Mega y otras placas también, pero las conexiones y el sketch a cargar cambia:
https://duckduckgo.com/?q=use+arduino+mega+as+programmer
podrias aclarar la parte de la consola de arduino?
ok. No estaba demasiado claro, he actualizado la entrada. En realidad, el IDE de Arduino se utiliza sólo para cargar el sketch o programa que hace funcionar el Arduino como si de un programador se tratara. Las órdenes en consola se deben de introducir en la consola del sistema (bajo linux) o en una ventana de diálogo bajo Windows. Es posible que en Windows la orden cambie (sobre todo lo referente al puerto de conexión), pero no lo he probado.
Está cool te dejo mis dies +10 !
esto era lo que buscaba 😀