A melhor coisa sobre qualquer Raspberry Pi, incluindo o Raspberry Pi 4, é que você pode usá-lo para construir todos os tipos de engenhocas incríveis, de robôs a consoles de jogos retrô e detectores de peido. A maioria dos sensores, motores, luzes e outros periféricos que tornam esses projetos possíveis se conectam ao conjunto de pinos GPIO (General Purpose Input Output) do Pi. Esses pinos oferecem uma conexão direta com o System on Chip (SoC) no coração do Pi, permitindo que o Pi se comunique com componentes externos e addons conhecidos como HATs (Hardware Attached on Top). Todos os modelos Pi desde o Raspberry Pi B+ em 2014 tiveram 40 pinos GPIO, embora no Pi Zero e Zero 2 W você tenha 40 orifícios nos quais pode soldar pinos ou fios. Se você não tem um ferro de solda, não se preocupe, temos uma lista dos melhores ferros de solda para você escolher.
Este guia foi atualizado para refletir os novos recursos do Raspberry Pi 4, que ainda vem com 40 pinos GPIO, mas tem algumas conexões extras I2C, SPI e UART disponíveis.
Não importa o que você esteja construindo, você precisa conhecer a pinagem Raspberry Pi GPIO, o mapa e a explicação do que cada pino pode fazer. Enquanto alguns pinos fornecem tensões e lógica, outros são aterramentos e outros ainda se conectam a diferentes tipos de interfaces, todos explicados abaixo.
Pinos de entrada e saída de uso geral (GPIO)
O GPIO é o aspecto mais básico e acessível do Raspberry Pi. Os pinos GPIO são digitais, o que significa que podem ter dois estados, desligado ou ligado. Eles podem ter uma direção para receber ou enviar corrente (entrada, saída respectivamente) e podemos controlar o estado e a direção dos pinos usando linguagens de programação como Python, JavaScript, node-RED etc.
A tensão operacional dos pinos GPIO é de 3,3 V com um consumo máximo de corrente de 16 mA. Isso significa que podemos alimentar com segurança um ou dois LEDs (diodos emissores de luz) de um único pino GPIO, por meio de um resistor (consulte os códigos de cores do resistor). Mas para qualquer coisa que exija mais corrente, um motor DC por exemplo, precisaremos usar componentes externos para garantir que não danifiquemos o GPIO.
O controle de um pino GPIO com Python é realizado importando primeiro uma biblioteca de código pré-escrito. A biblioteca mais comum é RPi.GPIO e tem sido usado para criar milhares de projetos desde os primeiros dias do Raspberry Pi. Em tempos mais recentes, uma nova biblioteca chamada GPIO zero foi introduzido, oferecendo uma entrada mais fácil para aqueles que são novos em Python e eletrônica básica. Ambas as bibliotecas vêm pré-instaladas com o Raspberry Pi OS.
Os pinos GPIO têm vários nomes; a primeira referência mais óbvia é sua localização “física” no GPIO. Começando no canto superior esquerdo do GPIO, e com isso queremos dizer o pino mais próximo de onde o cartão micro SD está inserido, temos o pino físico 1 que fornece energia 3v3. À direita desse pino está o pino físico 2, que fornece energia de 5v. Os números dos pinos aumentam à medida que descemos em cada coluna, com o pino 1 indo para o pino 3, 5,7 etc. até chegarmos ao pino 39. Você verá rapidamente que cada pino de 1 a 39 nesta coluna segue uma sequência de números ímpares. E para a coluna começando com o pino 2 irá 4,6,8 etc até chegar a 40. Seguindo uma sequência numérica par. A numeração de pinos físicos é a maneira mais básica de localizar um pino, mas muitos dos tutoriais escritos para o Raspberry Pi seguem uma sequência de numeração diferente.
A numeração de pinos Broadcom (BCM) (também conhecida como numeração de pinos GPIO) parece ser caótica para o usuário comum. Com GPIO17, 22 e 27 seguindo um ao outro com pouca atenção à numeração lógica. O mapeamento de pinos BCM refere-se aos pinos GPIO que foram conectados diretamente ao System on a Chip (SoC) do Raspberry Pi. Em essência, temos links diretos para o cérebro do nosso Pi para conectar sensores e componentes para uso em nossos projetos.
Você verá a maioria dos tutoriais do Raspberry Pi usando esta referência e isso porque é o esquema de numeração de pinos oficialmente suportado pela Raspberry Pi Foundation. Portanto, é uma prática recomendada começar a usar e aprender o esquema de numeração de pinos do BCM, pois ele se tornará uma segunda natureza para você com o tempo. Observe também que a numeração dos pinos BCM e GPIO se refere ao mesmo esquema. Por exemplo, GPIO17 é o mesmo que BCM17.
Certos pinos GPIO também possuem funções alternativas que permitem a interface com diferentes tipos de dispositivos que usam os protocolos I2C, SPI ou UART. Por exemplo, GPIO3 e GPIO 4 também são pinos SDA e SCL I2C usados para conectar dispositivos usando o protocolo I2C. Para usar esses pinos com esses protocolos, precisamos habilitar as interfaces usando o aplicativo Raspberry Pi Configuration encontrado no Raspbian OS, menu Preferences.
I2C, SPI e UART: Qual você usa?
Abordaremos as diferenças específicas entre I2C, SPI e UART abaixo, mas se você está se perguntando qual deles você precisa usar para se conectar a determinado dispositivo, a resposta curta é verificar a folha de especificações. Por exemplo, uma pequena tela de LED pode exigir SPI e outra pode usar I2C (quase nada usa UART). Se você ler a documentação que acompanha um produto (desde que tenha alguma), ela geralmente informará quais pinos Pi usar.
Para os usuários do Raspberry Pi 4, observe que agora há muito mais pinos I2C, SPI e UART disponíveis para você. Essas interfaces extras são ativadas usando sobreposições de árvore de dispositivos e podem fornecer quatro conexões SPI, I2C e UART extras.
I2C – Circuito Interintegrado
I2C é um protocolo serial de dois fios de baixa velocidade para conectar dispositivos usando o padrão I2C. Os dispositivos que usam o padrão I2C têm uma relação mestre-escravo. Pode haver mais de um mestre, mas cada dispositivo escravo requer um endereço único, obtido pelo fabricante junto à NXP, anteriormente conhecida como Philips Semiconductors. Isso significa que podemos conversar com vários dispositivos em uma única conexão I2C, pois cada dispositivo é único e pode ser descoberto pelo usuário e pelo computador usando comandos do Linux, como i2cdetect.
Como mencionado anteriormente, o I2C possui duas conexões: SDA e SCL. Eles funcionam enviando dados de e para a conexão SDA, com a velocidade controlada pelo pino SCL. O I2C é uma maneira rápida e fácil de adicionar muitos componentes diferentes, como telas LCD / OLED, sensores de temperatura e conversores analógicos para digitais para uso com fotoresistores, etc., ao seu projeto. Embora seja um pouco mais complicado de entender do que os pinos GPIO padrão, o conhecimento adquirido com o aprendizado do I2C o ajudará bem, pois você entenderá como conectar sensores de maior precisão para uso em campo.
O Raspberry Pi tem duas conexões I2C no GPIO 2 e 3 (SDA e SCL) são para I2C0 (master) e os pinos físicos 27 e 28 são pinos I2C que permitem que o Pi converse com HAT (Hardware Attached on Top) compatível com placas adicionais .
SPI – Interface Serial Periférica
SPI é outro protocolo para conectar dispositivos compatíveis ao seu Raspberry Pi. É semelhante ao I2C, pois existe uma relação mestre-escravo entre o Raspberry Pi e os dispositivos conectados a ele.
Normalmente, o SPI é usado para enviar dados em curtas distâncias entre microcontroladores e componentes, como registradores de deslocamento, sensores e até mesmo um cartão SD. Os dados são sincronizados usando um relógio (SCLK em GPIO11) do mestre (nosso Pi) e os dados são enviados do Pi para nosso componente SPI usando o pino MOSI (GPIO GPIO10). MOSI significa Master Out Slave In. Se o componente precisar responder ao nosso Pi, ele enviará dados de volta usando o pino MISO (GPIO9), que significa Master In Slave Out.
UART – Receptor / Transmissor Assíncrono Universal
Comumente conhecido como “Serial”, os pinos UART (Transmit GPIO14, Receive GPIO15) fornecem um login de console/terminal para configuração headless, o que significa conectar-se ao Pi sem um teclado ou dispositivo apontador. Normalmente, a maneira mais fácil de fazer uma configuração do Raspberry Pi sem cabeça é simplesmente controlar o Pi por uma rede ou conexão USB direta (no caso do Pi Zero).
Mas, se não houver conexão de rede, você também pode controlar um Pi sem cabeça usando um cabo serial ou USB para placa serial de um computador executando um console de terminal. O UART é excepcionalmente confiável e fornece acesso a um Pi sem a necessidade de equipamentos extras. Apenas lembre-se de habilitar o console serial no aplicativo Raspberry Pi Configuration. As chances são de que você não queira fazer isso, mas o suporte UART está disponível se você precisar.
Terra (terra)
O solo é comumente referido como GND, gnd ou – mas todos significam a mesma coisa. GND é onde todas as tensões podem ser medidas e também completa um circuito elétrico. É o nosso ponto zero e ao conectar um componente, como um LED a uma fonte de alimentação e aterramento, o componente se torna parte do circuito e a corrente fluirá através do LED e produzirá luz.
Ao construir circuitos, é sempre aconselhável fazer as conexões de aterramento antes de aplicar qualquer energia, pois isso evitará problemas com componentes sensíveis. O Raspberry Pi possui oito conexões de aterramento ao longo do GPIO e cada um desses pinos de aterramento se conecta a uma única conexão de aterramento. Portanto, a escolha de qual pino de aterramento usar é determinada pela preferência pessoal ou conveniência ao conectar componentes.
5v
Os pinos de 5v fornecem acesso direto à fonte de 5v proveniente do seu adaptador de rede, menos energia do que a usada pelo próprio Raspberry Pi. Um Pi pode ser alimentado diretamente por esses pinos e também pode alimentar outros dispositivos de 5v. Ao usar esses pinos diretamente, tenha cuidado e verifique suas tensões antes de fazer uma conexão, pois eles contornam quaisquer recursos de segurança, como o regulador de tensão e o fusível, que existem para proteger seu Pi. Ignore-os com uma voltagem mais alta e você poderá tornar seu Pi inoperante. Especialmente se 5v e 3,3v estiverem conectados juntos, sim, uma vez fizemos isso e sabemos que isso torna um Raspberry Pi morto em segundos.
3v3
O pino 3v existe para oferecer uma fonte estável de 3,3v para alimentar os componentes e testar os LEDs. Na realidade, será raro incluir esse pino em uma construção, mas ele tem um uso especial. Ao conectar um LED ao GPIO, primeiro precisamos garantir que o LED esteja conectado corretamente e que acenda. Ao conectar a perna longa do LED, o ânodo ao pino de 3,3 V por meio de um resistor, e a perna mais curta, o cátodo a qualquer um dos pinos terra (terra), podemos verificar se nosso LED acende e está funcionando. Isso elimina uma falha de hardware do projeto e nos permite começar a construir nosso projeto com confiança.
MAIS: Como fazer o Raspberry Pi
MAIS: Por que todo geek de tecnologia deve possuir um Raspberry Pi
MAIS: Como configurar um Raspberry Pi sem cabeça
MAIS: Mais de 25 comandos do Linux que os usuários do Raspberry Pi precisam saber