2 viisi nupu lisamiseks oma Raspberry Pi projektile

2 viisi nupu lisamiseks oma Raspberry Pi projektile

Raspberry Pi GPIO nööpnõelte kasutamise õppimine avab terve hulga võimalusi. Algajate projektide kaudu õpitud aluspõhimõtted sillutavad teed nii isetegemise elektroonika kui ka programmeerimise kasulike teadmiste juurde.





See õpetus näitab teile kahte võimalust nupu lisamiseks oma Raspberry Pi projektile. Nuppu kasutatakse LED -i juhtimiseks. Kirjalikud juhised on saadaval video all.





Sa vajad

Alustamiseks veenduge, et teil on järgmised komponendid:





  • 1 x Raspberry Pi (sobib kõik, selles õpetuses kasutatakse mudelit 3B)
  • 1 x nupp
  • 1 x LED
  • 1 x 220 oomi takisti (kõrgemad väärtused on korras, teie LED on lihtsalt tuhmim)
  • 1 x leivalaud
  • Ühendage juhtmed

Kui olete kogunud, peaksid teil olema komponendid, mis näevad välja umbes sellised:

Teil on vaja ka SD -kaarti, kuhu on installitud Raspbiani operatsioonisüsteem. Kiireim viis seda teha on NOOBS (New Out Of Box Software) pilt. Juhised selle kohta, kuidas seda teha, on saadaval selles videos:



Vooluringi seadistamine

Vooluringi tegemiseks kasutate Pi GPIO tihvte ja kui te pole nendega tuttavad, siis meie Raspberry Pi GPIO tihvtide juhend aitab. Ahel on siin peaaegu sama, mis meie eelmises Raspberry Pi LED -projekt , lisades nupu, mida täna kasutate.

Seadistage vooluring vastavalt sellele skeemile:





  • The 5v ja GND tihvtid ühendatakse leivalaua toitepiiretega.
  • Nõel 12 (GPIO 18) ühendub LED -i positiivse jalaga.
  • Üks jalg takisti kinnitub LED -i negatiivse jala külge ja teine ​​jalg kinnitub leivaplaadi maandusrööpa külge.
  • Pin 16 (GPIO 23) kinnitub nupu ühele küljele, teine ​​külg kinnitatakse leivaplaadi maandusrööpa külge.

Kui see on seadistatud, peaks see välja nägema järgmiselt.

Kontrollige oma vooluringi, et veenduda selle õigsuses, ja lülitage seejärel oma Raspberry Pi sisse.





1. meetod: RPi.GPIO raamatukogu

Kui Pi on käivitunud, minge menüüsse ja valige Programmeerimine> Thonny Python IDE . Avaneb uus Pythoni skript. Kui olete Pythonis täiesti uus, on see suurepärane keel algajatele ja pärast selle õpetuse lõpetamist on Pythonist palju rohkem teada saada!

Alustage RPi.GPIO teegi importimisega ja tahvlirežiimi seadistamisega.

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

Nüüd deklareerige LEDide ja nuppude numbrite muutujad.

ledPin = 12
buttonPin = 16

Pange tähele, et kuna meil on tahvlirežiim seatud LAUA me kasutame PIN -numbreid, mitte GPIO -numbreid. Kui see tekitab teile segadust, aitab Raspberry Pi pinout -diagramm selle selgeks teha.

Nupu seadistamine

On aeg seadistada GPIO tihvtid. Seadke LED-tihvt väljundisse ja nööpnõel sisenditõmbega

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

GPIO.IN -i järel olev tekst viitab sisemine tõmbetakistus Raspberry Pi -st. Selle nupu puhta lugemise saamiseks peate selle lubama. Kuna nupp läheb maandusnõelale, vajame tõmbetakistit, mis hoiab sisendnõela KÕRGE kuni selle vajutamiseni.

Enne kui jätkame, vaatame tõmbe- ja tõmbetakistusi.

Vaheaeg: tõmba üles/alla tõmbetakistid

Kui konfigureerite GPIO pin sisestamiseks, loeb see selle oleku kindlaks. Selles vooluringis peate lugema, kas tihvt on KÕRGE või MADAL LED -i käivitamiseks, kui nuppu vajutatakse. See oleks lihtne, kui need oleksid ainsad olekud, millel tihvt võib olla, kuid kahjuks on olemas kolmas olek: UJUV .

Ujuva tihvti väärtus on kõrge ja madal, mistõttu sisend toimib ettearvamatult. Tõmbe-/allalaadimistakistid lahendavad selle.

Ülaltoodud pilt on nupu ja Raspberry Pi lihtsustatud skeem. GPIO tihvt ühendatakse maapinnaga nupu kaudu. Sisemine tõmbetakistus kinnitab GPIO tihvti sisemise Pi toiteallika külge. See vool voolab ja tihvt tõmmatakse ohutult üles KÕRGE.

Kui vajutate nuppu, ühendub GPIO -pistik otse maandusnõelaga ja nupp kuvab madal.

Tõmbetakistid on ette nähtud siis, kui lüliti on ühendatud toitepistikuga. Seekord kinnitab sisemine takisti GPIO tihvti maa külge, hoides all nuppu LOW, kuni vajutate nuppu.

Pull-up ja pull-down takisti teooria on esmapilgul segane, kuid olulised teadmised mikrokontrolleritega töötamisel. Kui te praegu sellest päris täpselt aru ei saa, siis ärge muretsege!

Jätkame sealt, kus pooleli jäime.

Programmi tsükkel

Seejärel seadistage programmi tsükkel:

while True:
buttonState = GPIO.input(buttonPin)
if buttonState == False:
GPIO.output(ledPin, GPIO.HIGH)
else:
GPIO.output(ledPin, GPIO.LOW)

The samas tõsi loop jookseb pidevalt koodi sees, kuni me programmi lõpetame. Iga kord, kui see kordub, värskendab see buttonState lugedes sisendit nuppPin . Kuigi nuppu ei vajutata, jääb see alles KÕRGE .

Kui nuppu on vajutatud, buttonState muutub MADAL . See käivitab kui avaldus , alates Vale on sama nagu MADAL ja LED süttib. The muidu avaldus lülitab LED -i välja, kui nupp Pin ei ole vale.

Salvestage ja käivitage oma skript

Salvestage skript, klõpsates sellel Fail> Salvesta nimega ja faili nime valimine. Eskiisi saate käivitada, klõpsates rohelist Esita nuppu Thonny tööriistaribal.

Nüüd vajutage nuppu ja teie LED peaks süttima! Vajutage punast Peatus programmi peatamiseks igal ajal nuppu

Kui teil on raskusi, kontrollige oma koodi ja vooluahela seadistusi põhjalikult vigade osas ja proovige uuesti.

2. meetod: GPIO Zero Library

RPi.GPIO raamatukogu on fantastiline, kuid plokis on uus laps. GPIO nullraamatukogu oli loonud Raspberry Pi kogukonnajuht Ben Nuttall eesmärgiga muuta kood lihtsamaks ning seda on lihtsam lugeda ja kirjutada.

Uue kogu testimiseks avage uus Thonny -fail ja importige kogu.

from gpiozero import LED, Button
from signal import pause

Märkate, et te pole kogu raamatukogu importinud. Kuna kasutate ainult LED -i ja nuppu, vajate skriptis ainult neid mooduleid. Samuti impordime Paus signaaliteegist, mis on sündmuste haldamiseks Pythoni teek.

Tihvtide seadistamine on GPIO Zero abil palju lihtsam:

led = LED(18)
button = Button(23)

Kuna GPIO Zero raamatukogus on LED -i ja nupu jaoks moodulid, ei pea te sisendeid ja väljundeid seadistama nagu varem. Märkate, et kuigi tihvtid pole muutunud, on siin numbrid ülaltoodust erinevad. Seda seetõttu, et GPIO Zero kasutab ainult GPIO pin -numbreid (tuntud ka kui Broadcom või BCM -numbrid).

kuidas ps4 -l kontot kustutada

Ülejäänud skript on ainult kolm rida:

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

The paus () kõne siin lihtsalt peatab skripti väljumise, kui see jõuab põhja. Kahe nupuga sündmused käivituvad iga kord, kui nuppu vajutatakse ja vabastatakse. Salvestage ja käivitage oma skript ning näete sama tulemust nagu varem!

Kaks võimalust nupu lisamiseks Raspberry Pi -le

Kahest nupu seadistamise viisist näib GPIO Zero meetod olevat kõige lihtsam. RPi.GPIO raamatukogu kohta tasub siiski õppida enamik algajaid Raspberry Pi projekte kasuta seda. Nii lihtne kui see projekt on, saab teadmisi kasutada mitmeks otstarbeks.

GPIO nööpnõelte kasutamine on suurepärane viis oma seadmete õppimiseks ja leiutamiseks, kuid see pole kaugeltki kõik, mida saate Pi -ga teha. Meie Raspberry Pi mitteametlik juhend on täis loomingulisi ideid ja õpetusi, mida saate ise proovida! Teise sellise õpetuse jaoks vaadake seda kuidas luua Wi-Fi ühendatud nupp .

Jaga Jaga Piiksuma E -post 5 näpunäidet VirtualBox Linuxi masinate ülelaadimiseks

Kas olete väsinud virtuaalmasinate halvast jõudlusest? Siin on, mida peaksite tegema oma VirtualBoxi jõudluse suurendamiseks.

Loe edasi
Seotud teemad
  • Isetegija
  • Vaarika Pi
  • Python
  • GPIO
  • DIY projektiõpetused
Autori kohta Ian Buckley(Avaldatud 216 artiklit)

Ian Buckley on vabakutseline ajakirjanik, muusik, esineja ja videoprodutsent, kes elab Saksamaal Berliinis. Kui ta parasjagu ei kirjuta ega laval, nokitseb ta isetehtud elektroonika või koodi kallal, lootuses saada hulluks teadlaseks.

Rohkem Ian Buckleylt

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin