Komme i gang med GPIO På en Raspberry Pi

Komme i gang med GPIO På en Raspberry Pi / DIY

Hvis du, selv om Arduino var kult, bare vent til du får hendene på en Raspberry Pi - disse tingene er fantastiske. I tillegg til å være en fullt funksjonell datamaskin, har de også et utvalg av Generell Inngang / Utgang pinner. På samme måte som en Arduino, kan vi bruke disse til å lage elektronikkprosjekter - og det er overraskende enkelt å komme i gang.

I dag kobler vi sammen et relé og bruker det til å skru på en LED, men du kan like lett slå på en lampe.

Denne introduksjonen fungerer som den første delen til et større hjem automatiseringsprosjekt. Christian har allerede lagt grunnlaget for å komme i gang med en Pi, så jeg vil ikke gjenta de første trinnene her for å laste ned et operativsystem eller plugge inn SD-kortet - jeg antar at du har en arbeider Raspian system allerede satt opp.

Advarsel: Selv om en Raspberry Pi kan brukes på samme måte som en Arduino, trenger litt mer omsorg. Pinnene på Pi opererer på 3.3v, mens Arduino bruker 5v. Mens det er mulig å slå en Arduino, er det mye lettere å bryte en Pi som pinnene kobler seg direkte til ombordbrikken - sende 5v der nede, kan steke den.

Vær derfor forsiktig med å forsøke å replikere Arduino-prosjekter på Pi-en din - enten følge en Pi-spesifikke opplæring, eller vær sikker på å ha en god forståelse av grunnleggende elektronikk.

Krav:

  • NPN transistor, slik som P2N2222A
  • 1k motstand
  • relé; Jeg bruker en 4-relé 5v-modul som har ekstra beskyttelseskretser innebygd (så det er ikke behov for ekstra dioder
  • LED og 220 ohm motstand for testing
  • Breakout-kabel

Breakout-kabel (“Cobbler Kit”)

GPIO-pinnene er plassert på siden av Pi, ved siden av RCA-videoutgangen.

Selv om du teknisk sett kunne koble noen kvinnelige endte jumperkabler direkte til disse, merkes de ikke på noen nyttig måte, og du er derfor mer sannsynlig å bryte noe. I stedet får du en breakout-kabel som denne fra Adafruit, eller en av de mange billigere klonene på eBay. Du må kanskje lodde dette da det kommer i kitform.

Selv om brettsiden har et hakk i det for å indikere riktig kabelplassering, gjør ikke Pi-siden det. Forsikre deg om at 3v og 5v-stifter i det høyeste hjørnet av Pi justerer med de aktuelle pinnene på brettet. Selvfølgelig, hvis du kjøpte en sak som ikke avslører GPIO-headeren, må du løpe med naken Pi, eller kutte et hull.

Alternativt kan du få en helpbrett som festes på toppen av Pi, og kommer vanligvis med et utvalg av nyttige komponenter.

Grunnleggende krets

Sett opp kretsen som beskrevet nedenfor. Jeg har slått ut relékretsen, da dette vil variere. Bruke NEI (normalt lukket) og COM terminaler av reléet ditt for din LED eller annen enhet.

Bruk pin 4 fra Raspberry Pi. På mitt breakout bord er det merket + GPCLK0; uansett, det er fjerde pin telling fra 3V3.

Kommandolinjeprøving

I de følgende eksemplene antar jeg at du er logget på over SSH eller på annen måte som roten bruker. Hvis ikke, må du forord noen av kommandoene med sudo for forhøyede rettigheter.

Først må vi installere WiringPi.

git klone git: //git.drogon.net/wiringPi cd wiringPi ./build

Forutsatt at alt gikk bra, burde vi nå kunne kontrollere GPIO direkte fra kommandolinjen slik:

gpio-g modus 4 ut gpio -g skrive 4 1

Den første kommandoen ligner Arduinos oppsettfunksjon der vi forteller Pi-bruk pin 4 som en utgang. Den neste kommandoen skriver en verdi på 1 til pinnen, som skal utløse transistoren, aktivere reléet, lukke kretsen for lysdioden og slå den på.

Rått. Hvis ikke, gå tilbake og kontroller ledningen. Klikker reléet?

Python

Selv om Python ikke er den eneste måten å kommunisere med GPIO-pinnene på, er det generelt sett det enkleste, og det er det vanligste som finnes i eksisterende prosjekter. I motsetning til C er Python relativt enkelt å plukke opp (her er 5 sider for å lære Python De 5 beste nettstedene å lære Python programmering De 5 beste nettstedene å lære Python programmering Vil du lære Python programmering? Her er de beste måtene å lære Python online, hvorav mange er helt gratis. Les mer).

Begynn med å installere følgende Python-utvidelser:

apt-install install python-dev apt-get install python-rpi.gpio

Nå, opprett en ny fil som heter test.py. hvis du bruker en kommandolinje, skriv inn

nano test.py

Lim inn eller skriv inn følgende (også på denne pastebin):

importere RPi.GPIO som GPIO importtid GPIO.setmode (GPIO.BCM) GPIO.setup (4, GPIO.OUT) for x i rekkevidde (0,10): time.sleep (5) GPIO.output (4,1) time.sleep (5) GPIO.output (4,0)

Dette er et veldig enkelt Python-skript som skal slå på LED-lampen (eller hva du har koblet til reléet ditt) i 5 sekunder og deretter av i 5 sekunder, 10 ganger. Du bør kunne forstå mesteparten av koden. De GPIO.setmode Linjen er ganske enkelt brukt til å indikere pin nummerering ordningen vi skal bruke.

Det er det! For å kjøre koden, skriv:

python test.py

Neste uke skal vi utarbeide oppsettet litt og gjøre noen spennende ting som å legge til talestyring. Hvis du skal legge til høyspente elektriske gjenstander i relékretsen, vil du være sikker på at du bruker et passende nominelt relé på live wire, og sørg for å legge alt sammen, så det er borte fra de nyfødte fingrene til babyer eller mamma. Men seriøst, vær trygg.

Vennligst legg inn dine spørsmål, kommentarer, tilbakemelding og haikus i boksen under - men vær oppmerksom på at jeg vil rangere deg på bruk av grammatikk.

Utforsk mer om: Raspberry Pi.