En esta guía recopilaremos información relevante que vayamos encontrando para facilitar los primeros pasos con esta placa de bajo coste ideal por su reducido tamaño, 22 cm, para proyectos textiles sencillos. Son placas de menos de 3 € inspirados en las Sparkfun's LilyTiny o Adafruits Gemma .
Esta placa integra el microcontrolador CJMCU-ATTINY85 y es en formato “moneda” similar a la Digispark USB. Puede ser programada directamente a través del puerto USB intergrado en la misma sin la necesidad de un programador AVR o de usar un Arduino como programador gracias al bootloader MICRONUCLEUS . Para ello, como veremos más adelante, utilizaremos los drivers y configuración de Digispark.
Aquí tenemos el Pintout de Digispark coincidente con el de esta placa:
Podéis encontrar el esquema y las características detalladas en el anterior enlace de Digispark.
¡OJO! Como se indica en el esquema adjunto, el P5 de la placa se corresponde con en pin físico 1 del ATtiny 85, es decir, el pin de Reset. Esto significa que en principio disponemos de 5 pines hábiles. Se puede desactivar la función de Reset de dicho pin aunque es un proceso complejo. Os dejamos en el último apartado un par de enlaces al respecto.
Podéis seguir la excelente guía de instalación de Luis LLamas para la Digispark USB.
Aseguraos de que tenéis una versión del IDE de Arduino 1.6.6 o superior. En el tutorial recomendado se hace la instalación sobre la versión 1.8.1 y en mi caso he probado sobre la 1.8.7 y Windows 10 sin problemas.
Hemos hecho la instalación en un equipo con Linux Mint pero este método también sirve para cualquier distro basada en Debian. Asegúrate de tener el IDE de Arduino a la versión 1.6.6 o superior. Primero, abrimos la ventana de propiedades en Archivo>Preferencias y en el campo de Gestor de URLs de tarjetas ponemos:
http://digistump.com/package_digistump_index.json
A continuación, instalamos el paquete Digistump AVR Boards desde Herramientas>Placa>Gestor de tarjetas
Por último, abrimos una terminal y creamos una regla para que el sistema operativo reconozca correctamente la placa.
sudo nano /etc/udev/rules.d/49-micronucleus.rules
Esto abrirá un editor de texto donde pegamos lo siguiente:
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666" KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
Salimos del editor guardando los cambios y ya tendremos nuestra LilyTiny funcionando en Linux.
Tanto e dispositivos Windows como en Linux, a diferencia de otras placas, debemos CARGAR EL PROGRAMA CON LA LILYTINY DESCONECTADA. Aparecerá un mensaje como el que veis en la imagen inferior . Conectad después la placa a través del USB y se cargará el programa.
También es importante que sepais que en la pestaña Herramientas>Puerto permanecerá desmarcada aún con la placa conectada.
Uno de las dificultades al utilizar esta placa es que no podemos leer directamente a través del Monitor Serie los valores de un sensor como hacemos habitualmente con otras. Como comentamos anteriormente, la pestaña Herramientas>Puerto permanecerá desmarcada aún con el dispositivo conectado y siempre nos dará un error al intentar visualizar los datos al no encontrar el puerto COM.
Aquí teneis un video con información muy útil para salvar este problema con un conversor USB-UART y a continución un ejemplo de visualización de valores de un sensor de temperaturaTMP36.
En primer lugar, abrimos el IDE de Arduino y cargamos este sencillo código en la placa tal y como se describe arriba. Recordad que teneis que iniciar la subida del código con la placa desconectada y conectarla una vez comience.
void setup() { // Inicializamos el Puerto Serie 9600 bits por segundo: Serial.begin(9600); } void loop() { // Leemos el valor de entrada en el P4 (A2): int sensorValue = analogRead(A2); // Imprimimos los valores: Serial.println(sensorValue); //Espera entre lecturas para estabilizar delay(100); }
Una vez subido el código código, desconectamos la placa, conectamos el conversor USB-UART que debe ser reconocido en un puerto COM y realizamos las conexiones tal y como se describen en el esquema. Es importante que el pin RX del conversor se conecte al P2(TX) de la LilyTiny.
De este modo podemos leer los valores del sensor conectado en P4(A2).
Para esta práctica son muy útiles conectores de cocodrilo.
* DIY Projets (inglés).
* Blog de Luis Llamas con tres artículos interesantes (español).
* Adrirobot (italiano).
* Ch.Llilytiny para principiantes (alemán).
* Desactivar Reset en hilo de Foro Arduino(español).
* Desactivar Reset en Projects from Tech (inglés).