Autonomous Robot Part 3 – Drawing Bot

Group Members: Aditi Sarkar, Alice Borie, Claire Hentschker

Designer: Aditi Sarkar, Claire Hentschker, and Alice Borie as Integrators, Designers, Tutors, and Scribes


We wanted to create an autonomous drawing robot that altered its drawing in response to lines it had already created. To do so, we created a box on wheels with an arm that made marks on the table with a dry erase marker. There was a sensor at the tip of the marker, and when it sensed a line had been made in that area, it reversed its own direction temporarily in order to change the pattern being drawn.


Technical Notes

Technical details: We used one gearhead motor, used with the DRV8833 motor driver on the arduino’s pwm pins to control direction. We also used the QTR-1RC reflectance sensor to check whether the bot passes over a place it has already drawn. The arduino code can be found here:

Fabrication details: We used Rhino to model the box and the arm. We used colorful acrylic, which gave it a toy like appearance and used zip ties to hold the motor to the box. We used shaft collars on the hinge of the arm and screwed the arm onto the motor.

First iteration: We didn’t have the sensor working/connected to anything – for our first demo, we just had a back and forth motion with the motor for testing puerposes to see how the robot would handle the moving arm. We ended up liking the spirograph like patterns it created and decided to keep it for the second iteration. One of the big problems with the first iteration was our inability to test it without taking it apart, so we made some changes to make testing easier for the second iteration.

Second iteration: We attached the sensor, added an on/off switch, and a hole for the mini usb to plug into the arduino. During the actual demo, we had battery issues that made the robot pause and start in unpredictable intervals. We liked this behavior and the child-like behavior of the robot, and will work it into the final iteration.

Third iteration: We fixed our battery issue and refined the code for cleaner responses.

Schematic and Code



db3 db2db5DB4