Herramientas de usuario

Herramientas del sitio


acemu:articulos:articulos_tecnicos:software:adafruit_trinket

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
acemu:articulos:articulos_tecnicos:software:adafruit_trinket [2016/09/14 20:16]
kenneth creado
acemu:articulos:articulos_tecnicos:software:adafruit_trinket [2016/09/15 08:04] (actual)
kenneth
Línea 5: Línea 5:
  
 Referencias: [[https://learn.adafruit.com/introducing-trinket/introduction| Introducción al Trinket de Adafruit]] Referencias: [[https://learn.adafruit.com/introducing-trinket/introduction| Introducción al Trinket de Adafruit]]
 +
 +**//Ojo: el trinket sólo funciona en puertos USB 2.0. No lo podemos manejar con USB 3.0!//**
  
 Para poder programar este dispositivo, empleando el IDE de Arduino (versión 1.6 o superior), es necesario hacer unas cuantas cosas antes. Para poder programar este dispositivo, empleando el IDE de Arduino (versión 1.6 o superior), es necesario hacer unas cuantas cosas antes.
  
-=== Registrar el dispositivo en el IDE de Arduino ===+==== Registrar el dispositivo en el IDE de Arduino ====
 Para eso seguir las instrucciones que se recomiendan en el sitio web de Adafruit y podemos resumir como sigue: Para eso seguir las instrucciones que se recomiendan en el sitio web de Adafruit y podemos resumir como sigue:
  
Línea 32: Línea 34:
 3) Como programador hay que usar el ''USBtinyISP'' 3) Como programador hay que usar el ''USBtinyISP''
  
-=== Habilitar la lectura/escritura al dispositivo en Linux === +==== Habilitar la lectura/escritura al dispositivo en Linux ====
-Ojo: el trinket sólo funciona en puertos USB 2.0. No lo podemos manejar con USB 3.0!+
  
-El problema es el siguiente: si cuando conectamos el **trinket** ejecutamos el comando ''dmesg'', veremos +Bajo Linux es muy probable que no podamos escribir (programar) el **trinket** a menos que lo hagamos como root. El problema es el siguiente: si luego de conectar el **trinket** ejecutamos el comando ''dmesg'' en alguna consola, veremos algo por el estilo:
-algo por el estilo:+
  
 <code> <code>
Línea 47: Línea 47:
 </code> </code>
  
-Vemos que lo reconoce con IDs de Adafruit: idVendor=1781, idProduct=0c9f+Vemos que lo reconoce con IDs de Adafruit: **idVendor=1781****idProduct=0c9f**
  
 Si ejecutamos el comando ''lsusb'' obtendremos una listado de dispositivos USB, entre los cuales encontramos Si ejecutamos el comando ''lsusb'' obtendremos una listado de dispositivos USB, entre los cuales encontramos
Línea 67: Línea 67:
  
 Para poder cambiar esta situación, tenemos que crear una regla de ''udev'' nueva. Para poder cambiar esta situación, tenemos que crear una regla de ''udev'' nueva.
 +
 +''udevd'' es el demonio que atiende los eventos del kernel asociados a dispositivos. En particular cuando conectás o desconectás un dispositivo, de alguna manera el sistema tiene que enterarse y hacer algo al respecto.
 +
 +Entonces el ''udevd'' es el demonio que se encarga de hacer lo que las reglas para ese dispositivo dicen que haya que hacer cuando ese dispositivo se conecta al sistema.
 +
 +Como por defecto Linux no sabe qué hacer con un dispositivo como el **trinket**, hay que generar una regla particular para ese dispositivo. La regla que hay que incluir es muy sencilla: cuando veas el dispositivo con el ''idProduct'' e ''idVendor'' de Adafruit, asociá ese dispositivo a un grupo de usuarios particular del sistema.
  
 Como root, podemos crear un archivo nuevo en ''/etc/udev/rules.d'', llamémosle ''99-USB-Adafruit-Trinket.rules'' y pongamos en su interior el siguiente texto: Como root, podemos crear un archivo nuevo en ''/etc/udev/rules.d'', llamémosle ''99-USB-Adafruit-Trinket.rules'' y pongamos en su interior el siguiente texto:
Línea 74: Línea 80:
  
 En este caso vemos que estamos identificando el dispositivo a partir de sus ''idVendor'' e ''idProduct'', y En este caso vemos que estamos identificando el dispositivo a partir de sus ''idVendor'' e ''idProduct'', y
-lo estamos asociando al grupo ''plugdev''.+la regla lo que hace es asociar el dispositivo al grupo ''plugdev''.
  
-al salvar el archiv, el subsistema de ''udev'' detecta que apareció un archivo de reglas nuevo y las activa inmediatamente. Si ahora miramos los permisos en el filesystem, vemos que el dispositivo cambió de grupo:+Al salvar el archivogracias a ''inotify'' el subsistema de ''udev'' detecta que apareció un archivo de reglas nuevo y las tendrá en cuenta a partir de ese momento en adelante. Si ahora reiniciamos el **trinket** (con el botoncito que tiene en la punta) o lo desconectamos y volemos a reconectar al USB, al detectarlo el ''udev'' le va a aplicar la nueva regla.
  
-  crw-rw-r-- 1 root plugdev 189269 sep 14 23:41 /dev/bus/usb/003/014+Supongamos que luego de reiniciar el **trinket**el sistema lo asocia al bus USB 003 y lo etiqueta como dispositivo 015, al listarlo en consola comprobamos que los permisos cambiaron: 
  
-(probablemente haya que reiniciar el **trinket** para que el cambio tega efecto...)+  crw-rw-r-- 1 root plugdev 189, 269 sep 14 23:41 /dev/bus/usb/003/015
  
 Ahora alcanza con asignar al o los usuarios de linux que queramos que tengan permisos de escritura, al grupo ''plugdev'' (puede ser cualquier grupo que ya exista en ''/etc/group'' o podemos crear un grupo nuevo, a gusto de consumidor).  Ahora alcanza con asignar al o los usuarios de linux que queramos que tengan permisos de escritura, al grupo ''plugdev'' (puede ser cualquier grupo que ya exista en ''/etc/group'' o podemos crear un grupo nuevo, a gusto de consumidor). 
  
-Por ejemplo en mi caso el archivo ''/etc/group'' quedó con lso siguiente linuea modificada:+Por ejemplo en mi caso el archivo ''/etc/group'' quedó con la siguiente línea modificada:
  
   plugdev:x:46:ken   plugdev:x:46:ken
  
-De esa manera me aseguro que tener los permisos adecuados para escribir (programar) el **trinket**. +De esa manera me aseguro de tener los permisos adecuados para escribir (programar) el **trinket**. 
  
acemu/articulos/articulos_tecnicos/software/adafruit_trinket.1473909406.txt.gz · Última modificación: 2016/09/14 20:16 por kenneth