Arduinocursus Deel3 Opdrachten: Difference between revisions

From Digimaken Wiki

Simon (talk | contribs)
No edit summary
Simon (talk | contribs)
 
(29 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Opdracht 1, servo==
==Opdracht 3.1, servo==
[[File:Sg90_servo.jpg|300px]]
[[File:Sg90_servo.jpg|300px]]
In deze opdracht gaan we met servo's aan de slag. Een servomotor draait geen rondjes zoals een standaard DC-motor of stappenmotor, maar het is een motor waarvan je precies de rotatie kan instellen. De toepassingen van servomotoren zijn eindeloos, maar je kan er bijvoorbeeld een tekenrobot mee maken zoals in deze video:
<youtube>ZWgcuEoQOFk</youtube>
===a===
===a===
1 Installeer de Arduino servo library
De servo heeft geen labels voor de verschillende pinnen. De bruine draad is GND (0V), de rode draad is VCC (5v) en de oranje/gele draad is de signaaldraad.


2 Sluit de servo aan op pin 9 van de Arduino.
1 Sluit de servo aan (zoals hierboven aangegeven). Sluit de signaaldraad aan op pin 9 van de Arduino.


3 Open het voorbeeldprogramma Sweep (Examples>Servo>Sweep), en upload dit programma naar de Arduino.
2 Als je het nog niet gedaan heb, download [http://wiki.zb45.nl/index.php?title=Arduinocursus_Deel3_Materiaal hier] het lesmateriaal.
 
3 Open het voorbeeldprogramma Opdracht1a (Materiaal Arduinocursus>Voorbeeldsketches en Uitwerkingen>Week 3>Voorbeeldsketches Week 3>Opdracht1a), en upload dit programma naar de Arduino.


Als het goed is beweegt de servo nu heen en weer van 0 naar 180 graden.
Als het goed is beweegt de servo nu heen en weer van 0 naar 180 graden.


===b===
===b (BONUS)===
Sluit de drukknop aan op de Arduino. Kan je nu de sketch zo aanpassen dat de servo alleen beweegt als de druknop is ingedrukt.
Sluit de drukknop aan op de Arduino. Kan je nu de sketch zo aanpassen dat de servo alleen beweegt als de druknop is ingedrukt?


Opmerking: Het is het handigste om de sketch eerst onder een andere naam op te slaan (met File>Safe As...).
Opmerking: Het is het handigste om de sketch eerst onder een andere naam op te slaan (met Bestand>Opslaan als...).


===BONUS===
===c (BONUS)===
Deze opdracht is voor iedereen die al een toggle LED gebouwt heeft (de eerste bonus opdracht van vorige week).
Gebruik twee knopjes: als je het ene knopje indrukt beweegt de servo linksom, met het andere knopje beweegt de servo rechtsom en als ze geen van beide ingedrukt zijn dan beweegt de sensor niet.


Combineer de toggle opdracht met de servo: Als je op de knop drukt beweegt de servo naar 180 graden en als je nogmaals op de knop drukt de beweegt de servo weer terug naar 0 graden.
==Opdracht 3.2, DHT11 sensor==
 
==Opdracht 2, DHT11 sensor==
[[File:DSC_0008.JPG|300px]]
[[File:DSC_0008.JPG|300px]]


Met de DHT-sensor kan je luchtvochtigheid en temperatuur meten. Dit kan je bijvoorbeeld gebruiken om een weerstation mee te maken zoals in deze video:  
Met de DHT-sensor kan je luchtvochtigheid en temperatuur meten. Dit kan je bijvoorbeeld gebruiken om automatische klimaatcontrole mee te maken zoals in deze video:  


{{#ev:youtube|https://www.youtube.com/watch?v=zmOc7oATtiY}}
<youtube>V6Gtxq6MIvU</youtube>


===a===
===a===
1. Installeer de "DHT sensor library" van adafruit.
1. Installeer de "DHT sensor library" van adafruit. (Zie het [http://wiki.zb45.nl/index.php?title=Arduinocursus_Deel3_Materiaal lesmateriaal] van deze week om te leren hoe je dit doet.)


2. Sluit de DHT sensor aan op pin 2.
2. Sluit de DHT sensor aan op pin 2.
Line 37: Line 42:
* Bovenaan in de code staat een regel '//#define DHTTYPE DHT11'. Haal hier de commentaarstreepjes '//' weg (zodat er '#define DHTTYPE DHT11' komt te staan).
* Bovenaan in de code staat een regel '//#define DHTTYPE DHT11'. Haal hier de commentaarstreepjes '//' weg (zodat er '#define DHTTYPE DHT11' komt te staan).
* Op de regel eronder staat de regel '#define DHTTYPE DHT22'. Zet daar commentaarstreepjes voor (zodat er '//#define DHTTYPE DHT22' staat).
* Op de regel eronder staat de regel '#define DHTTYPE DHT22'. Zet daar commentaarstreepjes voor (zodat er '//#define DHTTYPE DHT22' staat).
[[File:DHT11_selecteer_versie.png|600px]]


5. Sla het programma onder een andere naam op en upload het vervolgens naar de Arduino.
5. Sla het programma onder een andere naam op en upload het vervolgens naar de Arduino.


Als je de seriele monitor opent zie je als het goed is tekst met de temperatuur en de luchtvochtigheid verschijnen.
Als je de seriele monitor opent zie je als het goed is tekst met de temperatuur en de luchtvochtigheid verschijnen. Als je zachtjes uitademt op de sensor zal je de luchtvochtigheid en de temperatuur omhoog zien gaan.
 
===b (BONUS)===
Voor een klimaatkast kan het handig zijn om een ventilator te kunnen bedienen als de luchtvochtigheid stijgt (voor ontluchting). We hebben geen ventilator tot onze beschikking, dus we gebruiken nu even een LED.
 
Sluit zowel een LED als de DHT-sensor op de Arduino aan. Pas de code van het voorbeeld zo aan dat een LED aangaat als je zachtjes op DHT-sensor ademt, en weer uitgaat als de luchtvochtigheid weer gedaald is.
 
==Opdracht 3.3, HC-SR04 (Afstandssensor)==
[[File:Hc-sr04.jpg|300px]]
 
De HC-SR04 is een afstandssensor. Hij meet de afstand door geluidspulsen te versturen en te meten hoe lang het duurt voor deze terug komen (net als een sonar). Deze sensor kan voor van alles gebruikt worden: inbraakalarm, obstakels vermijdende robot, en bijvoorbeeld voor de blindegeleidehandschoen in de volgende video:
 
<youtube>1lwAGZqCT2g</youtube>
 
Dit principe kunnen we namaken:
===a===
1. Installeer de "NewPing" library. Deze library kan niet automatisch vanuit de Arduino omgeving worden geinstalleerd, dus deze zal handmatig moeten worden toegevoegd. Zie wederom het [http://wiki.zb45.nl/index.php?title=Arduinocursus_Deel3_Materiaal lesmateriaal] van deze week om te leren hoe je dit doet.
 
2. Sluit de sensor aan op de Arduino. Zoals elke sensor heeft de HC-SR04 een GND en een VCC pin, maar er zijn twee data-/signaalpinnen. De ene pin heet ''trig'' en de andere heet ''echo''. Sluit de ''trig'' pin aan op pin 2 van de Arduino en de ''echo'' op pin 3.
 
3. Open het voorbeeld Bestand>Voorbeelden>NewPing>NewPinExample en sla het onder een andere naam op (zodat je de code kan wijzigen).
 
4. Als je in de code kijkt zie je dat de TRIGGER_PIN standaard staat ingesteld op pin 12 en de ECHO_PIN op pin 11, verander dit in resp. pin 2 en pin 3.
 
5. Bewaar en upload de sketch.
 
6. Open de seriele monitor.
 
Als het goed is zie je nu op het scherm de afstanden verschijnen die door de sensor gemeten worden.
 
===b===
We kunnen zelf de basis van de blindegeleidehandschoen namaken: Sluit naast de HC-SR04 ook de servo aan op de Arduino. Laat de stand van de servo afhangen van de gemeten afstand.
 
<!--
==Opdracht 3.4, Eigen modules (BONUS)==
De meeste modules voor de Arduino zijn te complex om zelf eenvoudig te kunnen bouwen. Maar er zijn 2 modules die je ook zelf kan maken: De drukknopmodule en de LDR-module.
===a===
Gebruik een 10k weerstand en de losse drukknop om een drukknopmodule te maken op het breadboard: Zorg ervoor dat pin 4 van de Arduino 0V komt te staan als de drukknop niet is ingedrukt en 5V als de drukknop wel is ingedrukt.
 
Gebruik de sketch van Opdracht 1.4a om de schakeling mee te testen.
===b===
Gebruik een 1k weerstand en de losse LDR om een LDR-module te maken op het breadboard: Zorg ervoor dat op pin A0 van de Arduino een voltage komt te staat dat overeenkomt met de hoeveelheid licht die er op de LDR valt.
 
Gebruik de sketch van Opdracht 1.5a om de schakeling mee te testen.
-->

Latest revision as of 14:30, 4 July 2016

Opdracht 3.1, servo

Error creating thumbnail: File missing

In deze opdracht gaan we met servo's aan de slag. Een servomotor draait geen rondjes zoals een standaard DC-motor of stappenmotor, maar het is een motor waarvan je precies de rotatie kan instellen. De toepassingen van servomotoren zijn eindeloos, maar je kan er bijvoorbeeld een tekenrobot mee maken zoals in deze video:

a

De servo heeft geen labels voor de verschillende pinnen. De bruine draad is GND (0V), de rode draad is VCC (5v) en de oranje/gele draad is de signaaldraad.

1 Sluit de servo aan (zoals hierboven aangegeven). Sluit de signaaldraad aan op pin 9 van de Arduino.

2 Als je het nog niet gedaan heb, download hier het lesmateriaal.

3 Open het voorbeeldprogramma Opdracht1a (Materiaal Arduinocursus>Voorbeeldsketches en Uitwerkingen>Week 3>Voorbeeldsketches Week 3>Opdracht1a), en upload dit programma naar de Arduino.

Als het goed is beweegt de servo nu heen en weer van 0 naar 180 graden.

b (BONUS)

Sluit de drukknop aan op de Arduino. Kan je nu de sketch zo aanpassen dat de servo alleen beweegt als de druknop is ingedrukt?

Opmerking: Het is het handigste om de sketch eerst onder een andere naam op te slaan (met Bestand>Opslaan als...).

c (BONUS)

Gebruik twee knopjes: als je het ene knopje indrukt beweegt de servo linksom, met het andere knopje beweegt de servo rechtsom en als ze geen van beide ingedrukt zijn dan beweegt de sensor niet.

Opdracht 3.2, DHT11 sensor

Error creating thumbnail: File missing

Met de DHT-sensor kan je luchtvochtigheid en temperatuur meten. Dit kan je bijvoorbeeld gebruiken om automatische klimaatcontrole mee te maken zoals in deze video:

a

1. Installeer de "DHT sensor library" van adafruit. (Zie het lesmateriaal van deze week om te leren hoe je dit doet.)

2. Sluit de DHT sensor aan op pin 2.

3. Open het voorbeeldprogramma DHTtester (Examples>DHT sensor library>DHTtester).

4. Het voorbeeldprogramma is standaard ingesteld voor een ander type sensor, de DHT22. Dit kan eenvoudig worden veranderd:

  • Bovenaan in de code staat een regel '//#define DHTTYPE DHT11'. Haal hier de commentaarstreepjes '//' weg (zodat er '#define DHTTYPE DHT11' komt te staan).
  • Op de regel eronder staat de regel '#define DHTTYPE DHT22'. Zet daar commentaarstreepjes voor (zodat er '//#define DHTTYPE DHT22' staat).

Error creating thumbnail: File missing

5. Sla het programma onder een andere naam op en upload het vervolgens naar de Arduino.

Als je de seriele monitor opent zie je als het goed is tekst met de temperatuur en de luchtvochtigheid verschijnen. Als je zachtjes uitademt op de sensor zal je de luchtvochtigheid en de temperatuur omhoog zien gaan.

b (BONUS)

Voor een klimaatkast kan het handig zijn om een ventilator te kunnen bedienen als de luchtvochtigheid stijgt (voor ontluchting). We hebben geen ventilator tot onze beschikking, dus we gebruiken nu even een LED.

Sluit zowel een LED als de DHT-sensor op de Arduino aan. Pas de code van het voorbeeld zo aan dat een LED aangaat als je zachtjes op DHT-sensor ademt, en weer uitgaat als de luchtvochtigheid weer gedaald is.

Opdracht 3.3, HC-SR04 (Afstandssensor)

Error creating thumbnail: File missing

De HC-SR04 is een afstandssensor. Hij meet de afstand door geluidspulsen te versturen en te meten hoe lang het duurt voor deze terug komen (net als een sonar). Deze sensor kan voor van alles gebruikt worden: inbraakalarm, obstakels vermijdende robot, en bijvoorbeeld voor de blindegeleidehandschoen in de volgende video:

Dit principe kunnen we namaken:

a

1. Installeer de "NewPing" library. Deze library kan niet automatisch vanuit de Arduino omgeving worden geinstalleerd, dus deze zal handmatig moeten worden toegevoegd. Zie wederom het lesmateriaal van deze week om te leren hoe je dit doet.

2. Sluit de sensor aan op de Arduino. Zoals elke sensor heeft de HC-SR04 een GND en een VCC pin, maar er zijn twee data-/signaalpinnen. De ene pin heet trig en de andere heet echo. Sluit de trig pin aan op pin 2 van de Arduino en de echo op pin 3.

3. Open het voorbeeld Bestand>Voorbeelden>NewPing>NewPinExample en sla het onder een andere naam op (zodat je de code kan wijzigen).

4. Als je in de code kijkt zie je dat de TRIGGER_PIN standaard staat ingesteld op pin 12 en de ECHO_PIN op pin 11, verander dit in resp. pin 2 en pin 3.

5. Bewaar en upload de sketch.

6. Open de seriele monitor.

Als het goed is zie je nu op het scherm de afstanden verschijnen die door de sensor gemeten worden.

b

We kunnen zelf de basis van de blindegeleidehandschoen namaken: Sluit naast de HC-SR04 ook de servo aan op de Arduino. Laat de stand van de servo afhangen van de gemeten afstand.