Draw Your Self in a Movie Poster Robot

Our group has had an incredible journey piecing together our robot together over the last 6 weeks. After building the CNC machine from scratch, we had to develop an idea that changed the nature of the CNC and used it in a completely new way than what was intended by it’s creators.
Concept: Create a robot that take a picture of the user, and then draw that user’s face as a character on a movie poster.

Our team had various design challenges we had to overcome. Some of the considerations we had to think about included:

  • Designing a method by which to hold a writing utensil. This is important as we needed the unit to flex just enough to provide a natural artistic stroke to the robotic gantry.
  • Designing the CNC bed to provide ample support, pressure and texture to the pen from above.
  • Determining the proper writing utensil
  • Converting an image from it’s original format to SVG, making it Black and White, then editing it so that the image is only composed of outlines.
  • Making sure the camera recognizes the user’s face
  • Determining where to place the cropped and converted image of a user’s face into the appropriate area on the movie poster

Method to Hold the Pen

We experimented with various types of ways to hold the pen using the original router holder. We ended up designing our own plate and 3D printing our pen holders for maximum flexibility and precision.

Designing the CNC Bed

We wanted to provide the proper surface for the pen to write on the bed. We created a bed out of acrylic, to make sure that the holes were covered. We then placed a thin sheet of foam and thicker poster paper on top to provide a firm, cushy and smooth surface to put paper on so the pen would easily glide while drawing.


Deciding the Proper Writing Utensil

We tested with various types of pens and markers. The way our machine is set up, it made the marker lines way too thick, so we opted to go with a ball-point pen, as it easily glides along the paper.



Computer Vision, Image Conversion and Process Flow

Our process flow is the following:


Select movie poster. Title it ‘poster.jpg’

Take image of user


Python script detects the user face on the movie posters

Select the face you want to swap with and swap faces


Convert File to Black and White & SVG


1) Refine and stabilize the pen plotter so that the pen is more secure

2) Draw a complex image and figure out file convesions from PNG to SVG

3) Experiment with various pens/markers
One thing we were impressed by was the level of precisions of the pen. Below you can see how precise fhe pen is.

We were impressed by the level of precision by the pen. If you can see below, the lines are incredily close together. We chose the dog image for it’s relative simplicity and then the following image of the girl to see if we could draw something thatbhad a few layers in the outline. The girl image took roughly 15-20 minutes to complete, so we can expect the movie poster to take that long.

We need to figure out if we can use the Gcode to speed upthe drawing process.


We got our robot drawing! We had to mess around with the wiring a bit, but we now have the robot drawing.

​​The Pen Plotter

We 3D printed the pen holder with 2 holes for the screw mounts.

As we tested this layout, it was way to flimsy. It kept turning and becoming misaligned.

We then decided to create a backplate to prevent the twisiting and turned due to the ACME screw. This is to make sure the pen is stable enough for drawing.

We took the measurements from the steel plate and laser cut a new one with various holes for adjustment purposes. This set up works ideally for what we want to do.


We also lser cut a board that matched up with the screw holes on the base. This was to make sure that the surface was completely flat for drawing. 4 out of 6 of our holes were off, but that does not affect the positioning of the base plate as it’s held in place pretty firmly.


Some of the successful attempts from our Robot as well as some attempts to transfer a self portrait into a movie poster and then into an Svg file for the CNC machine to draw:

Solar Energy Project

For our solar energy project (teamed up with Jesal) we chose to work on a solar powered watering plant system. The idea is to have two sensors plugged into the soil to keep track of how often the plant needs watering based on the parameters we are going to agree on. Once the plant needs watering, a water pump will then be triggered and the water could transfer to allow irrigation.

We firstly tried to allocate all the resources that we are going to need for the project as listed below:

Materials Needed

  • An enclosure (1)
  • PC Board (1)
  • 5VDC SPDT micro relay (1) **
  • Solar Panel (1)
  • Lithium-Ion Battery (1)
  • Toggle switch (1)
  • 10K resistor (1)
  • Size M coaxial DC power plug
  • Red and black 22AWG wire
  • 12AWG black wire
  • Electric water pump (1)
  • Water storage container w/ lid (1)
  • 8-32 x 2.5″ nuts and bolts (2)
  • 4-40 x 1″ nuts and bolts (8)
  • 4-40 x 3/8″ nut and bolt (1)
  • 1/4″ spacers (4)
  • Wire nut (1)
  • 3′ – 5′ plastic tubing (2)
  • #8 Terminal Ring (1)
  • House plant to water (1)


Making Our Own Water Pump

We then went on trying to make our own water pump. We had to improvise and so we found a canister for pills which could store the 3.7V motor inside as well as the 3D printed water turbine. Then we laser-cut an enclosing for the top part of the motor which will then be sealed with glue so that no water can intrude the wiring.

We tested the motor with a minimum voltage of 2.3 to see how well it can spin and the results where more than satisfying.


This did not work as the enclosure did not provide enough suction for the water to be drawn in from our reservoir. We then bought a small water pump from Tinkersphere.



We used a 3.7V 650mAh battery that was able to produce the power we needed to power the water pump long enough for the water to be drawn into the plant’s soil.




This is the code we used for the Arduino. It was inspired by Randolfo’s version of the code.


// Analog input pin that the soil moisture sensor is attached to
const int analogInPin = A1;

// value read from the soil moisture sensor
int sensorValue = 0;

// if the readings from the soil sensor drop below this number, then turn on the pump
int dryValue = 700

void setup() {

pinMode(12, OUTPUT);

// initialize serial communications at 9600 bps:

void loop() {
// read the analog in value:
sensorValue = analogRead(analogInPin);

//Turns on the water pump if the soil is too dry
//Increasing the delay will increase the amount of water pumped
if(sensorValue < dryValue){
digitalWrite(12, HIGH);
digitalWrite(12, LOW);

// print the sensor to the serial monitor:
Serial.print(“sensor = ” );

//slow your roll – I mean… slow down the code a little

Finally, being able to make the pump work with the sensor and code all together we were able to demonstrate how the system worked on an actual plant as seen below:


kinetic Energy Project

For our kinetic energy project (teamed up with Dorothy), we chose to make a faucet enabled water turbine, that when successfully operated from the force of the water, could generate enough power through a 3.7 V motor attached, to light a whole strip of LEDs.

Below is some of the documentation regarding experimentation, prototyping and finally execution (at least tried to):

We made some readings to determine the voltage that the motor could generate and if it was sustainable for the overall of the project:





Once the design was finished and we knew how we wanted to proceed with the actual fabrication, we 3D printed a water turbine and laser-cut some acrylic enclosures. We then fitted the gears and the motor (taken from an old VHS player).





Figuring out how to make gears and have them move objects can be fascinating. Below is a first rough sketch of what I’m trying to experiment with, in order to come to a point where gears will be able to move objects in a forward motion:

The first stage of the project will consist of the proper fabrication of gears. I’m envisioning having gears made out of wood. The diameter would vary from gear to gear but the ratio of teeth to diameter will stay the same throughout. Furthermore, some testing will begin for to see if the gears can produce efficient power and smoothness in relevance to each other. For each successful gear configuration, I will make the correspondent holes to the sides of the enclosure (Gears will be inside a acrylic box).

The second stage will consist of the actual pieces that are going to be mounted on to the gears and moved along in a forward motion. I will have to make sure that each gear would have a different effect on each of the pieces, meaning some should move slower and some faster.

After some testing to see how the rods will stick out of the box:


The end result looks like this:

Non-Rectangular Box

Our point of view in creating a non-rectangular box was to go with the idea of a round-like box.

We started with some very rough sketches of what our idea should look like:

We thought of having half-pie pieces with numerous slots on them in order to be able to slide in the disks that were going to be holding the main structure. These disks would have a hole in the center for the “vase” to serve as a holding compartment.

Moving on we did some experimentation with some cardboard to understand if the logic behind was going to serve our purpose:

Convinced that the design can be executed we went on to design the actual pieces onto illustrator. We again experimented with cardboard, but this time we had the laser cutter do the job for us:

And getting to the end of it, since the pieces proved to be really accurate and applicable for assembly we put our piece of wood into the laser cutter again for curving. We assembled all the pieces together using hot glue.


The end result looks like this:


Verb — Drinkbot

A machine that will be able to produce your desired cocktail or drink based on predetermined options to choose from.

The machine will be operating on a traditional X,Y,Z gantry. It will have two components mounted on the railings:

1. Circular Rotational Plate: It can hold up to 7 bottles. Bottles will be filled with your desire drink and mixer first. Refill when needed. Once the desired drink is chosen, the machine will start pouring the necessary portions. Also attached to the plate will be a mixing “spoon”. Once all the pouring has been done the machine will stir the drink.

2. Ice Bucket: It will be fixed on the right side of the machine’s top railings, making sure the glass gets the appropriate amount of ice based on the selection of either a short glass or tall glass. It will be designed with a slight downwards angle so for the ice to be always reaching the output hole.

3. Glass Holder: It can hold up to 4 glasses per use. Glasses once placed on the holder will trigger a sensor which will determine the position of each glass so the pouring can be done correctly.

4. Controller: It will give you the following options to chose from: Cocktail list, make your own drink (based on the drinks and mixers filled in), random cocktail.



I feel more confident in the following areas:  Concept generation, fabrication and not so confident on: Programming, Electronics


How the interface will look like:


keypad numbers will correspond to Computer Letter on Keyboard.  Each Number will trigger a different function and create a sketch.

Potentiometer will correspond to the slider used in the sketch.
The slider controls the rate of the pixels coming from the camera.

Mouse will be used in combination with the keypad functions to further   create more illusions.

Some output that was created using all of the above features:









Final Project ICM

For my final project in ICM I chose to make a “dream machine”. Since a very early age I can remember myself having dreams, dreams that sometimes translated literally and other times metaphorically. It feels like having a second life somewhere further away where magic can occur at any given time.

For that reason I want to try and build a program where the user can interact with different options either through: creating objects, shapes, changing colors,  input sound or create their own sound, use video and finally play with different variations of text.
At the end of the interaction the user should have created a “dream” based on his preferences at the time. My intention will be for the user to feel like they are experiencing a live dream in a way. The “dream” should be at all times “moving” and not being a static one.  Lastly, the user can choose to save the document and/or email it to whoever they feel like, or even use the created “dream” and have it sent for VR viewing.

Some thoughts on the interaction menu:

  • Buttons and sliders for object/shape/size/color
  • Predetermined sounds choosing
  • Record Sound / Play your own
  • Record Video
  • Reset option
  • Save / Email option


Final Project PComp

After several weeks of learning and experimenting with physical computing, the time has come to put all our knowledge towards our final project. There are many ideas and paths that I would love to follow but will limit myself to just a few.

Dream making machine:
– The purpose of this machine is to be able to make you experiment with art, music, and literature and combine all of the three in order to get some kind of result.

Robot interaction:
– A robot that will be able to follow instructions via a specially modified controller. Its main attributes aside from moving in all directions will be to interact and perform some simple tasks when asked to.



Following our last class, we had the opportunity to present our ideas in front of our classmates and get some feedback on how to proceed with our project and what problems might occur.

I will be continuing my final project with the ‘Dream Machine’ idea. Below are some sketches that depict a first look as to how my machine will look like and interact. Also there is sketch that will be used for play testing based on a cardboard.



Continuing into the more technical part of the project as well as the outline of what the machine will offer, a system diagram, a timeline and bills of materials diagram has been made.


img_4056 img_4057

In order to figure out which sensors to use for combining music and sketching, some early testing needed to be done as seen below:

Photoresistor Light Sensor

Short Flex Sensor

Furthermore, some more progress on the P5.Js sketch which will be incorporated into the whole interactive experience:


Getting close to the delivery of the final project, it is vital to make sure which functions are going to stand out and what role each function will serve as. It was decided after some testing that using a keypad is a more convenient approach and has more potential than just using buttons or other sensors. With the help of the mouse and possibly a potentiometer the dream machine will be complete at this stage.