Arduino cursus
Dit is een bewerking van het materiaal horende bij een Chineese Arduino-learning kit. Het materiaal is prima, maar de learning kwaliteiten zijn maar matig; projecten worden gepresenteerd als recepten zonder uitleg. Ook lijkt de volgorde van de projecten didactische weinig doordacht. Het is de bedoeling om de projecten een voor een door te lopen, waarbij je het meeste leert als je met elk project wat speelt. Bij elk project staan suggesties wat je extra zou kunnen proberen.
In principe wordt voor het Arduino platform gebruik gemaakt van de programmeertaal C++. Dit is de taal C, uitgebreid met object orientatie. Het is niet nodig om dit nu al te beheersen, maar voor extra informatie moet je dus zoeken op C en C++.
Contents
- 1 Arduino
- 2 Projecten
- 2.1 Project 1: Kickstart
- 2.2 Project 2: Verkeerslicht
- 2.3 Project 3: Communiceren met de PC
- 2.4 Project 4: LED looplicht
- 2.5 Project 5: LED reageert op knopje
- 2.6 Project 6: Active Buzzer (met knop)
- 2.7 Project 7: PWM
- 2.8 Project 8: RGB LED
- 2.9 Project 9: Passive buzzer
- 2.10 Project 10: Het 1602 LCD Display
- 2.11 Project 11: Analog Value Reading
- 2.12 Project 12: Allerlei sensoren
- 2.13 Project 13: 1-digit LED Segment Display
- 2.14 Project 14: 4-digit LED Segment Display
- 2.15 Project 15: Temperatuur meten met de digitale DS18B20 sensor
- 2.16 Project 16: Een digitale clock
- 2.17 Project 17: Infrarood afstandbediening
- 2.18 Project 18: Een joystick
- 2.19 Project 19: Een servo
- 2.20 Project 20: De stappenmotor
- 2.21 Project 21: De PIR bewegingsmelder
- 2.22 Project 22: Een tilt sensor
- 2.23 Project 23: Een 3 assige versnellingsmeter (ADXL345)
- 2.24 Project 24: Minder output pins nodig met een shift register
- 2.25 Project 25: Een 8x8 RGB LED Matrix aansturen
- 2.26 Project 26: Werken met NeoPixels (WS2812)
- 2.27 Project 27: GPS ontvanger
- 2.28 Project 28: Rotary Encoder
- 2.29 Project 29: Dingen aansturen met meer power / DC Motor
- 2.30 Project 30: Gebruik micro SDcard / gegevens opslaan
- 3 More then Arduino
Arduino
Het Arduino project is begonnen in Italie waar een klein team een eenvoudig standaard bordje maakte voor een ATMEL microcontroller chip. Een microcontroller is eigenlijk een klein computertje met een klein beetje geheugen aan boord en vooral met technisch handige aansluitingen waarmee signalen kunnen worden ingelezen en apparaten bestuurd kunnen worden. Het mooie van Arduino is dat het zo ontworpen is dat niet alleen dit aansluiten erg gemakkelijk is gemaakt, maar ook het programmeren van het bordje. Het echte werk wordt vervolgens gedaan door de microcontroller chip, die dus ontworpen is door ATMEL. Arduino staat overigens niet op zichzelf; er zijn andere projecten, sommigen ouder, die vergelijkbare platformpjes hebben ontwikkeld, zoals [Wiring] en [Fritzing]. Tussen de oorspronkelijke vrienden die Arduino zijn begonnen boterd het overigens niet meer; het blijkt dat een van de teamleden er met het geld vandoor is gegaan.
Het hele Arduino project is open source wat erop neer komt dat niet alleen de hardware ontwerpen, maar ook de code van de Arduino ontwikkelomgeving software openbaar zijn en ook door anderen gebruikt mogen worden. Dat wordt dan ook veelvuldig gedaan.
|
| Vanaf links: Gianluca Martino, David Mellis, David Cuartielles, Tom Igoe en Massimo Banzi |
Projecten
Project 1: Kickstart
- Installeren van de Arduino software
- Aansluiten van de Arduino op de PC
- Een (eenvoudig) programma maken, uploaden en op de Arduino laten werken
- De Arduino werkt nu ook zelfstandig!
Project 2: Verkeerslicht
- Iets meer programmeren
- De delay() functie
Project 3: Communiceren met de PC
- Introductie van het Serial object
- Gebruik van de Serial monitor
Project 4: LED looplicht
- Meer programmeren
- Seriele communicatie helpt bij debugging
Project 5: LED reageert op knopje
- Aansluiten knopje
- Pin configureren voor digitale input
- Stand van knopje uitlezen
Project 6: Active Buzzer (met knop)
- Een buzzer in plaats van een LED!
Project 7: PWM
- Hoe, wat en waarom van PWM
- LED dimmer
Project 8: RGB LED
- Meerdere kleuren maken
- HSL licht model
- Gebruik van een functie binnen de software
Project 9: Passive buzzer
- Programmeren van loops
- tone() functie
- Commando's vanaf de PC sturen
Project 10: Het 1602 LCD Display
- Tekst uitvoeren naar een LCD display
Project 11: Analog Value Reading
- Gebruik van analoge ingangen
- Automatische AD-Conversie
- Gemeten signaal omzetten naar spanning
- LET OP int en float
Project 12: Allerlei sensoren
- Licht meten met een LDR
- Vlammen detecteren met een IR flame sensor
- Temperatuur meten met een NTC/Thermistor
- Temperatuur meten met een LM35 temperature sensor
- Gas sensor
- Luchtdruk sensor
- Water flow sensor
- Temperatuur meten met een Pt100
- Luchtvochtigheidssensor (en temperatuur sensor)
Project 13: 1-digit LED Segment Display
- Aansturen van een LED display; tonen van een cijfer
- Gebruik van patronen
- Gebruik van array's
Project 14: 4-digit LED Segment Display
- Eigenschappen van een Segmented LED display
- Tonen van meerdere cijfers, onzichtbaar snel achter elkaar
Project 15: Temperatuur meten met de digitale DS18B20 sensor
- Digitale meting met 1-wire communicatie
- Meerdere sensoren koppelen
Project 16: Een digitale clock
- De actuele datum / tijd instellen en uitlezen met een clock module
- Communicatie met I2C met behulp van de Wire.h library
- Met het display van project 11 maakt het een clock
Project 17: Infrarood afstandbediening
Project 18: Een joystick
- Leuk invoer apparaat!
Project 19: Een servo
- Bestuur hem met de joystick
Project 20: De stappenmotor
- Hoe wat en waarom van een stappenmotor
- Besturen met een sensor
- Besturen met de joystick
Project 21: De PIR bewegingsmelder
- Gebruik en opties van de PIR bewegingsmelde
Project 22: Een tilt sensor
- Meting van het Ja/Nee type
- Wachttijden, dempen met weerstand/condensator
Project 23: Een 3 assige versnellingsmeter (ADXL345)
- Meerdimensionale digitale sensor
Project 24: Minder output pins nodig met een shift register
Project 25: Een 8x8 RGB LED Matrix aansturen
- Probleem van te veel outputs oplossen met een driver
Project 26: Werken met NeoPixels (WS2812)
- Introductie in NeoPixels
Project 27: GPS ontvanger
Project 28: Rotary Encoder
- Rotary Encoder in plaats van Potmeter
- Timer interrupt
Project 29: Dingen aansturen met meer power / DC Motor
Project 30: Gebruik micro SDcard / gegevens opslaan
- LED Driver
- Weergave op een TFT/LCD schermpje
- Lichtnet bedienen met een relais
- Lichtnet (230V AC) uitlezen (aan/uit)
- Zonnepaneel (doormeten en gebruiken - ook als lichtsensor te gebruiken)
- RFID module
- Ultrasonic (distance) sensor HC-SR04
- Demultiplexer 74154
- OpAmp
- Interrupt afhandeling (externe interrupts/timer interrupts)
- Arduino's praten met elkaar
- De Arduino via seriele poort laten praten met een (Delphi) programma op de PC/laptop
- ZigBee en Philips Hue
- Laag energieverbruik / lange batterijduur
- Camera
