Iniciando com Teensy: Versão Revisada


#1

Iniciando com Teensy: Versão Revisada


##1. Prefácio

Faz algum tempo, postei um texto no Laboratório de Garagem com o intuito de divulgar as placas de desenvolvimento Teensy. Agora, fiz uma revisão e adições no texto e trago para vocês do Fazedores.

##2. Introdução

Teensy são placas de desenvolvimento de microcontroladores completas baseadas em USB. Criadas pela PJRC a linha se constitui das seguintes placas:

Teensy 1.0 (descontinuada);
Teensy ++ 1.0 (descontinuada);
Teensy 2.0;
Teensy ++ 2.0;
Teensy 3.0;
Teensy 3.1;

A linha Teensy 2, utiliza microcontroladores AVR de 8 bits da Atmel a saber: ATMega32U4 (Teensy 2.0, mesmo microcontrolador do Arduino Leonardo) e AT90USB1286 (Teensy 2.0 ++). Já a linha Teensy 3 usa microcontroladores Cortex-M4, baseados em ARM de 32 bits da linha Kinetis, fabricados pela Freescale que são: MK20DX128 para a placa Teensy 3.0 e MK20DX256 para a Teensy 3.1.

As placas Teensy 2 tem fama de oferecerer um baixo custo e alta qualidade sendo reconhecidas como uma excelente opção ao Arduino, mesmo até porque, além de poderem ser programadas em C, também podem ser programadas com Arduino, via addon para a IDE Arduino estável, chamado Teensyduino. Já as Teensy 3 suportam Arduino por padrão via Teensyduino.

##3. Utilização

Não é necessário muito para começar a utilizar Teensy, basta conectar o cabo USB e ligar a placa, assim como no Arduino, a placa iniciará a piscar o LED, que nada mais é que um código de blink que já vem gravado no microcontrolador para fins de teste.

Quando você pressiona o botão de reset da placa, ela carrega um bootloader, um código proprietário e fechado da PJRC chamado HalfKay, é ele quem gerencia o carregamento de novos programas para as placas Teensy através do Teensy Loader. O código do HalfKay é mantido fechado pela PJRC por questão de negócios, a fim de evitar cópias chinesas de qualidade duvidosa, sendo que não é possível extraí-lo das placas pois os Lock Bits do MCU foram setados, só é possível reescrever um outro bootloader, se você preferir, mas não será mais possível usar o Teensy Loader.

O bootloader HalfKay, diferente dos outros bootloaders, como AVR109, utiliza apenas 512 bytes ao invés de 2Kbytes/4Kbytes, liberando mais espaço para o programa do usuário.

O Teensy Loader é mandatório para trabalhar com Teensy, para aqueles que irão programar diretamente em C ou para aqueles que irão trabalhar com Arduino ou outra linguagem que o Teensy tenha suporte (como é o caso de BASIC e Python).

##4. Programando com C (AVR Libc)

Para iniciar a programação em C, é necessário instalar o WinAVR (no caso so Windows). A PJRC disponibiliza instruções e um exemplo de blinky alterado para responder a sinais de código morse em: http://pjrc.com/teensy/gcc.html

O código de blinky virá com um Makefile genérico que você pode usar em seus outros projetos, com poucas alterações, para ganhar tempo, basicamente, após instalar o WinAVR, simplesmente navegue via CMD do Windows e digite make, e o projeto será compilado, após isso, basta usar o Teensy Loader para fazer o upload do arquivo HEX para a placa Teensy.

O WinAVR é baseado em AVR Libc, por isso, é interessante para todos aqueles que desejam trabalhar com C, que estudem a referência da biblioteca. O equivalente ao Blink do Arduino em C, tendo em vista que o led da Teensy 2 está conectado ao pino D6, seria este código:

#include <avr/io.h>
#include <util/delay.h>

#define LED_CONFIG (DDRD |= (1 << 6)) // Configura a Porta D6 para OUTPUT (referente a pinMode)
#define LED_ON (PORTD |= (1 << 6)) // Seta o bit na porta D6 (referente a digitalWrite(pin, HIGH))
#define LED_OFF (PORTD &= ~(1 << 6)) // Limpa o bit na porta D6 ( referente a digitalWrite(pin, LOW))

#define CPU_PRESCALE(n) (CLKPR = 0x80, CLKPR = (n))

void main(){ CPU_PRESCALE(0); LED_CONFIG; while(1){ // loop infinito (referente ao void loop()) LED_ON; _delay_ms(1000); LED_OFF; _delay_ms(1000); }}

É possível também usar o Atmel Studio 6 e até biblioteca LUFA para realizar a programação em C.

##5. Programando com Arduino (Teensyduino)

Para programar as linhas Teensy 2 e 3 utilizando Arduino, basicamente você deve instalar o Teensyduino como Administrador do Sistema, ele irá instalar o Addon, o driver para Serial e bibliotecas opcionais.

Vale ressaltar, que na linha Teensy 2 nem todas as bibliotecas de Arduino são compatíveis, é necessário verificar a lista de compatibilidade. Porém, a linha 3 é completamente compatível com Arduino e o mesmo é padrão para programação do Teensy 3.

Claro que, ao encaminhar o código de exemplo Blink para a placa Teensy, é necessário saber em qual porta o led está ligado, no caso do Teensy 2, você deve trocar o pino 13 pelo pino 6, por exemplo e pronto, daqui, é só programar seus próprios projetos com Arduino!

##6. Considerações Finais

Eu comecei por Arduino Uno, talvez levado pela popularidade da plataforma, mas sinceramente, se hoje eu tivesse que escolher uma placa para iniciar, pensaria seriamente em uma Teensy, pelo fato de serem mais baratas e oferecerem mais que o Arduino, a Teensy ++ 2.0 além de ser mais barata, utilizar um microcontrolador melhor, ainda possui 45 portas e pode ser programada por código de Arduino.

Além disso, oferecem host de USB, HID e muitas outras possibilidades, eis aqui uma vasta lista de projetos criados com Teensy: Robôs, reposição de processadores, shield para Arduino, leitores e gravadores de eeprom, memórias nor/nand e muitas outras coisas interessantes!

E claro, são placas pequenas e baratas! Além disso contam com um excelente suporte num fórum de discussão privativo, onde o próprio criador da placa tem a atenção de responder questões, guiar projetos, atualizar software. Atualmente, mesmo podendo comprar diretamente da PJRC, eles ainda estão buscando distribuidores de placas originais na América Latina, como podemos notar.

Para consultar preços e especificações, visite a página oficial do Teensy.


#2

Caro @sksdutra, excelente conteúdo.
Que tal movermos ele para o Blog Fazedores e assim deixamos o fórum mais focado em discussões.
Vamos nesta?
Se animar, te coloco de colaborar por lá.


#3

Olá @mlemos, pode mover sem problemas, concordo que o blog é a mídia mais interessante para a postagem desse material.

Sobre colaborar com o blog, eu tenho interesse sim em ver o portal crescer, por isso abri essa postagem, pois de tudo que tem na internet brasileira sobre eletrônica DIY, é o mais organizado e com mais potencial (Sério, eu visito muito sites por dia e parece que o pessoal dessa área não gosta muito de aprender sobre webdesign, organização de conteúdo, layout, cores e etc… E não é exclusividade do Brasil…). E nesse sentido eu seria muito malvado se não elogiasse o Embarcados também!

No entanto, só posso ajudar desde que não tenha prazo e periodicidade, pois atualmente trabalho 8h e minha filha acabou de nascer e ainda não tem 2 meses, mas tenho alguns materiais que escrevi e tenho interesse em compartilhar e sempre estou comprando coisas novas para testar.

Valeu!


#4

Caro @sksdutra, não me esqueci de você. Só a vida que ficou meio dura por aqui! Mas acho que depois do meio desta semana devo conseguir caminhar com nossos planos. Valeus!


#5

Traquilo @mlemos, eu ia mandar uma mensagem para você mas não deu, minha bebêzinha estava meio nervosa e o trabalho pegou… É assim mesmo… Mas vamos em frente!


#6

Avisando a quem interessar que o Laboratório de Garagem disponibilizou a Placa Teensy 2.0 sem headers para a galera comprar no Brasil!

O preço base está com uma margem de lucro de 40%(+)/unidade (se você importar irá pagar ~R$ 55, mas terá que esperar a boa vontade do serviço postal brasileiro) o que faz deste um bom preço para o Brasil e lembre-se do frete caso não seja de São Paulo e de comprar os headers…


#7

@sksdutra vamos por ele lá no Fazedores. Como estou bem enrolado… vamos fazer assim… me mande um email para manoel arroba fazedores. com e combinamos os próximos passos. Valeu e sorry pela demora!