'N Rondleiding van die Framboos Pi GPIO

01 van 09

'N Inleiding tot die Framboos Pi se Pins

Die Framboos Pi GPIO. Richard Saville

Die term 'GPIO' (General Purpose Input Output) is nie eksklusief vir die Raspberry Pi nie. Input en uitset penne kan gevind word op die meeste microcontrollers soos die Arduino, Beaglebone en nog baie meer.

As ons praat oor GPIO met die Framboos Pi, verwys ons na die lang blokpenne in die boonste linkerhoek van die bord. Ouer modelle het 26 penne, maar die meeste van ons sal 'n huidige model met 40 gebruik.

U kan komponente en ander hardeware toestelle aan hierdie penne verbind, en gebruik kode om te beheer wat hulle doen. Dit is 'n belangrike deel van die Raspberry Pi en 'n uitstekende manier om te leer oor elektronika.

Na 'n paar sagteware projekte, sal jy waarskynlik jouself eksperimenteer met hierdie penne, gretig om jou kode met hardeware te meng om dinge in 'werklike lewe' te laat gebeur.

Hierdie proses kan intimiderend wees as jy nuut op die toneel is, en in ag geneem word dat een vals skuif jou Raspberry Pi kan beskadig, is dit verstaanbaar dat dit 'n senuwee-area is wat beginners moet verken.

Hierdie artikel sal verduidelik wat elke tipe GPIO pen doen en hul beperkings.

02 van 09

Die GPIO

Die GPIO-penne is 1 tot 40, en kan onder verskillende funksies gegroepeer word. Richard Saville

Kom ons kyk eers na die GPIO as geheel. Die penne kan dieselfde lyk, maar hulle het almal verskillende funksies. Die prent hierbo wys hierdie funksies in verskillende kleure wat ons in die volgende stappe sal verduidelik.

Elke pen is genommer van 1 tot 40 en begin onder aan die linkerkant. Dit is die fisiese pengetalle, maar daar is ook nommers / etiketteringskonvensies soos 'BCM' wat gebruik word wanneer kode geskryf word.

03 van 09

Power & Ground

Die Framboos Pi bied verskeie krag en grondpenne. Richard Saville

Opgemerk rooi, is kragpenne '3' of '5' gemerk vir 3.3V of 5V.

Hierdie penne laat jou toe om krag direk na 'n toestel te stuur sonder dat enige kode benodig word. Daar is ook geen manier om dit af te skakel nie.

Daar is 2 kragrails - 3,3 volt en 5 volt. Volgens hierdie artikel is die 3.3V-spoor beperk tot 50mA huidige trekking, terwyl die 5V-spoor kan voorsien wat die huidige kapasiteit van jou kragbron is, nadat die Pi dit nodig het.

Verligte bruin is die grondpenne (GND). Hierdie penne is presies wat hulle sê - grondpenne - wat 'n belangrike deel van enige elektroniese projek is.

(5V GPIO-penne is fisiese getalle 2 en 4. 3.3V GPIO-penne is fisiese getalle 1 en 17. Grond GPIO-penne is fisiese getalle 6, 9, 14, 20, 25, 30, 34 en 39)

04 van 09

Invoer / Uitvoer Pins

Die invoer en uitvoer penne laat jou toe om hardeware soos sensors en skakelaars aan te sluit. Richard Saville

Die groen penne is wat ek 'generiese' inset / uitsetpennetjies noem. Hierdie kan maklik gebruik word as insette of uitsette sonder enige bekommernisse oor die botsing met ander funksies soos I2C, SPI of UART.

Dit is die penne wat krag na 'n LED, sander of ander komponente kan stuur, of gebruik word as 'n inset om sensors, skakelaars of ander toevoertoestelle te lees.

Die uitsetkrag van hierdie penne is 3.3V. Elke pen moet nie meer as 16mA van die huidige wees nie, óf sink of verkryging, en die hele stel GPIO-penne moet op een keer nie meer as 50mA oorskry nie. Dit kan beperkend wees, so jy moet dalk kreatief wees in sekere projekte.

(Generiese GPIO-penne is fisiese getalle 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 en 40)

05 van 09

I2C Pins

Met I2C kan jy ander toestelle aan jou Pi koppel met net 'n paar penne. Richard Saville

In geel, ons het die I2C penne. I2C is 'n kommunikasie protokol wat in eenvoudige terme toestelle toelaat om met die Raspberry Pi te kommunikeer. Hierdie penne kan ook gebruik word as 'generiese' GPIO penne.

'N goeie voorbeeld van die gebruik van I2C is die baie gewilde MCP23017 poort expander chip, wat jou meer insette / uitvoer penne kan gee deur hierdie I2C protokol.

(I2C GPIO penne is fisiese pengetalle 3 en 5)

06 van 09

UART (Serial) Pins

Koppel aan jou Pi oor 'n seriële verbinding met die UART penne. Richard Saville

In grys, is die UART penne. Hierdie penne is 'n ander kommunikasie protokol wat seriële verbindings bied, en kan ook gebruik word as 'generiese' GPIO insette / uitsette.

My gunsteling gebruik vir UART is om 'n seriële konneksie vanaf my Pi aan my laptop oor USB te aktiveer. Dit kan bereik word deur gebruik te maak van add-on planke of eenvoudige kabels en verwyder die behoefte aan 'n skerm of internetverbinding om toegang tot jou Pi te verkry.

(UART GPIO penne is fisiese pengetalle 8 en 10)

07 van 09

SPI Pins

Die SPI Pins - nog 'n nuttige kommunikasie protokol. Richard Saville

In pienk , ons het die SPI penne. SPI is 'n koppelvlakbus wat data tussen die Pi en ander hardeware / randapparatuur stuur. Dit word algemeen gebruik vir die ketting van toestelle soos 'n LED matriks of skerm.

Soos ander, kan hierdie penne ook gebruik word as 'generiese' GPIO insette / uitsette.

(SPI GPIO penne is fisiese pengetalle 19, 21, 23, 24 en 26)

08 van 09

DNC Pins

Niks om hier te sien nie - die DNC-penne dien geen funksie nie. Richard Saville

Laastens is twee penne in blou wat tans as DNC gemerk word, wat staan ​​vir 'Do not Connect'. Dit kan in die toekoms verander as die Raspberry Pi Foundation die planke / sagteware verander.

(DNC GPIO penne is fisiese pengetalle 27 en 28)

09 van 09

GPIO nommeringskonvensies

Die Portsplus is u0026 # 39; n handige hulpmiddel vir die nagaan van GPIO pin nommers. Richard Saville

By die kodering met die GPIO het u die keuse om die GPIO-biblioteek op een van twee maniere in te voer - BCM of BOARD.

Die opsie wat ek verkies, is GPIO BCM. Dit is die Broadcom nummering konvensie en ek vind dat dit meer algemeen gebruik word oor projekte en hardeware byvoegings.

Die tweede opsie is GPIO RAAD. Hierdie metode gebruik die fisiese speldnommers in plaas daarvan, wat handig is as telpennetjies, maar jy sal vind dat dit minder in projekvoorbeelde gebruik word.

Die GPIO af is ingestel by die invoer van die GPIO biblioteek:

Om as BCM in te voer:

invoer RPi.GPIO as GPIO GPIO.setmode (GPIO.BCM)

Om as RAAD in te voer:

invoer RPi.GPIO as GPIO GPIO.setmode (GPIO.BOARD)

Albei hierdie metodes doen presies dieselfde werk, dit is net 'n kwessie van nommervoorkeur.

Ek maak gereeld gebruik van handige GPIO etiketborde soos die RasPiO Portsplus (foto) om te sien watter penne ek ook drade verbind. Een kant wys die BCM-nommerkonvensie, die ander wys BOARD - so jy is gedek vir enige projek wat jy vind.