Your browser doesn't support Web Bluetooth.
Maqueen Lab needs Chrome, Edge, or Opera on desktop / Android.
It will not connect to a micro:bit on Safari, Firefox, iPhone, or iPad.
👆 Click on the map to place waypoints. Commands auto-generate below.
— tap the map —
⚠ Estimate only — no encoders. Drift grows with battery droop & wheel slip; that's the lesson.
MINI-GAMES
RED
0
vs
BLUE
0
📏Math the Distance— predict how far the robot will rollbest:—
…
🧪 How does this work? (show the physics)
The Maqueen uses differential drive — two wheels, no steering. The robot turns by spinning the two wheels at different speeds.
Both wheels +200 → forward
Both wheels −200 → backward
L−150 / R+150 → spin left
L+150 / R−150 → spin right
Every move you make becomes a tiny text message over Bluetooth:
#42 M:200,200
#42 = sequence number (so we know which reply matches) ·
M: = "set Motors" ·
200,200 = left, right (range −255..+255) ·
The robot sends back ECHO:42 M:200,200 to confirm it heard you.
🦾 Servos
(generic)SRV:i,a
90°
mode
controls
S190°
90°
mode
controls
S290°
▶ Sweep speedslowfast2.0 s/cycle
↔ Sweep range
⚙ fine-tune (0°–180°)
from0°
to180°
📟 view PWM signal · 1.50 ms HIGH every 20 ms
📟 PWM signal · pulse width sets the angle1.50 ms HIGH every 20 ms
0 ms━ signal · ┄ pulse width · period repeats every 20 ms60 ms (50 Hz × 3)
🧱 Code that runs on the micro:bit— move slider to send —
maqueen.servoRun(maqueen.Servos.S1, 90)
🧮PWM Lab— hit the target servo anglebest:—
target:
—°
90°
Tip: the closer your guess to the target, the higher your score. Connected? S1 actually moves to your guess.
💡 Simple LEDs
LED:i,s
LEFT · OFF
RIGHT · OFF
last sent: —
📟 GPIO digital output3.3 V CMOS
3.3V
0V
L (P8)
R (P12)
💎 NeoPixels × 4
RGB:i,r,g,b
0
1
2
3
🎼 WS2812 bit timing · self-clocked single-wire serial~800 kHz
━ bit cellsG:00 R:00 B:00
⚠️ Standard neopixel conflicts with bluetooth on micro:bit.
The pearls above show your intent — actual on-bot lighting requires a BLE-safe NeoPixel fork.
🌈Simon Says— remember and repeat the color sequenceround:—best:—
🔊 Buzzer
BUZZ:f,ms
440 Hz200 ms
FreqHz
Durms
🎵Buzz the Tune— tap the keys, robot plays the song
📡Morse Decoder— listen and type what you hearbest:—
W A S DDrive forward / left / back / rightSpaceStop motorsEscEmergency STOP (works from anywhere)TabSwitch sub-tab (Drive → Servos → …)
🔧 Quick troubleshooting
Won't connect?Use Chrome or Edge (Web Bluetooth required). Make sure the robot is on and not paired with another tab.
Servo jittery?Open Settings → Sweep Engine → set to Firmware (needs firmware v0.1.55+).
NeoPixels don't light?WS2812B + Bluetooth is a hardware-level conflict on micro:bit. The on-screen pearls show your intent; hardware output isn't supported.
Path map drifts?Normal — wheel odometry alone has no correction. Flash the bare-metal firmware for compass-corrected SLAM.
4🤖 Tap the robot icon up top to meet your robot's parts
📱
Open on your phone
https://abourdim.github.io/maqueen-lab/
Scan with your phone camera — Chrome / Edge required for BLE.
📡 — cm
👀 line: —
🧭 —°
crosshair = robot's heading · ring = sonar reading
🍩
Session Recap
…
🤝
Pair two robots
Two Maqueens, two browser tabs. Your drive commands mirror to the other tab over WebRTC — no server needed. Manual handshake: Tab A creates an offer, Tab B pastes it & answers, Tab A pastes the answer.