De IR-sensor
Of er een bal ligt, ziet je Golfbot met de IR-sensor. Die stuurt onzichtbaar licht naar voren en meet hoeveel daarvan terugkomt. Ligt er een bal voor, dan komt er meer licht terug, en dan wordt het getal van de sensor lager.
Aansluiten
Zet je robot uit met de knop ON/OFF. Sluit de sensor dan aan op de rij van A0 op het shield:
| Pin van de sensor | Komt op |
|---|---|
| VCC (rode draad) | 5V |
| GND (zwarte draad) | GND |
| A0 (oranje draad) | het signaal van A0: het pinnetje het dichtst bij de naam A0/D14 |

De sensor heeft ook een pin D0, maar die laat je leeg. D0 zegt alleen "wel bal" of "geen bal". Op A0 krijg je een getal, en dan kies je zelf vanaf welk getal er een bal ligt.
Op het shield staat ook een D0, bij D0/TX1. Daar sluit je niets op aan, want over D0 en D1 van het shield gaat je programma via de usb-kabel naar de Arduino.
Zit alles vast? Zet je robot dan weer aan met ON/OFF.
Stap 1: het getal uitlezen
Sleep eerst het blok herhaal voor altijd uit Denk stappen in het Leaphy-blok. Wat erin staat, doet je robot steeds opnieuw. Zonder dat blok leest hij de sensor één keer en daarna nooit meer.
Het getal van de sensor lees je met het blok Lees anapin A0 uit de groep Sensoren. Om het getal te zien sleep je Toon op scherm uit Actuatoren in herhaal voor altijd, en daarna Lees anapin op de plek van het tekstvakje. Neem weer het blok Toon op scherm met één vakje, zoals bij je eerste programma.
Onder Toon op scherm komt duurt 500 ms, ook uit Denk stappen. Daarmee wacht de robot een halve seconde, zodat je het getal kunt lezen. In Easybloqs heet het blok Duurt en staat er eerst 1000 in; klik op het getal en typ 500. Achter het getal staat een keuzelijstje met ms, μs en s. Laat dat op ms staan.
De blokken worden geladen.
Klik op Upload naar robot en open het scherm met de knop Toon output op scherm, zoals bij je eerste programma. Er verschijnt elke halve seconde een nieuw getal. Leg een bal voor de sensor en haal hem weer weg. Wordt het getal lager met een bal ervoor? Schrijf twee getallen op: een zonder bal en een met bal.
Een grens kiezen
Zonder bal geeft je sensor een hoog getal, met een bal een laag getal. Je robot moet dus weten vanaf welk getal er een bal ligt. Dat getal kies je zelf: het heet je grens. Is het getal op A0 kleiner dan je grens, dan ligt er een bal.
Hieronder oefen je dat zonder robot. Schuif met de muis of met je vinger, of klik op een schuifje en gebruik de pijltjestoetsen.
Lees anapin A0 geeft
Is 904 < 300? niet waar
De getallen hier zijn een voorbeeld. Jouw sensor geeft andere getallen: dat hangt af van de sensor, het licht in de klas en de bal. Daarom kies je in stap 2 een grens met de getallen die jij in stap 1 hebt opgeschreven.
- Schuif de bal naar de sensor. Wat doet het getal?
- Laat de grens op 300 staan. Bij welke afstanden verschijnt "klaar om te golfen!"?
- Kies een grens zodat de zin verschijnt als de bal op 3 cm of dichterbij ligt, en niet als hij verder weg ligt.
- Zet een vinkje bij Geen bal en schuif de grens helemaal naar rechts. Wat zie je?
Antwoord
- Het getal wordt lager als de bal dichterbij komt. Zonder bal is het het hoogst.
- Op 2 cm en dichterbij. Op 3 cm is het getal 399, en dat is niet kleiner dan 300.
- Een grens van 400 tot en met 550, bijvoorbeeld 500. Op 3 cm is het getal 399 en op 4 cm 555. Je grens moet daar tussenin liggen.
- De zin verschijnt, terwijl er geen bal ligt. Je grens is dan hoger dan het getal zonder bal, en je robot denkt steeds dat er een bal ligt.
Stap 2: reageren op de bal
Nu laat je de robot zelf beslissen. Met het blok als … dan uit Denk stappen kijkt hij of het getal kleiner is dan een grens; in het voorbeeld is dat 300. In die groep staan twee blokken als: neem het eerste, zonder anders. Je bouwt verder op het programma van stap 1:
- Sleep als … dan in herhaal voor altijd, helemaal bovenaan. Toon op scherm en duurt schuiven eronder.
- Sleep Toon op scherm in het gat onder als … dan. Het blok duurt gaat mee, want een blok neemt alles eronder mee. Sleep duurt daarna terug, onder als … dan.
- Het vergelijkblok vind je in Getal blokken. In Easybloqs staat er eerst
1 = 1in. Sleep het in het gat achter het woord als. - Sleep Lees anapin A0 uit Toon op scherm naar het linkervakje van het vergelijkblok. In Toon op scherm komt het tekstvakje terug: typ daarin
klaar om te golfen!. - Klik op het
=en kies in het keuzelijstje<. Typ in het rechtervakje je grens.
De blokken worden geladen.
Is het getal kleiner dan 300, dan ligt er een bal en verschijnt "klaar om te golfen!" op het scherm.
300 is maar een voorbeeld. Gebruik de getallen die jij in stap 1 hebt opgeschreven, en kies een grens die er netjes tussenin ligt.
Er gaat iets mis
Het getal op het scherm verandert niet als je een bal voor de sensor legt.
Oorzaak: de oranje draad zit niet op het signaal van A0, of de sensor krijgt geen stroom.
Oplossing: zet je robot uit en vergelijk je draden met de tabel bij Aansluiten: oranje op het signaal van A0, rood op 5V en zwart op GND.
Er verschijnt nooit 'klaar om te golfen!', ook niet met een bal.
Oorzaak: in het vergelijkblok staat nog =, of de grens klopt niet. Met = moet het getal precies gelijk zijn aan je grens, en dat gebeurt bijna nooit.
Oplossing: klik op het teken in het vergelijkblok en kies <. Kies als grens een getal tussen je twee getallen uit stap 1.
Zelf vinden: kijk naar het getal dat je in stap 1 met een bal opschreef. Is dat kleiner dan je grens, dan ligt het aan het teken.
Ziet je robot de bal? Dan leer je nu de servo bewegen.