Champaign-Urbana Community Fab Lab
Illinois Informatics and School of Information Sciences
Champaign-Urbana Community Fab Lab

Author Archive

Final Project: Sonar

Final Project

For the final project, I decided to use an arduino and the HC-SR04 ultrasonic sensor. Although the sensor was quite basic, I have not used it before, so I decided to use it for the final project. Another reason I used the ultrasonic sensor is because I wanted to create a sonar system with the arduino, as the sonar does use ultrasonic sounds and sensors. I also decided to create the very familiar sonar visuals we see in movies and tv shows. As I am not really well versed in making visualizations, I thought this would be a nice challenge for me.


Process and Finished Product



The first compromise that I knew that I had to make was to make the sonar a semicircle instead of a full circle, due to the limitation of the servo motor. I also initially tried using d3.js, a visualization engine for javascript. I chose this as it was my TA Dot’s suggestion, and also because I thought that I could use the d3.js skills that I would gain from this project, and apply it to a different project that I was working on at the time. Unfortunately, connecting the arduino to d3.js proved to be very challenging, and after a bit of searching on the internet, I decided to use Processing instead, as getting data from the arduino was more straightforward.


My first learning goal was to learn how to use the HC-SR04 ultrasonic sensor. Although it is included in the basic arduino kit in class, I have never thought of using it, and had never felt the need to use it. Using the sensor proved to be fairly straightforward, but synchronising the ultrasonic sensor to the servo movement was a bit challenging. Due to the nature of how the HC-SR04 sensor worked, the time it took to take a measurement varied based on how far the object was from the sensor. Eventually, I discovered a library called NewPing, which allowed me set the maximum distance to scan for, and maintain the same scanning time for each scan.


My second learning goal was to challenge myself to create visualizations for data. I have never been a very artistic person, and creating any kind of visuals, whether it be drawings, or UI design, was very difficult for me. However, as I had something to base my design on, I thought that creating the sonar visualization would not be too bad. Furthermore, when creating the visualization, I worked up from tools that I was familiar with. Once I had a rough design and sketch based on what I could find on the internet, I first started with creating a svg file for the acrylic print. As I did not have to worry about colors, I could just focus on the layout of the visualization, and I think it really helped me to get a solid layout that I could utilize in the graphical visualization. Then I moved onto creating the actual screen visualization. My initial attempts with d3.js did not work out, as getting the data proved to be a problem. So, I quickly switched over to Processing. Although I did not know any Processing, I was able to get a basic grasp fairly quickly, and create the visuals. As I already had a layout for the visualization, all I had to do was copy over the design, make color changes, then add dynamic visualization elements, that would interact with the data from the Arduino.


As a whole, I am quite satisfied with the project. I was able to achieve my main goals, which were to learn how to use the HC-SR04 ultrasonic sensor, and to create a sonar visualization that would show what the sensor was reading. I was also able to create a physical representation of the sonar visualization, so that any object that was placed on the physical representation could show up in the Processing visualization. Although my final project does not really have a practical use, I am really happy about the way it turned out, especially the visualization.


Looking back at this class, I realize that I’ve become to embrace failure and learn from it. I’ve been the model student in most of my classes all the way up to highschool, and even at the University of Illinois, I have never really struggled with academia. That being the case, failure wasn’t really something that I experienced often, or even at all. Throughout this class, however, I was exposed to numerous failures, which was not something that I was used to. For example, during the 3D printing section, I had to reprint, and improve my 3D model, either because the print did not work out well, or because the print did not fit the raspberry pi that I had. Even in the end, I had to file the finished casing, so that it would fit my raspberry pi. Another example is the locomoting pom pom bots. In this assignment, I had to do a complete redesign of the bot, as what I thought would work, ended up not working at all. Even with the new design, I still had to make improvements so that it would actually work.


One thing that I was surprised about was how much I enjoyed sewing. I have never used a sewing machine until this class, and honestly, I was not too excited for sewing. However, I ended up really enjoying sewing, and the assignment on sewing took the most time out of all assignments, simply because I enjoyed it. Sadly, the finished project wasn’t perfect, but I was still proud of myself for being able to learn a completely new skill, and being able to apply it in a functional product.


This class showed me that with the right tools, and within a reasonable range, I could make anything I wanted. I also learned a lot of tools and software skills to aid me, and that I could usually find them at makerspaces. Furthermore, I learned that when I don’t know how to use a certain tool, people at the makerspaces were very willing to help out. I also think the hands-on learning fits the class very well, as we all had to use what we learned in the class, to make our projects.


I had no idea what a maker was, but this class gave me a good definition on what being a maker is like. I don’t think I’d be able to give a concise definition of the word “maker”, but throughout this class, I have experienced to a full extent, what being a maker is all about. Being a maker is doing a lot of hands-on work, creating prototypes and projects that I can think of. Although something might not work out, makers try and try again until it turns out better. Even when you achieve what you set out to be, you then soon think of ways to improve your project. Most importantly, you get to have fun while doing it.

Continue Reading

Iteration: Nametag

For this week’s assignment, we had to re-do a previous assignment, using different tools and materials. 

I decided to re-do my name tag, as an infinity mirror. I decided to use led strips, laser cut wood for the sides, mirrored acrylic for the back, and clear acrylic for the front, with mylar film.


Making the Side Panels

For the sides, I had to measure the led strips so that I could have holes in the side panels to have the led go through. Then, I used the epilog laser to print out the sides. When the sides were done, I had to glue them together with wood glue. Holding it clamped proved to be a bit of a challenge, as the sides couldn’t really support the strength of the clamps by itself. I had to cut out some popsicle sticks, and clamp it together to provide support to the sides


Soldering Led Strips

The led strips had to go outside the side panels, which meant I had to cut a strip for each of the four sides, then solder them together. This proved to be the most difficult part of this project, as soldering tiny wires onto the led strips were very challenging. Cutting out small wires were not easy either. After a while, however, I was able to solder all four strips together, and have them working. I used code from a website that provided instructions on how to program led strips.


Front and Back Panels

The front and back panels were fairly straightforward, as they just had to be large enough to cover the sides, and the led strips. The front side was clear acrylic, with my name etched on the front, and the back side was just mirrored acrylic.


Assembling All Parts Together

As I had all of the parts to my project ready, I assembled them together. First, I had to tape the led strips to the side panels, then I applied mylar film to the front panel, so it would be reflective enough to create the infinite mirror illusion. Then, I clamped all three of them together, and applied tape around the edges to hold them all together


Finished Product & Reflection

The new name tag worked very well, and I am very pleased with how it turned out. It required a lot of time to make, and I think it paid off really well.

I had a lot of help from Dot, who helped me get my hands on mylar film, and also Jess, who generously allowed me to use some of her own supplies.

I think that I could have made a better frame, sot hat the assembly was easier and so that it would be easier to take apart, in case I wanted to use a different label for the front panel.

Continue Reading

Locomoting Pom-Pom bots

Locomoting Pom Pom Bots

We continued on working with Arduinos, and the goal for this week was to make a pom-pom bot that moves from point A to point B.


Initial Design: Inchworm

In lab, I made an inchworm that moved like an inchworm, but didn’t traverse across a surface. So, I thought I could expand on the design, and make an actual inchworm robot. I planned to have a sticky end (dried hot glue) that would cling onto the surface so that each time the bot contracted, the non-sticky part would follow. I created the initial prototype, which did not work very well, and was flimsy. I thought that the sticky part was not heavy enough, so for the second prototype, I added additional weights to the sticky end. Sadly, that did not work out well either. Therefore, I decided to change the design altogether


New Design: Skiing

The new design I chose mimicked a cross-country skier. It would stand on two flat boards, and move by pushing itself forward. I planned to make one side of the stick have more friction than the other side, thinking that pushing on the side with less friction would not move the bot as far. The first design worked quite well, but it could only move back and forth, as pushing on the side with more friction had the same effect as pushing on the side with less friction.

I updated the skier to lift up the poles when moving the poles back to the starting point. It required adding two more servo motors to the bot, and hooking up together so that they did not interfere with each other. Also, I gave the bot a wider base so that it was more stable. Thankfully, the new designed worked very well, and the bot was able to move about.

I changed the poles to resemble a person holding a ski pole, and decorated the pom pom bot.



I think the final product worked very well, but I’m a little bit disappointed that my initial idea did not work quite well.

Continue Reading

Intro to Arduino

Intro to Arduino

This week, we learned to use an Arduino. As a computer science major, I was pretty comfortable with coding, but was fairly new to using electric components. Thankfully, the course was quite clear on what I had to do, so I did not have much trouble with using the Arduino.

Blinking LED Lights

The first thing I did was connect an LED to the Arduino. There were multiple pins on the board, and I could control each of the pins by interacting with the numbers in the code. The + side of the LEDs would go into the numbered pins, and the – side of the LEDs would go to a ground pin. Once I was able to turn the LED on and off, I then moved on to making it blink in morse code, which was pretty straightforward.


Touch Sensor

The next thing I did was make a touch sensor that controls the LED. I added a very simple addition to the blinking LED I had. It was just a resistor and an alligator clip. With just the two additional components, I was able to make a touch sensor. When I touched the alligator clip, the light would turn off, and when I didn’t touch the clip, the light would turn on.


Custom Arduino Device

For the custom Arduino device, I decided to use a joystick and an RGB LED. The idea is to be able to individually control the RGB components using the joystick. Moving left and right cycles through the RGBs, and moving up and down controls the light intensity of the selected color. Pressing the joystick would set the LED to a random color. There were plenty of online resources that I could use, so figuring out which pin on the LED and joystick went to which pins on the board wasn’t difficult at all. 

My purpose of the device was to prototype something similar to the Scribble Pen. The Scribble Pen is a pen with an RGB sensor, that can copy any color and use the color to write or draw with. While the concept is very interesting, I could not find any information on whether it was possible to modify the scanned color to the user’s liking. Not being able to change the color of your pen unless there is an object nearby with the exact same color you want, would be very frustrating. So, this joystick add on would enable the user to make slight modifications to an already scanned color, or come up with a new color that hasn’t been scanned by the pen.




I was able to make the custom device as I wanted, except for setting the LED to a random color. For some reason, the joystick was constantly saying that the button was pressed, even when nothing was touching it. I planned to try it with another joystick, but unfortunately, all the joysticks were rented out by the time I had a chance to visit the lab again. However, apart from that, I would say that my project was quite successful.


Scribble Pen: (probably not a real product)

Continue Reading

Making a Ukulele Case

Fabric and Embroidery

For the past few weeks, we were introduced to sewing and embroidery. For the first week’s lab, we made a simple pouch that closed with a ribbon. Although it was my first time using a sewing machine, the instructions were simple enough for me to follow. For the second week’s lab, we learned how to use the embroidery machine to make custom made embroidery.

Making a Ukulele Case

For the assignment, I decided to make a Ukulele case, as I own a ukulele, but didn’t have a case to carry it around in. I started by choosing and creating the svg file that would be used in the embroidery machine. I originally planned to modify an image from the internet, but it was extremely tedious to get the bitmap tracing correctly. Therefore, I ended up making one on my own, with the image as reference. 


The next step was to trace out the Ukulele, and cut out the fabric. For the fabric, I used three pieces each for the top and bottom, and two pieces for the sides. On one side, I also included a zipper. the The top and bottom pieces had a inner fabric, a padding layer, and the outer fabric. The padding layer was cut a bit smaller, in order to making sewing easy. The side pieces only had inner and outer fabric. Once the pieces were cut out, I embroidered the outer layer of top  piece, then sewed the top and bottom pieces. Then, I cut a part of the side piece in half, and sewed on zippers. Like the top and bottom pieces, the zipper side had a inner fabric, the zipper, and the outer fabric. Then, I attached the rest of the side piece, without the zipper, to the zipper portion. Then, I started sewing the side piece to the top piece. As the top piece was curved, while the side piece was straight, it was fairly difficult to sew the two pieces together. Once the top piece and the side piece were sewed on, I then sewed on the bottom piece to the other side of the side piece. 


I feel like my project may have been perhaps too ambitious. Sewing a curved surface onto a straight surface was extremely challenging. Furthermore, I believe the traced outline of my Ukulele was not symmetrical, as my final product ended up being skewed. I feel like I could have avoided the skewing if I had used a ukulele diagram from the internet instead. I also think that the side pieces weren’t perfectly straight. I could have made a straighter piece by sewing several shorter pieces together, or cutting the fabric using a knife and ruler instead of a scissor.


Continue Reading

3D Printing a Pi Zero Case

3D Printing

We learned about 3D printing for two weeks, and using various software, and scanners that could be used to create printable 3D designs

Part 1

First, we learned about Tinkercad, which is a very simple 3D modeling software. A huge benefit to Tinkercad is the fact that it’s accessible online, and even works in mobile devices. We created aliens and castles as an introduction to Tinkercad. Thanks to some preexisting models, they were not difficult to create. The next step was downloading the models as stl files, and playing around with them in Meshmixer. With Meshmixer, it was possible to smooth any quirks in the model that would make it hard to print.

Part 2

In the second week, we learned about 3D scanning. We used the Structure Sensor on iPads to scan some objects, but sadly, the scanned model did not come through by email. We also used the kinect scanner to scan people, and it worked quite well. The model created from the kinect was also unsuitable for printing, so we learned how to use meshmixer to make it better for 3D printers.


I choose to design a themed utensils for my enemies, and a traditional art, and print out a case for my raspberry pi zero.

The theme for my utensils was the fact that they all had ridiculously round bottoms, so you could never put them down at all. It was quite simple to make with Tinkercad

The traditional art I chose was actually an instrument from Korea. I am in a student organization that gives performances using the instrument, and I thought making a 3D model would be interesting, and challenging, as the shape was quite complex. I was not able to get anything scanned into the model, however, as SketchUp was not friendly with importing stl files. However, I did create everything from scratch, and getting all the straps was quite a challenge. The changes I made were the engravings on the leather straps holders, and adding the university logo to the drum faces. 

The part that I actually 3D printed was a case for my raspberry pi zero. I already did have a case for it, but it left the soldering pin holes exposed. As I felt that I would not be soldering anything on my pi zero for some time, I  decided to make a new case that would cover the holes. I used SketchUp, as I had previous experience with the software. I used my old case as reference, and a diagram detailing the dimensions of the pi zero that I found online. 

Once the design was done, I tried to get it printed using the abs print at the fab lab. Sadly, it did not work out great. So, I used the PLA printer instead, which didn’t work out too great either. It did print, but the 4 holes in the corners were too small. I printed another set at the business maker lab, which turned out nicely. It’s holes were also slightly small, but I could make the hole bigger using a file.

Continue Reading

Copper Tape Origami Pikachu

For this week, I created three different simple circuits using copper tape and different LEDs.

I started with a basic copper tape circuit with a switch. It was basically taping over pre-drawn lines, but it helped me understand how the tape worked, and made me familiar with using copper tape.

Basic Copper Tape Circuit

Then, I created a simple light up card using parallel circuits. Again, this made me more comfortable with working with copper tapes.

For my assignment, I immediately thought of making Pikachu from Pokemon. Since we were working with electricity, I think this is a natural connection.

I looked up an origami Pikachu tutorial online, and made a prototype version. The paper I used was too thick, and therefore it was difficult to make.

Initial Trial

For my second prototype, I used a bigger, and thinner paper so that it would be easier to fold. It was easier to make, and looked nicer. Then, I unfolded everything back to a square, and laid out the circuit. The positioning of my LED’s made it difficult to create a parallel circuit. I ended up having to tape over the copper tape with regular tape, then apply copper tape over it to create a parallel circuit. I folded everything back up, and checked that it was lighting up.

Then, I started preparing the final version of my assignment. With a new piece of paper, I carefully made another Pikachu. Then, I marked the sides that were visible with a yellow color pencil. Then, I unfolded everything, and colored in the marked sides, and drew on the face and ear tips. Then, I re-laid the circuit with copper tape, and tested the circuit. I folded everything back, and tested the lights once again.

This was a fun experience, and definitely challenging. I was quite worried that the circuit might not work out while making my second prototype. Making a parallel circuit seemed almost impossible, as I needed the circuits to run on top of each other. I was able to circumvent the problem by applying normal tape over the copper tape, and running another copper tape on top of the normal tape.

I also could not create a typical switch that I learned in lab. Instead, I had to use the battery itself as a switch. I applied normal tape around the battery, making the bottom part lifted up slightly by the tape. Then I could activate the circuit by pressing down the battery to make a connection with the copper tape.

Continue Reading

Multi Layer Sticker

I created the Dog Bird and Spiderman logo during the lab section as we were introduced to making multi layered stickers

For the assignment, I started off from an icon of a person with headphones on. I decided to add sound waves to represent the music being played, and put everything inside a bubble, as listening to music can put people in their own world.

I decided to put a base layer of light gray as a simple circle. The blue bubble was added on top, then the person, then the sound wave, then the headphones.

Everything worked out fine until the cutting. For some reason, the vinyl cutter was offset an inch to the right, and therefore the two large circles did not get cut out properly. The yellow sound wave was small enough that it wasn’t affected by the offset. Consequently, I had to re print the two circle shaped stickers by simply putting them an inch to the right on the board.

Also, I had designed the sticker such that the sound wave would be covered by the headphones, but the cutting process made the sound wave smaller. However, I am still satisfied by the final product.

Continue Reading


For the storyboard, we choose a smart table for a restaurant setting. The smart table could give useful information about the food in a restaurant. There are many uses for an interactive, smart menu, and the aspect I focused on was providing visual information along with a simple description of the food.

I enjoy going to different cultural restaurants on campus. Sometimes, however, menus in restaurants are not very descriptive, and only contain the name of the dish. Furthermore, the names are just foreign menu names written phonetically in English. To add to the difficulties, some restaurants have over 200 menu items. Consequently, I often end up getting the menus that I know about, which is only a small portion of the menu.

A smart table with an embedded digital menu would be able to solve all the problems mentioned above. The menu would include the name of the dish, a few images, some descriptions, and allergy information. This would let people know what the certain dishes are, and the menu could also have a search function that could either look for certain spiciness, or exclude certain ingredients.

Continue Reading

Laser Nametag


For the first assignment, we designed and made a name tag using a laser cutter. I wanted to incorporate my passion for computer programming in the design, and I decided to design a name tag that resembles a computer monitor.

Build Process

Using Inkscape, I started designing my name tag. In order to make the name tag look more like a computer monitor, I decided to print the name tag in three different portions. The bottom layer would be what’s displayed in a monitor, and would have my name, along with some abstract lines that resemble code. It would also have space for the bezel, and the monitor stand. The middle layer would be the actual bezel of the monitor, along with the monitor stand. The screen portion of the middle layer would be hollow, in order to have the name tag really resemble an actual computer monitor. The top layer would just cover the bezel of the monitor for a final aesthetic touch. The bottom layer would be 1/8 inch plywood, the middle layer would be 1/16 inch plywood, and the top layer would be acrylic.

I printed the middle and top layer using the Epilog laser, which was considerably easier to use than the Universal laser. The bottom layer was printed with the Universal. The top two layers printed without any issues.

The bottom layer, however, presented some problems. The plywood was too thick, and had to be cut three times. Consequently, a large part of the layer was burnt. However, as I was planning on making a three-layer name tag, and the burnt part was to be covered up by other layers, I just proceeded with making my name tag.

The final process was glueing all three layers together. I first glued the bottom and middle layer, and once it dried, I glued the top layer to finish my name tag.

Final Product


I am generally pleased with the final product. It is close to what I imagined in my head, and I think it reflects my interests quite well. Although the burn marks are slightly noticeable, I don’t think it’s too much of an issue.

Continue Reading