Op het ROCvF is vanuit een bouwpakket al eens een zelfrijdende inspectie wagen gebouwd. Het zou mooi zijn als je deze vanuit losse onderdelen zelf mag ontwerpen. Hoe zou je deze kunnen bedienen?
In deze cursus gebruiken we een eenvoudig schaalmodel. De software voor de bediening is wat ingewikkelder. In deze cursus werk je toe naar het zelf ontwerpen en bouwen van een afstand bestuurbare inspectiewagen. Je begint met onze Arduino Nano cursus.
Je bekijkt ook het ontwerp. Zitten de motors op een handige plek? Wat voor soort aansturing hoort daarbij? Rij je gewoon aan een lang snoer of wil je hiervoor een accu gebruiken?
Let op: Als student hoef je niet alles te lezen, maar deze dingen zijn wel belangrijk: In sessie 0 zie je hoe je eerst voor jezelf de titels bekijkt om een planning te maken. Daar maak je ook je eigen keuze wat je zelf wilt (en kunt) overslaan, en wanneer je klaar wilt zijn met de serie. Spring meteen naar sessie 0: https://new.junioriot.nl/cursus-brug/#s0
Cursusblad – Junior IOT Robotwagen met de ESP32
De voorbereiding is onderdeel van deze cursus: je volgt straks eerst de introductie electronica en Arduino Nano. Zo ontdek je de Arduino Nano en wat je hier zelf mee kunt bouwen. Voor de labs gebruik je daarbij de Arduino Bag of Fun van Junior IOT, welke voor deze cursus wordt aangevuld met een passende uitbreiding.
De modules die jou ondersteunen bij deze cursus:
- Introductie: Electronica en Arduino Nano
- Introductie: Motoren, aandrijvingen, besturing en bediening
- Ondersteuning: Kiezen tussen de verschillende maaktechnieken
- Introductie – Accu’s en batterijen
Samen technologie ontdekken met Junior IOT en ROCvF
Hoe werkt deze lessenserie? Een online Junior IOT cursus geeft je vakgerichte lessen en labs om zelfstandig of samen technologie te ontdekken. Een docent of coach helpt je de informatie en de spullen te vinden, en de vaktechnische informatie haal je zelf uit onze online beschrijvingen.
Een overzicht van de onderwerpen voor ROCvF bij Junior IOT: https://new.junioriot.nl/author/rocvf/
Voor de samenwerking met Junior IOT en ROCvF hebben we enkele afspraken gemaakt: https://new.junioriot.nl/rocvf-cursusmateriaal/
Doelen voor deze cursus
Als student bij de opleiding bij ROCvF wil je met deze cursus voortgang realiseren voor een aantal doelen of KD-aspecten:
(Wordt nog ingevuld in overleg met ROC)
Je eigen planning maken
Dit is een self-paced cursus. Dat betekent dat je zelf bepaalt hoe snel je hier doorheen loopt. De lessen en labs voor de Arduino worden ook op scholen gegeven als keuzevak met een studiebelasting van 200 uur per keuzedeel.
Een cursus bestaat uit ongeveer 20 sessies. De eerste 10 sessies zijn voor de Arduino Nano, en dan volgen nog 10 sessies voor jouw onderwerp. Op een traditionele opleiding doen we deze 20 sessies in ongeveer 5 à 6 maanden. Elke sessie kost een leerling dan meestal ongeveer 4 uur op school en 4 uur thuis.
Self-paced, dat betekent dat je sneller door de lessenserie mag gaan. Natuurlijk betekent dit dat je er per week dan meer tijd in steekt. Ik ben benieuwd wat jij kiest. Even serieus: je bent pas écht begonnen als je je eerste blink programma naar de Arduino hebt gestuurd.
Je hebt tijdens deze cursus hulp van je coach/docent. Die controleert voordat je begint of je planning voldoet aan de verwachtingen binnen jouw opleiding. Zorg ervoor dat je hierover regelmatig overlegt met je coach/docent.
Je eigen logboek bijhouden
Je spreekt met je coach/docent ook af hoe je jouw resultaten bijhoudt in je logboek. Het is belangrijk om te weten hoe vaak je in je logboek jouw vorderingen laat zien. Hierover heb je regelmatig contact om af te stemmen en bij te sturen.
Uitleg en uitdaging aangepast aan wat jij wilt!
Op je eigen snelheid maak je kennis met elk onderdeel waar je mee zult gaan werken. Bij de labs, de uitvoerende opdrachten, kan je alle spullen meer dan één keer gebruiken. Sommige opdrachten helpen je met een duidelijke uitleg, en andere opdrachten geven wat meer uitdaging. Jouw opleiding heeft al een serie opdrachten voor je klaargezet in de keuzes geel, oranje en paars.
We vertellen meer over deze kleuren op: https://new.junioriot.nl/rocvf-cursusmateriaal/#uitdaging
Jouw rol als deelnemer – hoe doe je dit?
Als deelnemer maak je jouw eigen planning. Je zorgt ervoor dat je op tijd de volgende oefeningen en labs uitvoert.
Deze pagina van Junior IOT geeft je een lijst van oefeningen en labs, en welke volgorde daarbij handig is. Elke link naar zo’n lab opent in een nieuwe tab in je browser. Als je klaar bent met zo’n lab sluit je dat tabblad om terug te keren naar deze lijst.
Bij veel labs zie je links naar extra informatie. Ook zie je aan het eind vaak een verwijzing naar andere labs en oefeningen. Als je wilt, mag je daar mee verder, let dan wel op dat je niet verdwaalt op de site. Je kunt altijd terug naar deze ‘hoofdlijst’ om te controleren of je de juiste labs aanklikt. Daarom helpt het dat je de sessienummers in je agenda zet.
De rol van jouw docent/coach
Jouw docent of coach helpt je de spullen te vinden. Hij of zij weet uit ervaring hoe jij als leerling comfortabel door de vaktechnische informatie in deze cursus kunt navigeren. Jouw studiekeuze en je gekozen kleur/niveau bepaalt welke ondersteuning je nodig hebt van jouw docent/coach.
Jouw docent/coach helpt je ook om zelf je voortgang in de gaten te houden. En hij/zij speelt een belangrijke rol in de beoordeling.
Bij het eindproject kan de docent/coach de rol van opdrachtgever op zich nemen. De opdrachtgever heeft een wisselend humeur. Koffie, koekjes en tijdige en beknopte informatie over het project helpen om te sturen op een goed humeur. Als je de opdrachtgever laat of onvolledig informeert, dan kan je ook vervelende verrassingen verwachten. De docent/coach zal op gezette tijden met de opdrachtgever overleggen en zal in redelijkheid bijsturen.
Wagen Sessie 0. De cursus verkennen en je eigen planning opstellen
Je maakt eerst een eigen planning. Dit is heel eenvoudig.
Deze lessenserie bestaat uit meerdere labs/activiteiten en een aantal aparte informatie momenten. In de beschrijving zijn alle activiteiten gesorteerd en gebundeld in een aantal sessies. Je kiest zelf hoeveel van deze sessies je per week wilt voltooien. De volgorde van de lessen en de labs is zo gekozen dat je iedere keer iets nieuws tegenkomt, je zorgt zelf dat je, wat je niet begrijpt, nog een keer herhaalt.
De meeste onderdelen in de onderdelen set zal je meer dan één keer gebruiken: eerst volgens een stap-voor-stap toelichting, en dan vaak nog een keer om een eigen variatie te maken. In deze eerste sessie verken je in het kort welke onderdelen je hebt.
Ondersteuning en andere trainingen bekijken om deze mee te nemen in de planning
Bij het maken van je planning lees je ook de titels van de sessies en opdrachten van alle ondersteuning trainingen. Vergeet niet om deze sessies mee te nemen in de planning.
Planning maken
Voordat je begint met de eerste sessie van de cursus is het belangrijk om jouw eigen planning te maken.
- Lees de titels van de verschillende sessies van de cursus, en ook van de bijbehorende ondersteuning en trainingen. Vorm een beeld van de inhoud van de cursus.
- Bepaal hoeveel weken je hier over wilt doen.
- Bepaal hoeveel sessies je per week wilt inplannen.
- Maak voor elke week in je agenda een afspraak met jezelf, zet erbij welke sessies je in die week wilt doen.
- Vraag goedkeuring aan jouw coach/docent voor jouw planning.
Je kent jezelf: reserveer iedere week ook extra tijd om gemiste sessies van de vorige week in te halen.
Eerst: Nano sessie 1 t/m 10 van de introductietraining Arduino Nano
Als voorbereiding volg je eerst sessies 1 t/m 10 van de introductiecursus voor electronica en de Arduino Nano. Het is daarbij belangrijk om extra te letten op programmeerstructuren. Besteed vooral aandacht aan de labs waarbij dieper wordt ingegaan op programeeruitdagingen.
- https://new.junioriot.nl/electronica-arduino-cursus/#s1 – Nano Sessie 1, unboxing en je werkomgeving klaarmaken
- https://new.junioriot.nl/electronica-arduino-cursus/#s2 – Nano Sessie 2, electronica solderen, hoe doen we dat
- https://new.junioriot.nl/electronica-arduino-cursus/#s3 – Nano Sessie 3, bouw je eigen electronica circuit
- https://new.junioriot.nl/electronica-arduino-cursus/#s4 – Nano Sessie 4, introductie van de Arduino
- https://new.junioriot.nl/electronica-arduino-cursus/#s5 – Nano Sessie 5, arduino solderen voor op het breadboard
- https://new.junioriot.nl/electronica-arduino-cursus/#s6 – Nano Sessie 6, libraries, software structuren
- https://new.junioriot.nl/electronica-arduino-cursus/#s7 – Nano Sessie 7, analoog in de digitale wereld
- https://new.junioriot.nl/electronica-arduino-cursus/#s8 – Nano Sessie 8, combineer opdrachten tot projecten
- https://new.junioriot.nl/electronica-arduino-cursus/#s9 – Nano Sessie 9, binaire uitdaging en digitale signalen
- https://new.junioriot.nl/electronica-arduino-cursus/#s10 – Nano Sessie 10, stappen in jouw project plan
Je kunt daarnaast ook deze sessies nog bekijken:
- https://new.junioriot.nl/electronica-arduino-cursus/#s11 – Nano Sessie 11, een vrije keuze combinatie
- https://new.junioriot.nl/electronica-arduino-cursus/#s12 – Nano Sessie 12, maak een miniatuur uit de echte wereld
Wagen Sessie 1. Hoe doe je productontwerp. Onderzoek en verkenning van de DC-motor.
Natuurlijk heb je alle labs af van de introductie in Arduino, anders maak je de ontbrekende labs eerst voordat je aan deze sessie begint. In de komende sessies werk je telkens aan twee delen van je project.
- Productontwerp
- Labs om de belangrijkste onderdelen nog beter te leren kennen
Productontwerp, hoe ging dat ook alweer: https://new.junioriot.nl/electronica-arduino-cursus/#s10
Extra: We doen alsof je nu zelf een robot gaat ontwerpen. Voor je ontwerp noteer je nu de volgende onderdelen:
- Een beknopte titel en pitch, bijvoorbeeld “een robotwagen met wifi bediening via de telefoon”
- Functioneel ontwerp, wat moet het doen. Bijvoorbeeld “De robot volgt de aanwijzingen die met het telefoonscherm worden gegeven. Met bots sensoren wordt voorkomen dat de robot ergens tegenaan rijdt. “
In deze sessie controleer je nog een keer extra of je deze labs goed beheerst. Doe de labs:
- Headers op de Arduino solderen, uitleg hoe je dit netjes doet: https://new.junioriot.nl/headers-op-arduino-nano-solderen/
- Joystick servo: https://new.junioriot.nl/lab-joystick-servo/
- Blink Extreme, op een breadboard: https://new.junioriot.nl/blink-extreme-breadboard/
Extra uitdaging: Bekijk daarna de dappere avonturen van je voorgangers. Dit zijn verslagen van projecten die soms nog niet helemaal af waren.
- Onze battle beschrijving: https://new.junioriot.nl/junior-battlebot-challenge-2019/
Dit zijn natuurlijk heel andere projecten! Bedenk welke vaardigheden jij nog nodig hebt om verder te komen dan je voorgangers.
Het is gaaf als jij ook met productiemachines aan de gang gaat om je eigen model te maken. Wat wil jij anders of beter?
Wagen Sessie 1a (extra). Electromotoren en hun bediening.
Welke soorten electromotoren hebben we, en hoe kunnen we deze bedienen? Lees de informatie en doe de bijbehorende labs:
- https://new.junioriot.nl/motoren/ – motoren, aandrijving, besturing en bediening
Wagen Sessie 2. Motoren die doen wat jij wilt
Productontwerp, hoe ging dat ook alweer: https://new.junioriot.nl/electronica-arduino-cursus/#s10
Voor je ontwerp noteer je nu de volgende onderdelen:
- Technisch ontwerp, welke techniek componenten heb je nodig
- Planning welke expertise en vaardigheden je nodig hebt
Je gaat aan de slag met de afzonderlijke onderdelen, als een soort bewijs dat het werkt. Daarvoor eerst de motorcontroller op de arduino, waarbij je elke motor vertelt wat die voor jou moet doen.
- Blink, dubbel Extreme: https://new.junioriot.nl/blink-dubbel-extreme/
Duik nu dieper in de programmeervaardigheden met deze labs:
- Bits en bytes van Maarten: https://new.junioriot.nl/bits-bytes-ledmatrix/
- Leeslab over binaire getallen: https://new.junioriot.nl/binair/
De code in het voorbeeld van Maarten geeft aan hoe je werkt met variabelen in het geheugen.
Nu komt het voorbeeld met de motor besturing. Je kunt nu dit lab doen:
- Arduino Nano, motorcontroller, blink en PWM: https://new.junioriot.nl/blink-extreme-dc-motor-besturing/
Wagen Sessie 3. Je machine ontwerpen en beschrijven
Je hebt nu zelf een aantal oefeningen uitgevoerd. Nu kun je zelf een eigen ontwerp maken, waarbij je vertelt hoeveel onderdelen er aangestuurd moeten worden.
- Bedenk welke aandrijving je wilt gebruiken. Gebruik je een DC-motor met tandwielkast, of liever de mini DC-motor? Wat gebruik je voor de bediening? Deze stap doe je echt zonder te programmeren. Gebruik vooral schetsen op papier.
- Welke losse (software) onderdelen herken je in je machine ontwerp? Denk eens aan:
- Motor met tandwielkast, of mini DC-motor om de machine te laten bewegen
- Micro switch als schakelaar voor botsingdetectie (2x of 4x)
- “iets met wifi”
- Een apparaat dat de webpagina van de robotwagen laat zien
- Voor elk van deze onderdelen beschrijf je wat het doet. Bijvoorbeeld: als beide motoren draaien gaat de robotwagen naar voren.
- De onderdelen hebben ook een interactie met elkaar, bijvoorbeeld: de eindschakelaar geeft aan dat er links voor een botsing is, de robot moet een stukje achteruit en dan naar rechts. Welke interacties heb je nodig om het compleet te maken?
Welke hardware wil je daarom gebruiken in je machine? Misschien je twee motors, switches, motor controller, ESP32, je NeoPixel ledstrip? Heb je alle onderdelen of moet je daarvoor iets regelen?
We hebben al wat voor je geregeld.
Bij de robotwagen gebruik je een ESP32 in plaats van de Arduino. Dit werkt heel anders. Er is heel veel wat de ESP32 zo bijzonder maakt. Een aantal bijzonderheden zijn in dit project belangrijk (twee threads, wifi, webserver). Je kunt in de code van dit project zien hoe de ESP32 een access point wordt en een eigen wifi netwerk maakt. Je zorgt ervoor dat de ESP32 een webpagina host, met daarop de bediening van de robotwagen. Je ontdekt hoe de ESP32 helpt zodat jij jouw telefoon kunt gebruiken om via de webpagina jouw robotwagen te bedienen.
Het is nu tijd om te kijken of de Lolin32 Lite van dit project ook echt werkt:
- Doe nu het lab om de Lolin32 Lite in te stellen in de Arduino IDE: https://new.junioriot.nl/lolin32-arduino-ide/
Wagen Sessie 4. Proof-of-concept per machineonderdeel
Je hebt nu duidelijk wat jouw wens betekent voor de techniek van je machine. Per onderdeel controleer je nu of je erin gelooft dat je alles echt kunt gaan bouwen:
- Welke onderdelen van je product of ontwerp zijn eigenlijk lastiger dan je dacht?
De software voor de robotwagen, compleet met webserver, dat is best lastig. Gelukkig hebben we daarvoor al best veel voor je geregeld:
- Doe nu het lab voor het bouwen van de ESP Robotwagen. Een deel van de voorbereiding heb je nu al gedaan: https://new.junioriot.nl/robotwagen-esp32/
Als je wilt kun je nu kijken welke ideeën uit je functionele ontwerp passen bij de eenvoudige robotwagen. Welke onderdelen moet je daarvoor nog toevoegen? Hoe gaat dat eigenlijk in een ESP32 omgeving? Als je goed kijkt zie je in de software diverse plekken die iets doen met de motor besturing; misschien kan je daar je functies aan toevoegen. Kijk nog eens naar de button1 functie in functions.cpp
Werk verder aan je product:
- Je probeert nu, aan het begin van je ontwikkeltraject, eerst de meest onzekere dingen te behandelen. Zo kan je nu nog handige keuzes maken.
- Voor elk los (software) onderdeel in je machine ontwerp maak je een proof-of-concept: Je laat hiermee zien dat de software zou kunnen werken. De verschillende onderdelen hoeven nog niet samen in één programma te zitten. Je mag het eerst op de Arduino ontwikkelen.
- Voor elk hardware onderdeel maak je een proof-of-concept: Hiermee laat je zien dat de samenwerking tussen je hardware onderdeel en de Arduino werkt.
Wagen Sessie 5. Kan het eenvoudiger?
Productontwerp, schrijf de volgende onderdelen:
- Integratie, hoe breng je het samen
- Re-design, wat laten we weg
Ga aan de slag met jouw project:
Het realiseren van de losse proof-of-concept onderdelen duurt vaak langer dan je verwacht. Het bouwen van nieuwe dingen levert bovendien vaak onverwachte problemen op.
Bedenk hoe je verder gaat. Welke delen werken wel, en welke zijn wat lastiger? Kan je externe deskundigheid vinden om je te helpen bij de uitdagingen? Kan je het ontwerp aanpassen om de lastige dingen weg te laten, en vind je opdrachtgever dat goed?
In deze sessie voltooi je de proof-of-concept voor elk van de software- en hardware onderdelen.
Wagen Sessie 6. Alle electronica samen
Nu weet je voor welke onderdelen het je ook écht lukt om ze te gebruiken, en welke niet goed lukken. Beschrijf als deel van jouw ontwerp de volgende onderdelen:
- Detail design, welke onderdelen sluit je waar op aan? Welke softwareonderdelen moet je maken en waarop reageren ze?
Extra uitdaging, maak een begroting.
- Productie, wat hebben we nodig om te maken. Bestellijst, kostenberekening.
Ga aan de slag met jouw project:
- Bouw alle hardwarecomponenten samen tot één systeem
- Combineer je softwareonderdelen tot één systeem
Je ontdekt nu hardware- en software uitdagingen. Niet alles past in één keer bij elkaar. Als je veel problemen tegenkomt, maak dan een overzicht en kies samen met je opdrachtgever welke problemen belangrijk zijn, en welke problemen niet hinderlijk zijn voor de hoofdfunctie van de machine.
Wagen Sessie 6a (extra): maaktechnieken
Je product is nu zover dat je echt weet hoe alles is gemaakt. Misschien past het ontwerp niet bij jouw doel omdat het te snel stuk gaat, of omdat het niet groot genoeg is. Misschien wil je een grotere versie bouwen. Wellicht wil je voor de electronica een mooie behuizing ontwerpen. Wat is er eigenlijk mogelijk? Laat je inspireren:
- Samen de verschillende maaktechnieken verkennen: https://new.junioriot.nl/maaktechnieken/
Wagen Sessie 7. Alle software samen. Een batterij erbij? Maak een nieuw frame?
Het concept voor de hardware is nu redelijk compleet. De besturingssoftware begint ook ergens op te lijken.
- Werk verder aan de software van je bediening
Wil je jouw apparaat ook écht draadloos maken?
- Bespreek of je jouw prototype aan de usb kabel laat, of dat je een batterij wilt inbouwen. Onderzoek de mogelijkheden: https://new.junioriot.nl/batterij/
Maak je een nieuw frame of een nieuwe behuizing voor jouw apparaat?
- Bespreek wat voor soort frame en behuizing past bij jouw robotwagen. Denk daarbij ook welke maak-machines jullie hebben staan, en welke machine je eventueel nog kunt aanvragen. Kies voor een haalbare uitdaging.
- Bouw ondertussen een concept voor de behuizing.
Wagen Sessie 8. Bouw en afbouw
Het einde is in zicht. Alle noodzakelijke onderdelen zijn in concept compleet en werken goed samen. Staan er nog dingen op de wensenlijst, dan is dit een goed moment om ze voorzichtig toe te voegen.
Oeps, is er toch nog overleg nodig met de opdrachtgever?
Wagen Sessie 9. Afronden en genieten van je resultaat.
Bedenk nu ook wat je nodig hebt om je resultaten te presenteren. Zijn er dingen die nog niet werken, maak deze dan nu af. Vaak zal je nog last-minute veranderingen willen verwerken: Let op dat je geen aanpassingen introduceert die risicovol zijn voor je resultaat. Zijn er andere teams die hulp nodig hebben – als je tijd kunt vrijmaken dan is het super sportief om ze even te helpen.
Je opdrachtgever is onverwacht een weekje op vakantie. Lekker handig, zo pas voor de oplevering. Gelukkig had je jouw zaakjes goed op orde en zal de oplevering geen verassingen geven voor de opdrachtgever.
Wagen Sessie 10. Presentatie.
De opdrachtgever is benieuwd wat je gaat presenteren, je stuurt een kort overzicht van het resultaat. Opdrachtgever is dan wel of niet verrast en kan feedback geven als je toch met onverwachte verrassingen komt – misschien is zelfs een aanpassing nodig omdat je iets hebt gemaakt zonder overleg met de opdrachtgever!
Vaak zal je zelf nog last-minute veranderingen willen verwerken. Let op dat je geen aanpassingen introduceert die risicovol zijn voor je resultaat.
- Laatste poets acties
- Presentatie en verantwoording
Ik ben benieuwd wat jullie hebben gemaakt!
Deze opdracht heeft ook een grotere versie: De Junior IOT Battle Bot Challenge. Bekijk de volgende film voor de smeuïge techniekdetails in de pit stop:
Het gehele verslag zie je op YouTube:
Ohja, psst, jullie maken in deze cursus natuurlijk een mini-versie van de coole robots die je in de battle hebt gezien.
Techniek details: