Arduino cursus/Dag 1: verschil tussen versies

Uit Lab
Naar navigatie springen Naar zoeken springen
 
(25 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.


== Doel van de cursus ==
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
| Omkeren van stroomrichting
| Led-3 <br> https://docs.google.com/document/d/1s8sRRHkOlGjI-qa04Lwfa5DbzZrf6RmYe6AyDFi5HE4/edit?usp=sharing
| [[../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 58: Regel 108:
! bouwsteen !! opdracht(en) || library || 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> NeoPixel <br> WS2812
| digitale LEDs <br> opdracht
| https://learn.adafruit.com/adafruit-neopixel-uberguide/arduino-library (bekijken)
| [[../Led-4]]
| <code>Adafruit_NeoPixel</code>
|
|
|
|-
|-
| digitale LEDs <br> demo
|
| Bestand->Voorbeelden->Adafruit Neopixel->strandtest
|
|
|
|
Regel 83: Regel 138:
|-
|-
| i2c display
| i2c display
| programma: HelloWorld
| Bestand->Voorbeelden->LiquidCrystal I2C->HelloWorld
| LiquidCrystal I2C (Frank den Brabander)
| LiquidCrystal I2C (Frank den Brabander)
|
|
Regel 89: Regel 144:


== 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"
Regel 94: Regel 151:
|-
|-
| Servo-motor, als ''slave'' van potmeter
| Servo-motor, als ''slave'' van potmeter
| Servo-0 <br> https://docs.google.com/document/d/1akvI5VIOvVF7wcvFuD36guplNOyk3W2wHWGDjbBayek/edit?usp=sharing
| [[../Servo-0]]
| Analoge input (potmeter)
| Analoge input (potmeter)
|-
|-
| "power" voeding <br> extra voeding voor bekrachtiging
| "power" voeding <br> extra voeding voor bekrachtiging
| Servo-1 (met "power" voeding) <br> https://docs.google.com/document/d/1qQkorHxHrrwcSaOAlfOjN29jTXPMR_6ScS6kpombYsg/edit?usp=sharing
| [[../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) <br> https://docs.google.com/document/d/1XWSUkjNFQ4bP4iRdytPGpopZO_BT7V7hTxHDbq01ejU/edit?usp=sharing
| [[../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)
|-
|-
Regel 114: Regel 171:
|-
|-
| stappenmotor
| 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

Arduino cursus
Arduino Basis
  1. Led-0: breadboard, LED, weerstand
  2. Blink-1
  3. Button-1
  4. Blink-freq: frequentie
  5. Blink-PWM: pulsbreedte-modulatie
  6. Analoge input

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:


Basiskennis:

Tutorials:

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: