Yn gynharach eleni cawsoch daith o amgylch GPIO y Mws Cwn Môr a hefyd yn argymell rhai byrddau byrion defnyddiol iawn ar gyfer adnabod rhifau pin. Heddiw, rydym yn parhau â'r thema honno ac yn dechrau defnyddio'r pinnau hyn ynghyd â chod a chaledwedd.
Y GPIO yw sut mae'r Mws Mafon yn siarad â'r byd tu allan - "pethau go iawn" - gan ddefnyddio cod i raglennu signalau a folteddau i mewn ac allan o'r pennawd 40-pin.
Mae codio gyda'r GPIO yn rhesymol syml i ddechrau, yn enwedig ar gyfer prosiectau dechreuwyr megis LEDs a buzzers. Gyda dim ond ychydig o gydrannau ac ychydig linellau o god gallwch chi olau neu fflachio LED fel rhan o'ch prosiect.
Bydd yr erthygl hon yn dangos i chi yr hyn sydd ei angen arnoch i oleuo LED gan ddefnyddio cod Python ar eich Mws Mafon, gan ddefnyddio'r dull traddodiadol 'RPi.GPIO'.
01 o 04
Yr hyn sydd ei angen arnoch chi
Dyma restr o bopeth y bydd ei angen arnoch ar gyfer y prosiect cychwyn bach hwn. Dylech allu dod o hyd i'r eitemau hyn yn eich hoff siop gwneuthurwr neu arwerthiannau ar-lein.
- Mae gweithfan Mws Môr yn rhedeg y Raspbian (Pi, sgrin, bysellfwrdd, llygoden, pŵer, cerdyn SD diweddaraf - pob cysylltiad)
- Bwrdd bara bach
- LED 5mm
- Gwrthydd 330 ohm
- Gwifrau neidr 2 gwrywaidd i fenyw
02 o 04
Creu'r Cylchdaith - Cam 1
Byddwn yn defnyddio 2 pinnau GPIO ar gyfer y prosiect hwn, pin daear (pin ffisegol 39) ar gyfer coes daear y LED, a phin GPIO generig (GPIO 21, pin ffisegol 40) i rymio'r LED - ond dim ond pan rydym yn penderfynu - sef lle mae'r cod yn dod i mewn.
Yn gyntaf, dilewch eich Mws Mws. Nawr, gan ddefnyddio'r gwifrau siwmper, cysylltwch y pin daear i lôn ar eich breadboard. Nesaf yr un peth ar gyfer pin GPIO, gan gysylltu â lôn wahanol.
03 o 04
Creu'r Cylchdaith - Cam 2
Nesaf rydym yn ychwanegu'r LED a gwrthsefyll y cylched.
Mae gan LEDs polaredd - sy'n golygu bod rhaid eu gwifrau mewn ffordd benodol. Fel arfer mae ganddynt goes un hirach sef y goes anod (cadarnhaol), ac fel arfer yn ymyl fflat ar ben pen plastig LED sy'n dynodi'r goes cathod (negyddol).
Defnyddir gwrthydd i amddiffyn y ddau LED rhag cael gormod o gyfredol, a phin GPIO o 'roi' gormod - a allai niweidio'r ddau.
Mae rhywfaint o raddfa gwrthsefyll generig ar gyfer LEDs safonol - 330ohm. Mae rhai mathemateg y tu ôl i hynny, ond ar hyn o bryd gadewch i ni ganolbwyntio ar y prosiect - gallwch chi bob amser edrych ar gyfraith ohms a phynciau cysylltiedig wedyn.
Cysylltwch un goes o'r gwrthsefyll i'r lôn GND ar eich bwrdd, a'r gyfes gwrthsefyll arall i'r lôn sy'n gysylltiedig â choes byrrach eich LED.
Bellach mae angen i goes goes'r LED ymuno â'r lôn sy'n gysylltiedig â'r pin GPIO.
04 o 04
Cod GPIO Python (RPi.GPIO)
Ar hyn o bryd, mae gennym gylched wedi'i wifro i fyny ac yn barod i fynd, ond nid ydym wedi dweud wrth ein pin GPIO i anfon unrhyw bŵer eto, felly ni ddylid goleuo eich LED.
Gadewch i ni wneud ffeil Python i ddweud wrth ein pin GPIO i anfon rhywfaint o bŵer am 5 eiliad ac yna stopio. Bydd y fersiwn ddiweddaraf o Raspbian yn cael y llyfrgelloedd GPIO anweddus wedi'u gosod eisoes.
Agor ffenestr derfynell a chreu sgript Python newydd trwy fynd i mewn i'r gorchymyn canlynol:
sudo nano led1.pyBydd hyn yn agor ffeil wag i ni fynd i mewn i'n cod. Rhowch y llinellau isod:
#! / usr / bin / python # Mewnforio y llyfrgelloedd mae angen i ni fewnforio RPi.GPIO fel amser mewnforio GPIO # Gosodwch y modd GPIO GPIO.setmode (GPIO.BCM) # Gosodwch y rhif GPIO LED LED = 21 # Gosodwch y pin GPIO LED fel allbwn GPIO.setup (LED, GPIO.OUT) # Trowch y pin GPIO ar GPIO.output (LED, Gwir) # Arhoswch 5 eiliad time.sleep (5) # Trowch y pin GPIO oddi ar GPIO.output (LED, Ffug)Gwasgwch Ctrl + X i achub y ffeil. I redeg y ffeil, rhowch y gorchymyn canlynol yn y derfynell a gwasgwch:
sudo python led1.pyDylai'r LED ysgafn am 5 eiliad, yna trowch i ben, gan orffen y rhaglen.
Beth am roi cynnig ar newid y rhif 'time.sleep' i oleuo'r LED am wahanol adegau, neu geisio newid 'GPIO.output (LED, Gwir)' i 'GPIO.output (LED, Ffug)' a gweld beth sy'n digwydd?