Estou escrevendo drivers de dispositivo de caracteres Linux para coisas de outras pessoas há algum tempo. Gostaria de encontrar um novo hobby e a ideia de criar meus próprios dispositivos USB parece realmente interessante.
Eu ficaria emocionado em poder controlar alguns LEDs, servos e motores de passo. Eu realmente gosto de aprender coisas novas por conta própria e da emoção quando algo finalmente funciona. Eu não fiz nenhuma programação séria de MC, mas sei o que fazer.
Alguém pode recomendar alguns kits que seriam úteis para um noob completo? Idealmente, são eles:
- Compatível com Linux
- Capaz de enviar internacionalmente (atualmente moro na Ásia)
- Oferecer kits de placa de ensaio
Se você tiver tempo e inclinação, os links para projetos nos sites de outras pessoas, que incluem esquemas e listas de peças, serão muito apreciados. Eu quero estudar a partir de exemplos, mas bons exemplos, e é por isso que estou perguntando aqui.
Meu objetivo final é criar meus próprios coletores de dados - de chuva a decibéis médios e níveis de luz. Desculpe se isso já foi solicitado antes, eu pesquisei (e pesquisei tags).
O Arduino é uma ótima ferramenta para começar quando você deseja criar dispositivos eletrônicos e pode levar você ao seu objetivo final de criar um registrador de dados . No entanto, não é adequado para o desenvolvimento real de USB, pois emula uma porta serial antiquada. Não permitirá que você faça isso de outra forma (como um dispositivo de interface humana (mouse / teclado) ou um dispositivo de armazenamento em massa (leitor de cartões / unidade removível)).
Se você deseja criar dispositivos USB "reais", visite o site de Jan Axelson . Ele escreve livros para iniciantes sobre USB. O desenvolvimento de gadgets que usam USB nesse nível pode não ser adequado para iniciantes, portanto a experiência do Arduino definitivamente o levará a caminho.
fonte
Eu recomendo o tutorial do apresentador de slides Tuxgraphics AVR USB. Ele usa um microcontrolador Atmel AVR, que possui uma grande comunidade de entusiastas (avrfreaks etc.), e uma pilha usb1.1 de software livre, de software livre, de obdev.org. Ele não pode ser escalado muito alto (armazenamento em massa, por exemplo), mas o produto final é um pequeno teclado USB HID com dois botões atribuíveis. Seria trivial usá-lo como um registrador de dados, e alguns dos exemplos em obdev.org são exatamente isso (www.obdev.at/products/vusb/projects.html). Está escrito em c limpo e a lista de peças custa alguns dólares, no máximo.
Ao mesmo tempo, recomendo construir ou comprar o programador tuxgraphics avrusb500. É uma alegria usar e um dos equipamentos mais confiáveis que possuo. (Eu não sou afiliado - apenas um cliente muito satisfeito!)
fonte
Outro dispositivo que eu queria examinar é o AT90USBKey . Já faz um tempo desde que eu o analisei, e não tenho certeza se você pode programá-lo sem o Windows, mas ele funcionará como um dispositivo USB (como um teclado ou dispositivo de armazenamento em massa) ou como um host USB em que você conecta outros dispositivos. Existem programas de amostra disponíveis e parece razoavelmente fácil trabalhar, desde que você conheça um pouco sobre a eletrônica e possa codificar em C.
Uma pesquisa no google por AT90USBKey e Linux apresentou resultados promissores.
Eu sei que você pode obtê-lo no DigiKey.ca . Procurei um equivalente digikey para a Ásia ; você pode obter o papel da Farnell .
fonte
Você também pode querer verificar Teensy .
fonte
Se você acabar usando o Arduino, portarei a biblioteca V-USB (anteriormente AVR-USB) para executá-lo. Também inclui uma classe para facilitar a interação.
Você pode criar dispositivos USB HID, por exemplo, teclado, mouse ou joystick. Você também pode criar um dispositivo genérico que usa o libusb no host para controlá-lo - do Python, C, Processamento etc.
Meu site tem uma blindagem PCB que você pode usar que usa uma tomada USB e alguns resistores, etc:
http://code.rancidbacon.com/ProjectLogArduinoUSB
Você pode escrever o código do Arduino para enviar pressionamentos de teclas tão facilmente quanto:
ou com um "driver" libusb, você pode enviar dados como:
ou leia dados com:
--Philip;
fonte
Agora existem várias placas de desenvolvedor baseadas em AVR-USB.
Eu pessoalmente usei o Teensy e o Bumble-B mencionados anteriormente e acho que ambos são ótimos.
Teensy é legal, porque se integra muito bem ao ambiente do Arduino. Isso significa que você pode fazer coisas como "Mouse.init; Mouse.move (x, y)" em vez de lidar com o código USB de baixo nível. Ambos executarão o LUFA, se você desejar.
fonte
Aqui está um simples projeto PIC USB meu:
http://www.leonheller.com/usb
PCBs estão disponíveis.
fonte
A Object Development criou uma biblioteca para microcontroladores AVR que permite criar dispositivos USB muito baratos por conta própria (a partir de apenas 2 a 3 dólares). O GCC para AVR é compatível com Linux. Já existem centenas de dispositivos fabricados. Dê uma olhada aqui: http://www.obdev.at/products/vusb/projects.html
fonte
Depende do tipo de dispositivo USB que você deseja criar e do nível avançado. Você menciona leds piscantes. Esse tipo de controle pode ser facilmente arquivado com qualquer tipo de microcontrolador com uart e um chip ftdi (o arduino é bastante popular e fácil de começar). O chip ftdi se conecta ao uC em série e atua como um conversor USB <-> serial. Ele também aparece como uma porta COM virtual no seu computador.
Se você quiser fazer uso de protocolos, drivers e recursos USB mais avançados, poderá obter um UC com capacidade USB nativa. O microchip tem muitas fotos (seus microcontroladores) que podem fazer isso, por exemplo. O Microchip também possui muitas placas de desenvolvimento dedicadas ao aprendizado do uso do usb. O Atleast Microchips de 32 bits também suporta o uC, e otg -modes, para que você possa criar um registrador de dados que salve os dados em um cartão de memória USB comum, que pode ser conectado ao computador para ler os dados. (Tenho certeza de que muitos outros fabricantes também possuem CIs e dev-kits similares, mas o Microchip é o único que eu usei)
Página inicial do Microchip / USB
fonte
Observe que você não precisa iniciar em um nível eletrônico tão baixo e poupar mais tempo de desenvolvimento para o "dispositivo" em si. Muitas empresas vendem dispositivos USB para o mercado de bricolage, por exemplo:
http://www.yoctopuce.com
http://www.phidgets.com
fonte