arduino

De Arduino

1. Wat is een Arduino

De Arduino is een open source computerplatform gebaseerd op een microcontroller van Atmel. Met de Arduino is het mogelijk een apparaat te maken wat reageert op signalen. Deze signalen kunnen zowel digitaal als analoog zijn. Denk bijvoorbeeld aan een OV-chipkaartlezer. Over het algemeen komt de data van een sensor zoals een schakekelaar of een sensor die bijvoorbeeld reageert op licht of beweging. Het kan ook zijn dat de data van een seriële interface komt zoals een mobiele telefoon of een wifi-accesspoint.. Met behulp van deze data is het mogelijk allerlei apparaten aan te sturen zoals een servomotor of een scherm.Je kunt eveneens denken aan een meetapparaat zoals het meten van het CO2 gehalte.

 

De UNO

Er zijn verschillende type boards. Wij werken met de UNO waarvan je hieronder een afbeelding ziet. arduino

Op de afbeelding kun  je zien dat voor het aansluiten op een PC een USB-kabel nodig is.

 

Digitale Input/Output (IO) aansluitingen

De Arduino heeft een aantal aansluitingen (pins). Aan de bovenzijde vindt je pin 0 t/m 13. Het zijn in- of uitgangen, afhankelijk hoe je dit programmeert. Sommige digitale ingangen zijn ook te programmeren als analoge uitgangen.

Analoge Input aansluiting

Aan de onderzijde vindt je de analoge ingangen 0 t/m 5. Hiermee kun je het voltage lezen van een sensor. Het levert een nummer op van 0 tot 1024.

Voeding

De Arduino kan zijn stroom op twee manieren verkrijgen: via de USB-poort of via de aparte 9 volt ingang.

De software

Voor het volgen van deze cursus heb je een paar gratis programma's nodig. Dit zijn de volgende:

 

Website

De standaard website over de Arduino is www.arduino.cc. Op deze site is zijn veel tutorials en projecten te vinden over of met de Arduino.

 

Fritzing

Alle schema's en afbeeldingen in deze cursus zijn gemaakt met het open-source programma Fritzing. Dit programma geeft de mogelijkheid om zowel in breadboard-weergave als in schema-weergave te ontwerpen. Hieronder is de breadboard-weergave te zien.

fritzing

 

Programmeertaal

De Arduino heeft een eigen programmeertaal genaamd "Arduino Programming Language" en een taal voor seriële communicatie genaamd "Processing". Beide ontwikkelomgevingen zullen uitgebreid aan bod komen. Wij gaan er daarbij vanuit dat je redelijk thuis bent in de programmeertaal Java (via de cursus Greenfoot).

2. Het werk organiseren

Om te kunnen werken met deze cursus heb je een onderdelenbox nodig. Deze krijg je van de docent. Je bent hier zelf voor verantwoordelijk. In principe blijft de box in het lokaal maar in overleg kan het ook zijn dat je deze mee naar huis neemt om er thuis aan te werken.

part box

 

In de onderdelenbox zit het volgende:

  • breadboard
  • Arduino Uno
  • 5 ledjes, groen, 2 x oranje/geel, 2 x rood
  • 8 weerstandjes 220 ohm
  • 3 pushbuttons
  • 1 potmeter
  • 10 aansluitdraden, verschillende kleuren
  • USB-kabel
  • 20 nietjes
  • 1 shiftout ic

Een weerstand kun je uitrekenen met een kleurencalculator.

3. Een led aansluiten

We gaan nu eerst leren hoe je een led aan- en uit kunt zetten.

Wat is een led?

Het woord led is een afkorting van light-emitting diode wat zoveel betekent als lichtuitstralende diode. Een led is dus een lampje wat verschillende kleuren kan hebben. Een diode is een elektronische component wat maar naar één richting stroom doorlaat.Ondanks dat het woordje led een afkorting is, ziet de Nederlandsche taalunie het ook als een zelfstandig naamwoord en mag het dus met kleine letters worden geschreven.

 

Rood is een veelgebruikt kleur. De laatste jaren zijn er ook leds ontwikkeld die gebruikt kunnen worden als huiskamer- of fietsverlichting. Hieronder zie je het soort led wat wij gaan gebruiken. Kijk goed naar wat de pluskant en wat de minkant is. De pluskant gaat altijd in een poort of andere plusaansluiting (afhankelijk van het schema).

 led

Meestal moet er bij een led een weerstand worden gebruikt. In deze schakeling hoeft dat niet want we maken gebruik van poort 13 en deze poort heeft een ingebouwde weerstand.

 

Het eerste wat je nu gaat doen is de led, die je van de docent hebt gekregen, aansluiten op de Arduino. Dit doen we in eerste instantie niet in het echt maar met het programma Fritzing. Het mapje Fritzing vind je in de Program Files. Start het programma op door te dubbelklikken op Fritzing.exe.

fritzing

 

We gaan over dit programma in eerste instantie niet al teveel uitleggen. De meeste leerlingen komen er wel uit. Maak onderstaande schakeling in Fritzing. Let goed op de min- en pluspool!

Neem nu de Arduino en sluit de led op dezelfde manier aan als je in Fritzing hebt gedaan.

4. De Arduino aansluiten

Als eerste start je het programma Arduino. Je vindt dit in het mapje Program Files of Program Files (x86).

 Arduino.exe

De schakeling in deel 3 ga je nu daadwerkelijk werkend maken. Bij de Arduino zit een USB-kabel. Sluit deze aan op zowel de Arduino als de computer. Waarschijnlijk werkt de Arduino in één keer. Je kunt dit nog eens extra controleren door de seriële poort te controleren zoals te zien is op onderstaande afbeelding.

Als de Arduino niet wil uploaden zit daar vaak de fout. Het programma heeft de verkeerde seriële poort gekozen.

De Arduino zit nu aangesloten op de computer en het script kan worden geupload. Dit moet wel eerst worden gemaakt. Dan doen we in het volgende deel.

5. Je eerste script

In onderstaande afbeelding staat het script om de led aan- en uit te laten gaan.

led on and off

 

Een script heeft altijd de volgende compontenten:

  1. Een beschrijving van wat het script doet (1). Commentaar is altijd in het Engels zodat je op de meeste forums vragen kunt stellen over je script;
  2. Een setup (2). Dit is vergelijkbaar met de constructor in Java. Het draait maar een keer. Hierin staan meestal de instellingen;
  3. Een loop (3).  Een loop draait de hele tijd dus hier komt de code waarbij de Arduino aan het werk wordt gezet.
  4. Zowel bij punt 2 als bij punt 3 zet je zoveel als mogelijk commentaar. Dit gebeurt eveneens in het Engels

 het script werkend maken en uploaden

Zodra het script is ingetyped moet het ook nog worden gecontroleerd en worden geupload. Hiervoor zijn de volgende knopjes beschikbaar:

script uploading

 

Als het script goed is gemaakt dan kan het worden geupload. Zo niet, dan komen er in het zwarte vak onder het script kun foutmeldingen zoals ook te zien is in bovenstaande afbeelding.

6. led aan- en uitschakelen

We gaan het script uitbreiden door de volgende 3 componenten:

  • we introduceren een breadboard waarop we voortaan de schakelingen zullen maken;
  • we maken gebruik van een pushbutton waarmee we de led aan- en uit kunnen zetten;
  • we introduceren een weerstand en zullen uitleggen wat dit is.

We zullen beginnen met het maken van de schakeling.

 

de schakeling

Open het programma Fritzing. Normaal gesproken begint het programma met het tonen van een breadboard. Een breadboard is een experimenteerbord waarop je, zonder te hoeven solderen, componenten kunt aanbrengen. Het werkt als volgt:

breadboard

De gele puntjes zijn met elkaar verbonden. Over het algemeen worden de aansluitingen die in de lengte zitten waarlangs in de afbeelding een blauwe of rode streep loopt, gebruikt voor de plus of de min aansluiting. Op het breadboard zie je ook nummers. Dat zijn de genummerde aansluitingen (in de afbeelding rood omlijnd) die met elkaar zijn verbonden en waarin componenten kunnen worden gedrukt. We gaan het breadboard nu eerst verbinden met de plus en de min (de ground) op de Arduino. Kies in Fritzing hiervoor een Arduino Uno. Deze vind je bij de onderdelen.

plus and minus

 

Maak de schakeling vervolgens zoals in onderstaande afbeelding. De gele pijlen geven aan hoe de stroom loopt als de pushbutton wordt ingedrukt. Je ziet dat de stroom vanaf de pushbutton twee kanten opgaat. Door de weerstand en door de blauwe draad.

 

De waarde van de weerstand is 220 Ohm. Dit kun je instellen door met de rechtermuisknop erop te klikken. Dit geldt ook voor de kleur van de draden en de grootte van het breadboard.

pushbutton circuit

 

het script

Nu komt het script. Neem onderstaande code over.

script pushbutton

Maak uiteindelijk de schakeling zoals gemaakt in Fritzing. Dit laatste onderdeel is meestal niet meer zo moeilijk.

 

Je kunt zien of de code werkt doordat het ledje op het breadboard, wat verbonden is met poort 13, aan- of uitgaat. Je mag ook de led, zoals je die hebt gebruikt in onderdeel 3, laten zitten.

7. het debounce script

Het script, gemaakt in het vorige onderdeel, kan worden verbeterd. Wat je eigenlijk wil is dat je de pushbutton ook kan loslaten zodat het een echte schakelaar wordt. Dus één keer indrukken is aan en nogmaals één keer indrukken is weer uit. Dat is mogelijk met behulp van een debounce script. Ook worden eventuele storingen opgevangen zoals het feit dat het script "ziet" dat de pushbutton heel snel in- en uit wordt geschakeld. In het debounce script kan dat niet omdat er een wachttijd zit ingebakken van 50 miliseconden.

 

Eerst maken we een schakeling met een pushbutton en nu ook een led erbij. Dit zullen we niet al teveel meer uitleggen. Maak onderstaande schakeling in Fritzing.

one led

Maak nu het script zoals in onderstaande afbeelding. De uitleg van het script staat er in het Engels bij.

 

debounce

Als laatste maak je de schakeling zoals gemaakt in Fritzing.

8. het debounce script voor als je er niet uitkomt

Dit onderdeel is uitgeschakeld door de docent.