terça-feira, setembro 13, 2016

Sinalizador - Parte 2

Como primeiro projeto com o sinalizador, vamos usar um ATtiny para controlá-lo pela USB.



O projeto do hardware e software se baseia no V-USB, uma implementação da interface USB usando um hardware muito simples.

O microcontrolador que eu escolhi foi o ATtiny44. Para gerar as temporizações corretas, usei um cristal de 12MHz. Dois pinos de E/S digital são usados para a interface USB, junto com dois zenners de 3,6V e três resistores. Quatro pinos de E/S digital controlam os LEDs do sinalizador. O circuito fica assim:



A montagem foi feita em uma protoboard, a única dificuldade foi que o cabo USB (extraído anos atrás de algum mouse ou teclado) usa uma convenção de cores diferente do descrito na Wikipedia (VBUS é branco e D- e laranja).

Uma decisão importante é a classe do dispositivo USB. Para não precisar desenvolver um driver, optei por usar a classe HID - Human Interface Device. Embora esta classe seja usada principalmente para teclados e mouses, ela pode ser facilmente abusada para transferência de pacotes pequenos de dados entre uma aplicação e o dispositivo.

O meu firmware foi uma adaptação do usado no Simplibox IO. O resultado pode ser baixado dos arquivos do blog (arquivo SinalizadorUSB_fw.zip).

Gravado o firmware no ATtiny e montado o circuito, podemos conectar o sinalizador a um PC com Windows, Linux, etc. O sinalizador será reconhecido automaticamente como um HID e nenhum driver especial será necessário. No Windows, você pode verificar no Gerenciador de Dispositivo que foi reconhecido um dispositivo HID com VID 06C0 e PID 05DF:



Na próxima parte vamos ver como um aplicação pode controlar os LEDs através da USB.

Nenhum comentário: