a ' Prìnichean GPIO de bhòrd Raspberry Pi 4, an 3, agus cuideachd an fheadhainn a thàinig roimhe, a ’toirt comasan don bhòrd SBC coltach ris an fheadhainn a dh’ fhaodadh a bhith aig Arduino, oir còmhla riutha faodaidh tu pròiseactan dealanach inntinneach a chruthachadh fo smachd an t-siostam obrachaidh tro chòd ann an diofar chànanan, leithid Python.
Tha sin a ’dèanamh am bòrd nas motha na dìreach coimpiutair saor. Leigidh e leat mòran de a cheangal eileamaidean dealanach gun urrainn dhut a chleachdadh le Arduino, ach faodar sin a smachdachadh bhon Pi cuideachd. San stiùireadh seo feuchaidh mi ri nas urrainn dhut de fhiosrachadh a thoirt dhut mu na prìnichean GPIO seo gus an urrainn dhut tòiseachadh a ’gabhail brath orra ...
Clàr-innse
Dè a th ’ann an GPIO?
GPIO is e an acronaim airson Toradh / Toradh Adhbhar Coitcheann, is e sin, Toradh / Toradh Adhbhar Coitcheann. Faodaidh diofar thoraidhean dealanach a bhith aige, leithid na sgoltagan fhèin no cuid de bhùird PCB mar an Raspberry Pi seo. Mar a tha an t-ainm aca a ’moladh, tha iad nam prìnichean a dh’ fhaodar an rèiteachadh gus diofar dhleastanasan a choileanadh, mar sin tha iad coitcheann agus chan ann airson cleachdadh sònraichte.
Is e an neach-cleachdaidh aig àm-ruith as urrainn rèiteachadh na prìnichean GPIO seo gus an dèan iad na tha e ag iarraidh. Faodar a dhèanamh ann an diofar dhòighean, leithid le còdan no sgriobtaichean sònraichte bhon consol no leis a ’phrògram Python, a tha mar aon de na dòighean as sìmplidh agus as fheàrr leat air sgàth na tha de roghainnean agad.
San dòigh seo, chan e a-mhàin gu bheil sreath de phuirt aig an Raspberry Pi agus coluadar gus iomadh inneal àbhaisteach a cheangal, ach cuir na prìnichean GPIO sin gus an urrainn dhut innealan dealanach eile no pròiseactan luchd-dèanaidh a chruthaich thu fhèin a chur ris. San aon dòigh ’s a bhiodh tu le Arduino agus na prìnichean I / O airson smachd.
Y chan ann a-mhàin ri Arduino no Raspberry Pi, mar sin dèan bùird SBC eile agus toraidhean freumhaichte.
Gnìomhan GPIO
Agus eadar a CARACTERISTICS as sònraichte:
- Faodaidh iad a bhith air a rèiteachadh uimhir mar chur-a-steach mar toradh. Tha an dànachd sin aca mar a tha e a ’tachairt don fheadhainn aig Arduino.
- Prìneachan GPIO cuideachd faodar a chuir an gnìomh agus a chuir dheth a rèir còd. Is e sin, faodar an suidheachadh gu 1 (ìre bholtachd àrd) no 0 (ìre bholtachd ìosal).
- Gu dearbh is urrainn dhaibh leugh dàta binary, mar an fheadhainn agus neoni, is e sin ri ràdh, comharra bholtachd no às aonais.
- Luachan toraidh de Leughadh agus sgrìobhadh.
- Faodar na luachan inntrigidh a rèiteachadh ann an cuid de chùisean mar tachartasan gus am bi iad a ’gineadh gnìomh de sheòrsa air choreigin air a’ bhòrd no air an t-siostam. Bidh cuid de shiostaman freumhaichte gan cleachdadh mar IRQs. Is e cùis eile a bhith a ’rèiteachadh nuair a bhios aon phrìne no barrachd gnìomhach le mothachairean sònraichte, dèan gnìomh ...
- A thaobh an bholtachd agus an dian, feumaidh fios a bhith agad gu math na comasan as àirde a tha iomchaidh airson a ’bhùird, sa chùis seo an Raspberry Pi 4 no 3. Cha bu chòir dhut a dhol seachad orra gus nach dèan thu cron air.
Co-dhiù, nuair a tha buidheann de phrìneachan GPIO air an cruinneachadh, mar a tha coltach ris an Raspberry Pi, tha a ’bhuidheann aithnichte mar Port GPIO.
Prìnichean GPIO an Raspberry Pi
Sgeama dligheach airson dreach 4, 3, Zero
Am fear ùr Bùird Raspberry Pi 4 agus dreach 3 Tha iad air an uidheamachadh le àireamh mhòr de phrìneachan GPIO. Chan eil a h-uile dreach a ’tabhann an aon uiread, agus chan eil iad air an àireamhachadh san aon dòigh, agus mar sin feumaidh tu a bhith faiceallach le seo gus am bi fios agad gu math ciamar a bu chòir dhut an ceangal a dhèanamh a rèir a’ mhodail agus an ath-sgrùdadh a tha agad.
Ach is e an rud a tha nas gnèitheile na seòrsaichean GPIO a lorgas tu ann am port bùird Raspberry Pi. Agus is e sin a ’chiad rud a bu mhath leam a dhèanamh soilleir, oir is ann mar sin a bhios fios agad na seòrsaichean prìneachan faodaidh tu cunntadh airson do phròiseactan:
- Biadh: tha na prìnichean sin air an cleachdadh gus na loidhnichean cumhachd no uèirleadh a cheangal airson do phròiseactan dealanach. Bidh iad a ’freagairt ri prìnichean coltach ris an fheadhainn air bòrd Arduino, agus a tha a’ toirt bholtachd 5v agus 3v3 (3.3v cuibhrichte gu luchdan 50mA). A bharrachd air an sin, gheibh thu cuideachd an fheadhainn talmhainn (GND no Ground). Mura cleachd thu stòran cumhachd taobh a-muigh leithid bataraidhean, no innealan-atharrachaidh, faodaidh na prìnichean sin a bhith nan cuideachadh mòr gus cumhachd a thoirt don chuairt agad.
- DNC (Na ceangail): tha iad nam prìneachan a tha ann an cuid de dhreachan agus aig nach eil gnìomh sam bith, ach gu bheil adhbhar eile air a thoirt dhaibh anns na bùird ùra. Chan fhaigh thu iad sin ach ann am modalan nas prìomhaiche den Pi. Anns na 3 agus 4 ùra bidh iad air an comharrachadh mar GND san fharsaingeachd, agus bidh e comasach dhaibh amalachadh sa bhuidheann roimhe.
- Prìnichean rèiteachaidh: Is iad na GPIOn àbhaisteach, agus faodaidh iad a bhith air am prògramadh le còdan mar a mhìnicheas mi nas fhaide air adhart gus na tha a dhìth ort a dhèanamh.
- Prìnichean sònraichte: is iad seo cuid de cheanglaichean a tha an dùil airson ceanglaichean sònraichte no eadar-aghaidh leithid ceanglaichean sreathach UART, TXD agus RXD, msaa, mar a thachras le Arduino. Gheibh thu eadhon cuid mar SDA, SCL, MOSI, MISO, SCLK, CE0, CE1, msaa. Tha iad a ’seasamh a-mach nam measg:
- PWM, a dh ’fhaodas leud na cuisle a riaghladh mar a chunnaic sinn ann an artaigil roimhe. Air an Raspberry Pi 3 agus 4 is iad sin an GPIO12, GPIO13, GPIO18 agus GPIO19.
- Is e SPI eadar-aghaidh conaltraidh eile air an do rinn mi deasbad ann an artaigil eile. A thaobh nam bùird ùra 40-pin, is iad sin na prìnichean (le diofar shianalan conaltraidh mar a chì thu):
- 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 na cheangal eile a mhìnich mi sa bhlog seo cuideachd. Tha am bus seo air a dhèanamh suas den chomharra dàta (GPIO2) agus an gleoc (GPIO3). A bharrachd air Dàta EEPROM (GPIO0) agus EEPROM Clock (GPIO1).
- Sreathach, conaltradh fìor phractaigeach eile le prìnichean TX (GPIO14) agus RX (GPIO15) mar an fheadhainn a lorgas tu air a ’bhòrd Arduino UNO.
Cuimhnich gur e GPIOs an eadar-aghaidh eadar an Raspberry Pi agus an saoghal a-muigh, ach tha sin aca a chuingealachaidhean, gu sònraichte dealanach. Is e aon rud a dh ’fheumas tu a thoirt fa-near gus nach milleadh thu am bòrd le bhith a’ cuimhneachadh gu bheil na prìnichean GPIO sin mar as trice gun taic, is e sin, às aonais bufair. Tha seo a ’ciallachadh nach eil dìon aca, mar sin feumaidh tu sùil a chumail air meud bholtachd is dianachd gus nach cuir thu crìoch air truinnsear gun fheum ...
Eadar-dhealachaidhean GPIO eadar dreachan
Mar a thuirt mi, chan eil na modailean uile nan aon phrìneachanSeo cuid de dhiagraman gus am faic thu na h-eadar-dhealachaidhean eadar modailean agus mar sin a bhith comasach air fòcas a chuir air an Raspberry Pi 4 agus 3, an fheadhainn as ùire agus am fear as dòcha a tha agad. Tha e eadar-dhealaichte (tha na h-aon phrìneachan aig gach buidheann):
- Raspberry Pi 1 Modail B Rev 1.0, le 26-pin beagan eadar-dhealaichte bho Rev2.
- Raspberry Pi 1 Modail A agus B Rev 2.0, an dà mhodail le 26-pin.
- Modal Rapsberry Pi A +, B +, 2B, 3B, 3B +, Zero agus Zero W, agus cuideachd 4 modailean. Gach aon dhiubh le ceann GPIO 40-pin.
Dè as urrainn dhomh a chuir a-steach do na GPIOn?
Chan e a-mhàin gum bi e comasach dhut ceangail innealan dealanach como transistors, mothachaidhean taiseachd / teòthachd, thermistors, motaran stepper, LED, msaa. Faodaidh tu cuideachd pàirtean no modalan a cheangal a chaidh a chruthachadh gu sònraichte airson an Raspberry Pi agus a leudaicheas comasan a ’bhùird nas fhaide na na tha air a ghabhail a-steach sa bhunait.
Tha mi a ’toirt iomradh air an fheadhainn ainmeil adan no adan agus lannan a lorgas tu sa mhargaidh. Tha iomadh seòrsa ann, bhon fheadhainn a thathas a ’cleachdadh airson smachd a chumail air motaran le draibhearan, gu feadhainn eile gus an cruthachadh brabhsair coimpiutaireachdLe Pannal LED smachd, to add Comas Tbh DVB, Sgrion LCDMsaa
Na h-adan no na h-adan sin Tha iad air an cur suas air bòrd Raspberry Pi, a ’maidseadh na GPIO a dh’ fheumar airson gun obraich e. Mar sin, tha an t-seanadh aige gu math sìmplidh agus luath. Gu dearbh, dèan cinnteach gu bheil an dreach plàta co-chòrdail ri gach ad, oir tha am port GPIO eadar-dhealaichte mar a chunnaic thu ...
Bidh mi ag ràdh seo air eagal ’s gum bi truinnsear nas sine agad, leis gu bheil adan co-chòrdail a-mhàin leis an fheadhainn as ùire. Mar a tha na modalan Raspberry Pi Model A +, B +, 2, 3, agus 4.
Ro-ràdh mu bhith a ’cleachdadh GPIO air an Raspberry Pi
Stòr: Raspberry Pi
Gus tòiseachadh, air Raspbian, faodaidh tu an consol agus an seòrsa fhosgladh an àithne pinoutIs e an rud a thilleas e air ais dhut ìomhaigh anns a ’phort-adhair leis na prìnichean GPIO ri fhaighinn air do bhòrd agus carson a tha gach fear. Rud gu math practaigeach a bhith an-còmhnaidh an làthair aig àm na h-obrach gus nach bi thu troimh-chèile.
A ’chiad phròiseact: a’ frasadh LED leis na GPIOs
An dòigh as bunaitiche airson seòrsa de a dhèanamh "Halo saoghal" le GPIOs a bhith a ’cleachdadh LED sìmplidh ceangailte ri prìnichean an Raspberry Pi gus am faic thu mar a tha iad ag obair. Anns a ’chùis seo, tha mi air a cheangal ri GND agus am fear eile ri prìne 17, ged as urrainn dhut fear eile de na prìnichean àbhaisteach a thaghadh ...
Aon uair 's gu bheil thu ceangailte, faodaidh tu smachd a chumail orra bho Raspbian a ’dèanamh feum den phort-adhair. Ann an Linux, thèid faidhlichean sònraichte a chleachdadh mar an fheadhainn anns an / sys / class / gpio / eolaire. Mar eisimpleir, gus faidhle a chruthachadh leis an structar riatanach gus tòiseachadh ag obair:
echo 17 > /sys/class/gpio/export
An uairsin is urrainn dhut rèiteachadh mar chur-a-steach (a-steach) no mar toradh (a-mach) am prìne 17 sin air a thaghadh mar eisimpleir. Faodaidh tu a dhèanamh gu math furasta le:
echo out > /sys/class/gpio/gpio17/direction
Anns a ’chùis seo mar thoradh, leis gu bheil sinn airson buille dealain a chuir chun LED gus a thionndadh air, ach mas e sensor a bh’ ann, msaa, dh ’fhaodadh tu a chleachdadh a-steach. A-nis airson tionndaidh air (1) no cuir dheth (0) an LED as urrainn dhut a chleachdadh:
echo 1 > /sys/class/gpio/gpio17/value echo 0 > /sys/class/gpio/gpio17/value
Ma tha thu airson gluasad air adhart gu pròiseact eile agus cuir às do inntrigeadh air a chruthachadh, faodaidh tu a dhèanamh mar seo:
echo 17 > /sys/class/gpio/unexport
Le t-slighe, faodaidh tu cuideachd na h-òrdughan riatanach uile a chruinneachadh airson do phròiseact, mar a h-uile gin roimhe, sàbhail iad ann an seòrsa faidhle sgriobt bash agus an uairsin ruith iad ann am pasgain uile aig an aon àm, an àite a bhith gan clò-sgrìobhadh aon ri aon. Tha seo feumail nuair a nì thu a-rithist an aon eacarsaich iomadh uair, mar sin cha leig thu leas ath-sgrìobhadh. Dìreach ruith is falbh. Mar eisimpleir:
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
Nuair a bhios tu deiseil, sàbhalaidh tu agus an uairsin faodaidh tu na ceadan iomchaidh a thoirt dha agus a chuir an gnìomh an sgriobt airson an LED a thionndadh air, feitheamh 1.3 diogan agus cuir dheth mar seo ann an lùb ...
chmod +x led.sh ./led.sh
Adhartas prògramaidh
Gu follaiseach tha na tha gu h-àrd ag obair airson pròiseactan dealanach beaga le glè bheag de phàirtean, ach ma tha thu airson rudeigin nas adhartaiche a chruthachadh, an àite nan àitheantan, is urrainn dhut a chleachdadh cànanan prògramachaidh gus sgriobtaichean no còdan stòr eadar-dhealaichte a dhèanamh a nì fèin-ghluasad air an obair.
Faodar an cleachdadh diofar innealan a phrògramadh, le cànanan gu math eadar-dhealaichte. Tha na leabharlannan a leasaich a ’choimhearsnachd a’ dèanamh rudan gu math nas fhasa dhut, leithid WiringPi, sysfs, pigpio, msaa. Faodaidh na prògraman a bhith glè eadar-dhealaichte, bho Python, a tha mar an roghainn as fheàrr le mòran, tro Ruby, Java, Perl, BASIC, agus eadhon C #.
Gu h-oifigeil, tha an Raspberry Pi a ’tabhann dhut mòran ghoireasan gus na GPIOs agad a phrògramadh, mar:
- Scratch, dhaibhsan nach eil eòlach air prògramadh agus a tha airson blocaichean tòimhseachain a ’phròiseict seo a chleachdadh leis am faodar Arduino a phrògramadh cuideachd, msaa. Tha prògramadh le blocaichean grafaigeach gu math intuitive agus gu math practaigeach airson raon foghlaim.
- Python: Leigidh a ’chànan prògramaidh sìmplidh seo dhut còdan sìmplidh is cumhachdach a chruthachadh, le mòran leabharlannan rim faighinn airson cha mhòr a h-uile dad a tha thu a’ smaoineachadh.
- Tha C / C ++ / C #: nan cànanan prògramachaidh nas cumhachdaiche gus binaries a chruthachadh gus eadar-obrachadh leis na GPIOn. Faodaidh tu a dhèanamh ann an grunn dhòighean, a ’cleachdadh an fhoirm àbhaisteach no eadar-aghaidh kernel tron leabharlannlibgpiod, ach cuideachd tro leabharlann treas-phàrtaidh leithid pygium.
- Giullachd3, coltach ris an Arduino.
Tagh gu sùbailte am fear as fheàrr leat no a tha thu a ’smaoineachadh a tha sìmplidh.
4 bheachd, fàg do chuid fhèin
Artaigil glè laghach mu bhith a ’tòiseachadh aig Rasperry
Tapadh leibh gu mòr.
an tusa an t-ùghdar?
Tha