Week 17 · De robot rijdt

De motoren en de servo van vorige week gaan nu een heel voertuig voortstuwen. Twee paden, één doel: vooruit, achteruit en bochten — betrouwbaar en op commando. Wie een mBot heeft volgt pad A, wie zelf bouwt volgt pad B met een echte motordriver. Onthoud de regel van de week: een motor komt nooit rechtstreeks op de Arduino.

LPD 11 · 17 · 4 missie: 40 XP · logboek: 10 XP

Lesdoelen

Lesverloop (5 lesuren)

BlokDuurFaseWat gebeurt er
115 minInstapTerugblik week 16: servo kent zijn hoek, een DC-motor niet. Vraag: "een DC-motor trekt tot 2 A stroom — hoeveel levert een Arduino-pin?" (antwoord: max. 20-40 mA). Dus?
130 minInstructieDe H-brug uitgelegd met het blokschema op het bord: Arduino → motordriver → motoren + aparte batterij. Pad A en pad B naast elkaar getoond; klas kiest of is al ingedeeld.
110 minBegeleidPad B: iedereen wijst IN1-IN4, ENA/ENB en de twee voedingsingangen aan op de eigen L298N-module. Pad A: mBot uitgepakt en visueel vergeleken met het schema (dezelfde onderdelen zitten er ook in, maar ingebouwd).
250 minZelfstandigChassis afwerken: pad A het mBot-frame monteren/controleren en met mBlock verbinden; pad B de twee TT-motoren, wielen en het zwenkwiel op het chassis bevestigen en de L298N bekabelen (voedings-APK vóór de batterij erin gaat!).
350 minZelfstandigEerste beweging: één motor laten draaien, dan de tweede, dan samen vooruit. Pad A test met het kant-en-klare rijblok, pad B met de IN/EN-blokken van het blokschema.
450 minZelfstandigAchteruit en bochten programmeren (draaien op de plaats vs. een ruime bocht). Rij-oefeningen: vierkant rijden, slalom tussen kegels/potjes, exact 1 m rijden en stoppen.
535 minVerdiepingWie klaar is: snelheid variëren met ENA/ ENB (pad B) of de snelheidsparameter (pad A), side quest of Helper-XP. Wie vastzit: klassikale debug-ronde rond de meest voorkomende fout (draait maar één wiel?).
515 minAfsluitingLogboek: foto van de rijdende robot + gemeten tijd voor 1 m. Opruimen (batterijen los!), XP-moment, vooruitblik: volgende week denkt de robot zelf na.

Instructie: de robot aan het rijden krijgen

1 · Pad A — de mBot

De mBot heeft zijn motordriver al ingebouwd: twee DC-motoren met wielen, verbonden met een controller die met mBlock praat via Bluetooth of USB. Bouwen (of controleren of alles goed vastzit) gaat sneller — daardoor blijft er meer tijd over voor programmeren en straks de wedstrijd.

Rijblokken van de mBot-extensie
wanneer Arduino Uno opstart
rij vooruit op snelheid 150
wacht 2 seconden
draai rechts op snelheid 100
wacht 1 seconden
stop de motoren

Onder de motorkap gebeurt hier exact hetzelfde als bij pad B — alleen zit de driver al op de printplaat van de mBot.

2 · Pad B — chassis en motordriver

Zelfbouw: een chassis (geprint, gelaserd of houten plaat) met 2 gele TT-motoren + wielen en een zwenkwieltje vooraan of achteraan voor stabiliteit. De motoren worden gestuurd via een L298N- motordriver:

  • IN1/IN2 bepalen de draairichting van motor A, IN3/IN4 die van motor B (hoog/laag = vooruit/achteruit, afhankelijk van je bedrading).
  • ENA/ENB zijn pwm-pinnen die de snelheid bepalen (0 = stil, 255 = vol vermogen) — zónder signaal op ENA/ENB draait er niets, ook al staan IN1-IN4 correct.
  • De motoren krijgen hun stroom via een aparte batterij op de voedingsingang van de L298N — nooit via de 5 V van de Arduino.
  • De massa's van Arduino, driver én batterij moeten wél met elkaar verbonden zijn, anders "spreken" de twee voedingen elkaars taal niet.

3 · Het blokschema (pad B): Arduino → L298N → 2 motoren + batterij

Arduino Uno D4 → IN1 D5 → IN2 D6 → IN3 D7 → IN4 D9(~) → ENA D10(~) → ENB GND L298N motordriver OUT1 OUT2 OUT3 OUT4 M motor links (TT-motor) M motor rechts (TT-motor) batterijpack (motorvoeding, apart!) VCC (motor) gezamenlijke massa (GND)

Onthoud het driehoekje: richting (IN-pinnen, hoog/laag) + snelheid (EN-pinnen, pwm) + eigen stroom (aparte batterij) = een motor die luistert zonder je Arduino op te blazen.

Motoren nooit rechtstreeks op de Arduino Een motor trekt bij het opstarten of afremmen een korte stroompiek die een Arduino-pin ruim overschrijdt — en die piek kan ook terugslaan en de chip beschadigen. Motoren gaan dus altijd via de driver, met een eigen voeding. Laat elke opstelling controleren vóór de batterij erin gaat.

Opdrachten

Kernopdracht (iedereen)

  1. Kies of bevestig je pad (A: mBot, of B: zelfbouw) samen met de leerkracht.
  2. Pad A: monteer/controleer de mBot en verbind hem met mBlock.
    Pad B: monteer chassis + 2 TT-motoren + zwenkwiel en bekabel de L298N (IN1-4, ENA/ENB, aparte batterij, massa gekoppeld) — laat de voedings-APK doen vóór je de batterij aansluit.
  3. Laat één motor draaien, dan de tweede, dan beide samen vooruit.
  4. Programmeer achteruit en een bocht (draaien op de plaats én een ruime bocht met ongelijke snelheid).
  5. Rij-oefeningen: een vierkant rijden, een slalom tussen kegels, en exact 1 m rijden en stoppen (kalibreer met tijd of met een telling).
  6. Logboek: foto van de rijdende robot + je 1 m-tijd.

Basis-pad

Pad A: enkel vooruit, achteruit en één vaste bocht met de aangereikte blokken. Pad B: eerst één motor laten draaien met een aangereikte codevoorbeeld, dan de tweede; de kalibratie voor 1 m gebeurt samen met een buddy of de leerkracht. Zelfde logboekfoto als iedereen.

Uitbreidingen

  • Snelheidscurve: rij dezelfde 1 m op drie verschillende ENA/ENB-waarden (of snelheden bij pad A) en vergelijk de tijden.
  • Bluetooth-RC: bestuur de mBot live vanuit de mBlock-app als afstandsbediening.
  • Achtbaan-parcours: rij een 8-vorm met alleen vooruit- en bochtblokken — hoeveel pogingen heb je nodig?

Materiaal deze week

Leerkracht-hoek
Side quests die hier mooi bij passen Veiligheidsinspecteur (voedings-APK als mini-risicoanalyse) · CAD-Wizard (alvast een geprinte motorhouder of wielnaaf ontwerpen) · Soldeer-Sensei (nette, vaste verbindingen op de L298N-module).
Week 16 · Alles wat draait Week 18 · De robot denkt