Índice:

Adaptador I2C (I-Squared-C) mais barato do mundo: 5 etapas (com fotos)
Adaptador I2C (I-Squared-C) mais barato do mundo: 5 etapas (com fotos)

Vídeo: Adaptador I2C (I-Squared-C) mais barato do mundo: 5 etapas (com fotos)

Vídeo: Adaptador I2C (I-Squared-C) mais barato do mundo: 5 etapas (com fotos)
Vídeo: MONTANDO O PC MAIS BARATO COM CPU INTEL 12ª GERAÇÃO! 2024, Julho
Anonim
Adaptador I2C (I-Squared-C) mais barato do mundo
Adaptador I2C (I-Squared-C) mais barato do mundo

Faça uma interface de sensor para o seu computador por menos de um dólar! Atualização 6/9/08: Depois de explorar vários caminhos, concluí que não há maneira prática de implementar essa técnica no Microsoft Windows. Isso não é uma crítica mesquinha do sistema operacional, eu realmente enlouqueci tentando! Desculpa! Os usuários do Windows que precisam de recursos I2C são mais bem atendidos por soluções existentes baseadas em USB. Atualização 24/5/08: Foi adicionado suporte para Linux, bem como código de amostra para o controlador Nintendo Wii Nunchuk e o "LED inteligente" BlinkM. Consulte o arquivo README.txt incluído com o código-fonte para obter instruções sobre como compilar e configurar no Linux. I2C (abreviação de Circuito Inter-Integrado) é um barramento serial de dois fios normalmente usado em computadores para comunicação de baixo nível entre componentes internos. I2C também é popular na robótica. Todos os tipos de sensores e atuadores estão disponíveis em uma forma compatível com I2C: rangefinders ultrassônicos, sensores para aceleração, inclinação, temperatura e pressão, servo controladores e expansores de barramento que fornecem linhas adicionais de uso geral (GPIO). A maioria dos microcontroladores modernos (Atmel, Microchip PIC, etc.) têm suporte integrado para I2C. Mas o poder de processamento disponível em microcontroladores é limitado e o desenvolvimento de software - com compiladores cruzados especializados e ambientes de programação - às vezes pode ser uma tarefa árdua. Com laptops e computadores de placa única se tornando cada vez menores e mais acessíveis, é cada vez mais comum ver esses sistemas usados diretamente em projetos de robótica e eletrônica. Isso fornece amplo poder para novos recursos, como processamento de visão e IA mais sofisticada, e expande muito o escopo das ferramentas e linguagens de desenvolvimento disponíveis … mas também apresenta um novo problema: a interface desses sistemas "regulares" com os periféricos normalmente é feita através do mainstream portas de consumo, como USB; não há uma "porta I2C" disponível externamente que possamos acessar para usar nossos sensores … ou há?

Etapa 1: opções existentes

Opções Existentes
Opções Existentes
Opções Existentes
Opções Existentes

Uma maneira de conectar dispositivos I2C a um computador desktop ou laptop comum é por meio de um adaptador USB para I2C. Existem pelo menos uma dúzia dessas opções por aí, variando de kits do-it-yourself com software de código aberto a unidades comerciais sofisticadas com cada sino e apito.

Uma desvantagem da abordagem USB para I2C é o custo. Um modelo comercial completo pode custar US $ 250 ou mais. Mesmo as alternativas de homebrew "grátis" pressupõem uma coleção de peças e um investimento prévio em um programador de microcontrolador e o conhecimento relacionado para fazer uso dele. Outra desvantagem é a relativa escassez de suporte a drivers fora do popular Windows. Poucos desses dispositivos funcionam nativamente em computadores Macintosh ou Linux.

Etapa 2: DDC é I2C

DDC é I2C
DDC é I2C
DDC é I2C
DDC é I2C
DDC é I2C
DDC é I2C

Quando disse na introdução que não há porta I2C externa na maioria dos computadores, menti. Acontece que existe, e está lá o tempo todo por quase uma década, principalmente adormecido.

A maioria das placas gráficas e monitores modernos tem suporte para algo chamado Display Data Channel (DDC), um link de comunicação dentro de um cabo de vídeo que permite que o computador e o monitor negociem resoluções mutuamente compatíveis e permite o controle de software das funções do monitor normalmente acessadas com botões físicos no exibição. O DDC é, na verdade, simplesmente uma implementação de um barramento I2C com algumas regras estabelecidas. Batendo nesta conexão entre o computador e o monitor (ou fazendo uso das linhas DDC em uma porta de vídeo sobressalente não utilizada, como a conexão do monitor externo em um laptop), pode-se fazer interface com alguns dispositivos I2C virtualmente sem custo, ignorando o necessidade normal de um dispositivo adaptador inteiramente. Tudo o que precisamos para acessar fisicamente este barramento I2C é um cabo de vídeo hackeado …

Etapa 3: dissecando o cabo

Dissecando o cabo
Dissecando o cabo
Dissecando o cabo
Dissecando o cabo

Quatro fios são necessários para nossa interface I2C: alimentação de + 5V, aterramento, dados seriais e relógio serial. Pinouts para os vários tipos de portas de vídeo podem ser encontrados na Wikipedia ou Pinouts.ru. Lembre-se de usar um cabo VGA para encontrar um com o conjunto completo de pinos; alguns incluem apenas um subconjunto. Cortando o isolamento e a blindagem da parte externa do cabo, você provavelmente encontrará dois grupos de fios internos. Fios mais grossos, ou feixes de fios envoltos em blindagem adicional, geralmente transportam o sinal de vídeo. Não estamos interessados neles e podem ser aparados. Fios mais finos e sem blindagem geralmente transportam os sinais DDC (I2C), entre outros. Um multímetro ou testador de continuidade pode ajudar a encontrar os quatro fios corretos para o seu cabo. Usar um conector simples pode ser vantajoso aqui, já que você só precisa soldar quatro fios aos pinos de interesse. Uma nota sobre a alimentação de + 5V: a corrente disponível é muito limitada; cerca de 50 mA de acordo com a especificação DDC. A maioria dos dispositivos I2C consome apenas um pouquinho de corrente, então deve ser possível executar vários de uma vez … mas se estiver usando mais de um ou dois LEDs (ou outros dispositivos de corrente alta comparativamente), alimentação externa deve ser fornecida.

Etapa 4: O Adaptador Completo

O Adaptador Completo
O Adaptador Completo

Aqui está o adaptador pronto. Isso é tudo que há para fazer! Eu fiz o meu mais grosso para caber facilmente na minha bolsa do laptop e adicionei um plugue de quatro pinos que se conecta diretamente a um servo controlador I2C que eu tenho.

Etapa 5: Software e Projetos

Software e Projetos
Software e Projetos
Software e Projetos
Software e Projetos

O código-fonte do Mac OS X e Linux para trabalhar com o adaptador pode ser baixado do meu site (o link para download está no final da página). É escrito em C e você precisará ter o gcc instalado (o Linux geralmente inclui isso por padrão, enquanto os usuários do Mac precisarão instalar as ferramentas de desenvolvedor que são um instalador opcional no disco original do sistema operacional ou podem ser baixadas gratuitamente da Apple). O código de exemplo está incluído para ler um sensor de temperatura, piscar um "LED inteligente" BlinkM, escrever e verificar um EEPROM serial, ler um controlador Nintento Wii Nunchuk (somente Linux) e comunicar-se com uma placa de servo controlador. Infelizmente, este esquema de adaptador não é compatível com todos os sistemas. O suporte para DDC não é obrigatório, portanto, nem todas as placas de vídeo suportam esse recurso. Tive sorte até agora com sistemas Mac que têm chips gráficos ATI ou Intel, mas os sistemas baseados em NVIDIA estão sem sorte. No lado do Linux, eu apenas testei com sucesso um IBM ThinkPad A31p (gráficos ATI), mas ele não funcionaria com um Asus EeePC (Intel). As imagens aqui mostram um equipamento de teste que demonstra vários dispositivos I2C em ação. O computador lê continuamente a temperatura ambiente de um sensor de temperatura I2C, registra periodicamente esses dados em um chip EEPROM serial I2C (sim, ele poderia apenas imprimir em um arquivo, mas isso era para demonstrar ainda mais as aplicações I2C) e, em seguida, um servo (por meio de um controlador I2C) serve como um dial indicador improvisado. Com a biblioteca e o código de amostra para esses dispositivos já implementados, levou apenas alguns minutos para montar esta demonstração (e a maior parte disso foi fazer o dial indicador).

Recomendado: