Ravi Ramcharan Arduino PRO Smart leeslampje

Vergelijkbare documenten
Arduino eind concept. Uitleg over werking en concept. Andrew Lau

Workshop Arduino - deel 2

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

Arduino[4KIDS] Maak je eigen muziekinstrument!

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

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

modellering met Arduino project module

Inleiding De leerlingen maken deze les een alarm. Opent iemand stiekem hun broodtrommel? Dan worden ze dankzij het alarm gewaarschuwd!

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

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

Tweede workshop Arduino

Programmeren met Arduino-software

Workshop Arduino voor beginners deel 2

modellering met Arduino extra module

Jeroen uit. Extra informatie. Voor de lunch. Arduino zo aangesloten om mijn code te laten werken. (versie voor lunch) (code voor de lunch)

Oefening 1 - Seriële communicatie via USB

Naam + Klas: Laptop Nr: Cijfer:

VANTEK Discovery set. N. B. De OPITEC bouwpakketten zijn gericht op het onderwijs. N991240#1

Fysische Informatica met FLEC

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

arduino programmeerboek Davy Wolfs

Werkbladen voor Arduino workshop 1

Bouw een deel van het JeeNode schema zoals beschreven op pagina 5 in de JeeNode handleiding in de handout, maar dan op het breadboard.

Infographic De infographic geeft in grove lijnen het overkoepelend concept weer Your home remotely controlled Zie de infographic hier naast.

Arduino Zuid-Limburg Workshop 2

Neem een signaal-kabel en sluit hiermee het input-onderdeel aan, aan de kant van het Easyboard waar input bij staat.

Gebruikershandleiding. robotcar.nl

RGB licht Les 2 Leerkrachthandleiding. Basis. Materialen

RCL Arduino Workshop 1

Deel 8: stappenmotoren en interrupts

Arduino CURSUS. door Willy - 09-juni-2017

Bouw het schema zoals beschreven op pagina 5 in de RBBB handleiding in de handout, maar dan op het breadboard.

Arduino. HCC Vlaanderen - Mechelen 7 februari Luc De Cock

KAEDU : Outputs en inputs

Arduino Workshop 1 Zuid-Limburg

Workshop Arduino voor beginners. door TkkrLab Enschede

1. Testdata TA sensor met Ohmse belasting

Naam: Germain Marinus. Leerlingnummer: Vak: PRO61. Leraar: Stefan Persaud. Project: Arduino light shelf

Weerstation. Weerstation met Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 Arduino. 2.1 Werking van Arduino

Project If This Then That Naam: Valérie den Besten Docent: Rob Zimmerman Datum:

Bouw het schema zoals beschreven in de RBBB handleiding in de handout, maar dan op het breadboard.

Antwoorden Systeembord Fysische informatica voor de onderbouw havo/vwo

Arduino. C.F.J. Pols.

Slimme schakelingen (2)

Inhoud Inhoud. Inleiding 1 Leerdoelen 1

Bij manueel trein elke keer vanaf spoor 1 te starten, dus altijd twee ritten. StartLED gaat aan en pas uit als trein op 1 arriveert.

Proef Natuurkunde Practica hoofdstuk 3

Keuzevak Slimme Technologie De slimme Regenmeter

modellering met Arduino

Automatische spoel installatie voor legionella preventie. NTKC - Bennie ten Haken 27 Mrt

Inleiding Tijdens deze les programmeren de leerlingen hun eigen verkeerslicht. Lesdoelen. Materiaal

Meet the Arduino FAMILY

Project 7 Pratende plant Docent Project 7 - Pratende Plant Docent

Type Naam Aantal Analoge poorten: A0, A1, A2, A3 4 Digitale poorten: D2,D3,D4,D5,D6,D7,D8 7 UART poorten: UART 1 I2C poorten: I2C 4.

FA23 Aansluitschema Onderdeel nr:

Zelf PIC's programmeren. Deel-13 IR-sensor

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

modellering met Arduino mini module

Arduino Programmeer handleiding

Aluminium niet-vervuilende differentieeldruksensor. Geëxtrudeerd aluminium met dichtingsstrips

7,6. Samenvatting door A woorden 12 april keer beoordeeld. Natuurkunde. Natuurkunde Systemen. Systemen

Arduino : Morse Voltmeter

Aansluitles Les 1 Overzicht van de Componenten. Basis

Programmeerstructuren met App Inventor

Ventilator les 3 Leerkrachthandleiding. groep 5/6

delay(1000); // Eén seconde pauze digitalwrite(pin, LOW); // zet 'pin' uit delay(1000); // Eén seconde pauze }

Peripheral Interface Controllers. BRAC clubavond PE2WDO

Single Board computers. Ruud van der Meer (voor HCC d.d. 4 dec2017 Leiderdorp)

Logo quiz Project Inleiding op de Logo!

Over Betuwe College. Lego Mindstorm project

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

th_elt Hardware & Software

MORSE aan een draadje

Arduino cursus. Eelco Dijkstra Steunpunt Informatica - Its Academy 24 september 2015

ABC GIDS Jouw gids voor de Arduino Beginners Cursus met Arduino Uno

Accelerometer project 2010 Microcontroller printje op basis van de NXP-LPC2368

1.QUICKSTART GUIDE 3 2.PRODUCTAFBEELDING MET UITLEG 4 3.MONTEREN EN AANSLUITEN VAN DE DEURBEL OP STROOM 5 4.NEERZETTEN OF MONTEREN VAN HET SCHERM 6

Wat is Wat? Interactief ontwerpen: Gaat over de wisselwerking tussen mensen en machines, tussen de fysieke en de virtuele wereld.

Wat is Arduino? Arduino = microprocessor (Atmel)

Weerstation. Weerstation met Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 Arduino. 2.1 Werking van Arduino

Hallo. Ik snap het Ik kan uitleggen via welke stappen ik een programma maak en dit op de micro:bit zet.

Aluminium niet-vervuilende differentieeldruksensor. Geëxtrudeerd aluminium met dichtingsstrips

Aluminium niet-vervuilende differentieeldruksensor. Geëxtrudeerd aluminium met dichtingsstrips

EM2 Microcontroller Project. LED cube

1.QUICKSTART GUIDE 3 2.PRODUCTAFBEELDING MET UITLEG 4 3.MONTEREN EN AANSLUITEN VAN DE DEURBEL OP STROOM 5 4.NEERZETTEN OF MONTEREN VAN HET SCHERM 6

ACTUATORENSET 062 GEBRUIKERSHANDLEIDING

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

//enable de interne pull-up weerstand. //variabele sensorval. //naar de seriële monitor

JPTrain. JPTrainBeta versie 25 mei Android client voor GBtrainHost

Arduino Opstartgids.

2 Elementaire bewerkingen

De Arduino-microcontroller in de motorvoertuigentechniek (6)

Basisoefeningen en uitwerkingen Systeembord. Opgaven en antwoorden op It s learning en agtijmensen.nl

Het grondtal van het decimaal stelsel is 10. Voorbeeld: het getal Poorten De tellereenheid Mevr. Loncke 1

Stap 1: code Bouw dit in je editor en zet het op je bit. Stap 2: schakeling Sluit de boel aan:

Naam LL en : Thibo Meuwes - Maxime Carrein. Evert Cottyn - Lowie De Lombaerde. Naam Lkr en : Benjamin Samyn. Johan Vanhaverbeke.

Transcriptie:

Ravi Ramcharan Arduino PRO61 0861038 Smart leeslampje

Contents 1 Kennismaking Arduino... 3 2 Idee: Leeslamp!... 4 3 Basis oefeningen... 6 4 Blokkenschema... 9 5 Hij doet het!... 10 6 Belangrijk: Arduino Ports... 11 7 De Arduino Code uitgelegd... 12 8 Ruimte voor verbetering... 14 9 Lasersnijden!... 17 10 Flowcharts!... 19 10.1 1. Buzzer.... 19 10.2 2. LED-Lampje.... 19 10.3 3. Volledig Systeem.... 19 11 Eindproduct!... 20

1 Kennismaking Arduino Hallo! Deze week heb ik kennisgemaakt met Arduino op school. Omdat dit een vak op school is heb ik hiervoor een starterskit van Grove gekocht. Deze starterskit bestond uit meerdere componenten met een Arduino Uno en een baseshield. Ik heb eerder met een Arduino gewerkt tijdens de keuzevak 'Fablab'. Hier heb ik een alarm gemaakt, waarbij je een opdrachtje moest uitvoeren om deze alarm uit te krijgen. Zo zou men gegarandeerd wakker worden. Tijdens de kennismaking op school heb ik gewerkt aan het laten branden van een LED-lampje, een temperatuursensor en heb ik gewerkt met een buzzer. Dit waren kant en klare tutorials die te vinden waren op de modulepagina van de HRO.

2 Idee: Leeslamp! Voor de eindopdracht heb ik in de ochtend op school een korte brainstorm gedaan met klasgenoten. Ik had van te voren nog geen concrete ideeën staan waar ik graag aan wilde werken voor mij eindopdracht. Uiteindelijk ben ik gekomen op het idee om een leeslamp/kamerlamp te maken die een melding geeft en aangaat wanneer het donker wordt. Wanneer het weer lichter wordt, wordt er een melding gegeven en gaat het lampje uit. Hieronder leg ik aan de hand van een pseudocode uit hoe deze lamp werkt. 1. Het is licht en het lampje staat nog uit. 2. Zodra het donker wordt vangt de ingebouwde lichtsensor dit op en wordt er een actie uitgevoerd. 3. De piezo speaker krijgt een 'hoog' signaal binnen, waarna deze een 3-tal tonen vrijgeeft. 4. Het LED-lampje krijgt vervolgens een 'hoog' signaal en gaat branden. 5. Zodra het weer licht wordt, vangt de lichtsensor dit natuurlijk weer op en krijgen de piezo speaker en het LED-lampje een 'laag' signaal, waarna deze beiden uitgaan. PvE: - Het lampje gaat pas branden als de thresholdvalue van de lichtsensor is bereikt. - De buzzer geeft maar 3 piepjes en stopt daarna vanzelf. Door een delay te geven tussen de piepjes kan dit in de loop worden geplaatst. - Zodra de waarde onder de thresholdvalue is, gaat het lampje uit en de buzzer uit. - Het lampje blijft aan, zolang de thresholdvalue gelijk is aan de opgegeven waarde.

Could: - Het lampje fade bij verschillende lichtintensiteiten. - Er is een buzzer, waarmee je het hele systeem kunt bedienen. Inventarisatie van componenten: 1. Lichtsensor 2. Buzzer v1.1b 3. LED-Lampje Hierbij komt er ook nog een behuizing voor de lamp bijkijken.

3 Basis oefeningen Hieronder vind je een paar van de tutorials die ik met Arduino heb gedaan in mijn eerste week. Hiervoor heb ik gebruik gemaakt van de tutorials van Grove en de sketchbook/libraries die ik in Arduino heb geïmporteerd. Deze zijn te vinden op de pagina 'Bronnenlijst'. 2.LCD Dit is de tutorial van ''Hello World''. Hier heb ik geleerd de LCD aan te sluiten. Dit gebeurt op de poort I2C. De reden dat dit gebeurt op deze poort is omdat het anders op 6 pinnen moet worden aangesloten en dit is niet mogelijk de de baseshield van Grove, vandaar de I2C. De tekst kan worden aangepast, eveneens als de RGB kleur van de LCD. 2. Temperatuur sensor De temperatuur sensor is aangesloten op de analoge poort, vanwege de input. Deze is variabel en ligt aan de temperatuur die wordt opgemeten. Ik heb serial monitor opgestart om de temperatuur te weergeven.

Faded LED Dit zou ik eventueel kunnen gebruiken in mijn Smart leeslampje. Ik zou de intensiteit van het LED-Lampje kunnen varieren bij verschillende thresholdvalues. Het faden komt doordat er een delay tussen ''0'' en ''1'' zit. Buzzer De buzzer ben ik van plan te gebruiken in mijn eindopdracht. Hier wil ik de buzzer 3 keer laten overgaan wanneer de thresholdvalue van 400 wordt bereikt. Er zou gebruik kunnen worden gemaakt van verschillende frequenties, delays en poorten. Tijdens deze tutorial heb ik gewerkt om verschillende deuntjes te maken. Sound sensor met LED

Zodra de thresholdvalue van 75 wordt bereikt gaat het LED lampje aan. Dit zou ik kunnen gebruiken voor mijn eindopdracht. Het LED lampje reageert in dit geval alleen niet op geluid, maar op licht. Dus ik zal er een lichtsensor tussen moeten plaatsen.

4 Blokkenschema Vandaag heb ik een blokkenschema gemaakt om mijn idee van het leeslampje duidelijk op papier te krijgen. Zo krijg ik voor mijzelf ook een beter beeld wat er moet m.b.t. de Arduino Uno. Het resultaat is hieronder te zien. Dit schema heb ik gemaakt op draw.io

5 Hij doet het! http://www.youtube.com/watch?v=ds0-8x9i7hk

6 Belangrijk: Arduino Ports De digitale poorten, D2 tot D8, zijn poorten die een actuator ''Hoog" of "Laag"kunnen weergeven. Tussen deze poorten zitten ook PWM's. Dit zijn bijvoorbeeld de poorten 3,5 en 6. Deze poorten worden gebruikt voor een analoge output. Dat wil zeggen bij het het faden van een LED-lampje of bij een servo. De I2C poorten, worden gebruikt voor bijvoorbeeld een LCD scherm. Voor deze poort worden meestal 6 uitgangen gebruikt. Dankzij SDA en SCL is één normale I2C poort voldoende. De analoge poorten, A0 tot A3, worden gebruikt voor zoals het al zegt analoge uitgangen. Dit zijn meestal sensoren zoals een lichtsensor of geluidssensor. Deze informatie heb ik gewonnen van Grove en Arduino.

7 De Arduino Code uitgelegd Hieronder leg ik de code die ik gebruik voor mijn smart leeslampje uit. Aan de hand van mijn blokkenschema heb ik voor mijzelf duidelijk gekregen wat mijn Arduino moest doen. const int pinlight = A0; const int pinled = 7; int buzzer = 3; int teller = 0; int thresholdvalue = 400; //the threshold to turn on or off the LED void beep(unsigned char delayms) digitalwrite(buzzer, HIGH); delay(delayms); // wait for a delayms ms digitalwrite(buzzer, LOW); delay(delayms); // wait for a delayms ms In het gedeelte hierboven heb ik mijn componenten gedefinieerd. Hier heb ik elk component een aansluiting toegewezen. De threshold value geeft aan bij welke waarde er een actie moet worden ondernomen. De teller begint in dit geval op 0 voor de buzzer, welke uiteindelijk 3 tellen nodig heeft. De ''void beep'' geeft aan hoe de sound wordt gedefinieerd. void setup() pinmode(pinled, OUTPUT); //set the LED on Digital 12 as an OUTPUT pinmode(buzzer, OUTPUT); //beep(500); In de setup heb ik de LED als output weergegeven, evenals de buzzzer. void loop() int sensorvalue = analogread(pinlight); //the light sensor is attached to analog 0

if (sensorvalue < thresholdvalue) while (teller < 3) // tone( 3, 1000, 400); digitalwrite(pinled, HIGH); delay(500); teller++; else digitalwrite(pinled, LOW); teller = 0; In de loop heb ik de vergelijking gemaakt dat het analoge signaal van de lichtsensor gelijkstaat aan de sensor value. Deze wordt telkens vergeleken met de tresholdvalue. Zodra deze onder de treshold zit, wordt er een actie ondernomen. De teller gaat 3 keer buzzeren en het LED-lampje gaat aan, met een delay van 500 ms. Indien er niet wordt voldaan aan de ''if'' van de tresholdvalue, blijft het LED-lampje uit en de teller op 0. Ik heb hierbij hulp gehad van Damir, die mij heeft geholpen om de buzzer maar 3 buzzertjes te laten geven in de loop. Hier hebben we gebruik gemaakt van het documentje dat staat op de Arduino website. De functies die ik hier heb toegepast hadden vooral te maken met de flow control. Ik ben hier aan de slag gegaan met de functies ''if'', ''for'', ''while'' en ''do...while''.

8 Ruimte voor verbetering Ik heb nu een sensor en een twee actuatoren in combinatie met elkaar gebruikt die tevens ook afhankelijk van elkaar zijn (thresholdvalue). Wanneer het donker wordt, gaat de buzzer aan en geeft het LED-lampje licht. Een aantal verbeteringen voor deze smart-lampje zouden kunnen zijn: Een button, waar je het systeem aan en uit mee kunt zetten. Bij verschillende thresholdvalues werken met een andere intensiteit van het LEDlampje. Dus wanneer het op zijn donkerst is, brandt het lampje het felst. Ik heb gewerkt aan de verschillende thresholdvalues, maar door tijdgebrek heb ik besloten om hier nu niet mee verder te gaan. Hier heb ik met Damir aan gewerkt. Ik heb voor deze code, gekeken naar de code van J. Ketting. Hier heb ik naar gekeken omdat hij zijn LED'jes met verschillende fades had staan in zijn code. Voor deze fades, heeft hij PWM poorten gebruikt. Deze poorten laten het toe om bijvoorbeeld LED-jes te laten faden. De code volgt hieronder: const int pinlight = A0; const int pinled = 5; int buzzer = 3; int teller = 0; int thresholdvalue = 400; //the threshold to turn on or off the LED void setup() pinmode(pinled, OUTPUT); //set the LED on Digital 12 as an OUTPUT pinmode(buzzer, OUTPUT); Serial.begin(9600); //beep(500); void loop() int sensorvalue = analogread(pinlight); //the light sensor is attached to analog 0 Serial.write(analogRead(pinLight)); if (sensorvalue < 83)

sound(); Serial.write("TEST!"); for (int i = 0; i < 256; i++) analogwrite(pinled, i); //delay(1); for (int i = 254; i >= 0; i-- ) analogwrite(pinled, i); delay(1); else if (sensorvalue < 166) for (int i = 0; i < 256; i++) analogwrite(pinled, i); //delay(1); for (int i = 254; i >= 0; i-- ) analogwrite(pinled, i); delay(1000); sound(); else digitalwrite(pinled, LOW);

teller = 0; void sound() while (teller < 3) tone( buzzer, 1000, 400); delay(500); teller++; void beep(unsigned char delayms) digitalwrite(buzzer, HIGH); delay(delayms); // wait for a delayms ms digitalwrite(buzzer, LOW); delay(delayms); // wait for a delayms ms

9 Lasersnijden! Voor de behuizing van mijn smart lampje heb ik gekozen om te gaan lasersnijden. Hier wil ik een behuizing maken voor mijn Arduino en alle componenten die ik gebruik. De lichtsensor moet naar buiten gericht zijn, omdat hij het licht moet meten. Het LED-lampje krijgt een eigen statief, ook gemaakt met lasersnijden. Voor het lasersnijden heb ik gebruik gemaakt van makercase.com. Hier is het mogelijk om de maten van het doosje op te geven. Er moet wel rekening worden gehouden met de materiaaldikte, omdat anders de edge joints andere maten krijgen. Ik heb gekozen voor de optie Finger. Voor het stadslab zijn een aantal voorwaarden gebonden aan het lasersnijden. Namelijk dat de lijndiktes die worden gebruikt 0,01 mm zijn, en dat er de RGB kleur 255,0,0 wordt gebruikt. Het bestand van Makercase had een extensie van.svg. Dit moet worden geïmporteerd in Illustrator om deze vervolgens in Trotec, de lasersnijdsoftware te laden.

Zoals je kan zien heb ik het LED-lampje gesoldeerd, om deze langer te maken. Het statief van het LED-lampje wordt bovenin gemonteerd.

10 Flowcharts! 10.1 1. Buzzer. 10.2 2. LED-Lampje. 10.3 3. Volledig Systeem.

11 Eindproduct! Op bovenstaande afbeelding kan je zien hoe het smart leeslampje eruitziet wanneer deze volledig in elkaar is gezet. De volledige code is uitgelegd in het kopje 'Arduino code uitgelegd'. Hier zie je tevens ook commentaar op de code en wordt het uitgelegd. Het systeem bevat een sensor en 2 actuatoren die op elkaar inspelen. Dit zijn allen componenten van de Grove starterskit. Ik ben op dit idee gekomen door te brainstormen in week 2 met Maud Pijnenburg. Voor de code heb ik op sommige momenten de hulp ingeschakeld van Damir Cuturic. Ik heb ruimte voor verbeteringen aangegeven, waar ik nog een button/fade in het led lampje in zou kunnen toepassen. Dit zou dan op een PWM poort moeten gebeuren. Het voordeel hiervan is dat je hiermee analoge waardes kunt toekennen. Het nadeel van het aansluiten op een niet PWM poort is dat dit een waarde heeft, en je hier dus niks aan kunt veranderen. http://www.youtube.com/watch?v=csgmj5ijpee