Introduction: Mariagaard: Stemtornooi 2019

Januari 2019

Opgave:

De Dolle Doolhof

Ontwerp en bouw een robot die de uitgang van een doolhof zelfstandig kan vinden in een zo kort mogelijke tijd. Hou alles bij in een logboek (dit wordt deze instructable) en maak een posterverslag.

Deze opgave proberen leerlingen van de eerste graad secundair onderwijs op te lossen en proberen mee te doen met de wedstrijd in technopolis op 3 mei. Meer info op stemtornooi.be

Volgende leerlingen gaan de uitdaging aan:

- Karsten (2m)

- June (2m)

- Lune (2m)

- Elke (2m)

Begeleidende leerkracht is Tim Lambrecht.

Step 1: Materiaallijst

Januari 2019

Welk materiaal hebben we nodig? Wat hebben we dat we kunnen gebruiken? Hoe breed, lang, hoog moet onze robot zijn? Wat moet hij kunnen?

We stellen samen deze materiaallijst samen:

Bijna al het materiaal komt van https://www.robots4all.be/ en https://www.gotron.be/

- Controller: 1 x Me Orion (32,95 €)

- Motorbesturing: 1 x Me Dual Motor (14,95 €)

- Motoren: 4 x 25mm DC Robot Motor Pack (18,95 €)

- Sensoren: 3 x Me Ultrasonic Sensor V3 (22,95 €)

- Power: 3 x 18650 batterijen (bol.com) en Batterij Houder Opbergdoos Case met DC5.5 * 2.1mm stekker (grandado.com) --> dit geeft ons 3 x 3.7V stroom = 11.1V

- Banden: Slick Tyre 64*16mm (4,50 € / 4st)

- Kabels: 6P6C RJ25 kabel-20cm (2,35 € / 4 stuks)

- Behuizing: oude harde schijf case (freecycle)

Step 2: Bouwen

Januari 2019

Onze basis is een oude harde schijf case dat we nog liggen hebben van een kapotte computer. De motoren passen juist niet maar met een moertje of 2 extra passen ze juist. De sensoren komen bovenaan, samen met het moederbord (Makeblock Orion). De batterijen die we willen hebben we nog niet, daarom gebruiken we nu nog 8 x AA batterijen. Onderaan komt ook nog een extra motorbesturing. Dit zijn de gebruikte poorten:

Sensor Links op poort 3

Sensor Midden op poort 7

Sensor Rechts op poort 8

Motor op poorten: M1, M2, 1 en 2

Ons design doet ons denken aan een personage uit Monsters Inc.: 'Jeff Fungus'. Eigenlijk lijken we allemaal wel op een personage uit Monsters Inc.

Step 3: Motoren Draaien En Recht Vooruit!

Februari 2019:

We testen de motoren met de volgende code:

https://gist.github.com/timlambrecht/644cf456d7313...

We merken dat Jeff een afwijking heeft naar rechts dus passen we de snelheid van de wielen aan zodat hij mooi recht rijdt. Hij doet ook nog niet exact wat hij moet doen... staan de sensoren wel juist gericht en juist geprogrammeerd?


Step 4: Sensoren Uitlezen

Februari 2019

We testen eerst één sensor met volgende code en kijken naar de resultaten in de seriële monitor:

https://gist.github.com/timlambrecht/26a976797aa00...

We testen drie sensoren samen met volgende code:

https://gist.github.com/timlambrecht/29ded1ff87dd9...

Testen van de drie sensoren en de DC motoren samen met volgende code:

https://gist.github.com/timlambrecht/fdcd400362229...

Step 5: Wat ... Als ...

Maart 2019

Hoe reageren de motoren op de input van de sensoren?

sensoren = input = variabelen = sensorL, sensorM en sensorR

motoren = output

Test 1: auto rijdt tussen mappen vooruit:

Voorwaarde: sensorL > 6 , sensorM > 15, sensorR > 6

Basiscode:

https://gist.github.com/timlambrecht/d90f33197437e...

Als sensorL kleiner wordt dan 6 dan moeten we naar rechts draaien...

Als sensorR kleiner wordt dan 6 dan moeten we naar links draaien...

Code aanvullen:

else if ( SensorR.distanceCm() > 4 && SensorR.distanceCm() < 6) { draai_links(); }

else if (SensorL.distanceCm() > 4 && SensorL.distanceCm() < 6) { draai_rechts(); }

Test 2: auto rijdt vooruit en neemt een bocht naar links van 90°:

Voorwaarde: sensorL > 35 , sensorM < 15, sensorR > 6

Code aanvullen:

else if (SensorL.distanceCm() > 35 && SensorM.distanceCm() > 6 && SensorM.distanceCm() < 15) { draai_links_90(); }

void

draai_links_90(){ draai_links(); delay(1000); vooruit(); delay(200); }

Test 3 auto rijdt vooruit en neemt een bocht naar rechts van 90°:

Voorwaarde: sensorL > 6 , sensorM < 15, sensorR > 35

Code aanvullen:

else if (SensorR.distanceCm() > 35 && SensorM.distanceCm() > 6 && SensorM.distanceCm() < 15) { draai_rechts_90(); }

void

draai_rechts_90(){ draai_rechts(); delay(1000); vooruit(); delay(200); }

Step 6: Bocht 90°

Maart 2019

Om te controleren of Jef 90 ° draait laten we hem langs de muur rijden. We passen de 'delay' waarde aan zodat hij perfect draait. Een bocht van 180° programmeren we niet, we laten Jef na elke bocht van 90° automatisch vooruit rijden (delay, 200) zodat hij hierna terug kan kiezen voor 90° (want 2 x 90 = 180).

Afhankelijk van de snelheid gaan we meer of minder moeten draaien. We maken 2 codes: een trage(speed = 80) en een snelle (speed = 120).



Onze code ziet er momenteel zo uit:

Traag: https://gist.github.com/timlambrecht/20fa7f7a4124a...

Snel: https://gist.github.com/timlambrecht/398e21793dc18...

Step 7: Labyrint Maken

Maart '19

We maken een testlabyrint met oude mappen (die hebben we in 2019 toch niet meer nodig).

April '19

We maken een tweede testlabyrint met houten balken van 30 cm en 60 cm.

Step 8: 1ste Testrit

Maart 2019

Step 9: 10de Testrit

April 2019

We passen de code verder aan en schrijven lijnen bij: als Jeff niet weet wat hij moet doen bekijken we de seriële monitor en kijken we wat de sensoren van input geven.


Step 10: 50ste Testrit

Donderdag 2 mei 2019

Code blijven aanpassen, vereenvoudigen en groeperen. Wat kan nog beter? We overlopen alles en bereiden ons voor op de finale in technopolis.

Dit is onze eindcode snelheid 80:

https://gist.github.com/timlambrecht/b7b66833fa1b2...

Dit is onze eindcode snelheid 100:

https://gist.github.com/timlambrecht/2cbdc31f5cae7...

We zijn er klaar voor!

Step 11: Posterverslag

Het posterverslag bevat tekeningen, foto's, oplossingen van STEM onderzoeksvragen, en een duidelijke weergave van het verloop van het (technisch) proces... We maken een collage in paint.net!

We maken ook een geboortekaartje die we kunnen gebruiken om Jeff aan te kondigen...

Step 12: Finale in Technopolis