I2C: Gogo Board + Raspberry Pi

Assim como fizemos com o Arduino, poríamos realizar com a Gogo Board, seguindo este post.

No entanto, como dito anteriormente, a Pi somente trabalha em modo master no i2c, o que confitaria com a Gogo Board, também master.

Mesmo modificando o firmware, o nível de tensão do i2c para a Gogo Board é de 5v, ao contrário dos 3.3V da Pi e do Arduino.

Sendo assim, precisaremos utilizar um conversor de sinal, como acima, ou mesmo outros conversores similares, como este.

Foto: https://dlnmh9ip6v2uc.cloudfront.net/

I2C: Arduino + Raspberry Pi – II

Seguindo este post, poderemos no conectar ao Arduino através do i2c com sucesso, além de outros dispositivos como acelerômetros.

No entanto vale ressaltar que até o momento, a Pi somente trabalha em modo master, devido ao kernel do linux utilizado. Mais detalhes aqui. Além disso, dependendo da versão da placa, ela poderá não disponibilizar os pinos que operam em modo slave, vide aqui.

Foto aqui.

Gogo Board + Labview: I2C

escreve-num

Esta é a VI sugerida para comunicação utilizando o protocolo i2c no Labview.

Após inserir o componente ActiveX, inserimos as rotinas responsáveis pelo envio de dados i2c à um módulo lcd conectado à placa.

Neste exemplo, será enviado o número 192.

Outros módulos podem ser vistos aqui e neste local, temos a tabela de endereços dos módulos disponíveis.

Mais detalhes sobre a comunicação i2c, aqui.

Gogo Board: I2C na Prática – VII

Estando tudo certo em nosso master, usaremos basicamente o mesmo código para programar nosso slave, porém, dentro da rotina principal, ou seja, main, deveremos inserir o código abaixo:

OpenI2C( SLAVE_7, SLEW_OFF);
SSPADD = 0xB0; //SSPADD contains I2C device address in SLAVE mode

while ( !DataRdyI2C() )
{
addr = ReadI2C();
AckI2C();
IdleI2C();
data = ReadI2C();
NAckI2C();
IdleI2C();
}

Ele é responsável por iniciar a placa em modo slave, utilizando o endereço 0xB0.

A seguir devemos configurar uma mensagem que será enviada pela placa master e recebida pela placa slave. Uma vez recebida esta mensagem, poderemos disparar determinadas funções de acordo com nossa necessidade.

Fonte: http://bradthx.blogspot.com.br/2011/11/pic18f-c18-implemented-i2c-slave.html

Gogo Board: I2C na Prática – VI

Dentro da rotina principal do nosso programas, ou seja dentro do main, devemos inserir este código:

OpenI2C( MASTER, SLEW_OFF);
SSPADD = 0x27; //SSPADD Baud Register used to calculate I2C clock speed in MASTER mode (in this case 100Khz)

StartI2C();
IdleI2C();
putcI2C( 0xB0 ); //send address
IdleI2C();
putcI2C( databyte ); //send data
IdleI2C();
StopI2C();

Ele será o responsável por iniciar uma das placas como master e enviará dados (databyte) à uma placa slave com endereço 0xB0.

Fonte: http://bradthx.blogspot.com.br/2011/11/pic18f-c18-implemented-i2c-slave.html

Gogo Board: I2C na Prática – IV

Boa parte da comunicação I2C e feita na placa através de comandos utilizando a linguagem LOGO, no entanto, nos projetos afiliados à Gogo Board, as rotinas para este tipo de comunicação estão sendo finalizadas, uma vez que estes projetos, são baseados, em grande parte na versão 3 da Gogo Board.

Sendo assim, como já fizemos, escrevendo firmwares próprios, faremos o mesmo para utilizar o I2C.

Gogo Board: I2C na Prática – III

Podemos ver aqui, como é a implementação da comunicação entre duas placas, através do I2C.

Para que haja comunicação precisamos de pelo menos uma placa principal, chamada master e pelo menos uma ou mais placas secundárias, chamadas slaves.

Cada uma possui um endereço de identificação próprio e comandos que podem ser enviados a elas para que realizem uma operação desejada.

Foto: http://www.instructables.com/id/I2C-between-Arduinos/

Arduino Duemilanove: I2C

Diferentemente de outros, este Arduino utiliza os pinos de entrada analógica A4 e A5 para a comunicação I2C, sendo eles, SDA e SCL, respectivamente.

Esta comunicação é baseada na biblioteca Wire, o que tende a tornar o processo relativamente simples, como já vimos.

Assim como fizemos com a Gogo Board, chegou a hora de fazermos o mesmo como o Arduino, no primeiro momento, operando como escravo (slave) e aqui esta a fonte de estudo.

Foto: http://arduino.cc/en/uploads/Tutorial/Master_Sender_bb.png

Gogo Board: I2C na Prática – II

A Gogo Board possui uma série de módulos, conhecidos como Add-on, ou Shields, alguns já se encontram prontos para uso, outros estão em desenvolvimento.

O que mostraremos aqui se trata da interligação de duas placas Gogo Board, porém com seus firmwares alterados para a prática que se seguirá, aonde aquilo que ocorrer na placa chamada mestre (master), será repetida na placa chamada escrava (slave).

Antes de começarmos, este é um material muito interessante sobre o assunto.

Gogo Board: I2C na Prática

Sem sombra de dúvida, um dos recursos mais interessantes é o I2C. O protocolo de comunicação I2C é usado para a interconexão de diversos circuitos integrados a um único barramento de quatro linhas físicas. A maioria dos equipamentos de vídeo e som modernos já estão empregando este sistema com grandes possibilidades para a indústria e comunicações para melhor compreensão do leitor, ilustraremos o funcionamento deste protocolo utilizando um microcontrolador, pois em muitas aplicações a altas velocidades de operação nas leituras de portas não são os pontos críticos.

Sendo assim, iniciamos uma série de algumas matérias sobre seu uso na prática.

Fonte: Saber Eletrônica

Gogo Real: I2C Funcional

Acaba de sair uma atualização de firmware que corrige o bug que havia no uso do protocolo I2C na placa.

Com esta correção, o display analógico já poderá ser usado, outros módulos como o LCD, ainda estão sendo implementados.

Por se tratarem de códigos opensource, podemos alterar o firmware de modo a funcionarem também com outros módulos I2C da própria Gogo Board ou mesmo Arduino. Verifique a documentação do módulo.

Foto: http://www.gogoreal.com.br/

Br-Gogo: I2C Funcional

Acaba de sair uma atualização de firmware que corrige o bug no uso do protocolo I2C existente na placa.

Com esta correção, o display analógico já poderá ser usado, para isso, basta conectá-lo aos conectores I2C e utilizar na programação em Blocos o bloco chamado Mostrar, encontrado na aba Outros.

O arquivo poderá ser obtido no repositório oficial do projeto, aqui.

Mais informações em breve.

Foto: http://br-gogo.sourceforge.net/