GPIO: tudo sobre as conexões Raspberry Pi 4 e 3

Framboesa Pi 4 GPIO

Os Pinos GPIO da placa Raspberry Pi 4, o 3, e também seus predecessores, fornecem à placa SBC recursos semelhantes aos que o Arduino pode ter, pois com eles é possível criar projetos eletrônicos muito interessantes controlados a partir do sistema operacional por meio de código em diferentes linguagens, como o Python.

Isso torna a placa mais do que apenas um computador barato. Isso permitirá que você conecte uma infinidade de elementos eletrônicos que você pode usar com o Arduino, mas também pode ser controlado a partir do Pi. Neste guia, tentarei dar a você o máximo de informações possível sobre esses pinos GPIO para que você possa começar a aproveitá-los ...

O que é GPIO?

GPIO

GPIO é a sigla para General Purpose Input / Output, ou seja, General Purpose Input / Output. Diferentes produtos eletrônicos podem tê-lo, como os próprios chips ou certas placas de PCB, como o Raspberry Pi. Como o nome sugere, são pinos que podem ser configurados para realizar diferentes funções, portanto, são de uso geral e não para um uso específico.

Será o usuário em tempo de execução que pode configurar esses pinos GPIO para que eles façam o que ele quiser. Isso pode ser feito de diferentes maneiras, como com determinados códigos ou scripts do console ou com o programa Python, que é uma das formas mais simples e preferidas devido à quantidade de opções que você tem à sua disposição.

Desta forma, o Raspberry Pi não possui apenas uma série de portas e interfaces de para conectar vários dispositivos padrão, mas adicione esses pinos GPIO para que possa adicionar outros dispositivos eletrônicos ou projetos do fabricante que você mesmo criou. Da mesma forma que faria com o Arduino e seus pinos de E / S para controle.

Y não exclusivo para Arduino ou Raspberry Pi, o mesmo acontece com outras placas SBC e produtos incorporados semelhantes.

Funções GPIO

E entre suas características Mais notável:

  • Eles podem ser configurado assim como entrada como saída. Eles têm essa dualidade como acontece com aqueles de Arduino.
  • Pinos GPIO também pode ser ativado e desativado por código. Ou seja, eles podem ser ajustados para 1 (nível de alta tensão) ou 0 (nível de baixa tensão).
  • Claro que podem ler dados binários, como os uns e zeros, ou seja, sinal de tensão ou ausência dela.
  • Valores de saída de leitura e escritura.
  • Os valores de entrada podem ser configurados em alguns casos como eventos para que gerem algum tipo de ação no quadro ou sistema. Alguns sistemas embarcados os usam como IRQs. Outro caso é configurar que quando um ou mais pinos estiverem ativos por certos sensores, execute alguma ação ...
  • Em relação à tensão e intensidade, você deve saber as capacidades máximas aceitáveis ​​para a placa, neste caso a Raspberry Pi 4 ou 3. Não deve passar por elas para não danificá-la.

A propósito, quando um grupo de pinos GPIO é agrupado, como é o caso do Raspberry Pi, o grupo é conhecido como Porta GPIO.

Os pinos GPIO do Raspberry Pi

Raspberry Pi GPIO

Esquema válido para versão 4, 3, Zero

Novo Placas Raspberry Pi 4 e versão 3 Eles são equipados com um grande número de pinos GPIO. Nem todas as versões oferecem a mesma quantidade, nem são numeradas da mesma forma, então você tem que ter cuidado com isso para saber fazer a ligação de acordo com o modelo e revisão que você tem.

Mas o que é mais genérico são os tipos de GPIO que você pode encontrar no porto de placas Raspberry Pi. E essa será a primeira coisa que gostaria de deixar claro, pois é assim que você saberá os tipos de alfinetes com quem você pode contar para seus projetos:

  • Alimentação: esses pinos são usados ​​para conectar as linhas de alimentação ou fiação para seus projetos eletrônicos. Eles correspondem a pinos semelhantes aos da placa Arduino e que fornecem tensões de 5 V e 3 V 3 (3.3 V limitados a carga de 50 mA). Além disso, você também encontrará os terrestres (GND ou Ground). Se você não usar fontes de alimentação externas, como baterias ou adaptadores, esses pinos podem ser de grande ajuda para alimentar o circuito.
  • DNC (não conecte): são pinos que estão em algumas versões e que não têm função, mas que nas novas placas receberam outra finalidade. Você só encontrará isso em modelos mais primitivos do Pi. Nos novos 3 e 4 eles serão marcados como GND em geral, podendo se integrar no grupo anterior.
  • Pinos configuráveis: eles são o GPIO normal, e podem ser programados por códigos como explicarei mais tarde para fazer o que você precisa.
  • Alfinetes especiais: estas são algumas conexões que se destinam a conexões ou interfaces especiais como conexões seriais UART, TXD e RXD, etc., como acontece com o Arduino. Você ainda encontrará alguns como SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, etc. Eles se destacam entre eles:
    • PWM, que pode regular a largura do pulso como vimos em um artigo anterior. No Raspberry Pi 3 e 4 estão o GPIO12, GPIO13, GPIO18 e GPIO19.
    • SPI é outra interface de comunicação que também discuti em outro artigo. No caso das novas placas de 40 pinos, são os pinos (com diferentes canais de comunicação como você pode ver):
      • SPI0: MOSI (GPIO10), miso (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK(GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C é outra conexão que também expliquei neste blog. Este barramento é composto pelo sinal de dados (GPIO2) e pelo relógio (GPIO3). Além de EEPROM Data (GPIO0) e EEPROM Clock (GPIO1).
    • Serial, outra comunicação muito prática com pinos TX (GPIO14) e RX (GPIO15) como os que você encontra na placa Arduino UNO.

Lembre-se de que os GPIOs são a interface entre o Raspberry Pi e o mundo exterior, mas eles têm suas limitações, especialmente elétrica. Algo que você deve levar em consideração para não estragar a placa é lembrar que esses pinos GPIO costumam ficar sem buffer, ou seja, sem buffer. Isso significa que eles não têm proteção, por isso deve-se monitorar as magnitudes de tensão e intensidade aplicada para não ficar com uma placa inútil ...

Diferenças de GPIO entre as versões

Pins Old Raspberry Pi GPIO

Como eu disse, nem todos os modelos são os mesmos pinosAqui estão alguns diagramas para que você possa ver as diferenças entre os modelos e, assim, ser capaz de se concentrar no Raspberry Pi 4 e 3, que são os mais novos e o que você provavelmente tem em sua posse. É diferente entre (todos de cada grupo compartilham os mesmos pinos):

  • Raspberry Pi 1 Modelo B Rev 1.0, com 26 pinos ligeiramente diferente do Rev2.
  • Raspberry Pi 1 Modelo A e B Rev 2.0, ambos modelos com 26 pinos.
  • Rapsberry Pi Modelo A +, B +, 2B, 3B, 3B +, Zero e Zero W e também 4 modelos, todos com conector GPIO de 40 pinos.

O que posso conectar aos GPIOs?

Chapéu Raspberry Pi

Você não só será capaz de conectar dispositivos eletrônicos como transistores, sensores de umidade / temperatura, termistores, motores de passo, LEDsetc. Você também pode conectar componentes ou módulos criados especificamente para o Raspberry Pi e que estendem as capacidades da placa além do que está incluído na base.

Estou me referindo ao famoso chapéus ou chapéus e pratos que você encontra no mercado. Existem muitos tipos, desde aqueles usados ​​para controlar motores com acionadores, até outros para criar um cluster de computação, com Painel de LED controlável, para adicionar Capacidade de DVB TV, Tela LCD, etc.

Estes chapéus ou chapéus Eles são montados na placa Raspberry Pi, combinando os GPIOs necessários para que funcione. Portanto, sua montagem é bastante simples e rápida. Claro, certifique-se da versão da placa compatível com cada chapéu, já que a porta GPIO é diferente como você viu ...

Digo isso no caso de você ter um prato mais velho, uma vez que os chapéus são compatível apenas com o mais novo. Assim como os modelos Raspberry Pi A +, B +, 2, 3 e 4.

Introdução ao uso de GPIO no Raspberry Pi

Saída de comando de pinagem

Fonte: Raspberry Pi

Para começar, no Raspbian, você pode abrir o console e digitar o comando pinagemO que ele retornará para você é uma imagem no terminal com os pinos GPIO disponíveis na sua placa e para que serve cada um. Algo muito prático ter sempre presente no trabalho para não se confundir.

Primeiro projeto: piscar um LED com os GPIOs

GPIO com LED no Raspberry Pi

A maneira mais básica de fazer uma espécie de "Olá, mundo" com GPIOs é usar um simples LED conectado aos pinos do Raspberry Pi para que você possa ver como eles funcionam. Neste caso, conectei ao GND e o outro ao pino 17, embora você possa escolher outro dos pinos normais ...

Uma vez conectado, você pode controlá-los de Raspbian fazendo uso do terminal. No Linux, arquivos específicos são usados ​​como aqueles no diretório / sys / class / gpio /. Por exemplo, para criar um arquivo com a estrutura necessária para começar a trabalhar:

echo 17 > /sys/class/gpio/export

Então você pode configurar como uma entrada (entrada) ou como uma saída (saída) aquele pino 17 escolhido para nosso exemplo. Você pode fazer isso facilmente com:

echo out > /sys/class/gpio/gpio17/direction

Neste caso como uma saída, já que queremos enviar um pulso elétrico ao LED para ligá-lo, mas se fosse um sensor, etc., você poderia usar em. Para agora ligar (1) ou desligar (0) o LED que você pode usar:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Se você quiser passar para outro projeto e deletar entrada criado, você pode fazer desta forma:

echo 17 > /sys/class/gpio/unexport

A propósito, você também pode reunir todos os comandos necessários para o seu projeto, como todos os anteriores, salvá-los em um tipo de arquivo script bash e, em seguida, execute-os em pacotes de uma vez, em vez de digitá-los um por um. Isso é útil quando você repete o mesmo exercício muitas vezes, para que não precise reescrever. Apenas corra e vá embora. Por exemplo:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Quando terminar, você salva e pode dar a ele as permissões de execução e execução apropriadas o script para o LED acender, espere 1.3 segundos e desligue assim em um loop ...

chmod +x led.sh
./led.sh

Avanço de programação

código fonte da linguagem de programação

Obviamente, o acima funciona para pequenos projetos eletrônicos com poucos componentes, mas se você quiser criar algo mais avançado, em vez dos comandos, o que você pode usar são linguagens de programação para fazer scripts ou códigos-fonte diferentes que automatizam a operação.

Eles podem ser usados diferentes ferramentas para programar, com linguagens muito diferentes. As bibliotecas que a comunidade desenvolveu tornam as coisas muito mais fáceis para você, como WiringPi, sysfs, pigpio, etc. Os programas podem ser muito variados, desde Python, que é a opção preferida de muitos, até Ruby, Java, Perl, BASIC e até C #.

Oficialmente, o Raspberry Pi oferece a você muitas instalações para programar seus GPIOs, como:

  • Scratch, para quem não sabe programar e deseja usar os blocos de quebra-cabeça deste projeto com os quais o Arduino também pode ser programado, etc. A programação com blocos gráficos é bastante intuitiva e muito prática para o campo da educação.
  • Python: Esta linguagem de programação interpretada simples permite criar códigos simples e poderosos, com uma infinidade de bibliotecas à sua disposição para fazer quase tudo o que você imagina.
  • C / C ++ / C #: são linguagens de programação mais poderosas para criar binários com os quais interagir com os GPIOs. Você pode fazer isso de várias maneiras, usando o formulário padrão ou a interface do kernel por meio da bibliotecalibgpiod, mas também por meio de uma biblioteca de terceiros, como porquinho.
  • Processando 3, semelhante ao Arduino.

Escolha com flexibilidade o que você mais gosta ou que você acha que é simples.


4 comentários, deixe o seu

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   inimigo dito

    Artigo muito bom sobre como começar no Rasperry

    1.    Isaac dito

      Muito obrigado.

      1.    Rute Medina dito

        você é o autor?

        1.    Isaac dito

          sim