ew Pinosên GPIO yên desteya Raspberry Pi 4, 3, û her weha selefên wê, bi panelên SBC re kapasîteyên mîna yên ku Arduino dikare hebe, peyda dikin, ji ber ku bi wan re hûn dikarin projeyên elektronîkî yên pir balkêş ên ku ji pergala xebitandinê têne kontrol kirin bi zimanên cihêreng, wekî Python, biafirînin.
Ku panelê tenê ji komputerek erzan zêdetir dike. Ew ê bihêle ku hûn bi pirjimarek ve girêdayî bikin hêmanên elektronîkî ku hûn dikarin bi Arduino re bikar bînin, lê ew ji Pi jî tê kontrol kirin. Di vê rênîşanderê de ez ê hewl bidim ku di derheqê van pîneyên GPIO de heya ku gengaz agahdarî bidim we da ku hûn dest bi sûdwergirtina ji wan bikin ...
Indeksa
GPIO çi ye?
GPIO kurtenivîsa / Input / Output a Armanca Giştî ye, ango, Input / Output a Armanca Giştî. Hilberên cûrbecûr yên elektronîkî dikarin wê hebin, wekî çîpên xwe an hin tabloyên PCB-ê wekî vê Raspberry Pi. Wekî ku navê wan diyar dike, ew pîneyên ku dikarin bêne vesaz kirin ku fonksiyonên cûda pêk bînin, ji ber vê yekê ew armancên gelemperî ne û ne ji bo karanîna taybetî ne.
Ew ê bikarhêner di dema dema xebitandinê de kî dikare bike van pîneyên GPIO vesaz bikin da ku ew tiştên ku ew dixwaze bikin. Ew dikare bi awayên cûda, wekî mînak bi hin kod an nivîsên ji konsolê an jî bi bernameya Python re, ku ji ber hêjmara vebijarkên di destê we de ye, yek ji wan awayên herî hêsan û bijare ye.
Bi vî rengî, Raspberry Pi ne tenê rêzek benderan heye û navbeynkar ji bo girêdana gelek cîhazên standard, lê van pîneyên GPIO lê zêde bikin da ku hûn alavên din ên elektronîkî an projeyên çêker ên ku we bixwe çêkirine zêde bikin. Bi heman awayî ku hûn ê bi Arduino û pinên I / O yên wê re ji bo kontrolê bixwazin.
Y ne tenê Arduino an Raspberry Pi ye, da ku hûn tabloyên din ên SBC-yên wekhev û hilberên bicîhkirî jî bikin.
Taybetmendiyên GPIO
Di navbera CARACTERISTICS wê herî berbiçav:
- Can vesaz kirin gelemperî wekî input wekî encam. Ew dualîteya ku ew bi ya wan re çêdibe heye Arduino.
- Pîneyên GPIO jî dikare were çalak kirin û bêçalak kirin bi kodê. Ango, ew dikarin li ser 1 (asta voltaja bilind) an 0 (asta voltaja kêm) werin saz kirin.
- Bê guman ew dikarin daneyên binaryê bixwînin, wekî yek û sifir, ango îşareta voltajê an tunebûna wê.
- Nirxên derketinê yên Xwendin û nivîsandin.
- Nirxên têkevinê di hin rewşan de wekî têne vesaz kirin bûyeran da ku ew li ser panel an pergalê hin celeb çalakiyê çêbikin. Hin pergalên bicîhkirî wan wekî IRQ bikar tînin. Rewşek din e ku meriv verast bike ku dema ku yek an çend pin ji hêla hin sansor ve çalak bin, hin çalakiyan pêk bînin ...
- Ji bo voltaj û tundiyê, divê hûn bi kapasîteyên herî zêde yên ji bo panelê têne qebûl kirin baş bizanibin, di vê rewşê de Raspberry Pi 4 an 3. Divê hûn wan derbas nekin da ku zirarê nedin.
Bi awayê, dema ku komek pîneyên GPIO têne kom kirin, wekî ku bi Raspberry Pi re tê dîtin, kom wekî Bendera GPIO.
Pinên GPIO-yê Raspberry Pi
Scheme ji bo guhertoya 4, 3, Zero derbasdar e
Nû Tabloyên Raspberry Pi 4 û guhertoya 3 Ew bi gelek pîneyên GPIO ve hatine stendin. Ne hemî guhertoyên heman hejmar pêşkêşî dikin, ne jî bi heman rengî têne jimartin, ji ber vê yekê divê hûn bi viya re haydar bin ku hûn baş bizanibin ka hûn çawa pêwendiyê li gorî model û revîzyona ku we heye çêbikin.
Lê ya ku gelemperîtir e, celebên GPIO ye ku hûn dikarin li benderê panelên Raspberry Pi bibînin. That ew ê yekem tiştek be ku ez dixwazim eşkere bikim, ji ber ku bi vî rengî hûn ê zanibin celebên pîneyan hûn dikarin li ser projeyên xwe bisekinin:
- Xwarin: van pîneyan têne bikar anîn ku ji bo projeyên elektronîkî yên we xetên karebê an têl werin girêdan. Ew bi pinên wekhev ên li ser borda Arduino ve girêdayî ne, û yên ku voltajên 5v û 3v3 peyda dikin (3.3v bi barkirina 50mA bi sînor). Wekî din, hûn ê yên erdê jî bibînin (GND an Ground). Heke hûn çavkaniyên hêzê yên derveyî yên mîna pîl, an adapter bikar neynin, ev pîn dikarin bibin alîkariyek mezin da ku hûn şebekeya xwe bixebitînin.
- DNC (Girê nede): ew pîneyên ku di hin guhertoyan de ne û fonksiyona wan tune, lê ku di panelên nû de ji wan re armancek din hatiye dayîn. Hûn ê van tenê di modelên prîmîtîf ên Pi-yê de bibînin. Di 3 û 4-an nû de ew ê wekî GND bi gelemperî werin nîşankirin, ku bikaribin di koma berê de bibin yek.
- Pîneyên mîhengbar: ew GPIO-ya normal in, û dikarin bi kodan bêne bernamekirin ku ez ê paşê vebêjim ku hûn hewce ne bikin.
- Pinên taybetî: ev hin pêwendî hene ku ji bo pêwendî an navrûyên taybetî yên mîna UART, TXD û RXD girêdanên serial, û hwd têne armanc kirin, çawa ku bi Arduino re çêdibe. Heta hûn ê hin wekî SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, û hwd bibînin. Ew di nav wan de radibin:
- PWM, ku dikare firehiya pêlê wek ku me di gotarek berê de dîtî rêk bike. Li ser Raspberry Pi 3 û 4 ew GPIO12, GPIO13, GPIO18 û GPIO19 in.
- SPI navgînek danûstendinê ya din e ku min di gotarek din de jî behs kir. Di mijara panelên nû yên 40-pinî de, ew pînek in (digel ku hûn dibînin kanalên ragihandinê yên cûda):
- 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 pêwendiyek din e ku min di vê tevnvîsê de jî vegot. Ev otobus ji nîşana daneyê (GPIO2) û demjimêrê (GPIO3) pêk tê. Ji bilî Daneyên EEPROM (GPIO0) û Saeta EEPROM (GPIO1).
- Serial, pêwendiyek din a pir pratîkî bi TX (GPIO14) û RX (GPIO15) pîneyên mîna yên hûn dikarin li ser panelê bibînin Arduino UNO.
Bînin bîra xwe ku GPIOs navberê di navbera Raspberry Pi û cîhana derve de ne, lê ew hene sînorên wê, nemaze elektrîkî. Tiştek ku divê hûn li ber çavan bigirin da ku hûn panelê xera nekin ev e ku hûn bîr bînin ku van pîneyên GPIO bi gelemperî unbuffer in, ango bêyî tampon. Ev tê vê wateyê ku parastina wan tune, lewma divê hûn mezinahiya voltaj û tundiya ku têne sepandin bişopînin da ku hûn bi plakayek bêkêr nemînin ...
Cûda GPIO di navbera guhertoyên
Wekî ku min got, ne hemî model yek pînek inLi vir çend diagram hene da ku hûn cûdahiyên di navbera modelan de bibînin û bi vî rengî hûn karibin li ser Raspberry Pi 4 û 3 bisekinin, ku nûtirîn in û ya ku we di destê we de heye. Ew di navbera (her komê de heman pinî parve dikin) ji hev cûda dibe:
- Raspberry Pi 1 Model B Rev 1.0, bi 26-pin ji Rev2-ê piçek cûda.
- Raspberry Pi 1 Model A and B Rev 2.0, her du modelên bi 26-pin.
- Rapsberry Pi Model A +, B +, 2B, 3B, 3B +, Zero and Zero W, û her weha 4 model. Hemî bi sernavê GPIO-40-pin.
Ma ez dikarim çi bikim nav GPIO-an?
Hûn ê ne tenê karibin alavên elektronîkî ve girêdin dema transîstor, sensors şilbûn / germahiyê, termîstor, motorên gavavêtinê, nasî, û hwd. Di heman demê de hûn dikarin pêkhateyan an modulên ku bi taybetî ji bo Raspberry Pi hatine afirandin û yên ku qabîliyetên panelê ji yên ku di bingeh de tê de hene dirêj bikin, ve girêdin.
Ez behsa navdar dikim kum yan kum û lewheyên ku hûn dikarin li sûkê bibînin. Gelek celeb hene, ji yên ku ji bo kontrolkirina motora bi ajokar re têne bikar anîn, ji yên din re diafirînin komek computingbi Panel LED kontrolkirin, lê zêde bike Şiyana DVB TV, Dîmendera LCD, Hwd.
Van xefik an xalîçeyan Ew li ser tabloya Raspberry Pi têne siwar kirin, lihevhatina GPIO-yên ku ew hewce ne ku bixebitin. Ji ber vê yekê, civata wê pir hêsan û zû ye. Bê guman, bawer bikin ku guhertoya plakaya bi her hatê re lihevhatî ye, ji ber ku port GPIO wekî ku we dîtiye cuda ye ...
Ez viya dibêjim heke plakayek weya kevntir hebe, ji ber ku şapik in tenê bi ya herî nû re lihevhatî ye. Wekî ku modelên Raspberry Pi Model A +, B +, 2, 3, û 4 jî hene.
Destpêka karanîna GPIO-yê li Raspberry Pi
Çavkanî: Raspberry Pi
Ji bo destpêkirinê, li ser Raspbian, hûn dikarin konsolê vekin û binivîsin ferman pîne kirinYa ku ew ê li we vegerîne wêneyek di termînalê de bi pîneyên GPIO yên ku li ser dabeşa we hene û her kes ji bo çi ye. Tiştek pir pratîkî ye ku her dem di dema xebatê de hebe ku hûn tevlihev nebin.
Projeya yekem: Bi GPIOyan re LED-ê diteqîne
Awayê herî bingehîn ku meriv celebek çêbike "Silav cîhan" bi GPIO re e ku hûn LED-a sade ya bi pîneyên Raspberry Pi ve girêdayî ye bikar bînin da ku hûn bibînin ka ew çawa dixebitin. Di vê rewşê de, min ew bi GND û ya din ve bi pîne 17 ve girê da, her çend hûn dikarin ji pîneyên normal yeka din jî hilbijêrin ...
Carekê ve girêdayî, hûn dikarin wan ji Raspbian kontrol bikin karanîna termînalê. Di Linux de, pelên taybetî wekî yên di navnîşanê / sys / class / gpio / de têne bikar anîn. Ji bo nimûne, ji bo destpêkirina xebatê pelê bi avahiyek pêdivî çêbikin:
echo 17 > /sys/class/gpio/export
Wê hingê hûn dikarin wekî input (nav) an wekî encamek (der) vesaz bikin ew pîneya 17 ji bo mînaka me hilbijartî. Hûn dikarin wê pir hêsan bi:
echo out > /sys/class/gpio/gpio17/direction
Di vê rewşê de wekî encamek, ji ber ku em dixwazin pêlek elektrîkê bişînin LED da ku wê vemirîne, lê heke ew sansor bû, û hwd., Hûn dikarin bikar bînin. Naha ji bo vemirandin (1) an vemirandin (0) LED ya ku hûn dikarin bikar bînin:
echo 1 > /sys/class/gpio/gpio17/value echo 0 > /sys/class/gpio/gpio17/value
Heke hûn dixwazin derbasî projeyek din bibin û navnîşê jêbirin afirandin, hûn dikarin bi vî rengî bikin:
echo 17 > /sys/class/gpio/unexport
Bi awayê, hûn dikarin hemî fermanên hewce ji bo projeya xwe jî bicivînin, mîna hemî yên berê, wan di celebek pelê de hilînin nivîsa bash û dûv re jî, di şûna ku yek bi yek wan binivîsin, wan bi yek carî di nav pakêtekê de birevînin. Ev kêrhatî ye dema ku hûn heman tetbîqatê gelek caran dubare dikin, ji ber vê yekê hûn ne hewce ne ku ji nû ve binivîsin. Tenê bezîn û herin. Bo nimûne:
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
Gava ku hûn xilas kirin, hûn hilanîn û dûv re jî hûn dikarin destûrên darvekirinê û darvekirinê yên guncan bidin wê senaryo ji bo ku LED vebibe, 1.3 çirkeyan bisekinin û wusa di xelekekê de vemirînin ...
chmod +x led.sh ./led.sh
Pêşveçûna bernameyê
Diyar e ku yên jorîn ji bo projeyên elektronîkî yên piçûk bi çend pêkhateyan dixebite, lê heke hûn dixwazin li şûna fermanan tiştek pêşkeftîtir biafirînin, ya ku hûn dikarin bikar bînin ev in zimanên programming da ku nivîsên cûda an kodên çavkaniyê yên ku operasyonê otomatîk dikin çêbikin.
Ew dikarin bikar bînin amûrên cuda bername bikin, bi zimanên pir cûda. Pirtûkxaneyên ku civatê pêş xistiye tiştan ji we re pir hêsantir dike, wekî WiringPi, sysfs, pigpio, hwd. Bername dikarin ji Python-ê, ku vebijarka bijarte ya gelekan e, bi navgîniya Ruby, Java, Perl, BASIC, û heta C # pir cûr be cûr bin.
Bi fermî, Raspberry Pi we pêşkêşî dike gelek tesîs ku GPIO-yên xwe bername bikin, wekî:
- Xerritok, ji bo kesên ku nizanin bernamekirin û dixwazin blokên puzzle ên vê projeyê bikar bînin ku Arduino jî pê re dikare were bername kirin, û hwd. Bernameya bi blokên grafîkî ji bo qada perwerdehiyê pir bînbar û pir pratîkî ye.
- python: Ev zimanê bernameyê yê sade şirovekirî dihêle hûn kodên sade û bi hêz biafirînin, digel ku gelek pirtûkxane di dest we de ne ku hema hema her tiştê ku hûn xeyal dikin bikin.
- C / C ++ / C #: zimanên bernamekirinê yên bihêztir in ku bineriyan biafirînin ku bi wan re bi GPIO re têkiliyê daynin. Hûn dikarin wê bi gelek awayan, bi karanîna forma standard an navgîniya navokî bi rêya pirtûkxanê ve bikinlibgpiod, di heman demê de bi rêya pirtûkxaneyek partiya sêyemîn wekî beraz.
- Pêvajoya3, mîna Arduino.
Bi nermî hilbijêrin ya ku hûn herî pir jê hez dikin an hûn difikirin hêsan e.
4 şîrove, yên xwe bihêlin
Di derbarê destpêkirina li Rasperry de gotarek pir xweş
Gelek spas dikim.
tu nivîskar î?
Erê