Ganhe espaço na montagem do seu projeto com o microcontrolador Adafruit Trinket 5V. Ele é baseado no chip Atmel ATtiny85, possui 8k de memória e 5 portas, incluindo PWM e portas analógicas. Seu funcionamento é muito parecido com o Arduino, pois já contém um bootloader e é programável usando praticamente a mesma IDE. Seu tamanho reduzido facilita a tarefa de montar projetos compactos, que não necessitam de grande quantidade de portas.
O Adafruit Trinket é disponibilizado em duas versões : 3V e 5V. A versão de 3v é indicada para utilização com sensores e dispositivos que trabalham com nível de sinal de 3.3 volts. Essa versão tem clock de 8 Mhz.
Já o Trinket 5V pode ser utilizado com sensores que trabalham com nível de sinal de 5v, e além disso ele pode funcionar em 8 Mhz ou 16 Mhz, mediante configuração via software. Nesse post, vamos trabalhar com o modelo 5V.
Como veremos adiante, o processo de utilização do Trinket é um pouco diferente do Arduino tradicional, já que não teremos uma porta serial para comunicação, como acontece quando utilizamos por exemplo o Arduino Uno, Mega ou Due.
Pinagem Adafruit Trinket 5V
Na imagem abaixo detalhamos os pinos do Trinket 5v. O conector Mini-USB (substituído pelo conector micro-USB à partir de maio/2015) na parte superior serve para alimentação do Trinket e também para transferência de dados. O led verde indica que o Trinket está energizado, e o led vermelho serve como um led indicativo (da mesma maneira que o led da porta 13 do Arduino), e também para mostrar quando estamos no modo bootloader (explicaremos isso em breve):
Os demais pinos:
- Battery : Utilizado para alimentar o Trinket com uma fonte externa (5.5 à 16 volts)
- USB + : Saída 5v 500mA
- GND – Comum negativo
- Portas 0, 1, 2, 3, 4 – 5 pinos GPIO (General Purpose Input Output)
- 5v : Saída regulada 5v (150 mA) para alimentar sensores, leds ou motores. No modelo Trinket 3v, essa saída será de 3v.
- Reset : Utilizado para implementar um botão externo de reset
- Botão reset : utilizado para entrar no modo bootloader
Apesar de termos apenas 5 portas disponíveis, temos a possibilidade de trabalhar com as interfaces SPI e I2C no Trinket, além de utilizar as funções de portas analógicas e digitais. Fique atento à função de cada porta, já que elas algumas vezes compartilham funções do próprio Adafruit Trinket. Para mostrar melhor como isso funciona, vamos detalhar o que pode (e o que não pode) ser feito com cada porta:
Porta 0 : Pode ser utilizada como porta digital de entrada ou saída. É conectada ao pino PB0 do microcontrolador ATtiny85 (veja diagrama abaixo). Pode ser utilizada como saída PWM. Na interface I2C é o pino SDA, e na SPI, é o pino MOSI
Porta 1 : Pode ser utilizada como porta digital de entrada ou saída. É conectada ao pino PB1 do microcontrolador. Na interface SPI, é o pino MISO. É conectada ao led vermelho do Trinket, de forma semelhante ao led da porta 13 do Arduino.
Porta 2 : Pode ser utilizada como porta digital de entrada ou saída. É conectada ao pino PB2 do microcontrolador. Pode ser usada como entrada analógica (A1). Na interface I2C é o pino SCL, e na SPI, é o pino SCK
Porta 3 : Pode ser utilizada como porta digital de entrada ou saída. É conectada ao pino PB3 do microcontrolador. Pode ser utilizada como entrada analógica (A3). Atenção : Esse pino também é utilizado para comunicação USB (detalhes abaixo)
Porta 4 : Pode ser utilizada como porta digital de entrada ou saída. É conectada ao pino PB4 do microcontrolador. Pode ser utilizada como entrada ou saída analógica (A2), ou como porta PWM. Atenção : Esse pino também é utilizado para comunicação USB (detalhes abaixo)
Portas 3 e 4 utilizadas para comunicação USB : Quando o Trinket está conectado ao computador, os pinos 3 (PB3) e 4 (PB4) são utilizados para transferência de dados, por isso recomenda-se a utilização desses pinos como saída para leds, sensores, etc, para evitar danos ao Trinket. Se você utilizar os pinos 3 e 4 como entrada, certifique-se que os mesmos não estão sendo acionados pelos sensores na hora de transferir os programas.
O diagrama abaixo, fornecido pela Adafruit, detalha as funções que acabamos de explicar:
Abaixo, a pinagem do microcontrolador ATtiny85:
Instalação de drivers
Você vai precisar dos drivers da placa se estiver utilizando o Trinket no Windows XP/Vista/7/8. Para Linux e Mac, não há necessidade de drivers.
Você pode baixar os drivers para o seu sistema operacional diretamente do site da Adafruit, nesse link. Após o download, descompacte o arquivo, e você terá uma estrutura de arquivos e pastas como essa :
Conecte então o cabo mini-usb ao Adafruit Trinket e ao computador, e aparecerá a tela de instalação de um novo dispositivo. Se os drivers não forem automaticamente reconhecidos, utilize os drivers contidos na pasta acima. Ao final do processo, será detectado o dispositivo USBTiny:
Download da IDE para o Trinket
Podemos utilizar a IDE do Arduino para programar o Trinket, mediante uma série de configurações e cópia de arquivos.
Entretanto, a maneira mais rápida e fácil é utilizar a IDE disponibilizada pela própria Adafruit, que já vem pronta e configurada com o Trinket 8 Mhz e 16 Mhz, e que possui versões para Mac, Windows e Linux. Acesse o site da Adafruit e procure por essa seção :
Para Windows, por exemplo, efetue o download e descompacte o arquivo Adafruit Arduino 1.05 – Win 11-11-13.zip. Dentro da pasta que você descompactou, execute o arquivo Arduino.EXE, que irá carregar a IDE já com todas as configurações para utilização com o Trinket:
Configurando a IDE para o Trinket
Na imagem acima vimos que a IDE é a mesma que já utilizamos normalmente. A diferença está na listagem de placas, que agora contém não só a Trinket 8 e 16 Mhz, como também a Gemma e a Flora:
No menu mostrado acima, selecione a placa Trinket 16 Mhz. Em seguida, no menu Ferramentas => Gravador, escolha USBTinyISP:
Com isso, temos o Trinket reconhecido pelo Windows, a IDE configurada, e podemos agora testar algumas funções da placa, mas antes vamos mostrar um detalhe importante ao fazer o upload dos programas para o Trinket.
Modo booloader no Trinket
No Arduino, simplesmente entramos na IDE, escolhemos a porta serial e transferimos o programa. Ao usar o Trinket, o processo é um pouco diferente, já que ele precisa estar em modo bootloader.
No modo bootloader, o led vermelho pisca de forma lenta, indicando que podemos transferir o programa para o Trinket. Para entrar no modo bootloader, podemos simplesmente desligar a alimentação da placa, e ao religar ela automaticamente entra no modo bootloader.
Se já estivermos com o circuito montado, podemos pressionar brevemente o botão de reset e ele entra novamente no modo bootloader por 10 segundos. Se nesse tempo não transferirmos nenhum programa para o Trinket, ele volta a executar o programa que estava previamente na memória. O vídeo abaixo mostra o Trinket no modo bootloader ao energizar a placa, e também ao pressionar o botão de reset :
Agora sim temos todas as informações para testar o Trinket.
Utilizando o led embutido no Trinket
O primeiro teste não exige circuito, já que vamos apenas piscar o led vermelho embutido no Trinket. Como já explicamos, o led está ligado à porta 1 / PB1 , e basta utilizarmos as mesmas funções do Arduino, como pinMode, digitalWrite, etc, para que o led vermelho da placa comece a piscar a cada 100 ms :
//Programa : Teste Trinket - Pisca Led //Autor : MakerHero //Define a porta do led int pino_led = 1; void setup() { //Define o pino do led como saida pinMode(pino_led, OUTPUT); } void loop() { digitalWrite(pino_led, HIGH); delay(100); digitalWrite(pino_led, LOW); delay(100); }
Alterando a luminosidade de um led utilizando porta PWM
No segundo programa, vamos utilizar a porta 0 como PWM e alternar a luminosidade de um led, montando o seguinte circuito :
No programa abaixo, alternamos o valor de i de 0 a 255, e enviamos esse valor utilizando o comando analogWrite(), o que vai fazer com que o led alterne entre a luminosidade mínima (i = 0), e a máxima (i = 255):
//Programa : Trinket Dimmer led //Autor : MakerHero int pinoled = 0; void setup() { pinMode(pinoled, OUTPUT); } void loop() { for (int i=0; i <= 255; i++) { analogWrite(pinoled, i); delay(5); } delay(100); }
Gostou? Deixe seu comentário logo abaixo.
O USB dele pode ser usado para controle (USB HOST)?
Queria enviar sinais MIDI pela porta USB.
Você já tem esse arduino para venda e quanto custa?
Bom dia André,
Temos sim, por favor dê uma olhada neste link com todas as informações: https://www.makerhero.com/pd-13a919-microcontrolador-adafruit-trinket.html
Abraço
Adilson – Equipe MakerHero
Ele tem entrada de interrupção?
Bom dia Helder,
Sim, segundo o site da Adafruit, a interrupção é no pino 1.
Abraço.
Adilson – Equipe MakerHero
Boa noite.
Tem como usar Bluetooth?
Preciso q acionar 3 saídas, com Bluetooth.