← Back to CoursesStemExpert
StemExpert
Intermediate · Werkboek · 33. Een mobiele robot
StemExpert · Brecht Corbeel · schoolium.me
StemExpert
I33. Een mobiele robot — werkboek
IIntermediate · deel I8 · Regelen en robotica

Werkboek · hoofdstuk 33Een mobiele robot

Twee wielen, drie lichtsensoren en een oor: een inspectierobotje voor de gang van de klimaatmodule

Je rekent eerst met wielsnelheden, overbrengingen en echo's, tekent paden, leest sensoren en code, en ontwerpt tot slot de inspectieronde en een uitwijkmanoeuvre. Voor 33.10 en 33.15 heb je Python nodig, voor 33.11 het robotje of een motor met wiel.

5× oefenen7× toepassen4× uitdagen± 418 min0/16 gedaan
Het inspectierobotje meet waar de vaste sensorkast niet komt: laag, langs het hele kweekbed.
Het inspectierobotje meet waar de vaste sensorkast niet komt: laag, langs het hele kweekbed.
Hoe lees je een opdracht?
Drie tredenOefenen Toepassen Uitdagen

Elk hoofdstuk bouwt op: eerst oefenen (één stap, direct toepassen), dan toepassen (meerdere stappen, in een context), dan uitdagen (transfer, open problemen, andere leerlijnen erbij).

De StemExpert-schaal5

Eén moeilijkheidsschaal van 1 tot 9 over de drie niveaus heen: Fundamental loopt van 1 tot 4, Intermediate van 3 tot 7, Expert van 6 tot 9. Zo zie je dat de uitdaging van het ene niveau de oefening van het volgende is.

Oefenen

Oefenen

één stap, direct toepassen
33.1

Snelheid, hoeksnelheid en draaistraal

Oefenen3Rekenen15 min
Het robotje heeft . Bereken telkens , en , en zeg welke kant het op draait.
  1. a
    , .
  2. b
    , .
  3. c
    , . Hoe lang duurt een volledige draai?
33.2

Een andere tandwielkast

Oefenen4Rekenen15 min
Een ander motortje draait onbelast 12 000 omw/min en heeft een tandwielkast 1:120; het wiel is 42 mm.
  1. a
    Hoe snel draait het wiel, en hoe snel rijdt de robot onbelast?
  2. b
    Ons robotje (motor 9000 omw/min, wiel 65 mm) moet hoogstens 0,25 m/s rijden. Welke overbrengingsverhouding past daarbij?
  3. c
    Wat verandert er aan het koppel op het wiel als je die kast kiest in plaats van 1:48?
33.3

Van echo naar afstand

Oefenen3Rekenen10 min
De HC-SR04 meet bij 20 °C (343,4 m/s).
  1. a
    Bereken de afstand bij een echo van 5,83 ms en van 1,17 ms.
  2. b
    Hoe lang duurt de echo van een wand op 2,50 m?
  3. c
    pulseIn() geeft 0 terug na de time-out van 25 ms. Wat betekent dat voor het robotje?
33.4

Welke kant op?

Oefenen3Begrijpen8 min
Het robotje rijdt vooruit. Wat doet het bij deze wielsnelheden?
  1. a
    en
    • Abocht naar links
    • Bbocht naar rechts
    • Cop de plaats draaien
    • Drechtdoor achteruit
  2. b
    en
    • Abocht naar links
    • Bbocht naar rechts
    • Cop de plaats tegen de klok in
    • Dop de plaats met de klok mee
  3. c
    • Abocht naar links
    • Bstilstaan
    • Crechtdoor achteruit
    • Dop de plaats draaien
  4. d
    en : rond welk punt draait het robotje?
33.5

Wat zien de sensoren?

Oefenen4Begrijpen15 min
IJking: wit 100, zwart 850. De drie sensoren lezen links 850, midden 475, rechts 100.
  1. a
    Bereken w voor elke sensor. Waar ligt de lijn ongeveer?
  2. b
    Bereken p met het gewogen gemiddelde, en ω met K = 0,25 rad/s per mm.
  3. c
    Welke wielsnelheden stuurt de regelaar bij v0 = 0,20 m/s? Wat zou aan/uit doen?
Toepassen

Toepassen

meerdere stappen, in een context
33.6

Omkeren in de gang

Toepassen5Rekenen20 min
Het robotje is 200 × 160 mm; de as zit 110 mm achter de neus en 90 mm voor de achterkant. Op strook A (y = 0,55 m) is er 0,25 m tot de rand van het kweekbed en 0,55 m tot de buitenwand.
  1. a
    Hoe groot is de cirkel die de verste hoek beschrijft bij een draai op de plaats? Kan het robotje op strook A omkeren?
  2. b
    Een klein wagentje met een stuur heeft een kleinste draaistraal van 0,50 m (aan de buitenkant). Kan het in de gang van 0,80 m omkeren zonder te manoeuvreren?
  3. c
    In een bocht met R = 0,05 m aan 0,20 m/s: wat doet het binnenste wiel? Waarom is dat een probleem met de dode zone?
33.7

Hoe erg is de temperatuur?

Toepassen5Rekenen15 min
De module is 's winters soms 5 °C, 's zomers 35 °C. De code rekent altijd met 343,4 m/s. De HC-SR04 meet een echo van 1,75 ms.
  1. a
    Bereken de echte afstand bij 5 °C en bij 35 °C, en wat de code telkens denkt.
  2. b
    Het robotje stopt als de code 25 cm berekent. Op welke echte afstand stopt het bij 5 °C en bij 35 °C?
  3. c
    Is de temperatuurcorrectie hier nodig? Wanneer wel?
33.8

Een pad tekenen

Toepassen5Tekenen20 min
Het robotje () staat in de oorsprong en kijkt naar de positieve x-as. Het krijgt na elkaar: (1) gedurende 2,0 s; (2) , gedurende 1,1 s; (3) gedurende 1,0 s; (4) , gedurende 2,2 s.
  1. a
    Bereken na elke stap de plaats en de richting.
    stapx (m)y (m)richting
  2. b
    Teken het pad op schaal (1 hokje = 5 cm).
33.9

Code: de afstand meten

Toepassen5Programmeren20 min
Schrijf een functie die met de HC-SR04 de afstand in cm teruggeeft, gecorrigeerd voor de temperatuur luchtT.
  1. a
    Schrijf de functie meetAfstand(). Gebruik pulseIn met een time-out.
  2. b
    Waarom zet je TRIG eerst 2 µs laag voor de puls van 10 µs?
  3. c
    Waarom meet het robotje niet in elke ronde van loop(), maar om de 60 ms?
33.10

Hoe snel mag het robotje?

Toepassen6Programmeren30 min
Gebruik lijnvolger.py uit het handboek.
  1. a
    Laat rij() lopen met v0 = 0,30 en 0,40 m/s (T = 2,0/v0) voor K = 0,1 en K = 0,25. Wat stel je vast?
  2. b
    Voeg een kengetal toe: de grootste afwijking in de bocht (x ≥ 1,40 m). Schrijf de regel code.
  3. c
    Waarom heeft de regelaar bij een hogere snelheid meer versterking nodig?
33.11

Labo: snelheid en dode zone

Toepassen5Labo50 min
Voer de proef uit het handboek uit met je eigen robotje of een motor met wiel.
  1. a
    Meettabel: PWM-waarde, drie tijden over 1,0 m, gemiddelde snelheid.
    PWMt1 (s)t2 (s)t3 (s)v (m/s)
  2. b
    Zet v uit tegen de PWM-waarde. Bepaal de dode zone en de helling van de rechte.
  3. c
    Schrijf het model van je motor als v = a · (PWM − PWM0). Welke PWM-waarde geeft 0,20 m/s?
  4. d
    Rijdt je robotje rechtdoor als beide motoren dezelfde PWM-waarde krijgen? Hoe los je een verschil op?
Zo wordt dit beoordeeld
MetingenNa een aanloop gemeten, drie keer per waarde, ook rond de dode zone fijner gemeten.
GrafiekAssen met eenheden, rechte door de punten boven de dode zone, snijpunt afgelezen.
Modela en PWM0 met eenheden; de PWM-waarde voor 0,20 m/s berekend.
KritiekVerschil tussen de motoren benoemd; oplossing met een correctiefactor per motor of met de lijnvolger.
33.12

Vind de fouten in de robotcode

Toepassen6Programmeren20 min
Een eerste versie van drie cases uit robot.ino. Het robotje doet vreemde dingen.
case VOLGEN:
  if (afstand < STOP_CM) naar(WACHTEN, nu);
  else if (streep) { punten++; naar(METEN, nu); }
  else volg(pos, V_RIJ);
  break;
case WACHTEN:
  if (afstand > STOP_CM) naar(VOLGEN, nu);
  break;
case KEREN:
  if (wit01(REFL_M) > 0.6) naar(TERUG, nu);
  break;
  1. a
    Op een meetpunt blijft het robotje eindeloos meten: na METEN gaat het naar VOLGEN en meteen weer naar METEN. Waarom?
  2. b
    Voor een emmer op ongeveer 25 cm schokt het robotje: stoppen, vertrekken, stoppen. Waarom? En wat als de emmer blijft staan?
  3. c
    KEREN draait niet: het robotje gaat meteen naar TERUG. Waarom?
  4. d
    Schrijf de verbeterde cases.
Uitdagen

Uitdagen

transfer, open problemen, leerlijnen combineren
33.13

Habitat: de inspectieronde

Uitdagen7Habitat75 min
Het team wil dat het robotje overdag (6 tot 22 uur) elk uur een ronde rijdt, en 's nachts twee keer. Bij elke ronde meet het op drie punten temperatuur, luchtvochtigheid en lekken. In de module werken soms mensen, en in de modus ONDERHOUD mag het robotje niet rijden (hoofdstuk 32).
  1. a
    Bereken de tijd en de energie per ronde en per dag. Neem 1,0 W voor de elektronica terwijl het robotje wakker is, en 1,9 W extra voor de motoren tijdens het rijden.
  2. b
    Hoe weet het robotje dat de module in ONDERHOUD is? Stel een oplossing voor (hardware of draadloos) en pas het toestandsdiagram aan.
  3. c
    Een meting op meetpunt 2 geeft 'NAT'. Wat moet er gebeuren, bij het robotje en in de module?
  4. d
    Wat kan het robotje meten dat de vaste sensorkast niet kan? Stel twee extra metingen voor en zeg waar op de route.
  5. e
    Maak een testplan: welke situaties test je, en hoe weet je dat het robotje goed reageert?
Zo wordt dit beoordeeld
EnergieRijtijd uit de lengte van de lus en de snelheden, meettijd, wachttijd; energie per ronde en per dag; vergelijking met de batterij.
Koppeling met de moduleONDERHOUD en ALARM bereiken het robotje (bv. een draadloos bericht of een contact in het laadstation) en houden het op het station.
LekRobot meldt en stopt niet voor niets; de module sluit de pomp af (alarm A_WATER of een nieuwe oorzaak) en waarschuwt.
MetingenZinvolle extra metingen (bv. licht onder de goten, temperatuur op twee hoogtes, een foto van de planten) met plaats en reden.
TestplanObstakel even en blijvend, plas, lijn onderbroken, laadstation bezet, onderhoud tijdens een ronde; verwacht gedrag per test.
33.14

Ontwerp: omrijden of omkeren?

Uitdagen6Ontwerpen35 min
Het robotje keert nu om als de gang 20 s geblokkeerd is. Een collega wil dat het rond een obstakel rijdt: van de lijn af, erlangs, en terug op de lijn. Een emmer heeft een diameter van 0,30 m en staat midden op strook A (y = 0,55 m).
  1. a
    Is er naast de emmer genoeg ruimte? Reken met de breedte van het robotje en een veiligheidsmarge van 5 cm.
  2. b
    Ontwerp de toestanden en overgangen voor omrijden. Welke sensoren gebruikt het robotje als het geen lijn ziet?
  3. c
    Geef twee argumenten voor en twee tegen omrijden in de gang van de module. Wat kies jij?
Zo wordt dit beoordeeld
RuimteCorrecte berekening van de vrije ruimte aan beide kanten, met marge.
ToestandenVan de lijn af, erlangs (met odometrie of afstand tot de wand), terugzoeken van de lijn, time-out en FOUT.
AfwegingVeiligheid, planten, eenvoud en betrouwbaarheid tegen snelheid en volledigheid van de ronde.
33.15

Onderzoek: de beste versterking

Uitdagen7Onderzoeken45 min
Onderzoek met lijnvolger.py hoe de versterking K en de snelheid v0 samen de nauwkeurigheid in de bocht bepalen.
  1. a
    Laat de simulatie lopen voor alle combinaties van v0 (0,10 tot 0,40 m/s) en K (0,1 tot 1,0). Noteer de grootste afwijking in de bocht.
    v0 (m/s)K = 0,1K = 0,25K = 0,5K = 1,0
  2. b
    Welke K werkt bij alle snelheden? Waar verliest het robotje de lijn, en waarom?
  3. c
    Bij 0,20 m/s is K = 0,1 in de bocht het nauwkeurigst, terwijl ze bij 0,30 m/s faalt. Verklaar met de plaats van de sensoren (60 mm voor de as).
Zo wordt dit beoordeeld
RoosterAlle combinaties systematisch doorgerekend, met hetzelfde kengetal.
ConclusieEen K gekozen die bij alle gevraagde snelheden werkt, met een getal onderbouwd.
VerklaringRol van de sensorplaats en van het nodige draaien (ω = v/R) juist uitgelegd.
33.16

Plaats bijhouden met de wielen

Uitdagen7Analyseren25 min
Elk wiel krijgt een encoder: een schijfje met 20 gleuven en een lichtsluis, dus 20 pulsen per omwenteling. Na een stuk rijden telt het robotje 180 pulsen links en 200 pulsen rechts.
  1. a
    Hoeveel mm is één puls? Hoeveel heeft elk wiel afgelegd?
  2. b
    Bereken de afgelegde weg van het midden en de draaihoek.
  3. c
    Het linkerwiel is 1 % groter dan het rechter, maar de code weet dat niet. Hoe scheef staat het robotje na 10 m rechtdoor? Wat leer je daaruit?
ZelfevaluatieKleur per doel: lukt al / bijna / nog niet