Como ativar o SPI / I2C no Raspberry Pi (e o que usá-los)

Você provavelmente conhece os pinos GPIO no Raspberry Pi, mas e os conectores SPI e I2C? Para que servem e como você pode usá-las?

Você provavelmente conhece os pinos GPIO no Raspberry Pi, mas e os conectores SPI e I2C?  Para que servem e como você pode usá-las?
Propaganda

O Raspberry Pi pode ser usado para quase tudo. De centros de mídia em casa a configurações personalizadas de jogos retrô, é seguro dizer que o Pi e computadores de placa única semelhantes estão se tornando onipresentes.

Quando você começa a experimentar com os pinos GPIO no Raspberry Pi, as coisas ficam ainda mais interessantes. Nós já cobrimos o que todos esses pinos fazem, então agora vamos ver como ativar os protocolos SPI e I2C em seu Pi e por que você pode querer.

O que é SPI em Raspberry Pi?

Antes de mergulhar, vamos cobrir brevemente o que esses dois protocolos fazem.

O SPI (ou Interface Periférica Serial) permite que um microcontrolador, como o Pi, se comunique com mais de 100 componentes periféricos de uma só vez. O microcontrolador atua como um "mestre" para todos os componentes "escravos" e pode se comunicar com eles em alta velocidade. Este diagrama descreve uma conexão SPI simples:

SPI e I2C no Raspberry Pi
Crédito de imagem: Cburnett / wikipedia.org

Se esta é a primeira vez que você lê sobre o SPI, pode parecer intimidante, mas fique com ele! SCLK é a velocidade do clock definida pelo mestre, que determina a velocidade com que as informações são compartilhadas entre os dispositivos.

A cada ciclo (ou “tick”) do relógio, o mestre e o escravo enviam e recebem um bit de informação. É para isso que servem os pinos MOSI (Master Out Slave In) e MISO (Master In Slave Out).

O pino SS ou Slave Select (marcado CE0 ou ​​CE1 no Pi) é usado para dizer a um dispositivo escravo para se comunicar com o mestre - ou não - a qualquer momento. Na maioria dos casos, cada dispositivo escravo requer seu próprio pino SS, mas pode compartilhar os pinos SCLK, MOSI e MISO.

Alguns dispositivos podem ser “encadeados” para compartilhar um pino SS, mantendo o total de pinos usados ​​até quatro, mais dois para energia e aterramento. O SPI é conhecido por ser incrivelmente rápido e é comumente usado em registros de deslocamento ou ADCs (conversores analógico para digital) para transmitir dados entre dispositivos.

O canal de YouTube de Startups Aumentadas tem um fácil de seguir para o SPI, explicando ainda mais o protocolo:

Como ativar o SPI no Raspberry Pi

Para habilitar o SPI no seu Raspberry Pi, abra raspi-config a partir do terminal digitando:

sudo raspi-config 

Navegue até Opções de Interfaces e, no menu seguinte, selecione P4 SPI Ativar / Desativar o carregamento automático do módulo do kernel da SPI . Selecione Sim no prompt da janela. O SPI está agora ativado!

SPI e I2C no Raspberry Pi

Alternativamente, você pode habilitar o SPI do arquivo /boot/config.txt . Abra uma janela de terminal e insira:

 sudo nano /boot/config.txt 

Procure por uma linha que leia # dtparam = spi = on e remova o símbolo # . Seja como for que você habilite o SPI, reinicie seu Pi e o SPI será ativado.

O que você pode fazer com o SPI em Raspberry Pi?

Embora existam centenas de projetos diferentes utilizando muitos periféricos SPI diferentes, um bom projeto inicial é programar seu próprio leitor RFID.

Usamos o leitor MFRC-522 em nosso DIY Smart Lock com Arduino e RFID tutorial DIY Smart Lock com Arduino e RFID DIY Smart Lock com Arduino e RFID Veja como construir um bloqueio inteligente simples baseado em RFID usando um Arduino como backbone e alguns componentes baratos. Consulte Mais informação . Para uma introdução ao RFID com sabor de Raspberry Pi, confira o Instructable detalhado do piddlerintheroot.

Esse tipo de configuração também não é apenas para eletrônicos de hobby. Em nossa coleção de melhores projetos Raspberry Pi Os 13 Melhores Projetos Raspberry Pi de 2017 Os 13 Melhores Projetos Raspberry Pi de 2017 Você ficará encantado com esses projetos incrivelmente criativos de Raspberry Pi. A Read More, apresentamos um sistema MES de grande escala que utiliza o Raspberry Pi e o RFID, como parte de uma operação de fábrica em grande escala na Europa.

O que é o I2C no Raspberry Pi?

O I2C é um protocolo de comunicação criado pela Phillips Electronics, que viu uma onda de uso em projetos de hobby baseados em microcontroladores. A razão para isso é óbvia - ele usa apenas dois fios em vez do mínimo de quatro da SPI. Também é bem suportado por bibliotecas feitas pelo usuário. Existem muitos componentes projetados para serem usados ​​com o I2C no Raspberry Pi. Embora seja mais lento que o SPI, ele ainda funciona rápido o suficiente para a maioria dos usos diários.

Assim como o SPI, o protocolo tem um dispositivo mestre, como o Pi, e um dispositivo escravo, como uma tela, um registrador de deslocamento ou um driver de motor.

A primeira conexão entre os dispositivos é o SCL (Serial Clock), que é definido pelo mestre para sincronizar a transferência de dados. A segunda linha é o SDA (Serial Data), que transfere os dados entre todos os dispositivos no barramento I2C.

O dispositivo mestre inicia a comunicação com um bit inicial e um endereço hexadecimal de sete bits. Isso deve corresponder ao dispositivo escravo para que eles se comuniquem. É assim que muitos dispositivos podem ser usados ​​com apenas dois fios.

O dispositivo mestre, em seguida, especifica se deseja ler ou gravar ( R / W ) o escravo, antes de receber uma confirmação ou ACK de volta.

Um fácil de seguir e aprofundar olhar I2C é fornecido mais uma vez pelo YouTuber Augmented Startups:

Como ativar o I2C no Raspberry Pi

O I2C também está habilitado no Pi através do menu raspi-config . Abra o terminal e digite:

 sudo raspi-config 

Use as teclas de seta para selecionar Opções de Interfaces, seguido por P5 I2C Ativar / Desativar o carregamento automático do módulo do kernel I2C . Confirme que você deseja ativar o protocolo e deverá ver uma tela de confirmação.

SPI e I2C no Raspberry Pi

Como com o SPI, você também pode ativar o I2C modificando seu arquivo config.txt. Abra um terminal e digite:

 sudo nano /boot/config.txt 

Modifique # dtparam = i2c_arm = on, removendo o símbolo # .

SPI e I2C no Raspberry Pi

Reinicie o seu Pi e o I2C está pronto!

O que você pode fazer com I2C em Raspberry Pi?

I2C é ótimo para qualquer projeto que requer um grande número de saídas. Um uso típico é para telas de LCD, que requerem até 16 pinos para usar. O I2C reduz isso para apenas dois para comunicação e dois para energia e terra.

Muitos ecrãs LCD vêm com uma “mochila” I2C, tornando-os muito mais simples de configurar, e libertando o resto dos seus pinos Pi para outros sensores e periféricos.

TheRaspberryPiGuy tem um tutorial detalhado do YouTube sobre como configurar e usar uma tela LCD com I2C em Raspberry Pi

Usando SPI e I2C Salva os Pins!

SPI e I2C em Raspberry Pi certamente não são para iniciantes iniciantes em eletrônica, mas eles também não são nada para se ter medo.

Antes de mergulhar, seria uma boa idéia seguir o nosso guia para iniciantes em Raspberry Pi para aprender o básico.

Trabalhar com alguns exemplos de projetos é a melhor maneira de aprender, e estamos ansiosos para ver o que você propõe! Quem sabe o que estranho e maravilhoso Raspberry Pi criações 10 mais estranhos projetos Raspberry Pi 10 mais estranhos projetos Raspberry Pi Há um cientista louco dentro de cada um de nós, e o Raspberry Pi deixa seu mergulhão interior sair e jogar. Às vezes, as coisas ficam estranhas. Muito estranho. Leia mais você vai fazer?

In this article