Arduino cursus/Dag 1: verschil tussen versies
(35 tussenliggende versies door dezelfde gebruiker niet weergegeven) | |||
Regel 1: | Regel 1: | ||
{{Zijbalk Arduino cursus}} | |||
== Doel van de cursus == | |||
Voor VO-docenten, TOA’s - die meer met de Arduino en “physical computing” willen doen. | |||
Doel: beheersen van Arduino als “bouwdoos”: kennis en vaardigheid in gebruik van Arduino & bijbehorende physical computing componenten, | |||
en in combineren daarvan tot eigen project. | |||
Daarnaast: aandacht voor: Arduino-activiteiten voor leerlingen | |||
=== Presentatie === | |||
* https://infvo.nl/presentaties/Arduino-cursus-2017-18-1.pdf | |||
== Cheat sheets en tutorials == | |||
De onderstaande cheatsheets geven een samenvatting van veel relevant materiaal: | |||
* [http://pighixxx.com/unov3pdf.pdf Arduino pinout diagram] | |||
* [https://github.com/liffiton/Arduino-Cheat-Sheet/blob/master/Arduino%20Cheat%20Sheet.pdf Arduino programmeertaal cheat sheet] | |||
* onderdelen: https://infvo.nl/basis/index.php/Arduino-cheatsheet/Onderdelen | |||
* basisschakelingen: http://www.pighixxx.com/test/abc/ (een reeks cheat sheets) | |||
Basiskennis: | |||
* breadboard: https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard | |||
* elektriciteit: spanning, stroom, geleider, weerstand: https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law | |||
* | |||
Tutorials: | |||
* Tutorials via de Arduino website: https://www.arduino.cc/en/Tutorial/HomePage | |||
* Adafruit Arduino tutorials: https://learn.adafruit.com/lesson-0-getting-started | |||
Nog meer informatie op het web: https://infvo.nl/lab/index.php/Arduino/Informatie_op_het_web | |||
== Basis-bouwstenen == | == Basis-bouwstenen == | ||
=== Electronica === | |||
Bij deze opdrachten maak je een schakeling op een breadboard. Je gebruikt de Arduino alleen als voeding, niet om de schakeling te besturen. | |||
: In plaats van de Arduino kun je ook een batterij als voeding gebruiken. | |||
{| class="wikitable" | {| class="wikitable" | ||
Regel 8: | Regel 45: | ||
|- | |- | ||
| breadboard; LED; weerstand | | breadboard; LED; weerstand | ||
| [[../LED-0]] | | [[../Led-0]] | ||
|- | |||
| push button als schakelaar voor LED | |||
| [[../Button-0]] | |||
|- | |||
| analoog uit (PWM) | |||
| | |||
|- | |||
| analoog in (A/D) | |||
| | |||
|} | |||
=== Arduino basisschakelingen === | |||
{| class="wikitable" | |||
! bouwsteen !! opdracht(en) | |||
|- | |- | ||
| digitaal uit | | digitaal uit | ||
| | | [[../Blink-1]] | ||
|- | |- | ||
| digitaal in | | digitaal in | ||
| | | [[../Button-1]] | ||
|- | |- | ||
| analoog uit (PWM) | | analoog uit (PWM) | ||
Regel 28: | Regel 80: | ||
! bouwsteen/concept !! opdracht(en) || voorkennis | ! bouwsteen/concept !! opdracht(en) || voorkennis | ||
|- | |- | ||
| | | Periode en frequentie | ||
| | | [[../Blink-freq]] | ||
| Blink, Analoge input | |||
| | |||
|- | |- | ||
| | | PWM, duty cycle | ||
| | | [[../Blink-PWM]] | ||
| Blink, Analoge input | |||
|- | |- | ||
| | | geluid | ||
| | | [[../Tone-freq]] | ||
| Blink-freq | |||
|- | |- | ||
| | | Omkeren van stroomrichting | ||
| | | [[../Led-3]] | ||
| | | LED-0, Blink | ||
|} | |} | ||
== Libraries; "bus" en adressering == | == Libraries; "bus" en adressering == | ||
Voor veel onderdelen heb je libraries nodig. De onderstaande opdrachten geven daarvan enkele voorbeelden. | Voor veel onderdelen heb je libraries nodig. De onderstaande opdrachten geven daarvan enkele voorbeelden. Hiermee leer je ook hoe je een library toevoegt aan de Arduino IDE. | ||
Als je veel onderdelen moet aansluiten op een Arduino, heb je al snel te weinig pinnen. Een oplossing daarvoor is om één of twee pinnen te gebruiken voor een "bus" waarop je meerdere onderdelen kunt aansluiten. In dat geval moet je de verschillende onderdelen kunnen adresseren. We geven hiervan twee voorbeelden: | Als je veel onderdelen moet aansluiten op een Arduino, heb je al snel te weinig pinnen. Een oplossing daarvoor is om één of twee pinnen te gebruiken voor een "bus" waarop je meerdere onderdelen kunt aansluiten. In dat geval moet je de verschillende onderdelen kunnen adresseren. We geven hiervan twee voorbeelden: | ||
Regel 56: | Regel 106: | ||
{| class="wikitable" | {| class="wikitable" | ||
! bouwsteen !! opdracht(en) || voorkennis | ! bouwsteen !! opdracht(en) || library || voorkennis | ||
|- | |- | ||
| | | digitale LEDs <br> NeoPixel <br> WS2812 | ||
| https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library (bekijken) <br> [[../Digitale Leds]] | |||
| <code>Adafruit_NeoPixel</code> | |||
| | |||
|- | |||
| digitale LEDs <br> demo | |||
| Bestand->Voorbeelden->Adafruit Neopixel->strandtest | |||
| | | | ||
| | | | ||
|- | |- | ||
| | | digitale LEDs <br> opdracht | ||
| | | [[../Led-4]] | ||
| | |||
| | | | ||
|- | |- | ||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
| | | i2c library | ||
| [[../i2c]] (lezen) | |||
| https://www.arduino.cc/en/Reference/Wire | |||
| | | | ||
|- | |- | ||
| i2c scanner | |||
| https://playground.arduino.cc/Main/I2cScanner | |||
| <code>Wire</code> | |||
| | | | ||
|- | |||
| i2c display | |||
| Bestand->Voorbeelden->LiquidCrystal I2C->HelloWorld | |||
| LiquidCrystal I2C (Frank den Brabander) | |||
| | | | ||
|} | |} | ||
== Besturing en bekrachtiging ("power") == | == Besturing en bekrachtiging ("power") == | ||
Een Arduino kan maar weinig stroom leveren: per output-pin maximaal 40mA, typisch 20mA. Modernere microcontrollers leveren per pin nog minder stroom en spanning, typisch 5mA bij 3.3V. Dat is veel te weinig om een motor te laten draaien, of om LEDs fel te laten branden. De oplossing hiervoor is om de besturing (vanuit de Arduino) en de bekrachtiging te scheiden: voor dit laatste gebruik je dan een externe voeding die voldoende vermogen kan leveren. Vanuit de Arduino bestuur je dan een schakelaar die deze externe voeding aan- en uitschakelt: dat kan een relais zijn, maar ook een transistor (MosFET). In een motor-driver zitten deze schakelaars al ingebouwd. | |||
{| class="wikitable" | {| class="wikitable" | ||
! concept(en) !! opdracht(en) || voorkennis | ! concept(en) !! opdracht(en) || voorkennis | ||
|- | |- | ||
| | | Servo-motor, als ''slave'' van potmeter | ||
| Servo-0 | | [[../Servo-0]] | ||
| Analoge input (potmeter) | | Analoge input (potmeter) | ||
|- | |- | ||
| "power" voeding | | "power" voeding <br> extra voeding voor bekrachtiging | ||
| Servo-1 (met "power" voeding) | | [[../Servo-1]] (met "power" voeding) | ||
| Servo-0 | | Servo-0 | ||
|- | |- | ||
| Transistor (MosFET) als bestuurbare schakelaar | | Transistor (MosFET) als bestuurbare schakelaar | ||
| Motor-0 (met MosFET en "power" voeding) | | [[../Motor-0]] (met MosFET en "power" voeding) | ||
| Analoge input (potmeter); PWM | | Analoge input (potmeter); PWM | ||
|- | |- | ||
| Motor-driver IC met regelbare richting en snelheid | | Motor-driver IC met regelbare richting en snelheid | ||
| Motor-1 <br> https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing | | [[../Motor-1]] <br> https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing | ||
| Servo-1; PWM; LED-3 (omkeren van stroomrichting) | | Servo-1; PWM; LED-3 (omkeren van stroomrichting) | ||
|- | |- | ||
| volledig gescheiden voedingen | | volledig gescheiden voedingen | ||
| relais | | relais | ||
| | |||
|- | |||
| stappenmotor | |||
| [[../Stepper-0]] | |||
| | |||
|} | |} | ||
== Huiswerk, opstap naar de volgende bijeenkomst == | |||
Het huiswerk voor de volgende bijeenkomst bestaat uit de bovenstaande opdrachten, voor zover je die nog niet op de bijeenkomst zelf gemaakt hebt; en de onderstaande opdrachten, als opstap voor de volgende bijeenkomst: | |||
* [[../double-blink]] | |||
* [[../verkeerslicht-0]] |
Huidige versie van 18 okt 2017 om 09:48
Doel van de cursus
Voor VO-docenten, TOA’s - die meer met de Arduino en “physical computing” willen doen.
Doel: beheersen van Arduino als “bouwdoos”: kennis en vaardigheid in gebruik van Arduino & bijbehorende physical computing componenten, en in combineren daarvan tot eigen project.
Daarnaast: aandacht voor: Arduino-activiteiten voor leerlingen
Presentatie
Cheat sheets en tutorials
De onderstaande cheatsheets geven een samenvatting van veel relevant materiaal:
- Arduino pinout diagram
- Arduino programmeertaal cheat sheet
- onderdelen: https://infvo.nl/basis/index.php/Arduino-cheatsheet/Onderdelen
- basisschakelingen: http://www.pighixxx.com/test/abc/ (een reeks cheat sheets)
Basiskennis:
- breadboard: https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard
- elektriciteit: spanning, stroom, geleider, weerstand: https://learn.sparkfun.com/tutorials/voltage-current-resistance-and-ohms-law
Tutorials:
- Tutorials via de Arduino website: https://www.arduino.cc/en/Tutorial/HomePage
- Adafruit Arduino tutorials: https://learn.adafruit.com/lesson-0-getting-started
Nog meer informatie op het web: https://infvo.nl/lab/index.php/Arduino/Informatie_op_het_web
Basis-bouwstenen
Electronica
Bij deze opdrachten maak je een schakeling op een breadboard. Je gebruikt de Arduino alleen als voeding, niet om de schakeling te besturen.
- In plaats van de Arduino kun je ook een batterij als voeding gebruiken.
bouwsteen | opdracht(en) |
---|---|
breadboard; LED; weerstand | Arduino cursus/Led-0 |
push button als schakelaar voor LED | Arduino cursus/Button-0 |
analoog uit (PWM) | |
analoog in (A/D) |
Arduino basisschakelingen
bouwsteen | opdracht(en) |
---|---|
digitaal uit | Arduino cursus/Blink-1 |
digitaal in | Arduino cursus/Button-1 |
analoog uit (PWM) | |
analoog in (A/D) |
Volgorde en tijd
bouwsteen/concept | opdracht(en) | voorkennis |
---|---|---|
Periode en frequentie | Arduino cursus/Blink-freq | Blink, Analoge input |
PWM, duty cycle | Arduino cursus/Blink-PWM | Blink, Analoge input |
geluid | Arduino cursus/Tone-freq | Blink-freq |
Omkeren van stroomrichting | Arduino cursus/Led-3 | LED-0, Blink |
Libraries; "bus" en adressering
Voor veel onderdelen heb je libraries nodig. De onderstaande opdrachten geven daarvan enkele voorbeelden. Hiermee leer je ook hoe je een library toevoegt aan de Arduino IDE.
Als je veel onderdelen moet aansluiten op een Arduino, heb je al snel te weinig pinnen. Een oplossing daarvoor is om één of twee pinnen te gebruiken voor een "bus" waarop je meerdere onderdelen kunt aansluiten. In dat geval moet je de verschillende onderdelen kunnen adresseren. We geven hiervan twee voorbeelden:
- een i2c-bus met een LCD-display
- een 1-draads bus met "digitale LEDs".
bouwsteen | opdracht(en) | library | voorkennis |
---|---|---|---|
digitale LEDs NeoPixel WS2812 |
https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library (bekijken) Arduino cursus/Digitale Leds |
Adafruit_NeoPixel
|
|
digitale LEDs demo |
Bestand->Voorbeelden->Adafruit Neopixel->strandtest | ||
digitale LEDs opdracht |
Arduino cursus/Led-4 | ||
i2c library | Arduino cursus/i2c (lezen) | https://www.arduino.cc/en/Reference/Wire | |
i2c scanner | https://playground.arduino.cc/Main/I2cScanner | Wire
|
|
i2c display | Bestand->Voorbeelden->LiquidCrystal I2C->HelloWorld | LiquidCrystal I2C (Frank den Brabander) |
Besturing en bekrachtiging ("power")
Een Arduino kan maar weinig stroom leveren: per output-pin maximaal 40mA, typisch 20mA. Modernere microcontrollers leveren per pin nog minder stroom en spanning, typisch 5mA bij 3.3V. Dat is veel te weinig om een motor te laten draaien, of om LEDs fel te laten branden. De oplossing hiervoor is om de besturing (vanuit de Arduino) en de bekrachtiging te scheiden: voor dit laatste gebruik je dan een externe voeding die voldoende vermogen kan leveren. Vanuit de Arduino bestuur je dan een schakelaar die deze externe voeding aan- en uitschakelt: dat kan een relais zijn, maar ook een transistor (MosFET). In een motor-driver zitten deze schakelaars al ingebouwd.
concept(en) | opdracht(en) | voorkennis |
---|---|---|
Servo-motor, als slave van potmeter | Arduino cursus/Servo-0 | Analoge input (potmeter) |
"power" voeding extra voeding voor bekrachtiging |
Arduino cursus/Servo-1 (met "power" voeding) | Servo-0 |
Transistor (MosFET) als bestuurbare schakelaar | Arduino cursus/Motor-0 (met MosFET en "power" voeding) | Analoge input (potmeter); PWM |
Motor-driver IC met regelbare richting en snelheid | Arduino cursus/Motor-1 https://learn.adafruit.com/adafruit-arduino-lesson-15-dc-motor-reversing |
Servo-1; PWM; LED-3 (omkeren van stroomrichting) |
volledig gescheiden voedingen | relais | |
stappenmotor | Arduino cursus/Stepper-0 |
Huiswerk, opstap naar de volgende bijeenkomst
Het huiswerk voor de volgende bijeenkomst bestaat uit de bovenstaande opdrachten, voor zover je die nog niet op de bijeenkomst zelf gemaakt hebt; en de onderstaande opdrachten, als opstap voor de volgende bijeenkomst: