Aula 13: Interfaces de comunicação

Na Aula 9 vimos que os pinos podem ser de alimentação, terra, GPIO, comunicação e conexão com a EEPROM. Nesta aula vamos abordar os protocolos de comunicação possíveis através dos pinos da Raspberry Pi: I2C, SPI e serial.

Imagem apontando cada uma das comunicações abordadas.

Através desses protocolos é possível se comunicar com dispositivos mais complexos, que não usam apenas uma saída ou entrada da placa. Isso facilita bastante o trabalho na hora de montar os projetos, através da interface de comunicação a placa apenas “pergunta” a informação que precisa do dispositivo ou manda uma ordem a ser executada. Se fossem utilizadas as entradas e saídas digitais da placa com esse tipo de dispositivo, seriam necessárias muitas portas e um programa bastante extenso e complexo. Geralmente esses dispositivos possuem uma biblioteca própria, que torna a programação ainda mais simples. É interessante lembrar que esses dispositivos devem estar devidamente energizados, utilizando os pinos de alimentação e de terra da placa no circuito.

Serial

Também conhecida como UART (Universal Asynchronous Receiver/Transmitter – Transmissor e Receptor Universal Assíncrono) a comunicação serial é uma forma bastante direta de se comunicar com outras placas, como um Arduino, por exemplo. Essa comunicação é feita com 3 pinos: um que envia os dados (TX), um que recebe os dados (RX) e o que funciona como referência do sistema (terra).

Nesse tipo de comunicação é definida uma velocidade de transmissão (que deve ser previamente estabelecido). Existem outros parâmetros que podem ser configurados mas geralmente se utiliza o padrão da placa. Quando utilizar a porta serial com Python, você deve importar a biblioteca serial. Um exemplo de configuração, seria:

ser = serial.Serial("/dev/ttyAMA0", 115200)

Este tipo de comunicação é bastante utilizado entre microcontroladores, módulos GPS, módulos GSM e alguns displays.

SPI

O SPI é um protocolo que permite a formação de uma rede de comunicação, onde os dispositivos podem enviar e receber dados. Esse protocolo utiliza pelo menos cinco pinos: SCLK, MOSI, MISO, CE e o terra. Cada dispositivo extra na rede necessita um pino de CE próprio.

Por padrão o Raspbian vem com SPI desabilitado, verifique se ele está habilitado, executando este comando no terminal:

ls /dev/spi*

Se não for possível acessar, você deve entrar no ‘raspi-config’ e alterar essa configuração, indo na opção “5 – Interfacing Options”.

 

Esse tipo de comunicação é utilizado em diversos dispositivos, como leitores RFID, leitores de cartões SD, entre outros.

I2C

O protocolo I2C também cria uma rede de comunicação, utilizando 3 pinos: SDA, SCL e o terra. Esse protocolo permite que se conectem diversos dispositivos, todos utilizando os mesmos 3 pinos.

Assim como o SPI, você deve habilitá-lo no ‘raspi-config’ e habilitar na opção “5 – Interfacing Options”. Se quiser verificar se ele está devidamente habilitado, basta executar este comando no terminal:

ls /dev/i2c*

Existem diversos dispositivos que utilizam este tipo de comunicação, como o sensor de corrente, sensor de temperatura, módulo PWM, diplays e muitos outros módulos.

Na próxima aula iremos ver uma aplicação prática da comunicação I2C utilizando um display.