A hands-on course in five levels. Students start with safety, electricity and their first program, then build three robots of growing difficulty: a robotic arm, a self-balancing robot and a two-legged walking robot. In the last level they simulate their robot with ROS 2 and give it vision. Students keep the robots they build.
Instructor: Narek Tigranyan, university lecturer in digital manufacturing, robotics and computer science, and Founder/CTO of UZLIN Technologies
Robotics is taught the way engineers learn it: by building. Each level ends with a working robot, and each robot reuses what came before. The arm teaches servos, sensors and wireless control. The balancing robot adds motors, batteries and feedback control. The biped adds mechanics, CAD and kinematics. The final level moves the biped into simulation and adds a camera.
Programming is taught in MicroPython on the Raspberry Pi Pico 2 W, always tied to something that moves, lights up or senses. The final level adds a Raspberry Pi 5 running Linux and ROS 2. No experience is needed to start.
Students keep their robots: each student finishes Level 1 with a robotic arm, Level 2 with a self-balancing robot and Level 3 with a two-legged walking robot. Each level ends with an assessment, and its result decides whether the student continues to the next level.
Computer Science teaches the concepts and the code; Robotics is the hands-on engineering. They share the Pico and reinforce each other: a robot built here can become the Computer Science final project. Each course can also be taken on its own.
| Level | Theme | What students finish with | Length |
|---|---|---|---|
| 0 | Foundations | First MicroPython programs on the Pico | 5 weeks |
| 1 | Robotic arm | A 3D printed arm with manual control, record and replay, sensor-triggered pick-and-place and phone control over Wi-Fi | 10 weeks |
| 2 | Self-balancing robot | A two-wheeled robot that balances, recovers from a push and drives by phone | 10 weeks |
| 3 | Two-legged robot | A biped that walks forward, turns and stays upright | 8 weeks |
| 4 | Simulation, vision and AI | The Level 3 biped modelled in ROS 2 and Gazebo, seeing and moving, with parts tested on the real robot | 7 weeks |
| Strand | From | To |
|---|---|---|
| Electronics | lighting an LED safely | powering motors from a LiPo battery through a driver, with fuses and clean grounding |
| Sensing | reading a button | combining a gyroscope and accelerometer into a reliable tilt angle; finding objects with a camera |
| Control | if/else reactions | PID feedback loops running on a fixed schedule across two processor cores |
| Mechanics | assembling a printed arm | designing legs in CAD and calculating joint angles with kinematics |
| Systems | one board on a desk | a phone-controlled robot and a simulated humanoid connected through ROS 2 |
Every lesson has a basic track (build and code) and an advanced track (more maths, theory and extensions), so beginners and confident students work on the same robot at their own depth. Each lesson is marked by difficulty:
Final robot: First MicroPython programs on the Pico.
Students work safely, understand basic electricity and how a microcontroller works, and run their first MicroPython programs.
| Lesson | Topic | Key ideas | Level |
|---|---|---|---|
| 0.1 | Lab safety | Soldering, hot tools, 3D printer, batteries, moving robots | B |
| 0.2 | Electricity basics | Voltage, current, resistance, power, series and parallel, Ohm’s law | B |
| 0.3 | Tools and schematics | Multimeter, breadboard, reading schematics and datasheets | B |
| 0.4 | Soldering | Technique and safety; soldering headers onto the Pico | B |
| 0.5 | Computer architecture | RP2350 cores, registers, clock, RAM versus flash, pinout | I |
| 0.6 | Binary and numbers | Binary, hex, signed integers, overflow, floating versus fixed point | I |
| 0.7 | Logic gates | AND, OR, NOT, XOR, truth tables, and/or/not in code | I |
| 0.8 | Pico setup | BOOTSEL, UF2, MicroPython, Thonny, REPL, main.py, Git basics | B |
| 0.9 | Pico limits and first programs | 3.3 V pins, current per pin, onboard LED and temperature sensor | B |
| 0.10 | Debugging and testing | Tracebacks, print logging, testing one part at a time | I |
6 beginner, 4 intermediate and 0 advanced lessons.
Final robot: A 3D printed arm with manual control, record and replay, sensor-triggered pick-and-place and phone control over Wi-Fi.
Each pair builds a servo arm with 3 or 4 joints. Status lights show its mode: green for manual, red for recording, blue for replay.
| Lesson | Topic | Key ideas | Level |
|---|---|---|---|
| 1.1 | LEDs | Digital output, polarity, choosing a safe resistor with Ohm’s law | B |
| 1.2 | PWM and RGB LEDs | Duty cycle, fading, colour mixing, tones with a buzzer | B |
| 1.3 | Buttons and switches | Pull-ups, NO/NC contacts, debouncing, edge detection, limit switches | B |
| 1.4 | Analog input | Voltage dividers, potentiometers and light sensors, the ADC, scaling to 0–180° | B |
| 1.5 | Servos and motor power | 50 Hz PWM, pulse width, separate 5 V supply, shared ground, decoupling | B |
| 1.6 | Switching bigger loads | Transistors, MOSFETs, flyback diodes, relays, hardware emergency stop | I |
| 1.7 | Non-blocking code | Time checks, timers, interrupts for buttons | I |
| 1.8 | State machines | One button cycles manual, record and replay, with status lights | I |
| 1.9 | 3D printing | How FDM printing works, PLA versus PETG, slicing, printer safety | B |
| 1.10 | Simple CAD | Tinkercad, or Fusion 360 on the advanced track: designing a sensor mount | B |
| 1.11 | Torque and choosing servos | Levers, torque at each joint, why the shoulder works hardest | I |
| 1.12 | Building the arm | Joints, degrees of freedom, assembling the printed arm | B |
| 1.13 | Record and replay | Movements stored as lists of angles and saved to flash | I |
| 1.14 | Serial communication | UART, baud rate, Pico to laptop, a short overview of network layers | B |
| 1.15 | I2C and the OLED display | Bus addresses and scanning; a screen showing the arm’s mode and angles | I |
| 1.16 | Sensing | Distance, motion (PIR), light and temperature sensors; the laser distance sensor over I2C; watchdog timer; sensor-triggered pick-and-place | I |
| 1.17 | Wi-Fi basics | Station and access point mode, IP addresses, DHCP | I |
| 1.18 | Phone control | A web page with sliders, WebSockets on the advanced track, connection-loss failsafe | A |
| 1.19 | Integration | Finishing builds, fixing wiring, rehearsing the demo | B |
| 1.20 | Final demo | Students present and explain their phone-controlled arm | B |
11 beginner, 8 intermediate and 1 advanced lessons.
Optional extras for the advanced track: Forward kinematics of the arm, MQTT and IoT dashboards, flip-flops.
Final robot: A two-wheeled robot that balances, recovers from a push and drives by phone.
Students move from servos to real motors. The order is power and motors first, then sensing, then timing, then control, so each hard topic builds on the one just before it.
| Lesson | Topic | Key ideas | Level |
|---|---|---|---|
| 2.1 | Batteries and safety | LiPo cells, capacity, C rating, charging, storage and fire safety | B |
| 2.2 | Voltage regulators | Linear versus switching regulators, heat, efficiency | I |
| 2.3 | Power budgets | Current per motor, stall current, wire and fuse sizing | I |
| 2.4 | DC motors | Torque, speed, back EMF, gear motors | B |
| 2.5 | H-bridge drivers | Direction and speed with PWM, the TB6612 driver | I |
| 2.6 | Grounding and noise | Star grounding, motor noise, decoupling, separating logic and motor power | I |
| 2.7 | Bits and registers | Bitwise operations, masking, shifting, memory-mapped I/O | I |
| 2.8 | Encoders | Quadrature encoders, counting pulses, measuring speed | I |
| 2.9 | The motion sensor | Reading the MPU6050’s registers: raw acceleration and rotation | I |
| 2.10 | Filtering sensor data | Noise, moving average, low-pass filter | I |
| 2.11 | Measuring tilt | Accelerometer and gyro angles, the complementary filter | A |
| 2.12 | Multi-threading | Both cores: sensing on one, control on the other; locks and ring buffers | A |
| 2.13 | Real-time computing | Deadlines, latency, jitter, fixed loop rate, race conditions | A |
| 2.14 | Feedback control | Open versus closed loop; P, I and D, first tried on a line-following, obstacle-avoiding robot | A |
| 2.15 | PID tuning | Motor speed control, a tuning method, loop timing | A |
| 2.16 | Wireless driving | UDP for fast commands, Bluetooth phone app or gamepad | I |
| 2.17 | Building the robot | Chassis, mounting the sensor, combining sensor, filter, PID and motors | A |
| 2.18 | Balance tuning | Tuning the balance loop, then the speed loop; recovering from a push | A |
| 2.19 | Live telemetry | A live dashboard of tilt and PID values over WebSockets or MQTT, to tune faster | A |
| 2.20 | Final demo | The robot balances, recovers from a push and drives by phone | B |
3 beginner, 9 intermediate and 8 advanced lessons.
Optional extras for the advanced track: PIO state machines for encoders, the Kalman filter, robot-to-robot messaging, MicroPython versus C, sleep modes and memory management.
Final robot: A biped that walks forward, turns and stays upright.
Students learn how robot bodies move, design and print their own legs, and build a small walking robot. It reuses earlier work: servo skills from Level 1, and the motion sensor, filter and phone control from Level 2.
| Lesson | Topic | Key ideas | Level |
|---|---|---|---|
| 3.1 | Maths refresher | Trigonometry, vectors, angles in radians | B |
| 3.2 | Forces and torque in legs | Torque at hip, knee and ankle; sizing servos for a standing robot | I |
| 3.3 | Centre of mass and stability | The support polygon, why robots tip over | I |
| 3.4 | Gears and actuators | Gear ratios, backlash, linkages; steppers and brushless motors | I |
| 3.5 | Forward kinematics | From joint angles to foot position | I |
| 3.6 | Inverse kinematics | From foot position to joint angles, reachable space | A |
| 3.7 | Matrices and transforms | Rotation matrices, frames, chaining joints | A |
| 3.8 | CAD for robot parts | Fusion 360: parametric design, servo pockets, tolerances | I |
| 3.9 | Designing a leg | Hip, knee and ankle joints; printing and testing | I |
| 3.10 | Buses and smart servos | SPI, comparing protocols, RS-485 and smart servos, CAN bus, DMA | I |
| 3.11 | Static walking | Keeping the centre of mass over the foot, keyframe walking | I |
| 3.12 | Gait generation | Smooth foot paths, interpolation, timing between legs | A |
| 3.13 | Building the biped | Assembling Otto DIY or the students’ own design; wiring, enclosures and reliability | A |
| 3.14 | Balance feedback | Reusing the motion sensor and filter to correct posture while walking | A |
| 3.15 | Turning and control | Turning, phone control, final tuning | A |
| 3.16 | Final demo | The biped walks forward, turns and stays upright | A |
1 beginner, 8 intermediate and 7 advanced lessons.
Optional extras for the advanced track: Designing a simple robot control board in KiCad.
Final robot: The Level 3 biped modelled in ROS 2 and Gazebo, seeing and moving, with parts tested on the real robot.
Students move to Linux and ROS 2, simulate their biped, add vision, and get a first taste of robot learning. Neural networks and reinforcement learning are on the advanced track; the basic track uses that time for colour tracking and polishing the simulation.
| Lesson | Topic | Key ideas | Level |
|---|---|---|---|
| 4.1 | Linux and the Raspberry Pi | Raspberry Pi 5, the terminal, processes and threads | I |
| 4.2 | ROS 2 basics | Nodes, topics, messages, publishers and subscribers | I |
| 4.3 | ROS 2 and microcontrollers | Connecting the Pico to ROS 2 through a serial bridge | A |
| 4.4 | Robot models | URDF: links and joints describing the biped | A |
| 4.5 | Simulation | Gazebo: physics, sensors, testing gaits before the real robot | A |
| 4.6 | Control in simulation | Joint controllers, running the Level 3 gait in Gazebo | A |
| 4.7 | Cameras and images | Pixels, colour spaces, OpenCV basics | I |
| 4.8 | Colour tracking | Thresholding, finding an object’s position in the image | I |
| 4.9 | Neural network detection | A pretrained object detection model; on-device classification on the Pico (TinyML) | A |
| 4.10 | Vision-guided action | The robot turns or reaches towards an object it sees; reactive behaviours and testing autonomy safely | A |
| 4.11 | Robot learning | Rewards and training a walking policy in simulation | A |
| 4.12 | Sim-to-real and ethics | Why simulation differs from reality; robot safety, ethics and the future | I |
| 4.13 | Integration | Connecting vision, simulation and the real robot; rehearsing the demo | A |
| 4.14 | Final demo | The humanoid model sees and moves in Gazebo, with parts tested on the real robot | A |
0 beginner, 5 intermediate and 9 advanced lessons.
Optional extras for the advanced track: mapping simple environments.
Each level ends with an assessment: a working demo of the level’s robot that the student can explain, together with their lab work. The result decides whether the student continues to the next level.
| Component | What it shows | Weight |
|---|---|---|
| Lab work | Lesson-by-lesson building, measuring and coding, recorded in an engineering logbook | 40% |
| Final project | The level’s robot demonstrated live, with an explanation of how it works | 50% |
| Participation | Teamwork, safety habits and helping other students | 10% |
| Used in | Detail |
|---|---|
| All levels | Raspberry Pi Pico 2 W, breadboard, components, MicroPython and Thonny |
| Level 1 | MG90S servos, a 3D printed arm, distance, light, motion and temperature sensors, a buzzer and a small OLED display |
| Level 2 | Gear motors with encoders, TB6612 motor driver, 2S LiPo battery, MPU6050 motion sensor |
| Level 3 | Stronger metal-gear servos, 3D printed legs designed in Fusion 360, or the Otto DIY kit |
| Level 4 | Raspberry Pi 5 with a camera; ROS 2, Gazebo and OpenCV on Ubuntu Linux |
| In the lab | A 3D printer for every robot part, plus an oscilloscope, a spectrum analyser and a network analyser for demonstrations of signals students otherwise can’t see |
The first lesson is about safety, and safety rules return whenever new equipment appears: soldering irons, the 3D printer, LiPo batteries and moving robots. Every robot has a hardware emergency stop and a software failsafe that stops it if the connection is lost. Walking robots are tested on a soft mat with a safety string.