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

Vergelijkbare documenten
Ravi Ramcharan Arduino PRO Smart leeslampje

Workshop Arduino - deel 2

Workshop Arduino voor beginners deel 2

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

EM2 Microcontroller Project. LED cube

Arduino[4KIDS] Maak je eigen muziekinstrument!

Wat is Arduino? Arduino = microprocessor (Atmel)

Logo quiz Project Inleiding op de Logo!

Naam + Klas: Laptop Nr: Cijfer:

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

Werkbladen voor Arduino workshop 1

RCL Arduino Workshop 1

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

Tweede workshop Arduino

Programmeer-handleiding Easyboard MB

Na de intro zijn wij begonnen met concepten, en hebben we elk idee dat we hadden op geschreven.

Aansluitles Les 1 Overzicht van de Componenten. Basis

Oefening 1 - Seriële communicatie via USB

Gebruikershandleiding. robotcar.nl

Arduino CURSUS. door Willy - 09-juni-2017

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

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.

Meet the Arduino FAMILY

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

De Arduino-microcontroller in de motorvoertuigentechniek (4)

Arduino Workshop 1 Zuid-Limburg

Arduino : Morse Voltmeter

modellering met Arduino project module

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

Bouw je eigen minicomputer

modellering met Arduino extra module

Programmeren met Arduino-software

KAEDU : Outputs en inputs

Microcontrollers. Robert Langenhuysen, PA0RYL

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

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

Fysische Informatica met FLEC

Design Document. If This Then That

Meervoudige Smart-Card Duplicator. Gebruiksaanwijzing

Workshop Arduino voor beginners. door TkkrLab Enschede

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

Robotica & programmeren

Boe-Bots - Arduino robots

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

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

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

#include <Tone.h. } for (int x = 0; x < 4; x++) { pinmode(buttonpin[x], INPUT); Il Stel drukknop pennen in als inputs

Naam: Klas: Docent: Datum: Module: Naam opdracht:

Arduino. Workshop. 20 juni 2014 Peter Struwe Stichting De Jonge Onderzoekers Groningen

Seriële bluetooth verbinding ATmega128

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

Oefeningen Interpretatie I Reeks 6 : Registermachines

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

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

Gebruiksaanwijzing Digitale Alcohol Tester - model 6389

Arduino Zuid-Limburg Workshop 2

th_elt Hardware & Software

Design Document If This Then That. HSP moodlight Liad Damhuis G&I1B Game Art

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

Bouw je eigen minicomputer

De Arduino-microcontroller in de motorvoertuigentechniek (6)

Antwoorden Systeembord Fysische informatica voor de onderbouw havo/vwo

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

De Arduino-microcontroller in de motorvoertuigentechniek (8)

CTCSS Encoder Super Flexibel Ontwerpen met een Arduino Nano

Arduino. HCC Vlaanderen - Mechelen 7 februari Luc De Cock

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

Keuzedeel Programmeren van microcontrollers (K0730, 240 uur)

B3C 70cm converter besturing. v PE5PVB bar.net bar.net

Sumo Robot. Profiel Werkstuk Natuurkunde Xander Huisman 5O Roden,

Peripheral Interface Controllers. BRAC clubavond PE2WDO

Microcontrollers. Bart Kardinaal E Verslag microcontrollers Rev 1.0 Status definitief.

MORSE aan een draadje

Workshop Engino. 1 Aanvang workshop. 2 Bouwen. 1.1 Wat kan ik voor de workshop doen?

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 3: Tijd, licht en warmte

ES1 Project 1: Microcontrollers

Arduino Workshop. door Geert Roumen (CC) BY-SA. lemio.nl/arduino/

ES1 Project 1: Microcontrollers

Zelf PIC's programmeren. Deel-1 KnipperLED (flashing LED)

Technology, Innovation & Society Delft

De AT90CAN microprocessor van ATMEL in de motorvoertuigentechniek (4)

MTracer SPT10. korte handleiding. Versie 0.1. RHO-DELTA Automotive & Consumer Products BV Villa California Building Escudostraat XV BARENDRECHT

Arduino. C.F.J. Pols.

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

Robotkamp Elektronica. 7 december 2016

Bouwbeschrijving UniSAI

In opdracht van: Keimpe de Heer 29 januari Hazal Ates Iris Haima Hedwig Klamer Jan van Steenbergen

TOMA. De TOMA regelaar is gebouwd volgens de strenge Europese veiligheidseisen en voorzien van een CE keurmerk.

DIGIT, the robot hand

MODBus handleiding. ControlAir

Gebruiksaanwijzing AVR910 USB Programmer

Handleiding Code Combi B 30

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

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

modellering met Arduino mini module

Temperatuur Les 8 Leerkrachtenhandleiding. Basis

De Arduino-microcontroller in de motorvoertuigentechniek (2)

Project 7 Pratende plant Docent Project 7 - Pratende Plant Docent

Transcriptie:

Arduino eind concept Uitleg over werking en concept Andrew Lau 0836622

Analyseren Arduino Tijdens de eerste les maakte we een beetje kennis met de arduino. Op internet zag ik snel dat er oneindige mogelijkheden zijn. Maar komt omdat de arduino gewoon een mini computer is. Net als iedere computer moet het een processor hebben geheugen. Een microcontroller is een processor met een ingebouwde RAM,ROM. Dus alle rekenwerk word gewoon gedaan met 1 onderdeel. De specs van de arduino uno heb ik kunnen vinden op http://www.seeedstudio.com/wiki/arduino_uno Features ATmega328 microcontroller Input voltage - 7-12V 14 Digital I/O Pins (6 PWM outputs) 6 Analog Inputs 32k Flash Memory 16Mhz Clock Speed De microcontroller is eigenlijk alleen dit blokje. Al het andere zijn de output/input poorten. (vergelijkbaar met het brein)

Baseshield V2 Alle informatie wat ik nodig had over de baseshield stond op de website van seedstudio.com/wiki. De baseshield is een extensie voor de arduino om de poorten makkelijker te laten bevestigen aan de microcontroller zonder te hoeven solderen. Hierdoor heb ik de poorten leren onderscheiden en weet ik waar ik wat waar kan inpluggen. Analoge ports zijn bedoelt voor analoge metingen zoals, een thermo meter. Iets wat niet alleen bestaat uit aan of uit maar meerdere waardes heeft. Digital ports zijn voor digitale signalen. Meestal staat dit voor iets aan of uit zetten. Een aan/uit schakelaar plug je daar dus in. I2C ports zijn bedoelt voor het aansturen van andere aparaten. (bijvoorbeeld: het koppelen aan anderen arduino systemen wanneer je niet genoeg poorten over hebt.) Je hebt hier altijd te maken met een Master en een Slave. De Master zend zijn signalen uit aan de slave, Slave vangt het op en reageert erop. Uart port is voor het communiceren met anderen apparaten. Je kan hier denken aan een andere soort computer. Je USB poort is ook een soort UART. UART is een afkorting van universal asynchronous receiver/transmitter Specification Name Qty Analog port A0,A1,A2,A3 4 Digital port D2,D3,D4,D5,D6,D7,D8 7 UART port UART 1 I2C port I2C 4

Grove starters kit plus In dit pakketje zijn er verschillende sensoren en actuatoren die aan de baseshield gekoppelt kan worden met een simpel pluggetje. De positionering van de onderdelen in op het baseshield is te bepalen als je weet wat je precies wilt hebben. Hiervoor heb ik uitgelegd wat het verschil was in de poorten van arduino. De starterskit bestond uit: - Rotary angle sensor - Buzzer - Led socket Kit - Sound Sensor - Light Sensor - Touch (schakelaar) - Temperature sensor - Relay - Grove-LCD RGB Backlight V2.0 - Baseshield V2 - Wat kabeltjes

Tutorials In de grove starterskit is er een blaadje met uitleg over ieder onderdeel. Ook staan er links in met al geprogrammeerde codes zodat je je sensor/actuator kan uittesten.

Tutorial Lampje laten branden Mijn eerste tutorial die ik volgde was het laten branden van een lampje wat al op de arduino zit. Hiervoor heb ik een tutorial gekeken op youtube van Jeremy Blum. Ik heb zijn instructies gevolgd en het lukte mij om het lampje te laten branden.

Ontwerpen Het concept was eigenlijk in een middag tijd bedacht. We moesten tijdens de les vertellen waaraan we gingen werken. In zo een korte tijd is altijd erg moeilijk om een goed product idee te krijgen. Maar ik was er van overtuigd dat dit niet het belangrijkste was in dit project. Concept: Een indicatiemiddel waardoor kinderen die niet kunnen klokkijken toch weten dat de bedoeling is dat ze in bed moeten blijven liggen in de ochtend. Mijn idee was dus om een bewegend poppetje te gebruiken wat aangedreven wordt door de servo. Een klok wordt laten zien op de LCD schermpje zodat ze meteen klok leren kijken.

Schematisch tekening

Programmeren vanuit flowchart Er zijn verschillende dingen die in het model moeten gebeuren. LCDKlok Servo Knopje - Klok moet door blijven tikken - LCD moet tijd laten zien - Klok moet instelbaar zijn via knopje - Servo moet bewegen op bepaalde tijdstip - Servor moet bewegen op bepaalde hoek - Klok moet instelbaar zijn via knopje Voordat ik hier aan de slag kan gaan om het uiteindelijke principe te programmeren moet ik eerst de tutorials langsgaan van elk onderdeel die ik wil U Bij het maken van mijn flowchart had ik eerst subfuncties (plaatje boven) opgeschreven en later is het samengevoegd tot een complete flowchart(plaatje beneden)

Experiment knopje met LCD (http://www.instructables.com/id/grove-lucky-dumpling/) Code voor deze tutorial http://www.instructables.com/files/orig/fhh/f89y/hsl29fqg/fhhf89yhsl29fqg.ino) Hierbij heb ik weer code laten importeren van de website. Ik kwam hier wel wat problemen tegen en heb hierbij wat hulp gekregen van klasgenoten. Ze hebben wat aan mijn code verandert,omdat er wat fouten in zaten. Tijdens het controleren ben ik achtergekomen wat bepaalde symbolen in het programeren betekende. Uiteindelijk kwam er geen error tijdens het verifieren. Maar liet mijn LCD niks zien. Telkens als ik op mijn knopje drukte kreeg ik alleen een kleur op mijn scherm i.p.v. wat tekst. Na een uur lang prutsen en denken was het uiteindelijk gelukt. Mijn arduinobord stond niet op 5 volt ingesteld en had dus niet genoeg spanning om het tekste te laten zien. Door alleen aan de schakelaar op 5 volt te zetten was het opgelost.

Experiment Servo (http://arduino.cc/en/reference/servowrite) Op de Arduinowebsite kon ik de write code van de servo opzoeken. Dit is een basis code om te laten zien hoe je de servo op een bepaalde hoek kan zetten van 0 tot 179 graden. #include <Servo.h> Servo myservo; void setup() { myservo.attach(9); myservo.write(90); // set servo to mid-point } void loop() {}

Definitief Concept vanuit de flowchart Onderdelen Code - Arduino met baseshield - LCD RGB Backlight V2.0 I2C port - Servo D4 port - Button D2 port #include <Servo.h> Servo myservo; rgb_lcd lcd; const int colorr = 0; //kleur van scherm word hier bepaald, je kan hier vrij mee spelen const int colorg = 0; const int colorb = 255; const int buttonpin = 2;//Port van button int Hours = 0; //in dit gehele deel kan je de uren minuten en sec bepalen zodra je de code importeert int Minutes = 0; int MinVar = 0; int OpenHours = 0; int OpenMinutes = 0; int PBCounter = 0;

int ButtonState = 0; int LastButtonState = 0; void setup() { lcd.begin(16, 2); } lcd.setrgb(colorr, colorg, colorb); pinmode(buttonpin, INPUT); Serial.begin(9600); myservo.attach(4); //Port van servo myservo.write(1);//start positie van servo void loop() { ButtonState = digitalread(buttonpin);//hieronder zie je hoe de buttonwerkt if (ButtonState!= LastButtonState) { if (ButtonState == HIGH) { PBCounter++; }} delay(100);

int Seconds = (millis()/1000-(60*minvar));//de teller wat de klok maakt if(seconds >= 60) { Minutes++; MinVar++; } int MinutesTotal = (Minutes + PBCounter); if(minutestotal >= 60) { Hours++; Minutes = 0; PBCounter = 0; } if(hours >= 24) { Hours = 0; } lcd.setcursor(0, 0); //Dit gehele part is ervoor te zorgen dat de tekst op de LCD scherm op komt) lcd.print("time: "); if (Hours <= 9) { lcd.print("0"); } lcd.print(hours); lcd.print(":"); if(minutestotal <=9) { lcd.print("0"); } lcd.print(minutestotal);

lcd.print(" : "); if(seconds <= 9) { lcd.print("0"); } lcd.print(seconds); if (Seconds <=30) {myservo.write (179);} //Hier kan ik invullen op welke tijden de servo moet flippen if (Seconds >30) {myservo.write (1);}// Hier staat de tijdstip op wanneer de servo terug moet flippen } Eindresultaat Code is zo geschreven dat de servo om de 30 secondes gaat flippen. Om te laten zien dat mijn code werkt en dat er dan op mijn concept gaat om andere tijden. Maar in mijn model zitten nog mankementen. Mijn klok reset heel de tijd en dit ligt aan mijn arduino wat een beetje kapot is. Want code doet het fijn bij anderen. Ook zijn er problemen met de servo. Mijn servo heeft eent tijdje gewerkt en werd heel erg warm, totdat hij niks meer deed. Zelf weet ik de oorzaak niet van mijn arduino wat heel de tijd reset, ook weet ik niet hoe mijn servo oververhit kan raken.

Regie -Ontwerpen testen Zo n proces heb ik vaker moeten doorlopen. Al zijn er geen echte waarnemingen van,omdat ik bij een foutmelding niet opkomt om een foto te maken. Op dat moment zit er alleen nog in mijn hoofd om het op te lossen. Maar de problemen die ik vaak had was dat ik bepaalde symbolen zijn vergeten in de codes. Bijvoorbeeld de {} of dat bepaalde dingen zijn meegenomen in de commentaar //. In het begin kwam ik ook problemen tegen,omdat ik mijn library niet in orde had. Mijn lcd experiment werkte daardoor niet. Ik miste mijn rgb_lcd.h bestand. Uiteindelijk kwam ik daar achter via het blad van de starterskit(hiermee ook anderen geholpen). Ik kreeg geen foutmelding, maar ik kreeg niks op mijn schermpje. Ik had toen hulp gekregen van verschillende klasgenoten, maar het lukte ze ook niet om mijn scherm goed te krijgen. Uiteindelijk is het goed gekomen en lag het probleem niet in de programmeercode. Het lag aan de voltage van het bord wat niet ingesteld was op vijf volt. Tijdens het werken aan mijn eindconcept kwam ik weer in de problemen. Ik moest een klok programmeren maar ik wilde het doen zonder een extra onderdeel te kopen. Je hebt namelijk klokonderdeeltjes. Maar omdat, de arduino werkt met een microcontroller moet het ook kunnen tellen. Dennis had mij daarbij geholpen met de code van de klok.