All Rights ReservedView Non-AMP Version
IT Forum
  • Homepage
  • Notícias
Categories: Notícias

Saiba como construir um dispositivo USB

Nas últimas semanas, tenho construído um dispositivo USB usando um PIC18F2550. Desta vez, quis me envolver em uma discussão com o host de software. Afinal, se você construir um dispositivo USB, é lógico que irá querer usá-lo de algum software de computador, certo? Se você criou algo que se parece com um dispositivo padrão (por exemplo, um mouse), então isso é fácil. É só você tratá-lo como faria com qualquer outro mouse.

No entanto, é mais simples e mais flexível  construir uma HID (Human Interface Device, ou em tradução livre, dispositivo de interface humana). E foi isso que eu fiz. É verdade que um mouse (e teclado) é uma HID. Mas nem todos os HIDs agem como dispositivos de entrada padrão.

As melhores notícias de tecnologia B2B
Acompanhe todas as novidades diretamente na sua caixa de entrada

Você poderia escrever um driver USB completo, mas isso dá muito trabalho. Sem mencionar que seria necessário escrever um driver novo para cada sistema operacional. Isso é parte da beleza de usar o projeto HID: todos os principais sistemas operacionais já têm um driver para isso. Seu trabalho é interagir com eles a partir do software de usuário simples-para-escrever.

Existem algumas opções. A biblioteca libusb é muito flexível, mas também é um pouco complexa para trabalhar quando você não precisa de todas as suas capacidades. Além disso, o suporte do Windows foi limitado recentemente.

A outra opção usar a biblioteca HIDAPI. Isso fornece uma interface uniforme entre Linux, Mac e Windows por meio de back-ends diferentes. Primeiro, queria escrever uma interface de linha de comando simples para provar que eu poderia falar com o dispositivo.

1 

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

#include  

#include “hidapi.h”

 

int main(int argc, char *argv[])

{

int state=0;

float v;

 

unsigned char buf[65];

hid_device *handle;

if (hid_init()) return;

printf(“Hid initn”);

handle=hid_open(0x4d8,0xf83f,NULL);   // our PID

if (!handle) return;

printf(“Hid openedn”);

buf[0]=0;   // send a command

buf[1]=1;

buf[2]=1;

int rv1=hid_write(handle,buf,3);

printf(“Write returned %xn”,rv1);

buf[0]=0;   // send a read command

buf[1]=2;

hid_write(handle,buf,2);

hid_read(handle,buf,sizeof(buf));  // read data back

v=(buf[3]<<8|buf[2])*5/1024.0;  // convert to voltage printf(“Voltage=%fn”,v); buf[0]=0; buf[1]=1; buf[2]=0; hid_write(handle,buf,3); hid_close(handle); hid_exit(); }

Não é muito excitante, mas fácil de seguir. A função hid_init configura a biblioteca enquanto a chamada thehid_open abre o meu dispositivo específico. O hid_read,hid_write e comandos hid_close fazem o que você acha que eles fazem. Finalmente, o hid_exit limpa e nada fica para trás.

Muito simples. Claro, você pode fazer muito mais, mas o código desta série irá permitir que você faça uma quantidade surpreendente de desenvolvimento USB com um mínimo de barulho.

 

Next Novo browser da Nokia reduz em 90% consumo de dados »
Previous « Avaya lança switches Ethernet para PMEs
Share
Published by
Editorial IT Forum 365
14 anos ago

    Related Post

  • Novos executivos da semana: Uncover, Tech for Humans, Diebold Nixdorf, Unico e mais
  • Se o Brasil não organizar seus dados culturais, outro fará isso por nós, alerta Jorge Brivilati
  • CBYK nomeia Maurício Matsuda como novo CEO

Recent Posts

  • Notícias

83% dos CIOs já adiaram projetos estratégicos por restrições de orçamento

A pressão por controle de custos vem alterando a dinâmica das áreas de tecnologia nas…

1 semana ago
  • Estudos

Fintechs brasileiras captam US$ 2,77 bi em 2025 e entram em nova fase de maturidade

O mercado brasileiro de fintechs passou por uma transformação no perfil dos investimentos em 2025.…

1 semana ago
  • Notícias

Sioux aposta em IA e dados para nova fase de experiências digitais e expande atuação para a Europa

O avanço da inteligência artificial e o uso estratégico de dados vêm transformando a forma…

1 semana ago
  • Artigos

Qual é o risco do desenvolvimento de software com IA?

Por Ramon Ribeiro Quase metade do código produzido por assistentes de inteligência artificial contém vulnerabilidades…

1 semana ago
  • Notícias

Se o Brasil não organizar seus dados culturais, outro fará isso por nós, alerta Jorge Brivilati

Peça a um modelo de inteligência artificial que gere a imagem de uma cidade, sem…

1 semana ago
  • Notícias

Novos executivos da semana: Uncover, Tech for Humans, Diebold Nixdorf, Unico e mais

O IT Forum apresenta, semanalmente, os novos executivos e os principais anúncios de contratações, promoções e mudanças…

1 semana ago
All Rights ReservedView Non-AMP Version
  • L