Raspberry Pi is een op ARM-architectuur gebaseerde processor, ontworpen voor elektronische ingenieurs en hobbyisten. De PI is momenteel een van de meest vertrouwde platformen voor projectontwikkeling. Met een hogere processorsnelheid en 1 GB RAM kan de PI worden gebruikt voor veel spraakmakende projecten zoals beeldverwerking en internet der dingen.
Voor het doen van spraakmakende projecten moet men de basisfuncties van PI begrijpen. Daarom zijn we hier, we zullen in deze tutorials alle basisfunctionaliteiten van Raspberry Pi behandelen. In elke tutorialserie bespreken we een van de functies van PI. Aan het einde van de tutorialseries kun je zelf spraakmakende projecten doen. Bekijk deze voor Aan de slag met Raspberry Pi en Raspberry Pi-configuratie.
Het tot stand brengen van communicatie tussen PI en gebruiker is erg belangrijk voor het ontwerpen van projecten op PI. Voor de communicatie moet PI input van de gebruiker ontvangen. In deze tweede tutorial van de PI-serie zullen we een knop verbinden met Raspberry Pi om INPUTS van de gebruiker te nemen.
Hier zullen we een knop verbinden met een GPIO-pin en een LED met een andere GPIO-pin van Raspberry Pi. We zullen een programma in PYTHON schrijven om de LED continu te laten knipperen bij het indrukken van de knop door de gebruiker. LED zal knipperen door de GPIO aan en uit te zetten.
Laten we, voordat we beginnen met programmeren, een beetje praten over de LINUX en PYHTON.
LINUX:
LINUX is een besturingssysteem zoals Windows. Het voert alle basisfuncties uit die Windows OS kan doen. Het belangrijkste verschil tussen hen is dat Linux open source-software is en Windows dat niet is. Wat het in feite betekent, is dat Linux gratis is, terwijl Windows dat niet is. Linux OS kan gratis worden gedownload en gebruikt, maar voor het downloaden van legitiem Windows OS moet je het geld betalen.
En een ander groot verschil tussen hen is dat Linux OS kan worden 'aangepast' door in de code te tweaken, maar Windows OS kan niet worden gewijzigd, wat tot juridische complicaties zal leiden. Dus iedereen kan het Linux-besturingssysteem gebruiken en het aanpassen aan zijn vereisten om zijn eigen besturingssysteem te creëren. Maar we kunnen dit niet doen in Windows, het Windows-besturingssysteem is voorzien van beperkingen om te voorkomen dat u het besturingssysteem bewerkt.
Hier hebben we het over Linux omdat JESSIE LITE (Raspberry Pi OS) op LINUX gebaseerd besturingssysteem is, dat we hebben geïnstalleerd in het Raspberry Pi Inleidingsgedeelte. Het PI OS wordt gegenereerd op basis van LINUX, dus we moeten iets weten over LINUX-bedieningsopdrachten. We zullen deze Linux-commando's bespreken in de volgende tutorials.
PYTHON:
In tegenstelling tot LINUX is PYTHON een programmeertaal zoals C, C ++ en JAVA enz. Deze talen worden gebruikt om applicaties te ontwikkelen. Onthoud dat programmeertalen draaien op het besturingssysteem. U kunt geen programmeertaal uitvoeren zonder besturingssysteem. OS is dus onafhankelijk, terwijl programmeertalen afhankelijk zijn. U kunt PYTHON, C, C ++ en JAVA zowel op Linux als Windows draaien.
Applicaties ontwikkeld door deze programmeertalen kunnen games, browsers, apps etc. zijn. We zullen programmeertaal PYTHON gebruiken op onze PI, om projecten te ontwerpen en om de GPIO's te manipuleren.
We zullen een beetje over PI GPIO praten voordat we verder gaan,
GPIO-pinnen:
Zoals te zien is in de bovenstaande afbeelding, zijn er 40 uitgangspennen voor de PI. Maar als je naar de tweede figuur kijkt, zie je dat niet alle 40 pin-out voor ons gebruik kunnen worden geprogrammeerd. Dit zijn slechts 26 GPIO-pinnen die kunnen worden geprogrammeerd. Deze pinnen gaan van GPIO2 naar GPIO27.
Deze 26 GPIO-pinnen kunnen naar behoefte worden geprogrammeerd. Sommige van deze pinnen hebben ook een aantal speciale functies, daar zullen we later op terugkomen. Met speciale GPIO opzij gelegd, hebben we 17 GPIO over (lichtgroen Cirl).
Elk van deze 17 GPIO-pinnen kan maximaal 15 mA stroom leveren. En de som van de stromen van alle GPIO's mag niet groter zijn dan 50mA. We kunnen dus gemiddeld maximaal 3mA trekken uit elk van deze GPIO-pinnen. Men moet dus niet aan deze dingen knoeien, tenzij u weet wat u doet.
Vereiste componenten:
Hier gebruiken we Raspberry Pi 2 Model B met Raspbian Jessie OS. Alle basisvereisten voor hardware en software zijn eerder besproken, u kunt het opzoeken in de Raspberry Pi-introductie, behalve dat we nodig hebben:
- Verbindende pinnen
- 220Ω of 1KΩ weerstand
- LED
- Knop
- Broodplank
Circuit uitleg:
Zoals aangegeven in het schakelschema gaan we een LED aansluiten op PIN35 (GPIO19) en een knop op PIN37 (GPIO26). Zoals eerder gezegd, kunnen we niet meer dan 15mA uit een van deze pinnen halen, dus om de stroom te beperken, verbinden we een 220Ω of 1KΩ weerstand in serie met de LED.
Werkende uitleg:
Zodra alles is aangesloten, kunnen we de Raspberry Pi AAN zetten om het programma in PYHTON te schrijven en het uit te voeren. (Om te weten hoe u PYTHON moet gebruiken, ga naar PI BLINKY).
We zullen het hebben over enkele commando's die we gaan gebruiken in het PYHTON-programma.
We gaan het GPIO-bestand uit de bibliotheek importeren, met onderstaande functie kunnen we GPIO-pinnen van PI programmeren. We hernoemen ook "GPIO" naar "IO", dus in het programma zullen we telkens wanneer we naar GPIO-pinnen willen verwijzen het woord 'IO' gebruiken.
importeer RPi.GPIO als IO
Soms, wanneer de GPIO-pinnen, die we proberen te gebruiken, andere functies uitvoeren. In dat geval zullen we waarschuwingen ontvangen tijdens het uitvoeren van het programma. Onderstaand commando vertelt de PI om de waarschuwingen te negeren en door te gaan met het programma.
IO.setwarnings (False)
We kunnen de GPIO-pinnen van PI verwijzen, hetzij op pincode aan boord, hetzij op functienummer. In het pin-diagram ziet u 'PIN 37' op het bord is 'GPIO26'. Dus we vertellen hier of we de pin hier vertegenwoordigen met '37' of '26'.
IO.setmode (IO.BCM)
We stellen GPIO26 (of PIN37) in als invoerpin. We detecteren het indrukken van een knop door deze pin.
IO.setup (26, IO.IN)
Terwijl 1: wordt gebruikt voor oneindige lus. Met dit commando worden de instructies in deze lus continu uitgevoerd.
Zodra het programma is uitgevoerd, knippert de LED die is aangesloten op GPIO19 (PIN35) wanneer de knop wordt ingedrukt. Na het loslaten van de LED, gaat deze weer naar UIT.