Build a Mini Robot That Makes Chapathis From Start to Finish!
Meet Chapo — a miniature robotic kitchen line! A robot arm places a dough ball, motorized rollers flatten it into a circle, a conveyor carries it to a rotating warming plate, a servo flips it once, and Chapo serves it onto a tiny plate.
🍳 Say hi to Chapo, your robot chapathi maker!
What Is an Automatic Chapathi Maker Robot, Anyway?
This project recreates a real food-production line in miniature! Chapo takes a small dough ball all the way through five automated stages — placing, rolling, conveying, cooking with a flip, and serving — using a robotic arm, motorized rollers, a conveyor belt, and a couple of clever servos, all coordinated by one Arduino.
What You'll Need
Gather these parts before you start building Chapo's kitchen line!
Arduino Uno
The brain that runs all five cooking stages in sequence.
SG90 Servos (Placement Arm)
One for the shoulder swing, one for the gripper.
DC Motor + L298N Driver (Rollers)
Spins a pair of small rollers that flatten the dough ball.
DC Motor + Belt (Conveyor)
Carries the flattened dough over to the warming plate.
Continuous Rotation Servo (Tawa)
Slowly rotates the warming plate for even cooking.
SG90 Servo (Flipper)
Slides under the chapathi and flips it once.
SG90 Servo (Serving Arm)
Pushes the finished chapathi onto a mini plate.
IR Sensors
Detect dough position at the roller exit, tawa arrival, and serving point.
0.96" I2C OLED Display
Shows live status like "Rolling..." and "Chapathi Ready!"
Small Buzzer
Beeps once the chapathi is served.
Low-Power Warming Plate
A safe, low-voltage warm surface — not a real stove (see Safety First below).
Jumper Wires + Breadboard
Connects every motor, servo, and sensor.
The Circuit Diagram
Four servos, two DC motors, three IR sensors, an OLED, and a buzzer — all coordinated by one Arduino Uno.
Step-by-Step Build Instructions
We'll build each stage of the line in order, then connect them all. Work with an adult on the rollers and warming plate!
Build the dough placement arm
Mount the shoulder servo so it can swing between a dough ball holder and the roller entrance, with the gripper servo on its end to pick up and release the dough ball.
Build the flattening rollers
Mount two small rollers close together, geared or belted to spin together from one DC motor, with just enough gap for a dough ball to squeeze through and flatten.
💡 Tip: Test the roller gap with soft play-dough first — too tight and it jams, too loose and it won't flatten!Build the conveyor belt
Attach a small belt loop between two rollers, driven by a DC motor, running from just after the flattening rollers over to the warming plate.
Set up the rotating warming plate
Mount a small round platform on the continuous rotation servo to act as the "tawa," slowly turning so the chapathi warms evenly on each side.
Add the flipper and serving servos
Mount the flipper servo with a thin flat paddle that can slide under the chapathi and flip it, and the serving servo with a small arm that pushes the finished chapathi off onto a mini plate.
Place the IR sensors
Mount one IR sensor at the roller exit, one at the warming plate's arrival point, and one at the serving position, so the Arduino always knows exactly where the dough or chapathi is.
Add the OLED and buzzer
Mount the OLED where it's easy to see the current stage, and place the buzzer nearby to celebrate each finished chapathi.
Wire everything and test
Connect every servo, motor, and sensor exactly as shown in the circuit diagram, upload the code, and place a soft dough ball at the start to watch the whole line run!
The Arduino Code
This code needs the Servo, Wire, and Adafruit_SSD1306 libraries. Copy it into the Arduino IDE and click Upload.
// 🫓🤖 Chapo the Automatic Chapathi Maker — Arduino Robotic Kitchen Project // Runs a full 5-stage line: place, roll, convey, cook + flip, serve #include <Servo.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> Servo armShoulder, armGripper, flipper, servingArm, tawaSpin; Adafruit_SSD1306 display(128, 64, &Wire, -1); // ---- Roller + conveyor motors (full-speed via L298N, no PWM needed) ---- const int rollerIN1 = 7, rollerIN2 = 8; const int convIN1 = 12, convIN2 = 13; // ---- Position sensors ---- const int rollerExitIR = 2; const int tawaArrivalIR = 4; const int servingIR = A0; const int buzzerPin = A1; void setup() { armShoulder.attach(3); armGripper.attach(5); flipper.attach(6); servingArm.attach(9); tawaSpin.attach(10); pinMode(rollerIN1, OUTPUT); pinMode(rollerIN2, OUTPUT); pinMode(convIN1, OUTPUT); pinMode(convIN2, OUTPUT); pinMode(rollerExitIR, INPUT); pinMode(tawaArrivalIR, INPUT); pinMode(servingIR, INPUT); pinMode(buzzerPin, OUTPUT); armShoulder.write(0); armGripper.write(0); flipper.write(0); servingArm.write(0); tawaSpin.write(90); // 90 = stopped, for a continuous rotation servo display.begin(SSD1306_SWITCHCAPVCC, 0x3C); showStatus("Ready to Cook!"); } void loop() { placeDough(); rollDough(); moveToTawa(); cookSide(1); flipChapathi(); cookSide(2); serveChapathi(); delay(2000); // short pause before starting the next chapathi } // Stage 1: robotic arm picks up a dough ball and places it on the rollers void placeDough() { showStatus("Placing Dough..."); armShoulder.write(90); // swing to the dough ball holder delay(500); armGripper.write(45); // close gripper around dough ball delay(400); armShoulder.write(20); // swing over to the roller entrance delay(500); armGripper.write(0); // release the dough ball delay(300); armShoulder.write(0); // return arm to rest } // Stage 2: rollers spin until the flattened dough reaches the exit sensor void rollDough() { showStatus("Rolling..."); digitalWrite(rollerIN1, HIGH); digitalWrite(rollerIN2, LOW); while (digitalRead(rollerExitIR) == LOW) { delay(20); } digitalWrite(rollerIN1, LOW); } // Stage 3: conveyor carries the flattened dough to the tawa void moveToTawa() { showStatus("Moving to Tawa..."); digitalWrite(convIN1, HIGH); digitalWrite(convIN2, LOW); while (digitalRead(tawaArrivalIR) == LOW) { delay(20); } digitalWrite(convIN1, LOW); } // Stage 4a: slowly rotates the tawa to warm one side evenly void cookSide(int side) { showStatus(side == 1 ? "Cooking Side 1..." : "Cooking Side 2..."); tawaSpin.write(120); // gentle rotation delay(4000); tawaSpin.write(90); // stop rotating } // Stage 4b: flipper slides under the chapathi and flips it once void flipChapathi() { showStatus("Flipping..."); flipper.write(90); delay(500); flipper.write(0); delay(300); } // Stage 5: serving arm pushes the finished chapathi onto the plate void serveChapathi() { showStatus("Serving..."); servingArm.write(90); delay(600); servingArm.write(0); tone(buzzerPin, 1500, 400); showStatus("Chapathi Ready!"); } // Updates the OLED with the current stage void showStatus(String msg) { display.clearDisplay(); display.setTextSize(1); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 25); display.println(msg); display.display(); }
How Does Chapo Actually Work?
Here are the big robotics ideas hiding inside this project:
A Robotic Assembly Line
Just like a real factory, Chapo breaks one big task into small, ordered stages — each function in the code (placeDough(), rollDough(), and so on) handles exactly one job.
Sensor-Confirmed Handoffs
Instead of guessing with a timer, each stage waits for its IR sensor to confirm the dough has actually arrived before moving to the next step — much more reliable.
Continuous Rotation Servos
Unlike a normal servo that moves to an angle and stops, a continuous rotation servo spins like a motor — writing 90 stops it, while higher or lower numbers spin it one way or the other.
The Whole Line Repeats
Because all five stages are called one after another inside loop(), Chapo automatically starts on the next chapathi as soon as one is served.
🧑🔬 Safety First!
- Never use a real hot stove, open flame, or high-temperature surface for this project. Use a low-voltage, low-power warming plate instead, and always have an adult supervise and check it before every use.
- Build with an adult, especially when wiring motors and assembling the rollers and conveyor.
- Use only soft play-dough or craft dough for testing — this is a mechanical demo, not a certified food-safe cooking appliance.
- Keep fingers clear of the rollers, conveyor belt, and servos while powered on.
- Never leave any warming element running unattended, even a low-power one.
Frequently Asked Questions
Can this actually cook real chapathis?
This project is designed as a safe mechanical demo using a low-power warming plate, not a real stove. For actual cooking, adult-only appliances with proper safety certification should always be used instead.
Why does the code use while loops instead of just a fixed delay?
A while (digitalRead(sensorPin) == LOW) loop keeps the robot waiting exactly until the sensor confirms the dough has arrived, rather than guessing a fixed time that might be too short or too long.
How do I adjust how long each side cooks?
Change the delay(4000) value inside cookSide() — a bigger number keeps the tawa rotating (and "cooking") for longer.
What age group is this project good for?
Because it combines multiple motors, servos, and sensors into one coordinated sequence, this project is best suited for kids around age 12+ working closely with an adult.

Comments
Post a Comment