My iteration project was built as a stepping-stone from my newly-acquired Arduino skills to my final project. To do so, I built a box with a map of my local area on the front, and a number of LEDs that lit up at 13 different bus stop locations to indicate where certain buses where.
before we dive into the process, here’s the final result:
The three lines near my house are green, gold, and silver, as pictured above.
My previous project for Arduino was a strip of NeoPixel LEDs that could be controlled using a joystick:
This iteration project began with a sketch of some ideas I was considering:
Option (A) was the one I decided to construct, with the integrated LEDs. Option (B) would have involved a sort of clock/timer with rotating servos to indicate approximately when the next bus would arrive. Options (C) and (D) involved using LCD screens, which were a little too advanced for what I was looking to work with for this project.
To design the front of the box, I found a site call snazzy maps that could modify the look of google maps to be whatever I wanted. So I took a screenshot of my local area with just the roads visible and converted it to an SVG for the engraving process. I then found a different online tool to construct the SVG files for my wood-engraved box.
The initial SVG for my local area
The final SVG for the front-facing part of my box, with holes designating bus stops
I was initially looking to use individual LED bulbs for each bus stop, but if I wanted to use a multicolor LED, I would have 4 pins on each bulb, and 13bulbs in total… so I decided to change my approach and use NeoPixels. Since I was primarily concerned with accuracy on the map for the bus stops, I hadn’t considered the troubles I might experience when attaching NeoPixels to the board. this resulted in a bit of a haphazard setup, with the NeoPixel strip contorted in order to line up each hole in the board:
I then went over to the Makerspace and learned how to solder! I tried looking at a few youtube tutorials to help me along, but it was still quite a time-consuming process. I asked Niel about how he goes about soldering, and he showed me a technique that involved applying solder to each component separately, and then bringing them together and heating to attach them securely. This made the process much easier, and I was able to successfully attach all of the neopixel strips together. In particular, I made sure that I had the data line all heading in the same direction to avoid trouble later down the line.
My first attempt at soldering NeoPixels
First set of LEDs attached, and they work!
The completed soldering job, with Clear tape in place to secure the pixels onto the board
Now that the LEDs were setup, I began programming the device! Since I would need to connect to the cuMTD servers to get bus data, I decided to use a Wifi-enabled Arduino. I then installed Postman onto my laptop so I could test my API calls to MTD, and then implemented them into the arduino code once I felt confident.
I ran into some trouble when making API calls through the university wifi, as they likely have security measures in place. With that said, the project is working successfully at my apartment! Here’s the code I used, which utilized a mix of NeoPixels, HTTP requests, and WIFI connectivity code:
Some issues that I was facing with the implementation is that random LEDs would light up for colors that I haven’t even programmed in, as seen here:
My best guess as to the source of this problem was due to power surges in the data signal for the LEDs. After getting access to a resistor and a capacitor, I was able to mitigate this issue.
I was a bit nervous to make a whole textile project for this week since the last time I touched a sewing machine was in 8th grade home economics class, but if 13-year-old me could do it, so can I!
The textiles assignment began with some preliminary tutorials on how to use a sewing machine.
Early stitching practice
Once I got the hang of the machine, I worked towards making a drawstring bag:
tracing and cutting bag fabric
The completed bag!
I had to take a few hours outside of class to finish up, but it turned out well! Over the course of making these objects I began to learn that if I was working too hard on a particular task, there’s probably a better way to do it. This became particularly evident when I was struggling to get the ribbon through the bag.
Onto next week: Embroidery!
My girlfriend is a big fan of the esports team G2, so I had a go at making their logo:
Original G2 logo
I was a bit concerned as to how detailed the embroidery machine would get when it dealt with thin lines, so I instead based the pattern off of a modified logo I found off of google:
the alternate logo
the embroidery in progress: looking good!
I felt pretty good about the result of the logo, although I learned that there can be some imperfections that I need to watch out for, such as the left gray part of the logo having some empty space on the right side.
Onto the main event!
I wanted to make a stuffed animal for my girlfriend since she really appreciates them. I also had to include embroidery for the assignment, so I decided to use the G2 logo once again! I chose to go with the fox since she likes them, and the pre-approved design looked very cute. She’s not a fan of super-soft fabrics, so I went for a material that was still somewhat soft but also had a nice variety of colors for me to choose from. nobody wants a green fox!
Between a bad phone battery and a forgetful brain, I didn’t capture as many of the in-progress photos as I would have liked. Anyway, here’s the finished head of the fox:
front view of head
I was quite amazed at how the inside-out technique of sewing allows for so many mistakes and imperfections to be hidden away. I decided to not include the whiskers due to how small they were.
The embroidery for the project turned out well, although I made the mistake of trying to use the sparkly thread that seemed to be made of plastic. It repeatedly got loose from the machine and caused trouble, but I was able to get the logo finished anyway. I included a red maple leaf since my girlfriend is Canadian.
body components attached
I chose not to sew bends in the tail for the plushie since I didn’t want the tail to be attached to the body of the fox all the way around.
The base of the body was meant to have a weighted pouch stuffed with beads, but it seemed that the fablab didn’t have those materials on hand, so I just sewed 4 layers of felt together and used that as the base instead.
I felt nervous making the final stitches to attach to the body to the head, but it turned out well, and just in time for my trip to Michigan to give this fox to my girlfriend for our 3-year anniversary!
Our project this week revolved around Arduinos! I wanted to find a fun combination of sensors & outputs, so I chose to try to integrate a joystick controller to control NeoPixels.
I thought this would be an assignment that I could largely do outside of the Fab Lab since I could install the Arduino software onto my laptop, but I quickly ran into issues revolving around the fact that I didn’t know how the neopixel worked or what the different connection pins on the joystick controller were meant for.
I searched online, and Google was a great help for many of the troubleshooting steps I ran into.
This youtube video was a great help for the Joystick:
Beforehand I was connecting the X and Y sensors to the digital pins on the Arduino, and my code was trying to read the analog pins. This video helped to clear things up and gave me some starter code to work with too.
I also made use of this guide to assist me with the NeoPixel setup:
I was still experiencing issues controlling the neopixels, however, so I came into the Fab Lab and quickly learned that the NeoPixel strip I was using had connections soldered onto the “wrong” end, since the data connection to control the pixels can only travel in one direction. After replacing the strip with a properly soldered version, I was good to go!
Admittedly, my project was less about using an Arduino to solve a problem, and more about making something cool and thinking of some use case that kind of makes sense for it.
Fidget cubes are a popular trend currently, and a joystick is often an element for a part of these cubes. I present the “Fidget Strip”, a strip of NeoPixels that can be controlled by fiddling with a Joystick!
Witness the story of a man who is stressed/frustrated, and makes use of this wonderful device to feel less stressed and more motivated to tackle the next big obstacle in his life:
While developing the code for my device, I experimented with a library example that made fun rainbow colors light up the display:
And here’s the final product! Admittedly this video doesn’t do the best job of showcasing the demo, as my color range was all shades of blues and green, and I accidentally popped off the joystick in the middle of demoing. Special thanks to my roommate, who took the video for me while I stumbled through the demonstration at 9 am:
Overall the Arduino project was a lot of fun to work with, and I look forward to next week!
Here’s the code for my final demo:
And the code for the project we did in the lab session:
Oh, and because I love to just post all of the pictures, here’s some close-ups of the device setup:
The arduino setup, utilizing both analog and digital pins
The inputs for the Joystick, I chose not to hook up the SW pin since I didn’t use the feature for the project.
These are the NeoPixel connections, with the data pin working in the correct direction.
Our task for the past 2 weeks was 3D Printing! Here’s my design process from start to finish:
Week 1 was our time to experiment with 3D software and design some ideas for week two. To do so, we made a castle and an alien in TinkerCAD and Meshmixer, respectively:
My historical recreation of some castle I just made up. It’s got a die on top, perhaps it was home to a king with gambling problems.
The model for the alien, pre-meshmixer.
The new alien, modified with meshmixer’s tools and resulting in… something I don’t want to come back and haunt me in my dreams.
With our initial practice complete, I drew up some ideas for my project:
A concept for modifying Abraham lincoln into someone like me, a modern college student at UofI. My family tree has been rooted in the midwest for a long time, so I don’t feel that I have much of a culture outside of the US that I can relate to. As a result, I used Abraham Lincoln as a cultural icon, more specifically the statue of Lincoln at the Lincoln Memorial in Washington D.C. The statue was built to symbolize Lincoln’s strength and determination, as well as his warmth and compassion. For the sake of the sketch I transposed aspects of my own life onto the statue, notably glasses, earbuds, and a smartphone. Perhaps I could argue that being a CS major at Illinois takes a lot of hard work and mental strength, but I’d still consider myself to be a compassionate person as well. Comparing myself to Abraham Lincoln feels a bit strange though, so I decided not to pursue this concept further.
My concept for utensils that hold a compartment for anything you’d like, such as toothpicks, Lactaid pills, or the secret plans to destroy the Death Star. The compartment is held closed using a screw cap. These utensils would be very useful for people such as my girlfriend who often forget to take lactaid pills to work with them. Now they’re included with the utensil! This is also useful for a variety of other objects that you may want to hide away in your utensils. I initially had the concept of a compartment designed specifically for toothpicks, but then I realized I could just make more space inside the utensil and allow for more objects to be stored away.
A sketch of a 3D model based on Andy Warhol’s art, with a Campbell’s soup can be modified to include an etching of Marilyn Monroe. I’d model this by scanning an actual campbell’s soup can. Andy Worhol’s art was well-known for it’s critique on mass production, and making a 3D-print of a modified version of his art is a modern twist on his artistic efforts. I chose monroe and the soup can to be the particular works of art used for the model because they are two of the most well-known works of art made by Worhol.
Two sketches for devices that I could make use of at home: a hanger for my headset and a dishwasher sign. I wanted a headset handger because I used to have one back in the Chicago suburbs, but my current apartment doesn’t have any sort of hook and I don’t want to drill into the walls! I made a special hanger that goes off on a 45 degree angle so that the headset wouldn’t head directly in front of my computer monitor when I didn’t have it on. I felt that this model was a bit too simplistic, so I also made a dishwasher sign for my apartment. My roommates and I have tried using postits in the past to denote if the dishwasher was clean or dirty, but it became a bit of a hassle. My design was inspired by dishwasher signs I found online, but I made my own unique twist by putting little indentations on the sides of the sign to give a better grip. The tinkercad links are provided in the captions for the screenshots of the models later in the blog post.
Of these 4, I found the utensils and my utilitarian ideas to be the most interesting, so I modeled and presented those.
Onto Week 2!
In class, we created 3D Models of ourselves! I elected to try a pondering pose for the second model attempt, and I think it turned out quite well.
For my final project, I decided model both of my practical designs! I felt that I could handle that since the models themselves weren’t too complex, and I’d stand a better chance of success in case one of the models failed while printing.
My refined model for the dishwasher sign included a triangle-shaped cavity to give users a better grip. This became a little tricky when creating the scaffolding for printing, as we’ll see later on in this post.
My model for the headset hanger had a 45-degree turn to it, which brought some structural integrity challenges. In addition, 45-degree angles became surprisingly difficult to work with in TinkerCAD. Luckily, I came out on top with a viable model, and I talked with Niel at the Fab Lab to ensure that I had the right print settings to make a strong piece.
I’ll demonstrate the process for each model separately, starting with the Hanger:
For this week’s assignment, I opted to go for a pop-up design that integrated paper circuits. I used to make these sorts of cards for my friend’s birthday parties many years ago, so I was excited to return to that design space.
After brainstorming some ideas with my roommates, I settled on a holiday card that could benefit from having LEDs involved: Christmas presents! I had a feeling that these paper circuits would take a lot of time to troubleshoot, so I went for a pop-up design that did have too many moving parts in order to avoid a higher chance of connections breaking inside the card after it was already glued shut.
The design has 3 presents stacked vertically, with an LED hidden inside. These LEDs are hooked up in parallel, with the proper resistance attached to each one. The guide(s) linked in the resources for this project were quite useful to achieve that goal.
My design for the final paper circuit, using parallel LEDs of different voltages & resistors.
Let’s fast-forward to the finished circuit, and we’ll discuss the alterations made:
The initial cutouts for the pop-out presents (backside)
The fully wired circuit, with a temporary switch setup on the left for troubleshooting.
The working circuit in action!
The plan was to use a 6v battery for the project, but I only had access to 3v batteries. Thankfully, the magic of science allowed me to put two of these batteries in parallel to achieve the same effect.
The design originally had many components like the batteries close to the edge, but I realized that would be very difficult to work with when attempting to attach a backing to this card. As a result, the circuitry is located closer to the center of the card.
I struggled a lot with previous circuits when trying to get the wires to stay down, so I bent the wires on the LED’s down a bit so that they rested flat with the bottom of the LED:
An LED with its wires bent to align better when laid flat onto the card
Between those alterations and being very liberal with my use of copper tape, I was pleased to find that the circuit only took about 2 minutes to troubleshoot after putting everything down! These connections I put in eventually began to pull apart a few days later, but under the circumstances of paper circuits being very finicky, I was pleased with the results.
Once the circuit was assembled, I attached a backing to the card and went to decorating:
The front-facing side of the card
The inside of the card, featuring decorated presents and tissue paper to reflect the LEDs!
Overall, I was pretty happy with how this project turned out. If I were to improve on this project, I would have likely made the following adjustments:
I believe there was an alternative conductive tape mentioned in Tuesday’s Lab that was better to work with than copper tape, albeit more expensive. If I wanted to make a card for someone outside of class, I’d use that tape to hopefully ensure the LEDs worked by the time I actually wanted to present the card.
The decorations on the card are a little lacking, so including more colors and different types of construction paper would do a lot to bring vibrancy to the card.
I also should have considered decorating the card after placing the outline for most of the tape, but before placing on the LEDs, resistors, and batteries. Trying to decorate a card that I couldn’t lay flat due to embedded electronics was a bit tricky, and put the circuit at risk of being broken.
In addition to the main project, I worked on a simple circuit and a quote-based card:
The sketched design and implementation of my quote card. I used two yellow LEDs with corresponding resistors in parallel to keep things easy.
The pun-based outside of the quote card
The inside of the pop-up card, featuring a switch that becomes a magnet when flipped up! (Yellow LEDs are placed in the lightning bolts between the two magnets)
The original circuit made in lab, with the exception of the battery that was re-used for the quote project
This week’s project was to build a multi-color vinyl sticker. I was initially looking for a nice sticker to put on my laptop, but I was struggling to find any given icon/logo/etc. that I felt was representative of who I was.
My phone (Pixel, first-generation) has a white panel on the top 1/2 of the back of the phone. I usually use a clear case with this phone, so I felt that this would be a great canvas to place a sticker on.
Reference image for my phone
I wanted to go for a sticker that fit the space I was putting it on, while also having a bit of artistic work. I considered going for a logo that represented my background in PC Gaming, but finding a multi-color solution for that proved difficult. After searching across google images, I came across this artwork:
Reference Image for Vinyl sticker
This image was a great place to start, as it had 4 colors (black, blue, green, and white) while also being easily manipulated into something that could fit my phone. I also felt that this image would give me some interesting challenges to overcome, such as removing the plane/spaceship, cleaning up the starscape to be compatible for cutting, and removing the subtle shading that persists on many elements of the artwork.
I’ve worked with photoshop in the past, although Inkscape/Vector images proved to be a bit tricky to work with at times, especially when I wanted to create a smooth, rounded edge on the earth across multiple layers. I resolved this by just creating an earth-shaped circle and using the Path->difference tool to ensure all layers could fit together.
There were a number of alterations made to the artwork:
The original starscape was almost completely removed. I took one of the larger stars and copied/scaled it to create a new set of stars that I felt more confident in working for the process of cutting/transferring small elements.
The outer edges of the starscape were stretched outward to fit the rectangular space on my phone.
The airplane/spacecraft were removed.
The color palette was flattened to just be the 4 central colors for the piece, removing shaded borders and the cloud shadows.
Originally I planned to use white vinyl for the clouds and stars, but I then realized that the backing on my phone was already white, so I instead used this as an opportunity to design my piece with this in mind, resulting in cut-out holes for the corresponding clouds and stars.
In order to ensure this sticker would fit my phone, I went to work on measuring out a lot of the dimensions on my phone, and recreating it within Inkscape. This way I could test to see how well my sticker would fit and make any necessary adjustments, while also giving me the ability to just use the Path->Intersection tool when I was ready to cut out the artwork to fit on my phone.
Version 1 of the phone cutout. The top-left hole for the camera proved to be a little too high up, so I lowered it by 0.5mm for the final version.
In hindsight, I definitely would have considered using a more precise tool to find the proper dimensions on the phone instead of just a basic ruler. Luckily, my sticker turned out to match up with my phone quite well! After making some minor adjustments, I setup the artwork for cutting and went to work on creating the sticker.
The sticker, shortly before transferring to the phone.
Attempting to line up the earth elements against the black background proved difficult, but the clear transfer tape was very helpful in ensuring success. Also, one of the members of the Fab Lab recommended that I use small pieces of masking tape to pluck out the small holes for the stars, which saved me a lot of time and effort.
The final version on my phone, which is photographed against a mirror because I managed to make a sticker for the one place that I couldn’t just take a picture of normally!
Overall I’m quite happy with how this sticker turned out. I think the only major flaw in this design was that the white cloud on the left side of the image above results in a cutout that bleeds onto the area of the phone’s fingerprint sensor, which doesn’t look as good as I was hoping. If I were to adjust this piece, I’d work on either moving/deleting that cloud in particular so that the entire sensor area is surrounded by the vinyl sticker.
My roommate was excited about the stickers I brought home from the previous lab session, so I made a laptop sticker for a silhouette of his choice:
My roomate’s laptop, now sporting a black griffin
I was suprised by the difference in the amount of effort it took to make these two stickers. My phone sticker took upwards of 3 hours, but it only took my 3-5 minutes afterward to make the single-layer sticker from start to finish. I’d imagine with an easier piece I could bring down the production time for a multi-color sticker, but for now, I’m going to stick to making stickers for friends that want a single color!
My project for this week was to make an engraved name tag. My Career Fair is rapidly approaching, so I decided to make a variant of the name tags that are used in that setting to give me a creative edge in the battle for employment post-graduation.
I began by finding the relevant documentation for the name tag inserts:
After easing into the use of Inkscape, I got to work on making my design. I wanted to maintain the name/major/date format in the original design, but try to make the text a bit bigger. This resulted in version 1 of the design:
Version 1 of the nameplate, using basic text and a curved edge.
The post-production result for version 1.
The result for the first iteration had a few issues that came as a result of first-time experience in the Lab. The laser takes some time to warm up, so the top of my engraved name (notably the I and H) was cut a bit short. In addition, the laser cut had not fully burned through the top end of the 1/8 inch plywood, resulting in an unrefined edge along the top.
Version 2 brought new changes, the most prominent being a decorative border around the outer edge of the nameplate. In addition to the border, I learned how to align objects horizontally and vertically, allowing for a more clean layout on the design.
Version 2 of the design, featuring a border and aligned elements.
Version 2 of the resulting product, with a missing section of wood on the bottom left edge.
I didn’t realize until the near-end of the engraving process that my choice of wood did not give me enough room to carve out the entire piece. As a result, a small section on the bottom edge was missing from the final product. I’ll look to keep a closer eye on that in the future.
Onto Version 3! This one was focused on refining the design I already felt comfortable with. Changes include:
Adjusting the curve on the edges of the inner border to feel more aligned with the outer border
Enlarging the name and date texts to make more efficient use of the whitespace remaining withing the tag.
Design for version 3, with adjusted text and borders.
Printed result for version 3, with no major issues or concerns remaining.
I’m quite happy with how this latest version turned out, and I look forward to seeing how career fair recruiters react to this unique addition to my wardrobe. The wood didn’t suffer from too much burning, and a got a nice balance between engraved and regular wood. If I wanted to take this project ot the next level, I’d likely look to add a level of depth by including “CS” as large bolded letters behind the rest of the existing text. I found the Inkscape program to be relatively easy to get into since I’ve had pervious experience with Photoshop and Gimp, although working with vector graphics is a new an exciting challenge for me. I was a bit nervous trying to operate the laser on my own for the first time, but I quickly got the hang of it. The idea of engraving glasses / mugs is something I look forward to working on in the future.
I showed this creation to my roommate when I came back home, and he really enjoyed the natural, smoky scent of the freshly-burned nametags. I am in agreement.