Komme i gang med GPIO På en Raspberry Pi

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 Generelle Input / Output pins.

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 Generelle Input / Output pins.
Annonse

verdig-RPI-GPIO 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 Generelle Input / Output pins. 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 et fungerende 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 i Pi opererer på 3.3v, mens Arduino bruker 5v . Selv om det er mulig å bryte en Arduino, er det mye lettere å bryte en Pi da pinnene kobles direkte til bordbrikken - sende 5v der nede, kan steke den.

Vær derfor forsiktig med å forsøke å replikere Arduino-prosjekter på Pi - enten følg 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.

breakout-kabel

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.

avslapnings-board

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.

klar-case-GPIO

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. Bruk NO (normalt lukket) og COM- terminaler på reléet ditt til din LED eller annen enhet.

krets

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

pin4

Kommandolinjeprøving

I de følgende eksemplene antar jeg at du er logget inn 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 clone 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 lett å hente opp (her er 5 sider for å lære Python De 5 beste nettstedene for å lære pythonprogrammering De 5 beste nettstedene for å lære pythonprogrammering Det siste tiåret har Python programmeringsspråket eksplodert i popularitet blant programmerere i alle områder av koding. Fra webutviklere til videospilldesignere til in-house verktøyskapere har mange mennesker falt i ... Les mer).

Begynn med å installere følgende Python-utvidelser:

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

Opprett nå 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):

 import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) for x in range(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. 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 

ferdig

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-ledningen, og sørg for å legge alt inn slik at det er borte fra de nysgjerrige fingrene av babyer eller mamma. Seriøst skjønt, 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.

In this article