Codewerkplaats Les 1

Print Friendly, PDF & Email

In deze eerste les maken we kennis met de Arduino en hoe je deze kan programmeren. De eerste onderdelen die we gaan aansluiten zijn de LED-koplampen.

Deze les gaat over:

Wat is een Arduino? [↑]

Het hart van het karretje is een Arduino.

De Arduino is een microcontroller die je met een laptop kan programmeren. Op de pennen van de Arduino kan je van alles aansluiten.

Er zijn allerlei verschillende soorten Arduino’s:

Arduino Nano [↑]

In de Codewerkplaats gaan we aan de slag met de Arduino Nano:

Op de Arduino zitten vier LED’s

  • De LED’s RX en TX knipperen als je een programma naar de Arduino laadt.
  • De LED PWR geeft aan of de Arduino is aangesloten op een voedingsbron. In dit voorbeeld krijgt de Arduino de spanning via de USB-kabel die op de laptop is aangesloten.
  • De LED L kunnen we zelf aan- en uitzetten. Deze LED is aangesloten op PIN13 van de Arduino.

Hoe programmeer je een Arduino? [↑]

Misschien heb je al een geprogrammeerd met Scratch of MakeCode (micro:bit):

Scratch

https://scratch.mit.edu/

MakeCode

https://makecode.microbit.org/#editor

In Scratch en MakeCode bouw je een programma door programmablokjes te slepen.

We gaan het programma op twee verschillende manier bouwen:

  1. Door programmablokjes te slepen. Dit doen we online met Leaphy Easybloqs.
  2. Door het programma te schrijven. Hiervoor moeten we het programma Arduino IDE op de laptop installeren.
Leaphy – Easybloqs Arduino IDE
 
Programmeren door blokjes te slepen Programmeren door te typen
Nederlands Engels
Easyblocqs werkt (ook) online Arduino IDE moet je downloaden en installeren op je laptop
Beperkte mogelijkheden Enorm veel mogelijkheden
https://leaphyeasybloqs.com/ https://www.arduino.cc/en/software
Gratis Gratis

Je leert in de Codewerkplaats te programmeren met blokjes (Leaphy Easybloqs) maar ook met de Arduino IDE (Integrated Development Environment). Deze moet je op je laptop installeren en schrijft de code via het toetsenbord.

Programmeren met Leaphy Easybloqs [↑]

In Leaphy Easybloqs zit ook een knop waarmee je de geschreven versie van de blokjescode kan bekijken:

Links zie je de blokjescode en rechts staat de geschreven code.

Leaphy Easybloqs heeft een eigen manier bedacht om de code op te schrijven. Bij de Codewerkplaats werken we met de ‘echte’ code die in de hele wereld ook wordt gebruikt door miljoenen mensen die de Arduino gebruiken voor school, kunst of hobby.

Programmeren met de Arduino IDE

De Arduino IDE (spreek uit ‘Ai Die Eee’) is een gratis programma dat je op je laptop moet installeren. Op de laptops van Huis73 die we in de Codewerkplaats gebruiken is de Arduino IDE al geïnstalleerd.

Als je de Arduino IDE op je eigen laptop wilt gebruiken dan kan je het downloaden op de website van Arduino: https://www.arduino.cc/en/software

In de Arduino IDE ziet de code voor het laten knipperen van de LED er zo uit:

Opbouw van het programma (sketch)

Een programma voor Arduino wordt ook vaak ‘sketch’ (schets) genoemd en het bestaat uit drie delen:

Stel je voor dat je een robot aan het programmeren bent met Arduino. Je programma (of ‘sketch’) is als een recept dat vertelt wat de robot moet doen. Dit ‘recept’ bestaat uit drie belangrijke delen:

Het begin (Declaraties)

  • Dit is zoals het klaarzetten van je ingrediënten voordat je gaat koken.
  • Je vertelt de Arduino welke ‘ingrediënten’ (zoals speciale sensoren of lichtjes) je gaat gebruiken in je project.
  • Soms vertel je de Arduino ook over speciale ‘kookboeken’ (bibliotheken) die uitleggen hoe je met deze ingrediënten kunt werken.
  • Dit is ook het deel van het programma waar je de Arduino vertelt welke variabelen je gaat gebruiken en hoe die heten (int PinLed = 13).
    • Je ziet ook nog ‘int’. Hiermee geef je aan wat voor soort getal in de variabele wordt opgeslagen. We komen hier later nog een keer op terug.

Het voorbereiden (Setup)

  • Dit is als het klaarzetten van je keuken. Je doet dit één keer voordat je begint met koken.
  • Je vertelt de Arduino hoe deze zich moet voorbereiden, zoals welke pinnetjes deze moet gebruiken en of die pinnetjes iets moeten lezen (INPUT) of schrijven (OUTPUT).

Het koken (Loop)

  • Nu begint het echte koken! Dit gedeelte blijft steeds opnieuw gebeuren, net zoals wanneer je blijft roeren in een pot.
  • Je vertelt de Arduino wat hij steeds opnieuw moet doen, zoals het meten van de temperatuur (lezen van een sensor) of het aanzetten van een lampje.
  • Deze stappen blijven zich herhalen, net zolang totdat je de Arduino uitzet.

Speciale tekens

Je ziet in de code ook allerlei speciale tekens: (), {}, ; , //

Puntkomma ; Dit is als een stopbord in je code. Het vertelt de Arduino dat je klaar bent met je zin (een instructie) en dat het tijd is voor de volgende.
Accolades {} Deze zijn als een knuffel, ze houden alle stappen die samen horen stevig bij elkaar.
Bijvoorbeeld, alles wat je Arduino moet doen in een spelletje zit tussen deze knuffels.
Haakjes () Deze gebruik je om te vertellen in welke volgorde je dingen wilt doen. Net als wanneer je eerst je sokken en dan je schoenen aantrekt.
Commentaartekens // Deze zijn als geheime berichtjes die alleen voor mensen zijn, niet voor de Arduino. Met // vertel je iets kort, en met /* ... */ kun je een langer verhaal kwijt.

Door deze tekens goed te gebruiken, kan je leuke dingen programmeren met de Arduino, zoals lichtjes laten knipperen, geluidjes maken, of zelfs kleine robotjes besturen! Het is als een geheime taal om met de Arduino te praten.

Void

Je ziet in het programma ook twee keer het woord ‘void‘. Wat betekent dit?

Stel je voor dat je een robot, zoals een Arduino, aan het vertellen bent wat hij moet doen. Als je de robot opdrachten geeft, noemen we die ‘functies’. Functies zijn een soort speciale taken die je de robot laat uitvoeren.

Je komt in het programma ook het woord ‘void’ tegen. Dit is een beetje een gek woord, maar in de wereld van het programmeren met Arduino betekent ‘void’ dat een functie geen ‘bedankje’ of iets teruggeeft nadat deze het werk heeft gedaan. Het is net alsof je een vriend vraagt om je te helpen met iets, en als deze klaar is, niets terug wilt. Hij doet gewoon de taak en dat is alles.

 

{geluid van verschillende frequenties}

Zo werkt de ultrasoon module

De ultrasoon module werkt met geluid van 48 kilohertz (kHz). Dit is hetzelfde als 48.000 Hertz (Hz).

Op de module zit een zender en een ontvanger. De zender zend geluidspulsen van 48 kHz uit. Als deze pulsen ergens tegenaan komen dan echoën deze terug naar de ontvanger.

Omdat het geluid zich verplaatst met ongeveer 300 meter per seconde hoeven we alleen maar de tijd te meten tussen het versturen van de puls (de trigger) en het ontvangen van de echo.

Voorbeeld:

We laten de de ultrasoon module een puls versturen. Deze puls komt na 850 microseconde (dat is 0,000850 seconde) een muur tegen.

De puls wordt door de muur gereflecteerd en de echo doet er 850 microseconde over om terug te komen.

De tijd tussen het versturen en het ontvangen van de puls is dus 2 x 850 = 1700 microseconde. Dit is 0,001700 seconde.

In één seconde legt het geluid ongeveer 300 meter af. In 0,001700 seconde is dit dan:

0,001700 x 300 = 0,51 meter = 510 centimeter.

Dit is de heen-en-weer afstand. De afstand tot de muur is dus:

510 / 2 = 25,5 centimeter

Dit principe wordt ‘sonar’ genoemd en het wordt in de natuur ook gebruikt door vleermuizen.

Ultrasoon sensor aansluiten op de Arduino

{Schema}

{Uitleg printje}

Trigger: pin 16

Echo: pin 17

Dit zijn de pinnen die we gebruiken in de Codewerkplaats. Je mag natuurlijk ook andere pinnen gebruiken, maar dan moet je het programma natuurlijk wel aanpassen.

Programma’s voor ultrasoon sensor

Jij bent niet de eerste die een ultrasoon sensor op een Arduino aansluit en er zijn kant-en-klare stukjes programma die iedereen mag gebruiken.

Leaphy Easybloqs

Met het programma hieronder gaat de led die op de Arduino Nano zet (pin 13) branden als de afstand kleiner is dan 10 centimeter.

In het blokje Sonar is aangegeven dat de Trigger op pin 16 en de Echo op pin 17 zit.

Leds aansluiten op een Arduino

Een blauwe led werkt op een spanning van ongeveer 3 Volt. Uit de Arduino komt echter 5 Volt. Tussen de LED en de Arduino schakelen we een weerstand. Deze weerstand (220 Ohm) beperkt de stroom die door de LED loopt.

{Foto printje met LED en weerstand}

Elektrisch schema

{Schema/foto}

Het printje waarop de grote blauwe LED’s zitten hebben drie aansluitingen. De middelste aansluiting wordt niet gebruikt