01 van 09
'N Inleiding tot die Framboos Pi se Pins
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
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
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 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
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
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
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
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
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.