Michael, Imtiaz, and Jason are all in different fields of engineering; Aerospace, Computer Science, and Mechanical respectively. All of which wanted to do something that was pointed towards their strengths. Jason is also pursuing a computer science minor and was willing to help out with the programming. After going through many ideas, we settled on a CNC plotter because Michael had worked with plotters before but always used an external software to do so. We took up the challenge to create our own CNC Plotter and accompanying software that would be able to take an image and plot it.

What it does

Firstly, HTML5 with java Script acts like the GUI of our system. It receives an image file which is saved in a directory for a python executable file to read. This python program takes the JPG or PNG file and depending on the type of file, it does the precessing. For the the JPG images, the files is divided into the three RGB channels and then standarises it into gray scale by turning it into a BMP, lastly, Potrace, an open source script translates the BMP into SVG. If the image is a PNG, then the Python program takes the alpha channel of the image and converts it into BMP via the PIL library. This BMP then is converted to SVG by Potrace. After this, a Java Code takes the SVG file and find the outlines to create code and send the various list of points to an arduino interpreting the Gcode to movement.

How we built it

HTML5, JavaScript, Python, Processing, Arduino, and various hardware skills

Challenges we ran into

Due to the dynamic nature of PHP, a server could not be setup to find and sort images submitted by the user online. Additionally, each member was experienced in a different computer language, henceforth, combining all the codes was very challenging.

Accomplishments that we're proud of

Getting the HTML5 website to run a Pewdie

What we learned

What's next for CNC_Plotter

In the future we would like to integrate the plotter onto an online server for remote controlling, and to streamline the image processing.

Share this project: