Kom i gang med GPIO på en Raspberry Pi

Hvis du, selvom Arduino var cool, bare vent indtil du får dine hænder på en Raspberry Pi - disse ting er fantastiske. Ud over at være en fuldt funktionel computer har de også et udvalg af Generelle Indgangs- / Outputstifter.

Hvis du, selvom Arduino var cool, bare vent indtil du får dine hænder på en Raspberry Pi - disse ting er fantastiske.  Ud over at være en fuldt funktionel computer har de også et udvalg af Generelle Indgangs- / Outputstifter.
Reklame

featured-RPI-GPIO Hvis du, selvom Arduino var cool, bare vent indtil du får dine hænder på en Raspberry Pi - disse ting er fantastiske. Ud over at være en fuldt funktionel computer har de også et udvalg af Generelle Indgangs- / Outputstifter . Ligesom en Arduino kan vi bruge disse til at skabe elektronikprojekter - og det er overraskende nemt at komme i gang.

I dag forbinder vi et relæ og bruger det til at tænde en LED, men du kan lige så nemt tænde en lampe.

Denne introduktion tjener som første del til et større hjemmeautomatiseringsprojekt. Christian har allerede lagt grunden til at komme i gang med en Pi, så jeg gentager ikke de første trin her for at downloade et operativsystem eller tilslutte SD-kortet - jeg antager, at du har et fungerende Raspian-system, der allerede er oprettet.

Advarsel : Selv om en Raspberry Pi kan bruges på samme måde som en Arduino, behøver lidt mere pleje. Pinsens pinde opererer på 3.3v, mens Arduino bruger 5v . Selvom det er muligt at bryde en Arduino, er det meget nemmere at bryde en Pi, da stifterne forbinder direkte til indbygget chip - at sende 5v dernede kan fryse det.

Vær derfor meget forsigtig med at forsøge at replikere Arduino-projekter på din Pi - enten følg en Pi-specifik vejledning eller vær sikker på at have en god forståelse af grundlæggende elektronik.

Krav:

  • NPN transistor, såsom P2N2222A
  • 1k modstand
  • relay; Jeg bruger et 4-relæ 5v modul, som har ekstra beskyttelse kredsløb indbygget (så ingen brug for ekstra dioder
  • LED og 220 ohm modstand til test
  • Breakout kabel

Breakout kabel ("Cobbler Kit")

GPIO-stifterne er placeret på siden af ​​Pi ved siden af ​​RCA-udgangsstikket.

breakout-kabel

Selv om du teknisk set kunne forbinde nogle jumperkabel direkte til disse, er de ikke mærket på nogen nyttig måde, og du er derfor mere tilbøjelige til at bryde noget. I stedet får du et breakout-kabel som dette fra Adafruit, eller en af ​​de mange billigere kloner på eBay. Du skal muligvis lodde dette, da det kommer i kit form.

breakout bord

Selv om bordets side har et indlæg i det for at indikere korrekt kabelplacering, gør Pi-siden ikke det. Sørg for at 3v- og 5v-stifterne i Pi's yderste hjørne stemmer overens med de relevante stifter på brættet. Selvfølgelig, hvis du har købt en sag, der ikke afslører GPIO header så skal du køre med nøgen Pi, eller skære et hul.

klar-case-GPIO

Alternativt kan du få en helpension, der anbringer oven på din Pi, og leveres normalt med et udvalg af nyttige komponenter.

Basic Circuit

Indstil kredsløbet som beskrevet nedenfor. Jeg har udeladt relæ kredsløb, da dette vil variere. Brug NO- relæets (normalt lukket) og COM- terminaler til din LED eller anden enhed.

kredsløb

Brug pin 4 fra Raspberry Pi. På min breakout bord er det mærket + GPCLK0; uanset, det er den fjerde pin tælle fra 3V3.

Ben4

Kommandolinje test

I de følgende eksempler antager jeg, at du er logget ind over SSH eller på anden måde som root-brugeren. Hvis ikke, skal du forord nogle af kommandoerne med sudo for forhøjede rettigheder.

Først skal vi installere WiringPi .

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

Forudsat at alt gik godt, skal vi nu kunne styre GPIO direkte fra kommandolinjen som denne:

 gpio-g mode 4 ud gpio -g skrive 4 1 

Den første kommando svarer til Arduinos opsætningsfunktion, hvor vi fortæller Pi-brugstap 4 som en output. Den næste kommando skriver en værdi på 1 til stiften, som skal udløse transistoren, aktivere relæet, lukke kredsløbet for LED'en og tænd den.

Fantastisk. Hvis det ikke gør det, skal du gå tilbage og kontrollere dit ledninger. Klikker relæet?

Python

Selvom Python ikke er den eneste måde at kommunikere med GPIO-tappene på, anses det generelt for det nemmeste, og det er det mest almindelige i eksisterende projekter. I modsætning til C er Python relativt let at hente (her er 5 steder at lære Python De 5 bedste hjemmesider til at lære pythonprogrammering De 5 bedste hjemmesider til at lære pythonprogrammering I løbet af det sidste årti har Python programmeringssproget eksploderet i popularitet blandt programmører i alle Områder med kodning. Fra webudviklere til videospildesignere til in-house værktøjer skabere, er mange mennesker faldet i ... Læs mere).

Begynd ved at installere følgende Python-udvidelser:

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

Opret nu en ny fil, der hedder test.py. hvis du bruger en kommandolinje, skal du skrive

 nano test.py 

Indsæt eller skriv 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 meget simpelt Python-script, som vil tænde LED'en (eller hvad du har koblet til relæet) i 5 sekunder og derefter slukket i 5 sekunder, 10 gange . Du skal kunne forstå det meste af koden. GPIO.setmode- linjen bruges simpelthen til at angive den pin nummereringsordning, vi skal bruge.

Det er det! For at køre koden skal du skrive:

 python test.py 

færdig

Næste uge uddyber vi opsætningen lidt og laver nogle spændende ting som at tilføje stemmekontrol. Hvis du vil føje højspændingsledninger til relæets kredsløb, vil du være sikker på, at du bruger et passende nominelt relæ på live-ledningen, og sørg for at vedlægge alt, så det er væk fra de nysgerrige fingre af babyer eller mor. Alvorligt, vær sikker.

Venligst skriv dine spørgsmål, kommentarer, feedback og haikus ind i boksen nedenfor - men husk på, at jeg vil bedømme dig om brug af grammatik.

In this article