Ik ben van mening dat eerst het kopen van een Arduino of soortgelijk en dan daarna jezelf gaan afvragen wat je ermee wilt gaan doen verkeerd om handelen is. Je gaat aan de slag met Arduino omdat je waarschijnlijk iets hebt gezien online wat je gaaf vond en zelf wilt reproduceren. Dan zou dat je doel moeten zijn. Als dat nu nog erg ver van je huidige vaardigheden met Arduino ligt, dan moet je het project gaan opdelen in kleinere stukjes en elk klein stapje wordt dan op zichzelf een doel.
Een voorbeeld: Je moet vooral niet als beginner willen beginnen met het bouwen van een zelfrijdende auto als deze: (er zijn heel veel kitjes te vinden voor wagentjes zoals deze)
Hartstikke leuk natuurlijk, en het fijne van zo'n kitje is dat je er vrij zeker van kan zijn dat je alles wat je nodig hebt meteen hebt. Maar met zo'n karretje beginnen te bouwen gaat één van de volgende uitkomsten hebben:
- Je bouwt het hele setje in elkaar, gaat op internet struinen naar voorbeeldcode en probeert verschillende voorbeelden uit tot er eentje werkt. Eindstand: je hebt niets geleerd, maar je hebt wel een leuk zelfrijdend karretje.
- Je gaat het zelf proberen te programmeren, raakt compleet overweldigd van de complexiteit en de problemen waar je tegenaan gaat lopen bij het programmeren en smijt het hele ding gefrustreerd in de hoek, om deze vervolgens nooit meer aan te raken. "Niks voor mij dit"
- Je bent een natuurtalent en ondervindt totaal geen problemen bij het bouwen en programmeren van deze kit. (zeer onwaarschijnlijk)
Uitgaande dat de laatste optie niet het geval gaat zijn, Zou het natuurlijk ontzettend jammer zijn om zo'n project te maken zonder er iets van te leren of om er gefrustreerd mee te raken en nooit meer om te kijken naar deze mooie wereld van Embedded systemen.
Om frustratie te voorkomen, adviseer ik om alle onderdelen als losse projectjes te beschouwen, en die te doorgronden. Je hebt op dit karretje namelijk vanalles zitten:
- Een ultrasoon-afstandssensor om te bepalen of het pad voor het karretje vrij is
- Een servo-motor om de ultrasoon-afstandssensor mee te kunnen roteren
- Vier motoren die ieder wiel onafhankelijk kunnen aandrijven
- Een motor-controller om de vier motoren op de juiste manier aan te sturen
- Twee obstakeldetecterende IR sensoren die op de grond gericht staan met een reden
Dus begin eens met elke sensor of actuator een keertje los aan te sluiten op de Arduino en deze te programmeren. Probeer door te krijgen hoe de sensor werkt, en bijvoorbeeld ook te ontdekken wat de beperkingen of onnauwkeurigheden zijn.
Zo'n ultrasoon-afstandssensor bijvoorbeeld is beperkt in het aantal metingen dat hij per seconde kan uitvoeren, en meet lang niet altijd even nauwkeurig de afstand op. Ook zijn er bepaalde materialen waar de sensor helemaal geen meting op uit kan voeren (probeer maar eens de afstand tot een microvezeldoek te meten met die sensor. Gaat je niet lukken!). Hoe zou dat komen? Wat geeft de sensor aan informatie terug aan de Arduino bij het maken van zo'n onjuiste meting? Is het makkelijk in je programma te ontdekken wanneer een meting onjuist is, of kan het goed zijn dat er soms een onjuiste meting tussendoor glipt? Hoe voorkom je dat zo'n onjuiste meting in het eindproduct voor ongewenst gedrag van het karretje gaat zorgen (Dus: hoe filter je zo'n onjuiste meting eruit)?
Dát is de juiste manier om het beginnen met Arduino aan te vliegen. Zet een stip op de horizon, maar vlieg daar niet direct op af. Breek het project op in kleine, hapklare brokjes. Vaak is iedere sensor en iedere actuator even apart aandacht geven om het helemaal door te hebben hoe het werkt de juiste manier om dit te doen. Als je alle sensoren en actuatoren door hebt, ga je verder door twee sensoren of actuatoren tegelijk in één programma aan te sturen. Je kan namelijk altijd maar één ding tegelijk doen in Arduino, dus hoe verdeel je de aandacht tussen twee sensoren of actuatoren? Enzovoorts.
Resumerend: ik denk dat je er het meest verstandig aan doet om een project te kiezen dat je toch al gaaf vind, en graag zelf zou willen namaken, daarvoor de spullen te kopen die je nodig hebt en dat dan in kleine stukjes op te breken en jezelf expert te maken in de individuele onderdelen, alvorens je gaat proberen de meerdere onderdelen samen te voegen in het grote eindproduct. En kies dan vooral een einddoel wat je toch al aanspreekt, want anders zakt de moed je waarschijnlijk snel in de schoenen. Je hebt het voordeel al een beetje PHP te kennen, en dus bekend bent met syntaxis van een programmeertaal die behoorlijk veel lijkt op C en je zult ook al enigszins bekend zijn met voorwaardelijk programmeren (if...else), maar je zult nog een hoop gaan leren gedurende het proces.
Om tot slot antwoord te geven op je vraag: Mijn eerste project was een LED-flitser, à la politie-flitslicht. Begonnen met twee ledjes, om en om laten knipperen. Dan een complexer flitspatroon. Dan meerdere, verschillende flitspatronen achter elkaar. Toen een knopje erbij om te kunnen wisselen van flitspatroon. Toen 3 lampjes per kleur i.p.v. 1, en zo steeds verder uitgebouwd. Heel veel eenvoudiger dan dat wordt het eigenlijk niet, en toch kom je daar al genoeg lastige dingen in tegen beloof ik je. Een knopje is namelijk niet zomaar een knopje (debouncing/contactdender en pullup/pulldown weerstanden zijn twee dingen waar je over moet leren voordat je een knopje goed werkend krijgt bijvoorbeeld).
[
Voor 5% gewijzigd door
naarden 4ever op 24-01-2025 10:47
]