Roboktober

Van joystick tot wiel

Van software naar beweging in een robot van 150 gram

Rein Velt · PHP Meetup Groningen · 5 november 2026

Hackerspace Drenthe Hackerspace Drenthe

Wie ben ik

Rein Velt · software engineer & maker

Overdag code, 's avonds de soldeerbout.

  • Software Engineer bij Dawn Technology
  • Oprichter Nederlandse PHP Gebruikersgroep (2001) → PHPBenelux
  • Oprichter Hackerspace Drenthe (Coevorden)
  • Van een PHP-community bouwen… naar een maker-community bouwen
  • Dit voorjaar (maart–mei): Mei MeshCore Maand · Drenthenoodnetwerk.nl
  • Deze zomer: Roboktober → website, printplaten, onderdelen, chassis en organisatie

Ik ben meer bouwer dan prater — dus vandaag laat ik vooral zien wát we gebouwd hebben.

Solderen in de hackerspace
Hackerspace Drenthe, bouwavond

Handen omhoog

Wie heeft weleens iets gesoldeerd?

Wie heeft een Arduino of ESP32 geprogrammeerd?

De rode draad

Wat gebeurt er als je de joystick naar voren duwt?

Dat laten we zo zien: van smartphone naar motor.

WebUI met joystick op een smartphone
① Telefoon of remote

HET EVENT

Roboktober

Hoe het begon — en wat is een antweight eigenlijk?

Hoe het begon

Wallie (WallieOnline)

▶ Wallie aan het woord · 1:24

Fragment uit de kickoff · 0:26–1:50
  • Al heel lang bezig met antweight-robots
  • Team captain Team Upstart — o.a. Cookiemonster, TLC, Kecil
  • 🏆 1e op INDI Robot Games 2020 — ook Master Milo deed mee; 2e op Boeliebots 2026 (Groningen)
  • Komt vaak naar de hackerspace om robotonderdelen te maken met de freesbank en CNC-apparatuur
  • Idee: samen een event maken → mensen enthousiast maken voor techniek én voor de hackerspace

Vandaag · onder de motorkap

Zelfde robot, een andere blik

Bij de bouwavonden

  • Samen bouwen en uitproberen
  • Kinderen, families en makers
  • Zo snel mogelijk iets dat rijdt

Vandaag als developers

  • Wat gebeurt er tussen input en beweging?
  • Interfaces, code en schema's
  • Welke softwarekennis neem je mee?

Dus vandaag: code · printplaat · schema's

Geen elektronicakennis nodig. Stel gerust een vraag als ik een stap oversla.

Het event

Roboktober

Een maand bouwen, testen en robot-actie — Hackerspace Drenthe + WallieOnline. Alleen of als team: kinderen, families, collega's.

WanneerWat
7 oktKickoff: live demo, zelf sturen, start bouwen (livestream)
14 oktWorkshop antweight bouwen
21 oktAfbouwen en testen
28 oktTechnische keuring + Battle Day

3D-printers, lasercutters en begeleiding in de hackerspace.

Bouwavond
Bouwavond in de hackerspace

Wat is een antweight?

150 g

maximaal gewicht, alles inbegrepen

~€25per kit
15 cmmax. 15×15×15 cm
Antweight pusher
Klein, goedkoop, relatief veilig, snel resultaat

Onze klasse & de veiligheidsgrenzen

Onze robot

  • Antweight — maximaal 150 g
  • Accu en elektronica tellen mee
  • Bij Roboktober: duwen, niet slopen
  • Andere evenementen: controleer het eigen reglement

Typen

  • Pushers / wedges
  • Flippers
  • Spinners

Veiligheid

  • Open arena → bij Roboktober 2026 geen actieve wapens (alleen duwen/wedges)
  • Actieve wapens vragen geschikte afscherming, regels en keuring
  • Keuring · failsafe

Veiligheid zit niet alleen in de arena, maar ook in de code — dat zien we zo.

DE ROBOT

Volg één commando

Van duim op het scherm tot wiel op de vloer

De robot open op tafel · wat zit waar?Van onderdelen naar beweging · volg één commando

3D-render van het lege robotchassis met ruimte voor elektronica en motoren
3D-render · chassis zonder elektronica

1 / 7 · DE BEHUIZING

Chassis

Houdt alle onderdelen op hun plek.

Ruimte voor accu, print en aandrijving. Zelf te ontwerpen en te 3D-printen.

Schematische render van een 1S LiPo-accu met aansluitkabel
Schematische render · 1S LiPo

2 / 7 · DE ENERGIE

Accu

Levert de energie voor de robot.

1S LiPo: 3,7 V nominaal, 4,2 V vol. De motorstroom komt hiervandaan, niet uit de ESP32.

Schematisch beeld van een schakelaar in de uitstand en een uitgenomen plug of pincap: beide onderbreken de plusleiding naar de robot
Schematisch · schakelaar óf uitneembare plug/pincap · beide uit

3 / 7 · FYSIEK UITSCHAKELEN

Aan/uit

Schakelaar of uitneembare plug/pincap.

Onderbreekt de accuvoeding fysiek. Bereikbaar van buitenaf en geschikt voor de motorstroom.

Motoren stoppen via software is niet hetzelfde als stroom uit.

KiCad-render van de kale robotprint met koperbanen en aansluitpunten
KiCad 3D-render · kale PCB v4

4 / 7 · DE VERBINDINGEN

Printplaat · PCB

Verbindt de onderdelen met koperbanen.

Aansluitpunten voor voeding, ESP32, motordriver en motoren. De printplaat zelf voert geen code uit.

Echte foto van een ESP32-C3 SuperMini met USB-C-aansluiting, twee drukknoppen en antenne
Foto: Tobias Weltner · done.land
CC BY-ND 4.0 · ongewijzigd

5 / 7 · HET BREIN

ESP32-C3 SuperMini

Hier draait onze firmware.

Ontvangt draadloze commando's, rekent gas en sturen om en geeft stuursignalen aan de motordriver.

Productfoto van een DRV8833-motordrivermodule met aansluitgaten en afmetingen 18,4 bij 16 mm
Productfoto: AliExpress · aangeleverde bron

6 / 7 · DE MOTORAANSTURING

Motordriver

DRV8833: tussen ESP32 en motoren.

Schakelt de accuspanning naar twee motoren. De ESP32 bepaalt wat er moet gebeuren; de driver schakelt de motorstroom.

Productfoto van een N20-motor met metalen tandwielkast en uitgaande asProductfoto van een wiel met rubberband en witte naaf voor de motoras
Productfoto’s: AliExpress · N20-motor (uitsnede) · wiel

7 / 7 · DE BEWEGING

Motoren + wielen

Twee N20-motoren drijven de wielen aan.

Links en rechts apart aansturen laat de robot rijden en sturen.

Wat gebeurt er nu als je vooruit duwt?

1S LiPo 3,7–4,2 V N20 N20 ESP32-C3 DRV8833 📶 gas + sturen GPIO6 GPIO10 PWM ≈ 78 % AAN/UIT ⚡ 3,7 V aan / uit
PCB v4, onderkant · accu, motoren en wielen schematisch · chassis niet afgebeeld
  1. 📶 Signaal binnenESP32-C3 ontvangt gas + sturen
  2. 🧠 ESP stuurt aanmotorcommando 200 → PWM ≈ 78 %
  3. 🔋 Accu levert stroom1S LiPo → DRV8833
  4. ⚡ DRV8833 schakeltschakelt de accuspanning naar de motoren
  5. 🛞 Wielen draaienbeide even snel aangestuurd → (ongeveer) rechtdoor

STAP 1 · AFSTANDSBEDIENING · 5 MIN

De controller

Hoe wordt een tik op je scherm een commando?

Twee controllers, één doel

📱 Telefoon (WebUI)

  • Robot is zelf het WiFi-netwerk
  • Browser, geen app
  • WebSocket

🎮 Eigen remote

  • Tweede ESP32 + analoge stick → ESP-NOW
  • Óf een gewone RC-zender + ontvanger → CPPM
  • Twee aparte routes, zelfde resultaat

Beide leveren hetzelfde af: gas + sturen

We beginnen bij de telefoon; voor de code kijken we daarna naar de openbare ESP-NOW-variant.

WebUI · de robot als WiFi-toegangspunt

WebUI joystick-modus WebUI tank-modus
  • WiFi worc-424242 · wachtwoord worc1234
  • Browser naar http://192.168.4.1
  • Geen app, geen router, geen zender
  • WebSocket: één open lijn i.p.v. steeds opnieuw verbinden → weinig vertraging
  • Kies: joystick of tank (twee sliders)
  • Gas en sturen mixen, draairichting omkeren: instellen i.p.v. code wijzigen
  • Nieuwe firmware van Wallie: release op 5 november 2026 — vandaag · Wallies GitHub

Net als de instellingenpagina van je router thuis.

Eigen remote · ESP32 → ESP-NOW

Eén gedeeld formaat — dezelfde structuur in beide programma's:


typedef struct rc_data_t {
  uint16_t gAIL, gELE, gTHR, gRUD, gAUX1, gAUX2, gAUX3, gAUX4;  // 8 × 2 = 16 bytes
} rc_data_t;
rc_data_t gEspn;

① Zender vult in en verstuurt (elke 20 ms)


// Ingekort: kanalen vullen, daarna verzenden.
if (gStick[AIL]) gEspn.gAIL = gStick[AIL]; // sturen
if (gStick[ELE]) gEspn.gELE = gStick[ELE]; // gas
// … overige kanalen …
esp_now_send(0, (uint8_t *) &gEspn, sizeof(gEspn));

worc-remote-esp32.ino#L221–235

② Ontvanger controleert de lengte en leest de structuur


void OnDataRecv(const uint8_t *mac,
                const uint8_t *incomingData, int len) {
  if (len == sizeof(gEspn)) {
    memcpy(&gEspn, incomingData, sizeof(gEspn));
    // … kanaalwaarden controleren en schalen …
    lastCommandTime = millis();
  }
}

worc-esp32c3-drv8833-espnow.ino#L129–150

Zoals pack()/unpack(): 16 ruwe bytes. Zender en ontvanger moeten precies hetzelfde formaat gebruiken.

STAP 2–4 · FIRMWARE EN MOTORSTURING · 12 MIN

De firmware

Van ontvangen bericht naar een motor die draait

Flashen vanuit de browser

  • Web flasher (Web Serial): USB-kabel erin, knop indrukken, klaar
  • Geen toolchain, geen Arduino IDE
  • Alleen Chromium-browsers
  • Valkuilen: USB-kabel die alleen laadt, ontbrekende driver

Van browser naar chip

Browser → USB → ESP32

Web Serial geeft de browser toegang tot de seriële verbinding.

Inspiratie: wallieonline.nl/blogs/worc-robot-controller-nl.html

Firmware-update zoals bij je printer of router — maar dan via de browser.

Nu staat de software op de chip. Wat doet die met een commando?

De volledige firmware · ESP-NOW + DRV8833

1 / 9 · L19–30

Welke hardware gebruiken we?

Wat: bibliotheken laden en aansluitpinnen benoemen.

Waarom: software koppelen aan de juiste hardware.

Voor de robot: IN2A_OUT_PIN betekent GPIO 6. Het is een aansluitnummer, geen snelheid.

2 / 9 · L32–50

Een vast berichtformaat

Wat: acht 16-bitkanalen vormen één bericht van 16 bytes.

Waarom: zender en ontvanger spreken hetzelfde formaat.

Voor de robot: gELE is gas, gAIL sturen. De grenzen en deadband bepalen straks hoe die waarden worden omgerekend.

3 / 9 · L51–73

Geheugen tussen berichten

Wat: rijcommando's, instellingen en tijdstip bewaren.

Waarom: waarden blijven beschikbaar tussen berichten.

Voor de robot: gas en sturen beginnen op 0. lastCommandTime en de grens van 500 ms maken later de timeout mogelijk.

4 / 9 · L152–167

Eén keer voorbereiden

Wat: instellingen laden en PWM instellen: 5 kHz, 8 bit.

Waarom: motoruitgangen één keer klaarmaken bij opstarten.

Voor de robot: tijdens de opstart staat de driver in standby; na twee seconden wordt hij vrijgegeven. De motorcommando's zijn nog 0.

5 / 9 · L170–189

Luisteren naar de remote

Wat: ESP-NOW starten en OnDataRecv registreren.

Waarom: binnenkomende berichten automatisch verwerken.

Voor de robot: de remote moet hetzelfde radiokanaal gebruiken. Mislukt het starten van ESP-NOW, dan meldt de code dat en herstart de ESP32.

6 / 9 · L129–150

Van bytes naar gas en sturen

Wat: berichtlengte controleren, kanalen schalen en deadband toepassen.

Waarom: joystickwaarden omzetten zonder kruipen rond neutraal.

Let op: een kanaal buiten bereik behoudt zijn vorige waarde. Elk bericht met de juiste lengte vernieuwt hier de timeout, ook dan.

7 / 9 · L93–105

Twee wielen uit één joystick

Wat: mixing: links = gas + sturen, rechts = gas − sturen.

Waarom: verschil tussen de wielen laat de robot draaien.

Voorbeeld na schalen: gas 200 + sturen 100 → links 255, rechts 100. Omkeerinstellingen corrigeren daarna de draairichting.

8 / 9 · L106–127

Getallen worden stuursignalen

Wat: ledcWrite(kanaal, waarde) stelt PWM in via de Arduino-ESP32-core, niet via een eigen functie.

Waarom: motorcommando's omzetten naar elektrische stuursignalen.

LEDC = LED Control, ook bruikbaar voor motoren. Waarde 200 ≈ 78% aan-tijd, niet 78% snelheid. Motorstroom komt uit de accu.

9 / 9 · L191–205

Blijven rijden — of stoppen

Wat: steeds motoren bijwerken; na >500 ms stilte gas/sturen op 0.

Waarom: stoppen als de verbinding wegvalt.

Voor de robot: elke ronde voert updateMotors() de waarden uit, dus ook het stopcommando. Dit is een softwarefailsafe, geen fysieke stroomonderbreking.

→ volgend blok · ← terug · scroll voor alle code
Openbare ESP-NOW-versie, niet de WebUI-broncode.

© 2026 wallieonline · volledige bron · fb3afa886117 · GPL-3.0-or-later

Schalen + deadband · rust rond het midden


if (gEspn.gELE > unThrottleMin && gEspn.gELE < unThrottleMax) {
  gThrottle = map(gEspn.gELE, unThrottleMin, unThrottleMax, -255, 255);
  gThrottle = constrain(gThrottle, -255, 255);
  if (abs(gThrottle) <= RC_DEADBAND) {
    gThrottle = 0;
  }
}
0−255−40+40+255

Deadband (RC_DEADBAND 40): een joystick staat in rust nooit precies op 0 — er is altijd wat ruis en speling. Alles tussen −40 en +40 wordt hard 0, anders kruipt de robot langzaam weg terwijl je niks doet.

OnDataRecv() L129–150 (ingekort)

Mixing


gMotorLeft = constrain(gThrottle + gSteering, -255, 255);
gMotorRight = constrain(gThrottle - gSteering, -255, 255);

if (gInvertLeft) gMotorLeft = -gMotorLeft;
if (gInvertRight) gMotorRight = -gMotorRight;
GasSturenLR
2000200200
200100255100
0150150−150

updateMotors() L93–105 · ingekort, mixer aan

Sturen als een tank of graafmachine: verschil in snelheid links/rechts = draaien.

PWM: een dimmer

25%
50%
90%

  if (gMotorLeft > 0) { //DIRECTION_FORWARD
    ledcWrite(0, LOW); //IN1A_OUT_PIN
    ledcWrite(1, abs(gMotorLeft)); //IN2A_OUT_PIN
  } else if (gMotorLeft < 0) { //DIRECTION_REVERSE
    ledcWrite(0, abs(gMotorLeft)); //IN1A_OUT_PIN
    ledcWrite(1, LOW); //IN2A_OUT_PIN
  } else { //DIRECTION_STOP
    ledcWrite(0, LOW); //IN1A_OUT_PIN
    ledcWrite(1, LOW); //IN2A_OUT_PIN
  }

5000 Hz, 8 bit: 0 = uit · 200 ≈ 78% aan · 255 = altijd aan

ledcWrite() L106–125 · rechter motor idem op kanaal 2/3

H-brug: vier schakelaars

Vooruit: A + D dicht
Achteruit: B + C dicht

DRV8833 = twee H-bruggen in één chip. IN1/IN2 bepalen welke schakelaars dicht zijn.

De H-brug kiest de stroomrichting; PWM bepaalt welk deel van de tijd de motor wordt aangestuurd.

Failsafe · geen commando is óók een toestand


if (millis() - lastCommandTime > COMMAND_TIMEOUT) {
  gThrottle = 0;
  gSteering = 0;
  digitalWrite(FLED_OUT_PIN, (millis() / 250) % 2);
}

updateMotors();

500 ms geen pakket → stop · 🔴 LIVE: remote uit

loop() L191–205 · vereenvoudigd, LED/logging ingekort · COMMAND_TIMEOUT = 500

Zoals een heartbeat-timeout: zonder verse commando's naar een veilige toestand.

UITVOERING · PRINTPLAAT · 4 MIN

De print

De motor draait. Hoe verbinden we de onderdelen betrouwbaar?

Componenten & voeding

  • ESP32-C3 SuperMini — WiFi + ESP-NOW
  • DRV8833 — dubbele H-brug
  • 2× N20 6 V, 50:1
  • LiPo 1S → aan/uit → DRV8833; 2S optioneel via 5V-regelaar → ESP_5V_IN
  • ⚠ Nooit VIN → 3.3V overbruggen

Pincontract · de interface tussen code en print

GPIOFunctieFirmware
5DRV8833 nSLEEPSTBY_OUT_PIN
6 / 7Motor links IN2/IN1IN2A / IN1A
9 / 10Motor rechts IN1/IN2IN1B / IN2B
8Failsafe-LEDFLED_OUT_PIN

Je hoeft de pinnummers niet te onthouden. Schema en firmware moeten dezelfde afspraak volgen.

KiCad · één kans

Mijn eerste PCB ooit — en die moest in één keer werken.

150kale printplaten geproduceerd
78×56mm
  • Revisies v2 → v3 → v4 vóór productie
  • v2: prototype · v3: voedingsproblemen opgelost · v4: productieversie
  • 🔁 Rondgeven: kale + bestukte PCB
PCB v4 voorkant kaal
v4 voorkant
PCB v4 achterkant kaal
v4 achterkant

Een drukproef vóór de oplage: een fout zit er straks 150× in.

Validatie · automatische controles én menselijke review

  1. Planpincontract in Markdown: welke pin → welk net
  2. DoAI + ik passen schema & layout aan in KiCad
  3. Checkontwerpregels controleren + aansluitingen tegen het pincontract leggen
  4. Actfout? fixen → nieuwe revisie (v2 → v3 → v4)
1 · Koperafstand 2 · Baanbreedte 3 · Niet-verbonden aansluitingen
PCB v4 · illustratie van controles, geen live KiCad-check of maatmeting
$ kicad-cli pcb drc … 0 DRC violations · 0 unconnected pads ERC apart: 3 meldingen toelichten of oplossen
+ menselijk: pincontract controleren, review door Wallie en fysiek testen

25 van de 30 gemonteerde printplaten werken. Wat een opluchting.

Uitval: ESP32-C3 SuperMini met antenne-/WiFi-problemen · montagefouten

Aanbevolen: ESP32-C3 Super Mini Plus V2 met externe antenne — dezelfde footprint, iets duurder.

HARDWARE · 3D-PRINT · 4 MIN

Het chassis

Losse onderdelen zijn nog geen robot. Waar bouwen we ze in?

Even handen omhoog

Wie heeft al eens iets in 3D ontworpen?

Wie kent OpenSCAD?

Wie heeft er al iets mee ontworpen?

Waarom OpenSCAD?

Een 3D-model als tekstbestand — niet klikken, maar programmeren.

Visueel CAD-ontwerp

  • Direct vormen tekenen en bewerken
  • Ook parametrisch en automatiseerbaar
  • Prima gereedschap voor 3D-ontwerp
  • Voor mij: minder directe tekst-diffs

OpenSCAD

  • Git-diffs: zie precies wat er veranderde
  • Parameters: pcb_clear = 0.3; → alles schuift mee
  • Asserts: expliciete maatvoorwaarden controleren
  • AI kan het lezen én schrijven: alle ontwerpen samen ±9.700 regels tekst
$ git diff antweight_chassis.scad - pcb_clear = 0.2; + pcb_clear = 0.3; // print paste te strak

Voor developers: het is gewoon code — dus versiebeheer, review en tests werken ook hier.

Gratis en open source · Windows, macOS en Linux · Download: openscad.org/downloads.html

OpenSCAD · eerst de code

Een 3D-model is de uitvoer van je code.

1. Maten, vormen en uitsnijden
2. Hergebruik, import en controles

Twee klikken. Eerst de bouwstenen, daarna de robotontwerpen.

1. Maten → vormen → uitsnijden

Millimeters · [x, y, z] · translate verplaatst · difference trekt af

2. Hergebruik → import → controle

assert(wand > 0, "wand moet positief zijn"); bewaakt een eis, geen fysieke pasvorm.
use <busjes.scad> laadt modules; import() laadt STL/3MF of DXF/SVG.

Chassis als code · OpenSCAD

Eén project, veel verschillende ontwerpen

Nu de ontwerpen: negen families, versies naast elkaar.

Voorbeeld van het uiteindelijke chassis

Klik om te beginnen →

Zelfde print, ander chassis

Basischassis
v0.2 basis — "hello world"
Chassis v0.4 integrated
v0.4 integrated — geïntegreerde behuizing
Racer nordic
Racer nordic — meerkleurig ontwerp

PCB-contour, gaten, motor- en wielmaten gedeeld → elk chassis past op dezelfde print.

Een standaardmaat zoals LEGO-noppen.

NA DE TECHNIEK

Demo & traject

Zelf sturen — en hoe kwam dit project tot stand?

Nu weet je wat er gebeurt

Wie wil sturen?

Live demo · jij stuurt

WebUI
  1. Kies het WiFi-netwerk van jouw demo-robot
  2. Gebruik het wachtwoord op het kaartje bij de robot
  3. Browser: http://192.168.4.1
  4. Duwgevecht! 🥊

Eén bestuurder per robot. Wissel pas als de robot stilstaat.

Zijpad · het PHP-stuk

roboktober.nl

  • API-first: Laravel API + Filament admin, Vue 3 + Vite
  • Build Hub: onderdelenlijst, 3D-bestanden, firmware en bouwgids
  • De site als distributiekanaal voor een fysiek bouwproject
  • Dezelfde werkwijze: versiebeheer, statische analyse en tests
Deelnemers bouwen hun robots
Van bouwinformatie op de site naar bouwen aan tafel
Website en bouwbestanden op GitHub github.com/Hackerspace-drenthe/www.roboktober.nl
  • 🌐 Laravel + Vue
  • 🔌 KiCad-printplaat
  • 📦 OpenSCAD-chassis
  • 📌 Pincontracten
  • 🗺️ Ontwerpkeuzes
  • 🧾 Onderdelenlijst

Niet alleen het eindresultaat: ook de plannen, de iteraties en de fouten. Fork het, bouw het na, verbeter het.

ESP-NOW-firmware: WallieOnline. De broncode van de WebUI volgt nog.

Van eerste commit tot kickoff · juli–oktober

2 jul
webPlan bevroren + eerste commit Laravel API + Vue
jul–aug
printOntwerpen, reviewen en onderdelen bestellen
eind aug
productiev4 definitief — PCBWay sponsor, 150 stuks
sep–okt
testenFirmware, chassis en testprints
7 okt
kickoffVan voorbereiding naar samen bouwen
14–28 okt
eventBouwavonden, begeleiden en Battle Day

Ongeveer drie maanden voorbereiding tot de kickoff; daarna de bouwavonden en Battle Day.

Hoe: AI-assisted development

Uitgebreid plan
doelen + randvoorwaarden
→
AI voert iteratief uit
→
Testen & valideren
tegen het plan
→
Zelf aanpassen
en verfijnen
↺
  • Eén plan als bron van waarheid (PLAN.md + changelog)
  • Validatie per domein: DRC/ERC · PHPStan + tests · testprints · code review
  • VS Code + GitHub Copilot, met custom instructions

Mijn verantwoordelijkheid

Doelen en grenzen bepalen.
Ontwerpkeuzes maken, uitkomsten controleren en fouten corrigeren.
En het fysieke werk: bestellen, solderen, deelnemers helpen. Wallie bracht robotkennis en review mee.
AI maakt één developer breed inzetbaar — mits je plan en je tests kloppen.

TOT SLOT

Afsluiting

Hoe ging het — en hoe begin je zelf?

Hoe ging het? · Battle Day 28 oktober

30+bezoekers · volle bak
18robots in eerste instantie
12robots in de competitie
Robots op de werkbank
Robots tijdens het bouwtraject
PlaatsRobot
1TurfTyrant
2Princess Peach
3Lief Monster · Disc Spinner v0.5
4angry pumpkin car · Limulus v0.1

Mijn 5 werkende robots uitgeleend aan kinderen zonder werkende robot — zo kon iedereen meedoen.

Van joystick tot wiel — dezelfde softwareprincipes

  1. Open software en standaarden als basis.
  2. Toetsbare eisen als contract.
  3. Code als gereedschap — óók voor hardware.
  4. Tests als bewijs — óók in het echt.

AI helpt bij elke stap. Jij bepaalt, controleert en valideert.

Als je kunt programmeren, kun je ook robots bouwen.
Dezelfde principes. Nu beweegt het.

Je blijft developer — alleen rijdt je bug nu weg.

Hoe begin je morgen?

🧰 Kit

Onderdelenlijst + bouwgids via roboktober.nl

💾 Firmware

WallieOnline op GitHub of de web flasher

🖨️ Chassis

Pas een .scad-bestand aan en print
QR-code naar roboktober.nl
roboktober.nl
Hackerspace Drenthe
Hackerspace Drenthe · kom langs!
PCBWay
PCB's gesponsord door PCBWay

Vragen?

De robots blijven rijden — kom gerust sturen.

Hackerspace Drenthe

Bekijk de presentatie

Nederlands · English · offline downloads

QR-code naar het presentatieoverzicht op roboktober.nl

roboktober.nl/app/presentaties/
php-meetup-groningen-2026-11-05/