Se eu quisesse criar um dispositivo simples que se comunicasse com o meu computador, digamos que talvez um comutador pudesse silenciar meu computador quando ligado e desligado e conectá-lo via USB, qual seria a maneira mais barata e fácil de fazer isso?
microcontroller
usb
Sean
fonte
fonte
Respostas:
Mais fácil? Pegue um Arduino e escreva algumas linhas de Python. O Arduino é incrivelmente fácil de programar, não requer hardware adicional para trabalhar e é bastante popular . O Python tem uma biblioteca serial muito simples e é muito fácil de escrever.
Código de exemplo
Python: execute este script como um serviço. Como estou usando o Ubuntu, este script exibirá uma notificação informando quando um botão foi pressionado no Arduino.
Arduino:
fonte
Crie um dispositivo de classe de dispositivo de interface humana USB. Essa é a mesma classe usada por teclados, mouses, joysticks, consoles de jogos e similares. O seu PC já possui suporte completo ao driver de dispositivo para dispositivos HID, facilitando o acesso ao software. Muitos ponteiros e até mesmo exemplos de código podem ser encontrados na página HID de Jan Axelson . Navegue pelo site para obter muitas informações boas relacionadas ao desenvolvimento de dispositivos USB.
Muitas das pequenas famílias de microprocessadores podem fazer HIDs. Eu já vi isso em USB Low Speed com um ATR minúsculo de 8 pinos inteiramente em software.
Escolha o seu chip preferido e pesquise nos "recursos usuais" amostras HID.
Outra abordagem é criar um dispositivo de comunicação serial. Existem várias soluções de chip único da FTDI . O FT232R é uma escolha popular. Os drivers são necessários, mas os drivers certificados do Windows são conhecidos pelo assistente Novo Hardware Encontrado, portanto, a instalação não é difícil. Depois de instalado, você tem um dispositivo que se parece com uma porta COM. Estão disponíveis drivers alternativos que permitem acessar seus pinos GPIO e usá-los nos modos mais avançados.
Atualização, 2015: havia um link para http://www.lvr.com/hidpage.htm , que parece ter um link apodrecido e o novo local descoberto graças a El Marce . A Lakeview Research de Jan ainda é uma ótima fonte de informações sobre o uso prático do USB.
fonte
Aqui está uma postagem de blog muito detalhada http://msdn.microsoft.com/en-us/devlabs/dd491992 com software para usar um PIC18F4550 abaixo de US $ 5 para fazer a interface via USB como um dispositivo HID padrão. O software fornecido pode ser usado para fazer interface com qualquer dispositivo HID; portanto, se você quiser um chip alternativo, o software continuará funcionando.
Uma vantagem adicional é que a postagem do blog mostra como fazer a comunicação bidirecional, para que você não apenas conecte um switch, como também ligue e desligue um LED.
fonte
Aqui está um projeto simples meu usando um PIC18F2455, baseado no software USB de Brad Minch. PCBs estão disponíveis na Olimex.
fonte
Se você não se importa com o microcontrolador baseado no Cortex-M3, dê uma olhada no LPC1343 da NXP . É apenas US $ 6,30 na Digikey (1 peça). Há um recurso muito interessante - firmware para armazenamento e dispositivos HID na ROM do chip!
Comparado a uma solução com chip FTDI + microcontrolador, há um chip a menos :)
fonte