INHOUD. Dankwoord...xvi Inleiding... xvii De basis... 2

Vergelijkbare documenten
Raspberry Pi Interfacing.

INHOUD. dankbetuiging inleiding DE ARDUINO REVOLUTIE...16 OVER DIT BOEK...17 OPZET VAN DIT BOEK...18

Het hele scherm besturen

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

DE ASTRO PI KLAARMAKEN VOOR GEBRUIK

De Sense HAT programmeren Je eerste computerprogramma

WORKSHOP ORANGE PI & PYTHON v september 2017

Flashing Eye Robot! Knipperlicht Circuit! Clubjesmiddag 18 Mar Adam Dorrell

Algemene Breadboard tips

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

PROJECT 5: PLANT MONITOR

Hand-out Introductieworkshop LED programmeren

Schakelingen Hoofdstuk 6

Programmeren met Arduino

DOBBELSTEEN 2.0. Stap-voor-stap instructie

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

Programmeren van de Raspberry Pi.

Geluidsmelder

Raspberry Pi prototyping-board

Handleiding: instelling en werking E-Drive LCD display

Dagindeling. De LED als component. Toepassingen. Inhoudsopgave. Voor- en nadelen LED verlichting. Overige toepassingen 4/02/2015

DATA SHEET C2-10. Besturing en bescherming van elektrische actuators. DATA SHEET C2-10 A&E Trading b.v. 1

Mini Handleiding over Elektronica-onderdelen

lees deze handleiding lees en werk zorgvuldig. voor vragen kunt u ons bereiken op:

Project 1 Een discolamp

Parallelle poort interface.

Handleiding: instelling en werking E-Drive LCD display

De mbot. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

De mbot Ranger. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

Handleiding: instelling en werking LCD display t.b.v. ombouwset 007 en prolithium Daily Driver, Juice, Stick, Heavy Duty, Hammer en Monster

Workshop Arduino voor beginners. door TkkrLab Enschede

Boe-Bots - Arduino robots

Microcontrollers. Robert Langenhuysen, PA0RYL

Vanaf SN : CODEKLAVIER PROGRAMMATIE HANDLEIDING

SP-1101W/SP-2101W Quick Installation Guide

CODEKLAVIER PROGRAMMATIE HANDLEIDING

Module 2: Wat is Scratch?

XPERIBIRD.be Installatiehandleiding

BEGINNER JAVA Inhoudsopgave

Workshop IOT. Handleiding V5 Vincent Verheggen 6 november Taal: Nederlands.

Bouwbeschrijving. Servo Decoders

Gebruik in geen geval soldeervet!!!! Dit zal uw print en de componenten beschadigen.

Raspberry Pi recepten

Bouwbeschrijving. Servo Decoders

Raspberry Pi The ultieme hobby computer. Wim Hendrikse 2 januari 2017, Leiderdorp

Raspberry Pi The ultimate hobby computer. Bert Mengerink HCC Haaglanden Zoetermeer

Meten met de multimeter Auteur: Wouter (Flush) [ ]

SPRAAK MODULE INT-VG. 1. Eigenschappen. 2. Specificaties

Parallelle poort interface.

HANDLEIDING. Aan de slag met je Retropie. SOS Solutions

EM2 Microcontroller Project. LED cube

Alarm- en knipperlichtrelais MGA

spanning. * Deel het verschil daarvan en deel dat getal door de gewenste stroom om de weerstandswaarde te krijgen.

Arduino. HCC Vlaanderen - Mechelen 7 februari Luc De Cock

Workshop Arduino Uno. Touw dag 6 juni 2015 Harold Pootjes en Simon Pauw

HANDLEIDING. Aan de slag met je Retropie. SOS Solutions

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen

XPERIBIRD.be Installatiehandleiding

Arduino. Arduino UNO. Sam Decoster. CoderDojo Roeselare. Sam Decoster

NEWTONE. The Bender. 1. Inleiding

E e n i n t r o d u c t i e in praktische electronica.

Electronische PINcode Schakelaar. Gebruikers & Installatie Handleiding

Boekje met opdrachten

Instructies voor gebruik

Gebruiksaanwijzing GPIO interface voor BrightSign - HD players

Bouwbeschrijving Wave Lights badge

DATA SHEET C2-20. Besturing voor elektrische actuators. DATA SHEET C2-20 A&E Trading b.v. 1

De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC

AVR-DOPER MINI ASSEMBLAGE HANDLEIDING + LAYOUT. Geschreven door: Tom Vocke

DE ASTRO PI PROGRAMMEREN

AC ZONE ALARMCONTROLLER MET DEURBEL HANDLEIDING

Handleiding HCS VB5248

Inhoud: Voorwoord. Dankwoord. Het LED-bordje. Onderdelen. Bouwbeschrijving

Bouwbeschrijving. Servo Decoders

Programmeerbare plug-in thermostaat HT-600

Montage handleiding voor DCC/Power shield. Schema:

Gebruikershandleiding Integra

Hartelijk gefeliciteerd met de aanschaf van een COBRA alarmsysteem type 889.

H A N D L E I D I N G D A Z A T O O L S - O N T V A N G E R

Integratie van Net2 met een inbraakalarmsysteem

Digitale remmodule. Installatiehandleiding. Modellspielwaren GmbH Am Bahnhof 1 D Hatzfeld Vertaling: Koen Vaganée 1

Ar-doe-wie-no. Voorwoord

Edushield 2.0 Bouwbeschrijving

Bedrade afstandbediening Introductie van het spare part. Knoppen en display van de afstandbediening.

The Pointer Handleiding The Pointer bouwpakket. Een project van de Service Kring JOTA-JOTI.

Seven segments of Pi

DUMAN US-Module V1.5 2 ste druk Inbouw handleiding. Bedankt voor de aanschaf van de DUMAN US-Light Module V1.5

Handleiding: instellen en werking LCD display t.b.v. ombouwset 004 en prolithium Velvet. Gefeliciteerd met de aankoop van een R A T - Holland product!

Afzuigkap Gebruiksaanwijzing

Handleiding HCS VB5118

Knoppencursus. Een programma aanmaken. Een programma aanpassen. Een programma uitvoeren. Druk op PRGM.

04/2015 Vanaf serienummer : CODEKLAVIER PROGRAMMATIE HANDLEIDING

HBJR Garagedeuropener Deel 1: Installeren

TELEPORTEREN MET VARIABELEN

Kit code: KT XTI Configuratie: Kit inhoud: Geschikt voor:

Digitale multimeter 700b

Gebruikershandleiding. Digitale Video Memo

Gebruiksaanwijzing RGB(W) controller type LLD-10Z

Arduino[4KIDS] Maak je eigen muziekinstrument!

Transcriptie:

INHOUD Dankwoord...xvi Inleiding... xvii De basis... 2 Leds Project 1: Een led laten knipperen... 36 Project 2: Led-zaklamp met drukknop... 46 Project 3: Led dimschakelaar... 52 Project 4: Een grafische gebruikersinterface voor een meerkleurige led...61 Project 5: Regenboog led strip... 70 Schermen Project 6: Een lcd-herinnering... 84 Project 7: Mini-weervoorspeller... 96 Project 8: Pong met een Sense HAT... 110 Sensoren Project 9: Alles-in-één weerstation met sensoren...126 Project 10: Inbraakalarm met meldingen via e-mail...136 Project 11: Gas- en rookmelder...145 Project 12: Temperatuur en luchtvochtigheid datalogger...153 VI INHOUD 2019 Visual Steps TM. Dit is het inkijkexemplaar van de Visual Steps-titel Raspberry

Camera s Project 13: Inbraakdetector met foto-opname...162 Project 14: Bewakingscamera voor thuis... 171 Webtoepassingen Project 15: Je eerste website bouwen...180 Project 16: Je elektronica met het web verbinden...195 Project 17: Internet of Things Controlecentrum met Node-RED... 208 Spellen en speelgoed Project 18: Digitaal drumstel... 224 Project 19: Een spel maken in Scratch: Hungry Monkey... 232 Project 20: Via wifi op afstand bedienbare robot... 247 Gids voor de GPIO-pennen op de Raspberry Pi...261 Decoderen van weerstandswaarden... 264 VII INHOUD 2019 Visual Steps TM. Dit is het inkijkexemplaar van de Visual Steps-titel Raspberry

1 EEN LED LATEN KNIPPEREN IN DIT EERSTE PROJECT GA JE EEN LED AANSLUITEN OP JE PI EN DEZE LATEN KNIPPEREN MET EEN PYTHON SCRIPT. HET LEREN HOE JE EEN LED LAAT KNIPPEREN MET DE GPIO-PENNEN IS EEN BELANGRIJKE STAP IN HET LEREN OVER JE PI. ALS JE EENMAAL WEET HOE JE EEN LED KUNT BESTUREN, KUN JE BIJNA ELKE UITVOER BESTUREN, OF HET NOU EEN MOTOR, EEN LAMP OF ZELFS EEN BROODROOSTER IS. 2019 Visual Steps TM. Dit is het inkijkexemplaar van de Visual Steps-titel Raspberry

KOSTEN: TIJD: 15 MINUTEN BENODIGDE ONDERDELEN Raspberry Pi Breadboard 5 mm LED 330 Ω weerstand Draadbruggen

INTRODUCTIE VAN DE GPIO-PENNEN Met de General Purpose Input/Output (GPIO) pennen kun je elektronische hardware op je Pi aansluiten, zoals leds en sensoren. Ze kunnen gebruikt worden om zowel informatie te lezen als te versturen, waardoor interactie met de echte wereld mogelijk wordt voor je Pi. De Raspberry Pi 3 Model B kaart heeft een dubbele rij van 40 GPIO-pennen, te zien in afbeelding 1-1. Deze lay-out is hetzelfde voor de Pi 2 Model B en Pi 1 Model B+, maar verschilt iets van de Pi 1 Model A en B, die alleen de eerste 26 pennen hebben. Bekijk de Raspberry Pi Gids voor de GPIO-pennen bladzijde 261 als je een andere kaart dan de Raspberry Pi 3 model B gebruikt. Afbeelding 1-1: Raspberry Pi GPIO layout PEN 1 PEN 2 PEN 39 PEN 40 Er zijn twee manieren om te verwijzen naar een GPIO-pen: via de naam (wat bekend staat als GPIO nummering of Broadcom nummering) of via het getal dat bij de pen behoort (wat bekend staat als fysieke nummering). Bijvoorbeeld: GPIO 25 correspondeert met pen 22. In dit boek verwijzen we naar GPIO-pennen met hun naam. GPIO-pennen kunnen worden ingesteld op HIGH, met een uitvoer van 3,3V die een onderdeel inschakelt, of LOW, met een uitvoer van 0 V die een onderdeel uitschakelt. f U n CTie n AAM nummer nummer n AAn f U n CTie Gelijk stroom 3,3 V 1 2 5 V Gelijk stroom SDA1, I 2 C GPIO 2 3 4 5 V Gelijk stroom SCL1, I 2 C GPIO 3 5 6 GND GPIO_GCLK GPIO 4 7 8 GPIO 14 TXD0 GND 9 10 GPIO 15 RXD0 GPIO_GEN0 GPIO 17 11 12 GPIO 18 GPIO_GEN1 GPIO_GEN2 GPIO 27 13 14 GND GPIO_GEN3 GPIO 22 15 16 GPIO 23 GPIO_GEN4 38 PROJECT 1 2019 Visual StepsTM. Dit is het inkijkexemplaar van de Visual Steps-titel Raspberry

f U n CTie n AAM nummer nummer n AAM f U n CTie Gelijk stroom 3,3 V 17 18 GPIO 24 GPIO_GEN5 SPI_MOSI GPIO 10 19 20 GND SPI_MISO GPIO 9 21 22 GPIO 25 GPIO_GEN6 SPI_CLK GPIO 11 23 24 GPIO 8 SPI_CE0_N GND 25 26 GPIO 7 SPI_CE1_N I 2 C ID EEPROM DNC 27 28 DNC GPIO 5 29 30 GND GPIO 6 31 32 GPIO 12 GPIO 13 33 34 GND GPIO 19 35 36 GPIO 16 GPIO 26 37 38 GPIO 20 GND 39 40 GPIO 21 I 2 C ID EEPROM De pennen die grijs gemarkeerd zijn, pennen 27 en 28, zijn DNC, oftwel do not connect (niet verbinden) pennen. De Raspberry Pi heeft ook acht GND (mass) pennen (in de tabel aangegeven in het zwart) voor de massa-aansluiting van je circuits. Er zijn vier voedingspennen, twee 5 V pennen en twee 3,3V (gemarkeerd in rood en oranje respectievelijk), om stroom te leveren. Diverse pennen hebben speciale functies; zo worden de pennen die geel gemarkeerd zijn gebruikt in serial peripheral interface (SPI) communicatie en de pennen die groen gemarkeerd zijn worden gebruikt voor interintegrated circuit (I 2 C) communicatie. Je komt meer te weten over deze communicatieprotocollen in Project 3 en Project 7, respectievelijk. WAARSCHUWing De GPIO-pennen zijn ontworpen om te werken bij 3,3V, dus als je deze aansluit op hogere voltages, breng je permanente schade toe aan je Raspberry Pi. MAAK KENNIS MET LEDS Leds zijn beschikbaar in een breed scala aan maten, vormen en kleuren en sommige kunnen zelfs kleuren mengen om zo bijna iedere kleur te produceren. In dit project ga je een eenvoudige 5 mm rode led gebruiken. Een led, ofwel light-emitting diode, is (zoals de Engelse naam al suggereert) een diode die licht uitzendt. Diodes zijn elektronische onderdelen die polariteit hebben, wat inhoudt dat ze de stroom slechts in één richting doorlaten, van positief naar negatief. Leds hebben, zoals alle diodes, een positieve aansluiting bekend als een anode en een negatieve aansluiting bekend als een kathode. De twee poten, of aansluitingen, op leds hebben verschillende lengtes om je te helpen bij het identificeren welke de positieve en welke de negatieve is, geïllustreerd in afbeeldingen 1-2. De langere aansluiting is de anode (+) en de kortere aansluiting is de kathode (-). 39 PROJECT 1

Afbeelding 1-2: Een 5 mm rode led KATHODE (-) ANODE (+) OPMeRKing We raden je aan een 1/4 W weerstand assortiment te kopen met daarin een breed scala van waarden van de weerstanden. Daar kun je het best mee uit de voeten. DE JUISTE WEERSTAND VINDEN Leds kunnen maar een bepaalde hoeveelheid stroom aan voordat ze overbelast raken en doorbranden, wat schade kan toebrengen aan de led en zelfs aan de Pi kaart. Om dit te voorkomen moet je leds altijd in serie aansluiten met een weerstand: een klein onderdeel dat de hoeveelheid stroom die er door gaat beperkt. Weerstanden zijn er in allerlei waarden en je hebt er een nodig die sterk genoeg is om je onderdeel te beschermen, maar ook weer niet zo sterk dat het de mogelijkheden van het onderdeel beperkt. Zo kan een sterkere weerstand het licht dat uit een led komt dimmen. De juiste weerstandswaarde hangt af van de led die je gebruikt: de meeste leds die je in elektronica gebruikt kunnen een maximale stroomsterkte van 20 ma aan. Voor de led in dit project kun je weerstand kiezen met elke waarde tussen 220 Ω en 470 Ω, en binnen dit bereik zal een lagere weerstandswaarde resulteren in een iets helderdere led. De weerstandswaarde wordt aangegeven door de kleur stroken op de weerstand. Weerstanden hebben meestal vier stroken, zoals weergegeven in afbeelding 1-3. De eerste twee geven de eerste twee cijfers van de waarde aan. Het derde cijfer is een multiplicator die het aantal nullen achter de eerste twee cijfers aangeeft. Het vierde is de tolerantie van de weerstand, die het percentage aangeeft waarmee de feitelijke weerstand boven of onder de opgegeven waarde kan liggen. Een weerstand van 330 Ω met een 5% tolerantie kan bijvoorbeeld elke waarde tussen 313,5 Ω en 346,5 Ω hebben. Afbeelding 1-3: Een 330 Ω weerstand EERSTE STROOK MULTIPLICATOR TWEEDE STROOK TOLERANTIE Als je hulp nodig hebt bij het identificeren van een weerstand bekijk dan de kleurenkaart van de weerstanden in Decoderen van weerstandswaarden op bladzijde 264. 40 PROJECT 1

HET CIRCUIT AANSLUITEN Je bent nu klaar om je eerste circuit te bouwen. Alle projecten in dit boek maken gebruik van een breadboard dat je zonder te solderen kunt gebruiken en waarmee je op een goedkope en makkelijke manier circuits kunt bouwen en de onderdelen met elkaar kunt verbinden zonder dat je hoeft te solderen. Als je nog nooit eerder een breadboard gebruikt hebt, lees dan Hoe werkt een breadboard? op bladzijde 42 voordat je begint. Om een led aan te sluiten op de Raspberry Pi volg je de volgende stappen. Gebruik het aansluitschema in afbeelding 1-4 als referentie en bekijk afbeelding 1-1 voor de locaties van de pennen, als dat nodig is. 1. Sluit een blauwe breadboard rail aan op een van de GND-pennen van de Raspberry Pi (pennen 6, 9, 14, 20, 25, 30, 34 en 39 bieden allemaal GND). 2. Plaats de led in het breadboard. 3. Steek de 330 Ω weerstand in het breadboard zodat één kant is aangesloten op de led-anode (het langste, positieve pootje). 4. Sluit de andere kant van de weerstand aan op GPIO 25 (pen 22) met een draadbrug. 5. Sluit de led-kathode (het kortere, negatieve pootje) aan op de GND stroomrail. lijst 1-1: Een led aansluiten op de Raspberry Pi. Het ledpootje met een knik erin is de anode. We hebben je instructies gegeven waar je de weerstand moet plaatsen, maar eigenlijk maakt het niet uit of die nu aangesloten wordt op de anode of kathode zolang als deze maar op een ervan is aangesloten. Je vraagt je misschien af waarom we de led-kathode niet gewoon rechtstreeks op pen 6 (GND) aangesloten hebben, omdat we alleen de GND-rail nodig hebben voor die ene verbinding. De reden is dat het een goede gewoonte is om de GND-rails van het breadboard te gebruiken om aan, wat nog nuttiger wordt bij de meer geavanceerde circuits. 41 PROJECT 1

HOE WERKT EEN BREADBOARD? Een circuit aansluiten met een breadboard is net zo eenvoudig als het aansluiten en loskoppelen van onderdelen. Een breadboard heeft rijen gaatjes die van onderen verbonden zijn met koperen strips, dus je hoeft alleen de onderdelen in die gaatjes te steken en dan de draadbruggen gebruiken om ze te verbinden. De gaatjes in het breadboard zijn op een bepaalde manier met elkaar verbonden, zoals hier getoond door de oranje lijnen. Elke afzonderlijke lijn is elektrisch geïsoleerd van de anderen. De horizontale lijnen zijn de power rails, gebruikt voor het aansluiten van de voeding; de blauwe rails worden gebruikt voor het aansluiten van GND (massa) en de rode rails voor het aansluiten van de stroom. In het midden van het breadboard bevindt zich een afscheiding die de twee rijen aan elke kant splitst. Je moet je onderdelen in deze rijen plaatsen. Onderdelen in dezelfde rij, dus aan dezelfde kant van de centrale afscheiding, zullen met elkaar verbonden zijn door middel van de koperen strips aan de onderkant. HET SCRIPT SCHRIJVEN Om al je projecten georganiseerd te houden maak je een map met de naam Projecten in de bureaublad-omgeving om alle scripts van je projecten op te slaan. Maak in deze nieuwe map nog een map met de naam leds waarin je de led-projecten in dit boek opslaat. In eenvoudige termen werkt het project met de knipperende led als volgt: 1. De led gaat een seconde aan - GPIO 25 ingesteld op HIGH. 2. De led gaat een seconde uit - GPIO 25 ingesteld op LOW. 3. De led gaat weer een seconde aan - GPIO 25 ingesteld op HIGH. 4. De led gaat weer een seconde uit - GPIO 25 ingesteld op LOW. 42 PROJECT 1

Dit patroon gaat zo door totdat je het programma vertelt om te stoppen. In dit boek besturen we de GPIOs van de Raspberry Pi met een Python-bibliotheek genaamd gpiozero. Gpiozero is een bibliotheek met een verzameling interfaces voor alledaagse onderdelen zoals leds, knoppen, potentiometers, sensoren en nog veel meer. Het script invoeren Open Python 3 (IDLE) en ga naar File New File om een nieuw script te maken. Kopieer de volgende code naar de Python Editor en sla het script op als blinking_led.py in de map leds (onthoud dat je alle scripts kunt downloaden via www.visualsteps.nl/raspberrypi/ projectbestanden): #importeer de benodigde bibliotheken from gpiozero import LED from time import sleep #maak een object genaamd led dat refereert aan GPIO 25 led = LED(25) #maak een variabele genaamd delay die refereert aan de vertragingstijd in seconden delay = 1 while True: #stel led in op aan voor de duur van de vertragingstijd led.on() print('led ingesteld op aan') sleep(delay) #stel led in op uit voor de duur van de vertragingstijd led.off() print('led ingesteld op uit') sleep(delay) Er gebeurt hier een heleboel dus we lopen een voor een elk belangrijk stuk van de code door. Bibliotheken importeren Bij importeer je LED uit de gpiozero bibliotheek om de GPIO aan te sturen waar de led mee verbonden is. Daarna importeer je de sleep() functie van de time module. De pen benoemen Bij maak je een led object met de naam led dat verwijst naar GPIO 25; dit is de GPIO waarmee de led verbonden is. Wanneer je dit led object maakt en gebruikt, weet Python dat GPIO 25 een uitvoer is en daarom ingesteld moet worden op HIGH of LOW. Nadat dit benoemd is, kun je led gebruiken om te verwijzen naar je GPIO 25. 43 PROJECT 1

De while lus starten Bij start je een while lus met de voorwaarde True, wat betekent dat deze lus voor altijd wordt uitgevoerd totdat je zelf het programma stopt. De regels met code die volgen op het instellen van de lus zijn ingesprongen, waardoor Python weet dat dit de inhoud van de lus is die uitgevoerd moet worden zolang aan de while voorwaarden voldaan wordt. De digitale uitvoer instellen Nu moet je de digitale uitvoer voor de led instellen. Je gebruikt de led.on() functie om GPIO 25 in te stellen op HIGH, waardoor de led ingeschakeld wordt, en de led.off() functie om GPIO 25 in te stellen op LOW, waardoor de led uitgeschakeld wordt. Er is een pauze van een seconde tussen elke led-status door middel van de sleep() functie, waardoor door het knipperende effect ontstaat. De code stopt waar hij is en wacht gedurende de hoeveelheid tijd die opgegeven is in de delay variabele (opgegeven in seconden) voordat hij verder gaat met de volgende regel van de code. Hiermee kun je de led gedurende een bepaalde periode in- of uitschakelen. Het script uitvoeren Om het script uit te voeren, sla je dit eerst op en druk je dan op F5 of ga je naar Run Run Module. Je circuit zou er uit moeten zien zoals een afbeelding 1-4, met je led die elke seconde in- of uitschakelt. Om het programma dat wordt uitgevoerd te stoppen, druk je op ctrl-c. Afbeelding 1-4: Het voltooide project Gefeliciteerd, je hebt net je eerste werkende project gebouwd! 44 PROJECT 1 2019 Visual StepsTM. Dit is het inkijkexemplaar van de Visual Steps-titel Raspberry

EEN STAPJE VERDER De beste manier om te leren over elektronica en programmeren is door te experimenteren. Hier zijn twee eenvoudige ideeën voor aanpassingen die je kunt uitproberen: Wijzig de tijd voor de vertraging in het script. Pas het circuit en het script aan om meer dan een led te besturen. 45 PROJECT 1