V Raspberry Pi:n tehokas ominaisuus on rivi GPIO (general-purpose input/output, yleiskäyttöinen tulo/lähtö) -pinnejä piirilevyn yläreunassa. Kaikissa nykyisissä Raspberry Pi -levyissä on 40-nastainen GPIO-otsikko (Pi Zerossa ja Pi Zero W:ssä se on tyhjä). Ennen Pi 1 Model B+ -mallia (2014) levyt sisälsivät lyhyemmän 26-nastaisen otsikon.
Kaikki GPIO-nastat voidaan nimetä (ohjelmistossa) tulo- tai lähtönastaksi ja niitä voidaan käyttää monenlaisiin tarkoituksiin.
Huomaa: GPIO-nastojen numerointi ei ole numerojärjestyksessä; GPIO-nastat 0 ja 1 ovat piirilevyllä (fyysiset nastat 27 ja 28), mutta ne on varattu edistyneelle käytölle (ks. alla).
Jännitteet
Kahdella 5V- ja kahdella 3V3-nastalla on piirilevyllä kaksi 5V- ja kaksi 3V3-piikkiä sekä useat maadoitusnastat (0V), joita ei ole voitu määritellä. Loput nastat ovat kaikki yleiskäyttöisiä 3V3-nastoja, mikä tarkoittaa, että lähdöt asetetaan 3V3:een ja tulot ovat 3V3-tolerantteja.
Lähdöt
Lähdöiksi määritetty GPIO-nasta voidaan asettaa korkealle (3V3) tai matalalle (0V).
Tulot
Tuloiksi määritetty GPIO-nasta voidaan lukea korkeaksi (3V3) tai matalaksi (0V). Tätä helpottaa sisäisten pull-up- tai pull-down-vastusten käyttö. Nastoissa GPIO2 ja GPIO3 on kiinteät pull-up-vastukset, mutta muiden nastojen osalta tämä voidaan konfiguroida ohjelmistossa.
Lisää
Yksinkertaisten tulo- ja lähtölaitteiden lisäksi GPIO-nastoja voidaan käyttää monilla vaihtoehtoisilla toiminnoilla, joista osa on käytettävissä kaikissa nastoissa, osa tietyissä nastoissa.
- PWM (pulssinleveysmodulaatio)
- Ohjelmistopohjainen PWM käytettävissä kaikilla nastoilla
- Hardware PWM käytettävissä GPIO12:lla, GPIO13:lla, GPIO18:lla, GPIO19:llä
- SPI
- SPI0: MOSI (GPIO10); MISO (GPIO9); SCLK (GPIO11); CE0 (GPIO8), CE1 (GPIO7)
- SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK (GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE1 (GPIO17); CE2 (GPIO16)
- I2C
- Data: (GPIO2); Clock (GPIO3)
- EEPROM Data: (GPIO0); EEPROM Clock (GPIO1)
- Serial
- TX (GPIO14); RX (GPIO15)
GPIO pinout
On tärkeää olla tietoinen siitä, mikä tappi on mikä. Jotkut käyttävät pin-tarroja (kuten RasPiO Portsplus -piirilevy tai tulostettava Raspberry Leaf).
Näppärään viitteeseen pääsee Raspberry Pi:ssä avaamalla terminaali-ikkunan ja suorittamalla komennon pinout
. Tämän työkalun tarjoaa GPIO Zero Python-kirjasto, joka on oletusarvoisesti asennettu Raspberry Pi OS -työpöytäkuvaan, mutta ei Raspberry Pi OS Lite -käyttöjärjestelmään.
Lisätietoa GPIO-nastojen edistyneistä ominaisuuksista löydät gadgetoidin interaktiivisesta pinout-kaaviosta.
Ohjelmointi GPIO:n avulla
GPIO-nastojen ohjaaminen on mahdollista useilla ohjelmointikielillä ja -välineillä. Katso seuraavat oppaat aloitusta varten:
- GPIO with Scratch 1.4
- GPIO with Scratch 2
- GPIO with Python
- GPIO with C/C++ käyttäen vakiomuotoista ytimen rajapintaa libgpiodin kautta
- GPIO with C/C++ käyttäen kolmannen osapuolen kirjastoa pigpio
- GPIO with Processing3
Varoitus: Vaikka yksinkertaisten komponenttien kytkeminen GPIO-nastoihin on täysin turvallista, on tärkeää olla varovainen siinä, miten kytket asiat. LEDeissä tulisi olla vastukset niiden läpi kulkevan virran rajoittamiseksi. Älä käytä 5V:tä 3V3-komponenteille. Älä kytke moottoreita suoraan GPIO-nastoihin, käytä sen sijaan H-siltapiiriä tai moottorinohjainlevyä.
Luvat
Käyttäjän on oltava gpio
-ryhmän jäsen, jotta hän voi käyttää GPIO-portteja. Käyttäjä pi
on oletusarvoisesti jäsen, muut käyttäjät on lisättävä manuaalisesti.
sudo usermod -a -G gpio <username>