Un Tour da Frambuesa Pi GPIO

01 de 09

Unha introdución aos pinos da framboesa Pi

O Raspberry Pi GPIO. Richard Saville

O termo "GPIO" (Output de Entrada de Propósito Xeral) non é exclusivo para Raspberry Pi. Os pinos de entrada e saída pódense atopar na maioría dos microcontroladores, como o Arduino, o Beaglebone e moito máis.

Cando falamos de GPIO co Raspberry Pi, estamos referíndose ao longo bloque de pinos na esquina superior esquerda do taboleiro. Os modelos máis antigos tiñan 26 pinos, pero a maioría de nós usará un modelo actual con 40.

Pode conectar os compoñentes e outros dispositivos de hardware a estes pins e usar o código para controlar o que fan. É unha parte importante da Raspberry Pi e unha excelente forma de coñecer a electrónica.

Logo dalgúns proxectos de software, probabelmente vostede estará experimentando con estes pins, ansiosos para mesturar o seu código co hardware para que as cousas sucedan na "vida real".

Este proceso pode ser intimidante se é novo na escena, e tendo en conta que unha mudanza falsa pode danar a súa Raspberry Pi, é comprensible que é unha zona nerviosa para os principiantes a explorar.

Este artigo explicará o que fai cada tipo de pin GPIO e as súas limitacións.

02 de 09

O GPIO

Os pinos GPIO están numerados do 1 ao 40, e pódense agrupar baixo diferentes funcións. Richard Saville

En primeiro lugar, imos dar un ollo ao GPIO como un todo. Os pinos poden ter o mesmo aspecto, pero todos teñen funcións diferentes. A imaxe de arriba mostra estas funcións en diferentes cores que explicaremos nos seguintes pasos.

Cada pino está numerado do 1 ao 40 a partir da parte inferior esquerda. Estes son os números físicos de pin, con todo, tamén hai convencións de numeración / etiquetaxe como 'BCM' que se usan ao escribir o código.

03 de 09

Poder e chan

O Raspberry Pi ofrece múltiples potencias e pins de terra. Richard Saville

Destaque o vermello, hai potes etiquetados como '3' ou '5' para 3.3V ou 5V.

Estes pinos permiten enviar enerxía directamente a un dispositivo sen necesidade de ningún código. Tampouco hai forma de desfacer estes.

Hai 2 rieles de potencia - 3,3 voltios e 5 voltios. Segundo este artigo, o carril 3.3V está limitado ao sorteo actual de 50 mA, mentres que o carril 5V pode proporcionar calquera capacidade actual que se deixe da súa fonte de alimentación despois de que o Pi tomou o que necesita.

Marrón destacado son as patas terrestres (GND). Estes alfileres son exactamente o que din: os pinos de terra, que son unha parte vital de calquera proxecto electrónico.

(Os pinos GPIO de 5V son os números físicos 2 e 4. Os pinos GPIO de 3.3V son os números físicos 1 e 17. Os pinos GPIO de fondo son números físicos 6, 9, 14, 20, 25, 30, 34 e 39)

04 de 09

Botóns de entrada / saída

Os pinos de entrada e saída permítenlle conectar hardware, como sensores e interruptores. Richard Saville

Os pinos verdes son o que eu chamo pinos de entrada / saída "genéricos". Estes poden ser facilmente utilizados como entradas ou saídas sen preocuparse por chocar con outras funcións como I2C, SPI ou UART.

Estes son os pinos que poden enviar enerxía a un LED, un zumbador ou outros compoñentes, ou se utilizan como entrada para ler sensores, interruptores ou outro dispositivo de entrada.

A potencia de saída destes pinos é de 3.3V. Cada pin non debe exceder os 16 mA de corrente, xa sexa en hundimiento ou en abastecemento, e todo o conxunto de claves GPIO non debe exceder máis de 50 mA en calquera momento. Isto pode ser restritivo, polo que pode que teñas que ser creativo en determinados proxectos.

(Os pines GPIO xenéricos son números físicos 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 e 40)

05 de 09

Pins I2C

I2C permítelle conectar outros dispositivos ao seu Pi con só un par de pines. Richard Saville

En amarelo, temos os pinos I2C. I2C é un protocolo de comunicación que en términos simples permite que os dispositivos se comuniquen con Raspberry Pi. Estes pinos tamén se poden usar como pinos GPIO xenéricos.

Un bo exemplo de usar I2C é o chip de expansor do porto MCP23017 moi popular, que pode darlle máis pinos de entrada / saída a través deste protocolo I2C.

(Os pinos I2C GPIO son os números físicos 3 e 5)

06 de 09

Botóns UART (Serial)

Conéctese co seu Pi por unha conexión en serie cos pinos UART. Richard Saville

En gris, son os pinos UART. Estes pinos son outro protocolo de comunicación que ofrece conexións en serie e tamén se pode usar como entradas / saídas 'xenéricas' GPIO.

O meu uso favorito para UART é permitir unha conexión en serie desde o meu pi ao meu portátil a través de USB. Isto pódese conseguir usando placas complementarias ou cables sinxelos e elimina a necesidade dunha pantalla ou conexión a internet para acceder ao seu Pi.

(Os pinos UART GPIO son os números físicos dos pinos 8 e 10)

07 de 09

Botóns SPI

Os PIN SPI - outro protocolo de comunicación útil. Richard Saville

En rosa , temos as patillas SPI. SPI é un bus de interface que envía datos entre o Pi e outros hardware / periféricos. É comúnmente usado para a encadernación de dispositivos como unha matriz ou pantalla LED.

Do mesmo xeito que outros, estes pinos tamén se poden usar como entradas / saídas 'xenéricas' GPIO.

(Os pinos SPI GPIO son os números físicos de ponto 19, 21, 23, 24 e 26)

08 de 09

DNC Pins

Nada que ver aquí - os pinos DNC non funcionan. Richard Saville

Finalmente hai dous pinos en azul que, actualmente, son etiquetados como DNC que significa "Non se conecte". Isto pode cambiar no futuro se a Fundación Raspberry Pi modifica as placas / software.

(Os pinos DNC GPIO son os números físicos dos pinos 27 e 28)

09 de 09

Convencións de numeración GPIO

O Portsplus é unha ferramenta útil para comprobar os números de PIN de GPIO. Richard Saville

Ao codificar co GPIO, ten a opción de importar a biblioteca GPIO dunha das dúas maneiras: BCM ou BOARD.

A opción que prefiro é GPIO BCM. Esta é a convención de numeración Broadcom e creo que se usa máis comúnmente entre proxectos e complementos de hardware.

A segunda opción é GPIO BOARD. Este método usa os números de PIN físico, o que é útil ao contar os pinos, pero atoparás que se usa menos nos exemplos do proxecto.

O modo GPIO está definido ao importar a biblioteca GPIO:

Para importar como BCM:

importar RPi.GPIO como GPIO GPIO.setmode (GPIO.BCM)

Para importar como BOARD:

importar RPi.GPIO como GPIO GPIO.setmode (GPIO.BOARD)

Ambos métodos fan exactamente o mesmo traballo, é só unha cuestión de preferencia de numeración.

Regularmente fago uso de paneis de etiquetas GPIO útiles como o PortPplus de RasPiO (na foto) para comprobar que pinos estou a conectar tamén os fíos. Unha parte mostra a convención de numeración de BCM, a outra mostra o XARDO - así que está cuberto para calquera proxecto que atopes.