A GPIO csapok használatának megtanulása a Raspberry Pi készüléken a lehetőségek egész világát tárja fel. A kezdő projektek során elsajátított alapelvek megnyitják az utat a barkács elektronika és a programozás hasznos ismeretei felé.
Ez az oktatóanyag kétféle módon mutat be gomb hozzáadását a Raspberry Pi projekthez. A gomb a LED vezérlésére szolgál. Írásbeli utasítások a videó alatt találhatók.
Szükséged lesz
A kezdéshez győződjön meg arról, hogy rendelkezik a következő összetevőkkel:
- 1 x Raspberry Pi (Bármi megteszi, ebben a bemutatóban a 3B modellt használják)
- 1 x nyomógomb
- 1 x LED
- 1 x 220 Ohm ellenállás (a magasabb értékek rendben vannak, a LED csak halványabb lesz)
- 1 x kenyeretábla
- Csatlakoztassa a vezetékeket
Összegyűjtés után a következőképpen kell kinéznie:
Szüksége lesz egy SD kártyára is, amelyen telepítve van a Raspbian operációs rendszer. Ennek leggyorsabb módja a NOOBS (New Out Of the Box Software) kép. Az erre vonatkozó utasítások ebben a videóban találhatók:
Az áramkör beállítása
A Pi GPIO csapjait fogja használni az áramkör létrehozásához, és ha nem ismeri őket, a miénk útmutató a Raspberry Pi GPIO csapokhoz segíteni fog. Az áramkör itt szinte megegyezik az előzővel Raspberry Pi LED projekt , a ma használt gomb hozzáadásával.
Állítsa be az áramkört az alábbi ábra szerint:
- Az 5v és GND csapok a kenyértábla tápcsöveihez csatlakoznak.
- 12. tű (GPIO 18) csatlakozik a LED pozitív lábához.
- Az egyik lába ellenállás a LED negatív lábához, a másik láb pedig a kenyértábla földi sínéhez kapcsolódik.
- 16. láb (GPIO 23) a gomb egyik oldalához, a másik oldala a kenyértábla földi sínéhez rögzül.
Miután beállította, így néz ki:
Ellenőrizze az áramkört, hogy megbizonyosodjon arról, hogy helyes, majd kapcsolja be a Raspberry Pi -t.
1. módszer: Az RPi.GPIO könyvtár
Miután a Pi elindult, menjen a menübe, és válassza ki Programozás> Thonny Python IDE . Megnyílik egy új Python -parancsfájl. Ha teljesen új vagy a Pythonban, ez egy nagyszerű nyelv kezdőknek, és sok remek hely van, ahol többet megtudhatsz a Pythonról, miután befejezted ezt az oktatóanyagot!
Kezdje az RPi.GPIO könyvtár importálásával és a tábla mód beállításával.
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
Most deklarálja a LED -ek és a gombcsapok változóit.
ledPin = 12
buttonPin = 16
Ne feledje, hogy mivel a tábla módra van állítva TÁBLA a PIN -számokat használjuk a GPIO -számok helyett. Ha ez zavaró számodra, akkor egy Raspberry Pi pinout diagram segíthet tisztázni.
A gomb beállítása
Ideje beállítani a GPIO csapokat. Állítsa a LED tűt kimenetre, a gombostűt pedig bemenetre egy felhúzó ellenállással
GPIO.setup(ledPin, GPIO.OUT)
GPIO.setup(buttonPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
A GPIO.IN utáni szöveg a belső felhúzó ellenállás a Raspberry Pi -ből. Ezt engedélyeznie kell, hogy tiszta leolvasást kapjon a gombból. Mivel a gomb a földelőcsaphoz megy, szükségünk van egy felhúzó ellenállásra, amely addig tartja a bemeneti csapot HIGH, amíg meg nem nyomja.
Mielőtt továbbmennénk, nézzük a fel- és lehúzó ellenállásokat.
Megszakítás: Húzza fel/húzza le az ellenállásokat
Amikor konfigurálja a GPIO tűt a bemenetre, akkor beolvassa azt, hogy meghatározza az állapotát. Ebben az áramkörben el kell olvasnia, hogy van -e csap MAGAS vagy ALACSONY a LED megnyomására a gomb megnyomásakor. Ez egyszerű lenne, ha ezek lennének az egyetlen állapotok, amelyekkel a tű rendelkezhet, de sajnos van egy harmadik állapot: ÚSZÓ .
Egy lebegőcsap értéke magas és alacsony között van, ezért a bemenet kiszámíthatatlanul működik. A fel-/lehúzó ellenállások ezt megoldják.
A fenti kép egy gomb és egy Raspberry Pi egyszerűsített diagramja. A GPIO tű a gombbal csatlakozik a földhöz. A belső felhúzó ellenállás rögzíti a GPIO csapot a belső Pi tápegységhez. Ez az áram folyik, és a csapot biztonságosan fel lehet húzni HIGH -ra.
Amikor megnyomja a gombot, a GPIO tű közvetlenül a földelőcsaphoz csatlakozik, és a gomb alacsony jelzést ad.
A lehúzható ellenállások arra szolgálnak, ha a kapcsoló a hálózati csatlakozóhoz van csatlakoztatva. Ezúttal a belső ellenállás rögzíti a GPIO tűt a földhöz, tartsa lenyomva a LOW gombot, amíg meg nem nyomja a gombot.
A felhúzás és a lehúzás ellenállás elmélete első pillantásra zavaró, de fontos ismeretek a mikrovezérlőkkel való munka során. Ha egyelőre nem egészen érted, ne aggódj!
Folytassuk ott, ahol abbahagytuk.
A programhurok
Ezután állítsa be a programhurkot:
while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)
Az míg Igaz A loop folyamatosan futtatja a kódot, amíg be nem fejezzük a programot. Minden alkalommal, amikor hurok, frissíti a buttonState a bemenet olvasásával a buttonPin . Amíg a gombot nem nyomja meg, addig marad MAGAS .
Miután megnyomta a gombot, buttonState válik ALACSONY . Ez kiváltja a ha állítás , azóta Hamis ugyanaz mint ALACSONY , és a LED bekapcsol. Az más utasítás kikapcsolja a LED -et, ha a gombPin nem hamis.
Mentse és futtassa a szkriptet
Mentse el a szkriptet a gombra kattintva Fájl> Mentés másként és a fájlnév kiválasztása. A vázlatot a zöldre kattintva futtathatja Játék gombot a Thonny eszköztáron.
Most nyomja meg a gombot, és a LED -nek világítania kell! Nyomja meg a pirosat Álljon meg gombot bármikor a program leállításához
Ha problémái vannak, ellenőrizze alaposan a kódot és az áramkör beállításait, és ne próbálja újra.
2. módszer: GPIO Zero Library
Az RPi.GPIO könyvtár fantasztikus, de van egy új gyerek a blokkban. A GPIO Zero Library volt a Raspberry Pi közösség menedzsere, Ben Nuttall készítette azzal a szándékkal, hogy a kódot egyszerűbbé, könnyebben olvashatóvá és írhatóvá tegye.
Az új könyvtár kipróbálásához nyisson meg egy új Thonny fájlt, és importálja a könyvtárat.
from gpiozero import LED, Button
from signal import pause
Észre fogja venni, hogy nem importálta a teljes könyvtárat. Mivel csak LED -et és gombot használ, a szkriptben csak azokra a modulokra van szüksége. Mi is importálunk Szünet a jeltárból, amely az eseménykezelés Python könyvtára.
A csapok beállítása sokkal egyszerűbb a GPIO Zero segítségével:
led = LED(18)
button = Button(23)
Mivel a GPIO Zero könyvtár modulokat tartalmaz a LED -hez és a gombhoz, nem kell be- és kimeneteket beállítani, mint korábban. Észre fogja venni, hogy bár a csapok nem változtak, a számok itt eltérnek a fentiektől. Ez azért van, mert a GPIO Zero csak a GPIO pin -számokat használja (más néven Broadcom vagy BCM számokat).
hogyan lehet megtudni, hogy feltörték -e a telefonomat
A szkript többi része csak három sor:
button.when_pressed = led.on
button.when_released = led.off
pause()
Az szünet() call itt egyszerűen leállítja a szkript kilépését, amikor eléri az alját. A kétgombos események a gomb megnyomásakor és elengedésekor aktiválódnak. Mentse el és futtassa a szkriptet, és ugyanazt az eredményt fogja látni, mint korábban!
Két módszer a gomb hozzáadására a Raspberry Pi -hez
A gomb beállításának két módja közül a GPIO Zero módszer tűnik a legegyszerűbbnek. Érdemes még megismerni az RPi.GPIO könyvtárat as a legtöbb kezdő Raspberry Pi projekt használd. Bármennyire egyszerű is ez a projekt, a tudást számos dologra fel lehet használni.
A GPIO csapok használata nagyszerű módja annak, hogy megtanulja és feltalálja saját eszközeit, de messze nem minden, amit a Pi -vel megtehet. A Raspberry Pi nem hivatalos útmutatója tele van kreatív ötletekkel és oktatóanyagokkal, amelyeket kipróbálhat! Egy másik ilyen oktatóanyagért nézze meg Wi-Fi csatlakoztatott gomb létrehozásának módja .
Részvény Részvény Csipog Email 5 tipp a VirtualBox Linux gépek feltöltéséhezUnod már a virtuális gépek által kínált gyenge teljesítményt? Íme, mit kell tennie a VirtualBox teljesítményének növelése érdekében.
Olvassa tovább Kapcsolódó témák- DIY
- Raspberry Pi
- Piton
- GPIO
- DIY projekt oktatóanyagok
Ian Buckley szabadúszó újságíró, zenész, előadó és videó producer, Berlinben, Németországban él. Amikor éppen nem ír vagy a színpadon, barkácsol elektronikával vagy kóddal, abban a reményben, hogy őrült tudós lesz.
Bővebben: Ian BuckleyIratkozzon fel hírlevelünkre
Csatlakozz hírlevelünkhöz, ahol technikai tippeket, véleményeket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!
Feliratkozáshoz kattintson ide