LLega al mercado un MiniArduino

En muchos proyectos ocurre que no es necesario utilizar muchos pines o se necesita una placa lo más reducida en tamaño posible, de modo que Adafruit ha diseñado el Trinket, que es la primera placa programable con el IDE de Arduino que utiliza un ATtiny85.

Este pequeño microcontrolador está lleno de sorpresas con sólo 9gr de peso   y medidas  12 x 7,5 x 1 cm

2016-04-06_23h51_27

No se deje engañar por su pequeño tamaño pues Trinkettiene 8K de memoria flash, 512 bytes de SRAM y 5 pines I/O incluyendo pines PWM. Puede funcionar a 8 y 16 MHz modificando su oscilador por software.

Se puede programar directamente desde el entorno IDE de Arduino haciendo una simple modificación (ver documentación), aunque tenga en cuenta que debido a que tiene un microcontrolador diferente no es 100% compatible, sino que hay algunas variaciones, como por ejemplo la cantidad de pines disponibles. Por todo lo demás es una placa a un precio muy reducido llena de posibilidades para su proximo proyecto.

Otra peculariedad es que como incluye los pines  sin soldar,puede soldar cables directamente sobre los pads o montar los pines.

Características:

  • Microcontrolador: ATtiny85 (8K flash, 512 byte SRAM, 512 bytes EEPROM)
  • Oscilador interno de 8MHz, puede ajustarse por software a 16MHz
  • USB bootloader con LED indicador. Puede programarse con un USBtinyISP para que pueda programar con AVRdude (con una simple modificación de configuración) y / o el IDE de Arduino (con algunas modificaciones sencillas de configuración)avrdude o desde el IDE de Arduino (con una simple modificación)
  • Conexión Micro-USB para alimentación y programación (no tiene puerto serial)
  • 5.25K bytes disponibles para el programa (2.75K los utiliza el bootloader)
  • Alimentación: 5V ( disponible también en 3V)
  • Regulador interno 3.3V a bordo o regulador de potencia 5.0V con capacidad de salida de 150 mA y ultra-bajo de deserción. Se puede alimentar hasta con 16V
  • Incluye protección de polaridad, protección térmica y limitador de corriente
  • LED a bordo de energía LED verde y rojo pin # 1 LED
  • Botón de reposición para entrar en el gestor de arranque o reinicio del programa. No hay necesidad de desconectar / reconectar el tablero cada vez que desea restablecer o actualizar!
  • 5 GPIO – 2 compartidos con la interfaz USB. Los 3 pines IO independientes tienen 1 entrada analógica y 2 de salida PWM también. Los 2 pines IO compartidos tienen más de 2 entradas analógicas y una salida PWM más.Hardware I2C / SPI capacidad de ruptura y sensor de interconexión.
  • Pulsador de RESET
  • Soporte I2C / SPI
  • Funciona con la mayoría de librerías básicas de Arduino
  • Dimensiones: 31 x 15.5 x 5 mm
  • Peso: 1.85 gramos

 

Hay dos versiones del Trinket: 3V y 5V. Ellos son casi idénticos, pero hay ligeras diferencias en la asignación de señales: uno tiene un pin de salida 3V en la parte inferior derecha, el otro tiene un pin de salida de 5V vez.

Vamos a empezar con los mejores pasadores BAT + y USB + y GND

  • BAT + es el pin de entrada de la batería +. Si desea encender la Trinket de un adaptador de alimentación o batería o panel solar o cualquier otro tipo de fuente de alimentación, conecte el pin + (positivo) aquí! Se pueden conectar hasta 16 V DC. Si usted tiene una Trinket de 3V, querrá al menos de entrada 3.5V para conseguir una buena salida de 3.3V. Si usted tiene una Trinket 5V, se sugiere 5,5 V o superior. Esta entrada está protegida contra polaridad invertida.
  • USB + es el pin de salida USB +. Si desea utilizar la energía de 5V USB para algo, como la carga de una batería, o si necesita más de 150mA de corriente (este pin puede suministrar 500 mA + de puertos USB) o para detectar cuando la Trinket está conectado a USB, esta patilla tener 5V en él si y sólo si su enchufado en algo a través del conector mini-B
  • GND es el terminal de tierra común, que se utiliza para la lógica y el poder. Está conectado con el suelo USB y el regulador de potencia, etc. Este es el pin que querrá utilizar para cualquier y todas las conexiones a tierra

 

A continuación vamos a cubrir los 5   pines GPIO (General Purpose Entrada Salida)Todos los pines GPIO pueden utilizarse como entradas digitales, salidas digitales, para los LED, botones e interruptores, etc. Ellos pueden proporcionar hasta 20 mA de corriente. No conecte un motor u otro componente de alta energía directamente a los pines! En su lugar, utilizar un transistor para alimentar el motor de corriente continua de encendido / apagado

En un Trinket de 3V, el GPIO son 3.3V nivel de salida, y no debe ser utilizado con entradas 5V. En un Trinket de 5V, el GPIO están 5V nivel de salida, y se puede utilizar con entradas de 3V, pero puede dañar los dispositivos electrónicos que se 3V de entrada solo

Los 3 primeros pines  están completamente «libres», no son utilizados por la conexión USB para que nunca tenga que preocuparse por la interfaz USB interferir con ellos en la programación:

  • GPIO # 0 – este está conectado a PB0 en la ATtiny85. Este perno se puede utilizar como una salida de PWM, y también se utiliza para los datos I2C, y la entrada de datos SPI.
  • GPIO # 1 – esto está conectado a PB1 en la ATtiny85. Este perno se puede utilizar como una salida de PWM, y también se utiliza para la salida de datos SPI. Este perno también está conectado al LED a bordo (como pasador 13 en un Arduino regular).
  • GPIO # 2 – esto está conectado a PB2 en la ATtiny85. Este perno se puede utilizar como una entrada analógica (conocido como analógica A1), y también se utiliza para el reloj I2C y el reloj SPI.

Los próximos 2 pines también se utilizan para la programación USB. Esto significa que cuando la placa está conectada a un ordenador y en modo de arranque o en el medio de la carga de un nuevo programa, que se utilizan para el envío de datos a / desde el ordenador! Es posible compartir estos pines si se tiene cuidado. El mejor uso de estos contactos es como salidas a cosas como LEDs, o ideas para cosas como botones y sólo asegúrese de no presionar los botones mientras está conectado a USB. No queríamos mantener estos pines del tablero pero le recomendamos no utilizarlos a menos que esté seguro de que los necesite, ya que podría tener que desconectar las conexiones de reprogramar la Trinket!

  • GPIO # 3 – esto está conectado a PB3 en el ATtiny85. Este pin se utiliza para la programación USB, pero también es una entrada analógica conoce como analógica A3
    Este perno tiene un pull-up 1.5K a 3.3V incorporado en el Trinket, para comm USB lo que puede ser difícil de utilizar para entrada analógica o digital.
  • GPIO # 4 – esto está conectado a PB4 en el ATtiny85. Este pin se utiliza para la programación de USB, pero también se puede utilizar como una salida analógica PWM y una entrada analógica conocida como Analog A2

Tenga en cuenta la numeración de los pines analógicos: Pin 2 es analógica 1, Pin 3 es analógica 3, Pin 4 es analógica 2. Para el Uno, los términos A1, A2 y A3 se asignan para usted. Para la ATtiny85, no lo son. Así que para el pinMode llama, utilice el número de pines (estarcido sobre la Trinket), para analogRead, utilice el número analógico.

Las últimas dos pines están en la parte inferior del tablero. En primer lugar es el pin de reset Rst. Esto está directamente conectado con pin de reset del ATtiny85 y también el botón de reinicio que se encuentra justo al lado de él. El pin de reset se utiliza para entrar en el gestor de arranque y poner a cero el tablero en caso de que desee reiniciarlo. También es posible utilizar este pin  para reprogramar el gestor de arranque o eliminar por completo el cargador de arranque si tiene un programador AVR como un AVR dragón, MKII o USBtinyISP. Si desea volver a programar el tablero cuando su en un recinto o caja, o de otro modo difíciles de alcanzar, alambre de un simple botón desde el pin RST al suelo y presione para entrar en el gestor de arranque durante 10 segundos. El LED # 1 pulsará para hacerle saber. El botón de reinicio no se puede utilizar como un GPIO, pero creemos que su mucho más útil como un botón de reinicio adecuado!

Por último tenemos el pin de salida del regulador. Hay un mini-regulador de potencia a bordo que se llevará hasta 16V DC de la conexión BAT + o USB y regular hacia abajo a una constante de 3,3 V o 5,0 V DC por lo que es seguro para usar con sus sensores y LEDs. En una Trinket de 3V, esta salida será de aproximadamente 3.3V. En una Trinket de 5V, la salida será 5V por lo tenga en cuenta en caso de que desee cambiar uno con el otro. Puede consumir hasta 150mA de salida de este pin. Si necesita más corriente, es posible que desee obtener directamente desde el USB + pasador, que suministra 5V 500 mA desde un ordenador o adaptador de pared

Ya   que conocemos   los pines del Trinket  , nos toca antes de empezar  instalar los drivers.  Si está utilizando Windows, antes de enchufar su tablero, tendrá que instalar un controlador posiblemente. Haga clic a continuación para descargar el instalador de controladores desde la pagina de Github( controlador de Windows para instalar los controladores adecuados para su placa . )

Descargue  y ejecute el instalador

Ejecutar el instalador! Como nos agrupamos los conductores SiLabs y FTDI así, tendrá que hacer clic a través de la licencia

Seleccione los controladores que desea instalar:

De forma predeterminada, instalamos el 32u4 Pluma, Pluma M0, Flora y conductores Gemma / USBtinyISP Trinket / Pro / Trinket.

También puede, opcionalmente, instalar el Arduino Gemma (diferente de la Adafruit Gemma!), Conductores HUZZAH y Metro

Haga clic en Instalar para continuar la instalación

 

Para Mac OS X o Linux no es necesario instalar ningún controlador.

¿Cómo iniciar el gestor de arranque?  

Antes de intentar cargar el código de la placa que debe estar en el modo de arranque. Eso significa que su escucha para un sketch o un programa que se enviará a ella

Cuando la placa  está en modo de arranque, el LED rojo se enciende . Una vez que el LED rojo se detiene pulsante, se debe presionar el botón de reinicio para volver a entrar en modo de arranque

La placa a debe estar conectada a un ordenador mediante un cable USB para entrar en modo de arranque. Puede entrar en el modo de arranque pulsando el pequeño botón en el tablero con la uña. El gestor de arranque ‘tiempo fuera’ después de 10 segundos, por lo que volver a entrar en el modo de arranque simplemente vuelva a presionar el botón!

!No presionar y mantener pulsado el botón de reinicio, y asegúrese de presionar y soltar!

 

 

Configuración con Arduino IDE

Lo más probable es, es si adquiere un placa  Trinket,  que quiera programarla  con el IDE de Arduino. Tenga en cuenta que la Trinket no es un completo compatible con Arduino, que utiliza un chip diferente (menor) que el Uno, Mega, Leonardo o de vencimiento. Sin embargo, hay muchos pequeños bocetos y bibliotecas que funcionan muy bien. Algunos ni siquiera puede necesitar otros que los números de pin nada.

A pesar de que la placa Trinket tiene un conector USB, no tiene una capacidad de «consola serie», por lo que no se puede utilizar de serie para enviar y recibir datos a /desde un ordenador!

Cuando esté listo para cargar, asegúrese de que el «programador» en el menú Herramientas se establece en USBtinyISP!Configuración Arduino IDE
Sólo tiene que seguir los pasos de los pasos de la guía de configuración Adafruit Arduino IDE para agregar fácilmente el apoyo a la Trinket, Gemma, Pro Trinket y más al IDE de Arduino.Cuando haya terminado de instalar el gestor de IDE y tabla de poner en volver a esta página para continuar con la guía de la Trinket.Ejemplo  de Hello World  ( Parpadeo de un led)Después de instalar el IDE Arduino con soporte para tablas de Adafruit puede cargar un parpadeo ejemplo simple para probar la carga de la Trinket funciona como se espera LED. Abra el IDE de Arduino y reemplaze el código de sketch  con el código del led intermitente:

Si está utilizando Linux puede que tenga que ser «root» de ejecutar el programa de Arduino para tener acceso al puerto USB (o añadir excepciones udev)

En el siguiente ejemplo de  parpadeo  se enciende un LED durante un segundo y  luego se apaga durante un segundo , ejecutándose en un bucle indefinido.

 

  1. /*
  2. Blink
  3. */
  4. int led = 1; // blink ‘digital’ pin 1 – AKA the built in red LED
  5.  
  6. // the setup routine runs once when you press reset:
  7. void setup() {
  8. // initialize the digital pin as an output.
  9. pinMode(led, OUTPUT);
  10.  
  11. }
  12.  
  13. // the loop routine runs over and over again forever:
  14. void loop() {
  15. digitalWrite(led, HIGH);
  16. delay(1000);
  17. digitalWrite(led, LOW);
  18. delay(1000);
  19. }

 

Para subir el código a la placa trinket siga los siguientes sencillos pasos:

  •   Seleccionar la placa adecuada desde el menú Herramientas-> Placa  ->Adafruit Trinket 8Mhz
  •  Seleccionar USBtinyISP desde el Herramientas- > Programador   –>UsbtinyISP

 

 

A continuación, seleccione USBtinyISP desde  Tools-> Programmer submenú

Enchufe la  placa , asegúranadose   de ver pulsante el LED verde encendido (potencia bueno) y el LED rojo.

Pulse el botón si el LED rojo no está latiendo, para entrar en modo de arranque.

Haga clic en el botón Upload (o seleccione Archivo-> Cargar)


Si todo va bien debería ver lo siguiente (no hay mensajes de error de color rojo) y, por supuesto, el LED rojo de la Trinket parpadeará de encendido / apagado una vez por segundo

¿Algo salió mal?  Si obtiene el mensaje de error avrdude: Error: No se pudo encontrar el dispositivo USBtiny (0x1781 / 0xc9f)
Eso significa que el gestor de arranque no estaba activo. Asegúrese de presionar el botón de la Trinket para activar el gestor de arranque antes de hacer clic en el botón Cargar.

Si se obtiene una gran cantidad de texto en rojo, errores y también una advertencia sobre Verificación frustrada, compruebe que ha actualizado el archivo anterior avrdude.conf – si no actualiza la descripción de la ATtiny85 en el archivo de configuración mediante su sustitución, el IDE no sabrá que ser paciente con el gestor de arranque de la Trinket y tendrá muchos errores de carga

En Linux si obtiene el mensaje de error «usbtiny_receive: error al enviar mensaje de control: Error de protocolo (esperado 4, conseguido -71)»
Estos por lo general pueden ser ignorados y no deben interferir con la carga del programa. Desafortunadamente núcleo de Linux USB es un poco raro que comunica con el procesador ATtiny85 en la Trinket / Gemma y puede causar estos errores. Si una carga falla, inténtelo de nuevo ya que probablemente es un problema intermitente.

Programación con Arduino IDE

Una vez que haya recibido el ejemplo básico de parpadeo para trabajar, puede probar algunas de las otras funciones de Arduino y bibliotecas. Vamos a ver  más ejemplos de código  con  pinMode () , digitalWrite () y digitalRead ()

pinMode()
Puede utilizar pinMode () para realizar entradas y salidas en cualquiera de los pines digitales 0 # a través de # 4
digitalWrite también funciona bien, y también se puede utilizar con pinMode (INPUT) para activar la resistencia pull-up en un perno

Por ejemplo, para establecer digital # 0 como entrada, con un pull-up interna, y luego comprobar si se está tirando a tierra a través de un botón o interruptor y encender el LED rojo cuando se pulsa:

  1. /*
  2. Button
  3. Turns on an LED when a switch connected from #0 to ground is pressed
  4.  
  5. #define SWITCH 0
  6. #define LED 1
  7.  
  8. // the setup routine runs once when you press reset:
  9. void setup() {
  10. // initialize the LED pin as an output.
  11. pinMode(LED, OUTPUT);
  12. // initialize the SWITCH pin as an input.
  13. pinMode(SWITCH, INPUT);
  14. // …with a pullup
  15. digitalWrite(SWITCH, HIGH);
  16. }
  17.  
  18. // the loop routine runs over and over again forever:
  19. void loop() {
  20. if (! digitalRead(SWITCH)) { // if the button is pressed
  21. digitalWrite(LED, HIGH); // light up the LED
  22. } else {
  23. digitalWrite(LED, LOW); // otherwise, turn it off
  24. }
  25. }

analogRead ()

 Usted puede leer un voltaje analógico de digital # 2 (llamada analógica 1), digital # 3 (llamada analógica 3) y digital # 4 (llamadaanalógica 2)

Por ejemplo, para leer un voltaje analógico en el pin # 2, que llamarían analogRead (1) para leer un voltaje analógico enanalogRead pin # 4 de llamadas (2)

Esto es un poco confuso porque los pines analógicos están numerados de manera diferente que los pines digitales!

analogWrite ()

Hay algunas salidas PWM en la Trinket, puede llamar analogWrite () en digital # 0, # 1 y # 4.

Por ejemplo, para pulsar el built-in LED lentamente, subir este código:

Asegúrese de que está utilizando la última IDE Trinket para que pueda acceder a las capacidades de PWM pin de 4. Si no está utilizando la última IDE es necesario añadir manualmente las funciones como la siguiente en init y escribir valores analógicos al pin # 4. Sin embargo, si usted tiene la última IDE que incluye correcciones para hacer el pin # 4 se puede utilizar con la función de analogWrite Arduino!

  1. /*
  2. Pulse
  3. Pulses the internal LED to demonstrate the analogWrite function
  4. */
  5. int led = 1; // pulse ‘digital’ pin 1 – AKA the built in red LED
  6.  
  7. // the setup routine runs once when you press reset:
  8. void setup() {
  9. // initialize the digital pin as an output.
  10. pinMode(led, OUTPUT);
  11. }
  12.  
  13. // the loop routine runs over and over again forever:
  14. void loop() {
  15. for (int i=0; i<256; i++) {
  16. analogWrite(led, i); // PWM the LED from 0 to 255 (max)
  17. delay(5);
  18. }
  19. for (int i=255; i>=0; i–) {
  20. analogWrite(led, i); // PWM the LED from 255 (max) to 0
  21. delay(5);
  22. }
  23. }

 

I2C

Puede utilizar I2C con la Trinket! Si usted tiene nuestra v1.6.4 bordo gestor de paquetes o posterior (esa es la versión del paquete de soporte de Trinket, no IDE) y luego alambre trabajará en ATtiny85

En los tablones de la Trinket, el pin # 0 es la SDA (datos del bus I2C), el pin # 2 es SCK (reloj I2C).

Sabemos también las siguientes bibliotecas funcionan:

  • Adafruit NeoPixel – Control de hasta ~ 150 Neopixels a través de una Trinket!
  • SoftwareSerial – construido en la biblioteca SoftSerial puede (al menos) transmitir datos en cualquier pin digital.
  • Más como lo hacemos más pruebas y verificación!

La velocidad de reloj de 16 MHz por sólo Trinket de 5V!

El ATtiny85 se especifica solamente para funcionar a 16 MHz cuando se alimenta a 5V – que significa que oficialmente sólo se puede ejecutar la Trinket de 5V a 16 MHz.
Sin embargo, la serie AVR es bastante indulgente para el overclocking,
por lo que puede ser capaz de ejecutar la Trinket de 3V a 16 MHz. Tenga en cuenta que esto todavía está overclocking, el código puede funcionar escamosa o nada en absoluto! Overclocking no debe dañar el AVR, pero aun así, recomendaría quedarse con 8 MHz sólo para la versión de 3V, y 8 o 16 MHz sólo en la versión 5V.
soluciones de compromiso en potencia
La duplicación de la velocidad aumentará el consumo de energía sólo un poco. A las 8 MHz, la corriente extraída es alrededor de 9 miliamperios. Esa cifra incluye el LED de alimentación verde, que consume alrededor de 3 mA de modo que sea 6mA para el propio microcontrolador.

A los 16 MHz del sorteo es 12mA total. Restando el LED verde de corriente, que significa 9mA para el propio microcontrolador.

Cómo activar el reloj de 16 MHz

 En AVR-GCC :Podemos activar el reloj 16MHz ‘en el software’ simplemente pidiendo el chip para ajustar el reloj preescalar. Si está utilizando prima avr-gcc, ejecutar esta como la primera línea en main ()

clock_prescale_set (clock_div_1);

Es posible que tenga que añadir # include al archivo de modo que se reconocen los comandos. A continuación, asegúrese de compilar el código con F_CPU = 16000000
 IDE Arduino:Usando el modo de 16 MHz es muy similar cuando se utiliza el IDE de Arduino. Agregue la línea siguiente a la parte superior de su boceto Arduino (como la primera línea)

#include <avr / power.h>

Luego, en la configuración () – añadir lo siguiente como primera línea de la función:

si (== F_CPU 16000000) clock_prescale_set (clock_div_1);

A continuación, seleccione la Trinket de 16MHz en el menú Herramientas> Junta. Su código se compila y ejecuta a 16 MHz!

Gestor de arranque de la reparación

 

El ATtiny85 no tiene una sección-cargador de arranque protegido. Esto significa que es posible sobrescribir accidentalmente el cargador de arranque (o incluso si desconecta la Trinket durante la carga que podría tener dificultades a partir de entonces)

Se puede utilizar un Arduino UNO para reprogramar el gestor de arranque en su Trinket (o Gemma). Este cargador no se ha probado para funcionar con cualquier otro tipo de Arduino.

Conectar:

  • Trinket VBAT + pin de Arduino 5V (o simplemente el poder que a través de un cable de la batería o USB)
  • Trinket GND pines a GND Arduino
  • RST Trinket para Arduino # 10
  • Trinket # 0 pinr para Arduino # 11
  • Trinket # 1 pin de Arduino # 12
  • Trinket # 2 pines de Arduino # 13

En un Gemma, pinzas de cocodrilo funcionan bien. la clavija de Reset se encuentra debajo del MiniUSB Jack. Puede que tenga que soldar un cable de forma temporal. Por otra parte, a veces sólo puede mantener pulsado el botón de reset mientras se ejecuta el boceto (tipo «G» para comenzar) y que podría funcionar. Soldar un alambre funciona mejor.

A continuación, descargar, descomprimir y ejecutar el boceto Trinketloader, escoger el que se adapte a su versión Arduino!

trinketloader_2015-06-09.zip

Descomprimir y abierto en el IDE de Arduino, seleccione la ONU y el puerto serie a la placa Arduino UNO que está subiendo demasiado y subirlo a la ONU.

Abre la consola serie a 9600 baudios y cuando se le dice que haga, pulse el botón de miniatura de la Trinket (o Gemma) o escribe en G en la consola de serie y haga clic en Enviar

Debería ver lo siguiente, la fusibles, firmware quemado y verificados! Se requiere de 2 segundos


Mas información:

  • Hoja de datos para el regulador a bordo utilizado (MIC5225 3,3 V y 5,0 V)
  • Página web para la ATtiny85, el microcontrolador utiliza en la Trinket
  • Página de Adafruit

 

 

Por cierto puede comprar el Trinket lo en Amazon desde el siguinte enlace Adafruit Trinket – Mini Microcontroller – 3.3V Logic

2 comentarios en “LLega al mercado un MiniArduino

  1. Vaya, podria depurar un poco la traducción. Hay frases que parecen escritas en comanche. Que decir de la traducción de las lineas de programacions? delay() por retraso()!! Que miedo!!

    1. Le agradezco sus comentarios. Personalmente no me gusta nada que se traduzca el código fuente , pero no así los comentarios , pues a veces hay ciertos comentarios sobre lo que hace el código que los veo muy interesante para entender el porqué de éste, como ha pasado de hecho en estos ejemplos (y que por cierto ya he intentado corregir )

Deja una respuesta