2 måder at føje en knap til dit Raspberry Pi-projekt på

  • Peter Holmes
  • 0
  • 5350
  • 900
Reklame

At lære at bruge GPIO-pins på din Raspberry Pi åbner en hel verden af ​​muligheder. De grundlæggende principper lært gennem nybegynderprojekter baner vejen for nyttig viden om både DIY-elektronik og programmering.

Denne tutorial viser dig to måder at føje en knap til dit Raspberry Pi-projekt på. Knappen bruges til at styre en LED. Skriftlige instruktioner er tilgængelige under videoen.

Du får brug for

For at komme i gang skal du sikre dig, at du har følgende komponenter:

  • 1 x Raspberry Pi (Alle vil gøre, model 3B bruges i denne tutorial)
  • 1 x trykknap
  • 1 x LED
  • 1 x 220 Ohm modstand (Højere værdier er fine, din LED bliver bare lysere)
  • 1 x Breadboard
  • Tilslut ledninger

Når du først er samlet, skal du have komponenter, der ligner sådan:

Du har også brug for et SD-kort med Raspbian-operativsystemet installeret. Den hurtigste måde at gøre dette på er med billedet NOOBS (New Out Of the Box Software). Instruktioner til, hvordan man gør dette, findes i denne video:

Opsætning af kredsløbet

Du bruger PIO's GPIO-pins til at fremstille kredsløbet, og hvis du ikke kender dem, hjælper vores guide til Raspberry Pi GPIO-pins. Kredsløbet her er næsten det samme som i vores tidligere Raspberry Pi LED-projekt, med tilføjelsen af ​​den knap, du bruger i dag.

Indstil dit kredsløb i henhold til dette diagram:

  • Det 5v og GND stifter forbindes til strømskinnerne på brødbrættet.
  • Pin 12 (GPIO 18) forbindes til den positive ben af ​​LED.
  • Et ben af modstand fastgøres til LED's negative ben, og det andet ben fastgøres til jordskinnen på brødbrættet.
  • Pin 16 (GPIO 23) fastgøres til den ene side af knappen, den anden side fastgøres til jordskinnen på brødbrættet.

Når det er konfigureret, er det sådan, det skal se ud:

Kontroller dit kredsløb for at sikre dig, at det er korrekt, og tænd derefter din Raspberry Pi.

Metode 1: RPi.GPIO-biblioteket

Når Pi er startet, skal du gå til menuen og vælge Programmering> Thonny Python IDE. Et nyt Python-script åbnes. Hvis du er helt ny med Python, er det et fantastisk sprog for begyndere, og der er mange gode steder at lære mere om Python, når du er færdig med denne tutorial!

Start med at importere RPi.GPIO-biblioteket, og indstil korttilstand.

import RPi.GPIO som GPIO GPIO.setmode (GPIO.BOARD) 

Angiv nu variablerne for LED- og knapnålnumrene.

ledPin = 12 knapPin = 16 

Bemærk, at da vi har brættetilstand indstillet til BESTYRELSE vi bruger pin-numrene i stedet for GPIO-numrene. Hvis det er forvirrende for dig, kan et Raspberry Pi pinout-diagram hjælpe med at rydde det op.

Opsætning af knappen

Det er tid til at indstille GPIO-stifterne. Indstil LED-stiften til udgang, og knapstiften til at indtaste med en pull-up-modstand

GPIO.setup (ledPin, GPIO.OUT) GPIO.setup (buttonPin, GPIO.IN, pull_up_down = GPIO.PUD_UP) 

Teksten efter GPIO.IN henviser til intern pull-up modstand af Raspberry Pi. Du skal aktivere dette for at få en ren læsning fra knappen. Da knappen går til jordstiften, har vi brug for en pull-up-modstand for at holde indgangsstiften HØJ, indtil du trykker på den.

Før vi fortsætter, lad os se på pull-up og pull-down modstande.

Pause: Træk op / træk modstande

Når du konfigurerer en GPIO-pin til input, læser den denne pin for at bestemme dens tilstand. I dette kredsløb skal du læse, om en pin er HØJ eller LAV for at udløse LED, når der trykkes på knappen. Dette ville være enkelt, hvis det var de eneste stater, en pin kan have, men desværre er der en tredje tilstand: FLYDENDE.

En flydende stift har en værdi mellem høj og lav, hvilket får input til at handle uforudsigeligt. Træk-op / ned-ned-modstande løser dette.

Ovenstående billede er et forenklet diagram over en knap og en Raspberry Pi. GPIO-pin forbindes til jorden gennem knappen. Den interne trækmodstand fastgør GPIO-stiften til den interne Pi-strømforsyning. Denne strøm flyder, og stiften trækkes sikkert op til HØJ.

Når du trykker på knappen, forbindes GPIO-stiften direkte til jordstiften, og knappen læser lavt.

Pull-down modstande er til, når kontakten er tilsluttet strømstiften. Denne gang fastgør den interne modstand GPIO-stiften til jorden og holder LAV ind, indtil du trykker på knappen.

Pull-up og Pull-down modstandsteori er forvirrende ved første øjekast, men vigtig viden at have, når man arbejder med mikrokontrollere. For øjeblikket, hvis du ikke helt forstår det, skal du ikke bekymre dig!

Lad os fortsætte, hvor vi slap.

Programsløjfen

Indstil derefter programsløjfen:

mens sandt: buttonState = GPIO.input (buttonPin) hvis buttonState == Falsk: GPIO.output (ledPin, GPIO.HIGH) andet: GPIO.output (ledPin, GPIO.LOW) 

Det mens sandt loop kører løbende koden inde i den, indtil vi afslutter programmet. Hver gang den sløjfer, opdaterer den buttonState ved at læse input fra buttonPin. Mens der ikke trykkes på knappen, forbliver den HØJ.

Når der trykkes på knappen, buttonState bliver til LAV. Dette udløser hvis erklæring, siden Falsk er det samme som LAV, og LED tændes. Det andet erklæring slukker lysdioden, når knapspinden ikke er falsk.

Gem og kør dit script

Gem dit script ved at klikke på Fil> Gem som og vælge et filnavn. Du kan køre skitsen ved at klikke på det grønne Spille -knappen i Thonny-værktøjslinjen.

Tryk nu på knappen, og din LED skal lyse! Tryk på det røde Hold op til enhver tid for at stoppe programmet

Hvis du har vanskeligheder, skal du kontrollere din kode og kredsløbskonfiguration grundigt for fejl, og prøv igen.

Metode 2: GPIO Zero Library

RPi.GPIO-biblioteket er fantastisk, men der er en ny dreng på blokken. GPIO Zero Library blev oprettet af Raspberry Pi community manager Ben Nuttall med det formål at gøre kode enklere og lettere at læse og skrive.

For at teste det nye bibliotek skal du åbne en ny Thonny-fil og importere biblioteket.

fra gpiozero import-LED, knap fra signalimportpause 

Du vil bemærke, at du ikke importerede hele biblioteket. Da du kun bruger en LED og en knap, kræver du kun disse moduler i scriptet. Vi importerer også Pause fra signalbiblioteket, som er et Python-bibliotek til begivenhedsstyring.

Det er meget nemmere at installere stifterne med GPIO Zero:

led = LED (18) knap = knap (23) 

Da GPIO Zero-biblioteket har moduler til LED og knap, behøver du ikke at konfigurere indgange og udgange som før. Du vil bemærke, at selvom stifterne ikke har ændret sig, er tallene her forskellige fra oven. Det skyldes, at GPIO Zero kun bruger GPIO-pin-numrene (også kendt som Broadcom- eller BCM-numre).

Resten af ​​scriptet er kun tre linjer:

button.when_pressed = led.on button.when_released = led.off pause () 

Det pause() opkald her forhindrer simpelthen scriptet i at afslutte, når det når bunden. Begivenheder med to knapper bliver udløst, når knappen trykkes og slippes. Gem og kør dit script, så ser du det samme resultat som før!

To måder at tilføje en knap til Raspberry Pi

Ud af de to måder at indstille knappen på synes GPIO Zero-metoden at være den letteste. Det er stadig værd at lære om RPi.GPIO-biblioteket, da de fleste nybegynder Raspberry Pi-projekter bruger det. Så enkelt som dette projekt er, kan viden bruges til en række ting.

Brug af GPIO-pins er en fantastisk måde at lære og opfinde dine egne enheder på, men det er langt fra alt, hvad du kan gøre med Pi. Vores uofficielle guide til Raspberry Pi Raspberry Pi: Den uofficielle tutorial Raspberry Pi: Den uofficielle tutorial Uanset om du er en nuværende Pi-ejer, der ønsker at lære mere eller en potentiel ejer af denne enhed med kreditkortstørrelse, er dette ikke en guide du vil gå glip af. er fuld af kreative ideer og tutorials, du kan prøve selv! For en anden tutorial som denne, kan du se, hvordan du opretter en Wi-Fi-tilsluttet knap. Sådan opretter du din egen Wi-Fi-tilsluttede knap med ESP8266 Sådan opretter du din egen Wi-Fi-tilsluttede knap med ESP8266 I denne selvstudie lærer du, hvordan at oprette en Wi-Fi-aktiveret knap ved hjælp af NodeMCU og IFTTT. .




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.