9. Voel de ondergrond!

Doel: Voel de ondergrond, laat de robot achteruitrijden als hij een zwart vlak tegenkomt.

Alle onderdelen werken, tijd om de robot echt dingen te laten voelen. De LDR wordt nu naar de grond gericht. Om de robot wat meer houvast te geven (ook in de avond) geven we hem zijn eigen lichtbron mee. Die wordt (net als de servo’s) op een aparte batterij aangesloten om de Arduino niet teveel te belasten.

De hardware

Sluit de onderdelen aan volgens de afbeelding. Je ziet dat er een tweede servo is toegevoegd, en een LED. Om de Arduino niet teveel te belasten worden ook de LED’s aangesloten op de batterijen. Dus krijgen ze een eigen spanningsbron.

Rond de LED is ducttape gedaan zodat de LDR niet per ongeluk het directe licht ziet.

De LED en de LDR moeten dus naar de grond gericht zijn. Hoe je dat oplost is even jouw probleem. Met plakband kun je een hoop oplossen. Let wel, sommige soorten plakband zijn geleidend!

Nogmaals: Doordat we nu twee spanningsbronnen gebruiken kan de situatie ontstaan dat het voor de Arduino onduidelijk is hoe groot 0 Volt nu eigenlijk is (klinkt raar, maar is waar). Dit geeft problemen. Dit lossen we op door de GND van de Arduino te verbinden met de – van de batterij. Nu zijn de motoren, LED, Arduino en LDR het allemaal eens over hoe groot “0 Volt” is en dus ook hoe groot “5 Volt” is.

Code

In de code wordt nu de besturing van de wielen toegevoegd. Als de robot een zwart vlak tegen komt, moeten de volgende acties worden uitgevoerd:

  • Zwart vlak? (= lage hoeveelheid licht)
  • Draai (ene wiel langzaam vooruit, andere langzaam achteruit) tot de waarde van de LDR weer laag is (=hoge hoeveelheid licht).
  • Wit vlak gevonden?
  • gaan!

Dit kun je zien in de code:


Resultaat!