GPIO: viskas apie „Raspberry Pi 4“ ir „3“ jungtis

„Raspberry Pi 4 GPIO“

Los „Raspberry Pi 4“ plokštės, 3 GPIO kaiščiai, taip pat jo pirmtakai, suteikia SBC plokštei panašių galimybių, kurias gali turėti „Arduino“, nes su jais galite kurti labai įdomius elektroninius projektus, valdomus iš operacinės sistemos, naudodami kodą skirtingomis kalbomis, pavyzdžiui, „Python“.

Tai daro plokštę ne tik pigiu kompiuteriu. Tai leis jums prijungti daugybę elektroniniai elementai kurį galite naudoti su „Arduino“, bet tai taip pat galima valdyti iš „Pi“. Šiame vadove pabandysiu suteikti jums kuo daugiau informacijos apie šiuos GPIO kaiščius, kad galėtumėte pradėti jais naudotis ...

Kas yra GPIO?

GPIO

GPIO yra bendrosios paskirties įvesties / išvesties, ty bendrosios paskirties įvesties / išvesties, santrumpa. Jį gali turėti įvairūs elektroniniai gaminiai, pavyzdžiui, patys lustai ar tam tikros PCB plokštės, tokios kaip ši „Raspberry Pi“. Kaip rodo jų pavadinimas, jie yra kaiščiai, kuriuos galima sukonfigūruoti atlikti įvairias funkcijas, todėl jie yra bendro naudojimo, o ne konkretaus naudojimo.

Tai gali vartotojas vykdymo metu sukonfigūruokite šiuos GPIO kaiščius kad jie darytų tai, ko jis nori. Tai galima padaryti įvairiais būdais, pvz., Naudojant tam tikrus kodus arba scenarijus iš konsolės arba naudojant „Python“ programą, kuri yra vienas paprasčiausių ir labiausiai pageidaujamų būdų dėl turimų parinkčių kiekio.

Tokiu būdu „Raspberry Pi“ turi ne tik daugybę uostų ir sąsajos norėdami sujungti kelis standartinius įrenginius, tačiau pridėkite šiuos GPIO kaiščius, kad galėtumėte pridėti kitų elektroninių prietaisų ar kūrėjų projektų, kuriuos sukūrėte patys. Lygiai taip pat, kaip ir valdant „Arduino“ ir jo įvesties / išvesties kaiščius.

Y nėra išskirtinis „Arduino“ ar „Raspberry Pi“, taip pat ir kitos panašios SBC plokštės ir įdėti produktai.

GPIO funkcijos

Ir tarp jos KARAKTERISTIKOS ryškiausias:

  • Jie gali būti sukonfigūruotas taip kaip įvestis kaip išvestis. Jie turi tą dvilypumą, kaip nutinka tiems, kurie gyvena Arduino.
  • GPIO kaiščiai taip pat galima įjungti ir išjungti pagal kodą. Tai yra, juos galima nustatyti į 1 (aukštos įtampos lygis) arba 0 (žemos įtampos lygis).
  • Žinoma, jie gali skaityti dvejetainius duomenis, kaip vienetai ir nuliai, tai yra įtampos signalas arba jo nebuvimas.
  • Išvesties vertės Skaitymas ir rašymas.
  • Kai kuriais atvejais įvesties reikšmes galima sukonfigūruoti kaip Renginiai kad jie sugeneruotų tam tikrą veiksmą lentoje ar sistemoje. Kai kurios įterptosios sistemos jas naudoja kaip IRQ. Kitas atvejis yra sukonfigūruoti, kad kai tam tikri jutikliai yra aktyvūs vienas ar daugiau kaiščių, atlikite tam tikrus veiksmus ...
  • Kalbant apie įtampą ir intensyvumą, turite gerai žinoti didžiausias plokštės, šiuo atveju „Raspberry Pi 4“ arba „3“, priimtinas talpas. Jūs neturėtumėte jų perduoti, kad nesugadintumėte.

Beje, grupuojant GPIO smeigtukų grupę, kaip yra Raspberry Pi atveju, grupė yra žinoma kaip GPIO prievadas.

„Raspberry Pi“ GPIO kaiščiai

„Raspberry Pi GPIO“

Schema galioja 4, 3 versijai, nulis

naujas „Raspberry Pi 4“ plokštės ir 3 versija Juose yra daugybė GPIO kaiščių. Ne visos versijos siūlo tą pačią sumą ir nėra numeruojamos vienodai, todėl turite būti atsargūs, kad gerai žinotumėte, kaip turėtumėte užmegzti ryšį pagal turimą modelį ir pataisą.

Bet dar bendresni yra GPIO tipai, kuriuos galite rasti „Raspberry Pi“ plokščių uoste. Tai bus pirmas dalykas, kurį norėčiau paaiškinti, nes taip sužinosite smeigtukų rūšys galite pasikliauti savo projektais:

  • maitinimas: šie kaiščiai naudojami prijungti elektros laidus ar laidus jūsų elektroniniams projektams. Jie atitinka kaiščius, panašius į tuos, kurie yra „Arduino“ plokštėje, ir kurie teikia 5v ir 3v3 įtampą (3.3v ribojama iki 50mA apkrovos). Be to, rasite ir antžeminius (GND arba Ground). Jei nenaudojate išorinių maitinimo šaltinių, tokių kaip baterijos ar adapteriai, šie kaiščiai gali būti labai naudingi maitinant jūsų grandinę.
  • DNC (nejunkite): jie yra kai kurių versijų kaiščiai, kurie neturi jokios funkcijos, tačiau naujose lentose jiems buvo suteiktas kitas tikslas. Tai rasite tik primityvesniuose Pi modeliuose. Naujose 3 ir 4 grupėse jie bus pažymėti kaip GND, galintys integruotis į ankstesnę grupę.
  • Konfigūruojami kaiščiai: Jie yra įprasti GPIO ir juos galima užprogramuoti kodais, nes vėliau paaiškinsiu, kad atliktumėte tai, ko jums reikia.
  • Specialūs kaiščiai: tai yra keletas jungčių, skirtų specialioms jungtims ar sąsajoms, pvz., UART, TXD ir RXD nuoseklioms jungtims ir pan., kaip tai atsitinka su „Arduino“. Net rasite tokių kaip SDA, SCL, MOSI, MISO, SCLK, CE0, CE1 ir kt. Jie išsiskiria iš jų:
    • TIM, kuris gali reguliuoti pulso plotį, kaip matėme ankstesniame straipsnyje. „Raspberry Pi 3“ ir „4“ jie yra GPIO12, GPIO13, GPIO18 ir GPIO19.
    • SPI yra dar viena komunikacijos sąsaja, kurią taip pat aptariau kitame straipsnyje. Naujų 40 kontaktų plokščių atveju jie yra kaiščiai (su skirtingais ryšio kanalais, kaip matote):
      • SPI0: MOSI (GPIO10), MISO (GPIO9), SCLK (GPIO11), CE0 (GPIO8), CE1 (GPIO7)
      • SPI1: MOSI (GPIO20); MISO (GPIO19); SCLK(GPIO21); CE0 (GPIO18); CE1 (GPIO17); CE2 (GPIO16)
    • I2C yra dar vienas ryšys, kurį taip pat paaiškinau šiame tinklaraštyje. Šią magistralę sudaro duomenų signalas (GPIO2) ir laikrodis (GPIO3). Be EEPROM duomenų (GPIO0) ir EEPROM laikrodžio (GPIO1).
    • Serijinis, dar vienas labai praktiškas bendravimas su TX (GPIO14) ir RX (GPIO15) kaiščiais, panašiais į tuos, kuriuos galite rasti lentoje Arduino UNO.

Atminkite, kad GPIO yra sąsaja tarp „Raspberry Pi“ ir išorinio pasaulio, tačiau jie turi jo apribojimai, ypač elektros. Į tai, į kurį turite atsižvelgti, kad nesugadintumėte lentos, reikia prisiminti, kad šie GPIO kaiščiai paprastai nėra perkami, tai yra be buferio. Tai reiškia, kad jie neturi apsaugos, todėl turite stebėti įtampos ir intensyvumo dydžius, kad neliktų nenaudingos plokštės ...

GPIO skirtumai tarp versijų

Senieji Raspberry Pi GPIO kaiščiai

Kaip sakiau, ne visi modeliai yra vienodi kaiščiaiČia pateikiamos kelios diagramos, kad galėtumėte pamatyti modelių skirtumus ir taip sutelkti dėmesį į „Raspberry Pi 4“ ir „3“, kurie yra naujausi ir kuriuos tikriausiai turite savo žinioje. Jis skiriasi (visos grupės turi tuos pačius kaiščius):

  • „Raspberry Pi 1 Model B Rev 1.0“ su 26 kaiščiais šiek tiek skiriasi nuo „Rev2“.
  • „Raspberry Pi 1 Model A“ ir „B Rev 2.0“, abu modeliai su 26 kaiščiais.
  • „Rapsberry Pi Model A +“, „B +“, 2B, 3B, 3B +, „Zero“ ir „Zero W“ bei 4 modeliai. Visi jie turi 40 kontaktų GPIO antraštę.

Ką galiu prijungti prie GPIO?

Aviečių Pi kepurė

Jūs ne tik galėsite prijungti elektroninius prietaisus kaip tranzistoriai, drėgmės / temperatūros jutikliai, termistoriai, žingsniniai varikliai, LEDir kt. Taip pat galite prijungti komponentus ar modulius, sukurtus specialiai „Raspberry Pi“ ir išplėsti plokštės galimybes, išskyrus tai, kas įtraukta į pagrindą.

Turiu omenyje garsųjį kepurės ar kepurės ir plokščių, kurias galite rasti rinkoje. Yra daugybė tipų, pradedant varikliais su vairuotojais, ir kitų skaičiavimo klasteris, Su LED skydelis valdomas, pridėti DVB TV galimybė, LCD ekranasIr tt

Šios skrybėlės ar kepurės Jie sumontuoti ant „Raspberry Pi“ plokštės, atitinkančių GPIO, kad jis veiktų. Todėl jo surinkimas yra gana paprastas ir greitas. Žinoma, įsitikinkite, kad plokštės versija suderinama su kiekviena skrybėle, nes GPIO prievadas skiriasi, kaip matėte ...

Aš tai sakau tuo atveju, jei turite senesnę plokštę, nes skrybėlės yra suderinamas tik su naujausiais. Kaip ir „Raspberry Pi“ modeliai A +, B +, 2, 3 ir 4.

Įvadas į GPIO naudojimą „Raspberry Pi“

Pinout komandos išvestis

Šaltinis: Raspberry Pi

Norėdami pradėti, „Raspbian“ galite atidaryti konsolę ir įvesti komanda pinoutTai, ką jis jums grąžins, yra vaizdas terminale su jūsų lentoje esančiais GPIO kaiščiais ir kam jie skirti. Kažkas labai praktiška, kad visada būtų jo darbo metu, kad nesupainiotum.

Pirmasis projektas: mirksi šviesos diodas su GPIO

GPIO su šviesos diodu ant „Raspberry Pi“

Pats paprasčiausias būdas padaryti savotišką „Sveikas pasaulis“ su GPIO yra naudoti paprastą šviesos diodą, sujungtą su „Raspberry Pi“ kaiščiais, kad pamatytumėte, kaip jie veikia. Šiuo atveju aš jį prijungiau prie GND, o kitą - prie kaiščio 17, nors galite pasirinkti kitą iš įprastų kaiščių ...

Prisijungę galite valdyti juos nuo „Raspbian“ naudojantis terminalu. „Linux“ sistemoje naudojami konkretūs failai, tokie kaip kataloge / sys / class / gpio /. Pavyzdžiui, norėdami sukurti failą su reikiama struktūra, kad galėtumėte pradėti dirbti:

echo 17 > /sys/class/gpio/export

Tada galite konfigūruoti kaip įvestį (įvestį) arba kaip išvestį (išvestį) kad 17 pavyzdys pasirinktas mūsų pavyzdžiu. Tai galite padaryti labai lengvai:

echo out > /sys/class/gpio/gpio17/direction

Šiuo atveju kaip išvestį, nes norime išsiųsti elektros impulsą į šviesos diodą, kad jis būtų įjungtas, bet jei tai būtų jutiklis ir pan., Galėtumėte jį naudoti. Dabar įjungti (1) arba išjungti (0) šviesos diodas, kurį galite naudoti:

echo 1 > /sys/class/gpio/gpio17/value
echo 0 > /sys/class/gpio/gpio17/value

Jei norite pereiti prie kito projekto ir ištrinti įrašą sukurta, galite tai padaryti taip:

echo 17 > /sys/class/gpio/unexport

Beje, taip pat galite surinkti visas reikalingas savo projektui komandas, kaip ir visas ankstesnes, išsaugoti jas failo tipu bash scenarijus ir tada iškart paleiskite juos į ryšulį, užuot vedę po vieną. Tai yra patogu, kai tą patį pratimą kartojate daug kartų, todėl jums nereikia perrašinėti. Tiesiog bėk ir eik. Pavyzdžiui:

nano led.sh

#!/bin/bash
source gpio 
gpio mode 17 out
while true; do 
gpio write 17 1 
sleep 1.3 
gpio write 17 0 
sleep 1.3 done

Baigę išsaugosite ir galėsite suteikti jai atitinkamus vykdyti ir vykdyti leidimus scenarijus kad šviesos diodas įsijungtų, palaukite 1.3 sekundės ir taip išjunkite ...

chmod +x led.sh
./led.sh

Programavimo avansas

programavimo kalbos šaltinio kodas

Akivaizdu, kad aukščiau aprašyta funkcija tinka mažiems elektroniniams projektams, kuriuose yra nedaug komponentų, tačiau jei norite sukurti ką nors pažangesnio, vietoj komandų galite naudoti programavimo kalbos sukurti skirtingus scenarijus ar šaltinio kodus, kurie automatizuotų operaciją.

Jie gali būti naudojami skirtingos priemonės programuoti, labai skirtingomis kalbomis. Bendruomenės sukurtos bibliotekos jums daug lengviau, pavyzdžiui, „WiringPi“, „sysfs“, „pigpio“ ir kt. Programos gali būti labai įvairios, pradedant „Python“, kuris yra daugelio pageidaujamas pasirinkimas, per „Ruby“, „Java“, „Perl“, „BASIC“ ir net „C #“.

Oficialiai jums siūlo „Raspberry Pi“ daugybė patogumų programuoti savo GPIO, pvz .:

  • Nutrinkite, tiems, kurie nemoka programuoti ir nori naudoti šio projekto galvosūkių blokus, kuriais taip pat galima programuoti „Arduino“ ir t. Programavimas grafiniais blokais yra gana intuityvus ir labai praktiškas švietimo srityje.
  • Pitonas: Ši paprasta interpretuojama programavimo kalba leidžia jums sukurti paprastus ir galingus kodus su daugybe bibliotekų, kad galėtumėte atlikti beveik viską, ką įsivaizduojate.
  • C / C ++ / C #: yra galingesnės programavimo kalbos, sukuriančios dvejetainius failus, su kuriais bus bendraujama su GPIO. Tai galite padaryti keliais būdais, naudodamiesi standartine forma arba branduolio sąsaja per bibliotekąlibgpiod, bet ir per trečiosios šalies biblioteką, pvz pygium.
  • Apdorojimas3, panašus į „Arduino“.

Pasirinkite lanksčiai tas, kuris jums labiausiai patinka arba manote, kad yra paprastas.


4 komentarai, palikite savo

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   Priešas sakė

    Labai geras straipsnis apie Rasperry pradžią

    1.    Izaokas sakė

      Labai ačiū.

      1.    Rūta Medina sakė

        ar tu autorius?

        1.    Izaokas sakė

          Taip