Un tur al Zmeurii Pi GPIO

01 din 09

O introducere în pinii zmeurii Pi

Raspberry Pi GPIO. Richard Saville

Termenul "GPIO" (ieșire generală de intrare) nu este exclusiv pentru Raspberry Pi. Inelele de intrare și ieșire pot fi găsite pe majoritatea microcontrolerelor, cum ar fi Arduino, Beaglebone și multe altele.

Când vorbim despre GPIO cu Raspberry Pi, ne referim la blocul lung de pini din colțul din stânga sus al tabloului. Modelele mai vechi au avut 26 de pini, însă majoritatea dintre noi vor folosi un model actual cu 40.

Puteți conecta componente și alte dispozitive hardware la acești ace și utilizați codul pentru a controla ceea ce fac. Este o parte importantă a Raspberry Pi și o modalitate excelentă de a învăța despre electronică.

După câteva proiecte software, probabil veți găsi experimentarea cu acești pini, dornici să vă amestecați codul cu hardware-ul pentru a face lucrurile să se întâmple în "viața reală".

Acest proces poate fi intimidant dacă sunteți nou în scenă și considerând că o mișcare falsă vă poate deteriora Zmeura Pi, este de înțeles că este o zonă nervoasă pentru începători pentru a explora.

Acest articol va explica ceea ce face fiecare tip de pin GPIO și limitele lor.

02 din 09

GPIO-ul

Pinii GPIO sunt numerotați de la 1 la 40 și pot fi grupați în funcție de diferite funcții. Richard Saville

Mai întâi, să aruncăm o privire la GPIO ca un întreg. Pinii ar putea arăta la fel, dar toate au funcții diferite. Imaginea de mai sus prezintă aceste funcții în culori diferite pe care le vom explica în pașii următori.

Fiecare știft este numerotat de la 1 la 40, începând din stânga jos. Acestea sunt numerele fizice de pin, cu toate acestea, există și convenții de numerotare / etichetare, cum ar fi "BCM", care sunt folosite la scrierea codului.

03 din 09

Puterea și solul

Raspberry Pi oferă mai multe șuruburi de putere și sol. Richard Saville

Marcate cu roșu, sunt ace de putere etichetate "3" sau "5" pentru 3.3V sau 5V.

Aceste pini vă permit să trimiteți direct energie la un dispozitiv fără a fi nevoie de un cod. Nu există nici o modalitate de a le dezactiva.

Există 2 șine de putere - 3,3 volți și 5 volți. Potrivit acestui articol, șina de 3.3V este limitată la tragerea curentă de 50mA, în timp ce șina 5V poate furniza orice capacitate curentă rămasă de la sursa de alimentare după ce Pi a luat ceea ce are nevoie.

Maroele marcate sunt pini de sol (GND). Acești ace sunt exact ceea ce spun - pini de sol - care sunt o parte vitală a oricărui proiect de electronică.

(Pinii GPIO de 5V sunt numere fizice 2 și 4. Pinii GPIO de 3.3V sunt numerele fizice 1 și 17. Pinii GPIO ai solului sunt numerele fizice 6, 9, 14, 20, 25, 30, 34 și 39)

04 din 09

Inele de intrare / ieșire

Inelele de intrare și ieșire vă permit să conectați hardware, cum ar fi senzori și întrerupătoare. Richard Saville

Pinii verzi sunt ceea ce eu numesc pini de intrare / ieșire "generic". Acestea pot fi ușor folosite ca intrări sau ieșiri fără nici o îngrijorare în legătură cu alte funcții cum ar fi I2C, SPI sau UART.

Acestea sunt pinii care pot trimite puterea la un LED, buzzer sau alte componente sau pot fi folosite ca intrări pentru a citi senzori, comutatoare sau alte dispozitive de intrare.

Puterea de ieșire a acestor ace este de 3.3V. Fiecare pin nu trebuie să depășească 16mA de curent, fie că se scufundă, fie că apare, iar întregul set de pini GPIO nu trebuie să depășească mai mult de 50mA în orice moment. Acest lucru poate fi restrictiv, astfel încât ar putea fi necesar să deveniți creativi în anumite proiecte.

(Pini generici GPIO sunt numerele fizice 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 și 40)

05 din 09

I2C Pins

I2C vă permite să conectați alte dispozitive la dispozitivul dvs. Pi cu doar câteva știuleți. Richard Saville

În galben, avem știfturile I2C. I2C este un protocol de comunicare care, în termeni simpli, permite dispozitivelor să comunice cu Raspberry Pi. Acești ace pot fi de asemenea utilizați ca și "GPIO" generice.

Un bun exemplu de utilizare a I2C este foarte popularul chip MCP23017 de extindere a portului, care vă poate oferi mai mulți pini de intrare / ieșire prin intermediul acestui protocol I2C.

(Pinii I2C GPIO sunt numerele fizice ale pinilor 3 și 5)

06 din 09

UART (Serial) Pins

Conectați-vă la dispozitivul dvs. Pi printr-o conexiune serială cu pinii UART. Richard Saville

În gri, sunt pini UART. Acești ace sunt un alt protocol de comunicație care oferă conexiuni seriale și poate fi, de asemenea, utilizat ca ieșiri / ieșiri GPIO "generice".

Utilizarea mea preferată pentru UART este de a permite o conexiune serială de la Pi la laptop-ul meu prin USB. Acest lucru se poate realiza folosind plăci suplimentare sau cabluri simple și elimină necesitatea unui ecran sau a unei conexiuni la internet pentru a accesa dispozitivul dvs. Pi.

(Pinii UART GPIO sunt numerele fizice ale pinilor 8 și 10)

07 din 09

SPI Pins

Pinii SPI - un alt protocol de comunicare util. Richard Saville

În roz , avem pinii SPI. SPI este o magistrală de interfață care transmite date între Pi și alte componente hardware / periferice. Se utilizează în mod obișnuit pentru legarea dispozitivelor, cum ar fi o matrice LED sau un afișaj.

Ca și alții, acești ace pot fi utilizați și ca intrări / ieșiri GPIO "generice".

(Pinii SPI GPIO sunt numerele fizice ale pinilor 19, 21, 23, 24 și 26)

08 din 09

DNC Pins

Nimic de vazut aici - pinii DNC nu servesc nici o functie. Richard Saville

În cele din urmă sunt două pini în albastru care, în prezent, sunt etichetați ca DNC, care înseamnă "Nu se conectează". Acest lucru se poate schimba în viitor dacă Fundația Raspberry Pi modifică placile / software-ul.

(PIN-urile DNC GPIO sunt numerele de PIN fizice 27 și 28)

09 din 09

Contractele de numerotare GPIO

Portsplus este un instrument util pentru verificarea numerelor PIN-urilor GPIO. Richard Saville

Când codificați cu GPIO, aveți posibilitatea de a importa biblioteca GPIO în una din două moduri - BCM sau BOARD.

Opțiunea pe care o prefer este GPIO BCM. Aceasta este convenția de numerotare Broadcom și găsesc că aceasta este folosită mai frecvent în cadrul proiectelor și al extensiilor hardware.

A doua opțiune este GPIO BOARD. Această metodă utilizează în schimb numerele fizice ale pinilor, care este la îndemână atunci când numărăți ace, dar veți găsi că este folosit mai puțin în exemplele de proiect.

Modul GPIO este setat la importarea bibliotecii GPIO:

Pentru a importa ca BCM:

import RPi.GPIO ca GPIO GPIO.setmode (GPIO.BCM)

Pentru a importa ca BOARD:

import RPi.GPIO ca GPIO GPIO.setmode (GPIO.BOARD)

Ambele metode fac exact același lucru, este doar o chestiune de preferință de numerotare.

Eu folosesc în mod regulat panouri GPIO de mână la îndemână, cum ar fi RasPiO Portsplus (imaginea) pentru a verifica ce pinuri sunt de conectare fire prea. O parte prezintă convenția de numerotare BCM, cealaltă arată BOARD - astfel încât sunteți acoperit pentru orice proiect pe care îl găsiți.