For this assignment, I wanted to recreate the Name tag while using more tools from the lessons afterwards. Specifically, I wanted to use the silhouette cutters to add stickers to the name tag and add an LED circuit to add a light to the name tag as well. This would use tools from the second and third assignments to expand upon the design and implementation from the first assignment.
As a recap, here was my original product from the original name tag assignment:
My final product for Assignment 1: Laser Name tag.
For this new iteration, I wanted to change up the design while still keeping the guitar theme. For new inspiration, I used a nickname that I have that also serves as my musician name: “Rooney Tunes”. This is also the name that I have on my Instagram account where I post my different covers. My inspiration behind singing the songs I post is based on one of my favorite Bible verses, which I include in the bio in my Instagram account and decided to include in this name tag as well. Because my Christian faith is important to me, I decided to also add a small cross in the corner of the name tag with a light above it to represent the guiding light that the cross is for me in my faith.
Below is the design for the laser cutter:
Laser cutter design for the iteration assignment. This would raster the guitar and cross and vector cut a circle above the cross.
Below is the design for the silhouette cutter:
This was the initial design for the silhouette cutter to attach on top of the laser cut/engraved wood.
For constructing the project, I began by using the laser cutter. The wood was nicely cut out into a 7.5″ x 7.0″ block on a 1/4″ piece of plywood. The guitar and cross were rastered on it and the circle for the light was cut out. I unfortunately do not have any pictures or videos of the process.
The following portion involved using the silhouette cutter to cut out the sticker than would frame the cross and the guitar. Below is what it looked like, along with the additional sticker parts for the pick guard and the bridge of the guitar:
This picture shows the finished laser cut and rastered board along with the outline and guitar accessory stickers.
Following this, the next part was to incorporate the words onto the name tag. This was difficult because the letter were small. I found it difficult to remove the excess parts of the lettering when trying to use the transfer tape. Some part were lost when transferring it, and even on the original cut, the dots for the i’s and j’s did not make it through. Below is the sticker text on the transfer tape:
The text that would be put on the top left corner of the name tag shown on the transfer tape.
After removing the unnecessary bits in letters like “a”, “o”, “e”, and other letters, I proceeded to put the sticker text on the new name tag. It took a little while as well because the small letters clung to the transfer tape, but for the most part, it transferred well.
Next, it was necessary for me to set up the circuit for the white light that would be above the cross. It was a small and basic circuit because there was only one LED. Below is a picture of the final circuit:
The final circuit for the iteration project. The switch can be found at the top right part of the circuit. There is one battery, no resistors, and one white LED.
This circuit worked well and it all came together pretty well!
Overall, I was pretty satisfied with the final product! If I had more time, then maybe I would have added a more complex circuit. I may have chosen a more cooperative font as well. The font was the biggest struggle for my first name tag as well. That first assignment required four iterations once I finally figured out the best size. This one only took one try but did not come out perfectly.
Even though it wasn’t perfect and that may have been a bit frustrating in terms of being patient with transferring as many of the letters as possible onto the main piece of wood, I was content and proud of the final product.I like that the gold sticker frames the guitar and the cross very nicely. The LED light, as well, is a nice touch. If I had more time, I would likely add a better switch or a more clever usage of a switch.
The final product can be seen below:
The final product for the iteration project. The light was a nice final touch. I wrote in the missing dots and quotations for the sake of completing the text on the name tag.
Subtitle: why do you make your own life so hard, shaoyie
Okay, so, full disclosure I think this is late? I forgot this was due Sunday midnight, between some other deadlines I had running. I’m writing this now because I realize I should have something up; ideally, the finished product will be up only an hour or two after I initially post this. Now that I’ve figured things out, mostly.
(which is.. still not ideal since its like 4 am but ITS ALRIGHT.)
ANYWAY. This is the current product:
For reference, it says: “I believe in a universe that doesn’t care and people who do.” around a line drawing of a whale.
So the process:
The project I was redoing was my vinyl sticker, redone on an embroidered patch.
So for reference, this quote is from a conversation in a video game, during which the characters are looking at constellations. The one the conversation is centered around is this whale, in the bottom right, so I wanted to capitalize on that. Thinner lines aren’t as good for vinyl stickers, so I wanted to try to make it into a patch instead.
That in mind, this was the new vector design I ended up with.
(I’m really quite proud of this one).
First step was embroidery. That by itself was a process. I wanted to make the dark cloud embroidered as well; not just a shape cut out of fabric, so it took a pretty long time. There also wasn’t thick enough fabric in the color I wanted, so I ended up learning how to use stabilizer. The entire embroidery took about 1 1/2 hours to 2 hours? I remember this because I stayed about 30 minutes past closing time because I was waiting for the embroidery to finish.
It went… alright, but the text didn’t come out too clean. I think part of that may have been the font choice (did you know that text doesn’t really translate very well into the embroidery program we use? i know now. You basically have to redo any text you might have on your vector design, which was… fun…….), and also that the repeated punching of the background + text may have made the lines a little more squiggly. The initial product was definitely pretty hard to read.
I spent some time cleaning it up with little scissors + a lint roller, but I don’t seem to have a specific picture of the-after for that.
Other than the text, and the stars coming out more like tiny tiny dots, I was pretty happy with it overall.
Anyway, step two, LED’s.
Initially, I was going to try to put the LED’s on the points of the whale where the stars in the original image had been. Upon finishing the patch itself, I realized it was… not the best idea. The patch was too thick to have it poke through, and setting it up to let the LED’s poke through probably would have messed up some structural integrity.
So, NEW PLAN: place them around in a sort of framing manner. I was going to use conductive thread + sewable LED’s for this part, which I was pretty excited about. I had 5 LED’s and more or less had the idea of how I wanted to place them.
So I then embarked on a Series Of Bad Decisions.
Bad decision 1: I decided I wanted to sew them all into place first, and just light them all up at the same time. I think at the time, I was 1- trying to make sure I didn’t forget how I wanted to place them and 2- optimize my time in the lab so I wouldn’t have to take home the roll of conductive thread (because I would then be in danger of losing it). That said, it was a pretty terrible decision. Some knowledge of circuits in my mind and vaguely remembering “the positives and negative lines cant touch!” I sewed all the negative threads first.
Ended up with this.
Which is, as you can tell, a mess. I, staring at it, went, “shoot, I can’t really sew the positive lines without them crisscrossing each other.” and instead of, say, taking them out and trying to do each LED 1 by 1, went. “I will force them not to touch”, and sewed on a layer of cloth, to act as a buffer between the negative and positive lines. like, this piece of cloth went over the battery pack, and had holes cut out for where I wanted the needle to go through the holes of the pack. It was, very, very suspicious looking.
[Apparently I don’t have a picture of the back after I did all that. That’s okay. It was a mess. This is a good explanation of my line of thinking]
(It speaks to how sketchy it was that I don’t know whether the actual end result was more or less ugly than that diagram).
And then! After all that! It didn’t work.
(This is actually also a photo of the before-positive. I can promise you it didn’t work though).
Anyway, at this point in time, I had left the fab lab, cut a length of the conductive thread (“just in case”), and been sewing in the positive threads at random moments. Once I realized it wasn’t working, i put it away for a while for future-me to debug.
Over the course of a couple days, in hopes I would not have to rethread everything, I ruled out possible explanations such as:
1- not-working battery (this was actually the case but it didn’t work with a working battery either).
2- the thread didn’t work + needed more contact to work. (it was actually the other way around. I’d assumed it would need several loops of contact to have enough surface area. But even one thread was enough).
3- the LED’s weren’t working. (I couldn’t actually test this one without rethreading everything anyway).
4- I was trying to power too many LED’s. (Per me asking Emilie, a standard coin cell battery could power at least like 6.)
5- repeatedly taking out the battery and putting it back in might make it work possibly maybe. (tested this many times).
After all that, I sighed, and took it apart. (and confirmed that yes, the LED’s worked.)
(this took surprisingly long on its own).
At this point- about 5 PM on Sunday, I also realized I had misplaced my spare conductive thread. So, I was left with a tangle of already-used conductive thread, mostly in short chunks because taking it apart had been difficult, even after I’d realized I would need it, and tried to cut it as sparingly as possible, a pretty limited set of hours, and a good reminder of why one should test things in small increments instead of trying to do everything at once. iteration, shaoyie.
anyway, once I realized you 1- don’t need that much thread to make circuits, and 2- i didn’t have to tie down the battery back with conductive thread, I wasn’t too worried, although already-used conductive thread isn’t very cooperative with being used again.
I did, however, manage to mess up AGAIN, and sew down an LED the wrong way.
You might see the little tiny plus and minus on there. I did too. Unfortunately I did not heed them when I was sewing it into place. “why not, shaoyie?” don’t worry, I don’t know either.
Anyway, so that leaves us with the finished product! I will improve upon it in the future, possibly, but for now, this is just about it.
The whale says hello!
For this assignment I decided to take a whack at combining what I learned from the name tag assignment and the Arduino assignments and create a little ‘light show machine’. The plan for this creation is to combine more complex woodcut patterns with motors, LEDs, and an Arduino to make an object that spins the designs over top of lights to make cool patterns.
I started out this assignment in class by drawing out some ideas and creating a general sense of what I was going to do. Once I started thinking more on making my light show machine, I realized that 3D printing parts would be a great way to house everything very securely and making sure that everything kept from falling apart. Given the time constraints I had, I realized I could make small 3D prints to help create the most essential parts of my machine.
After planning out my design, I went on to laser cutting. I had designed a file in Illustrator and made the design go radially, resulting in a sort of flower-like pattern for the wheels that would be spinning on my machine. Creating this pattern was easy enough, and I realized that I could go back later and create multiple different types of patterns in the future for different kinds of visual effect.
After laser cutting my wheels, I went on to setting up circuits with my Arduino and component parts (breadboard, resistors, etc.). I sat the breadboard on top of the Arduino to try and save lateral space and make the final device more column-like as opposed to plate-like. I had to work with some components during this part that I hadn’t worked with before — RGB LEDs and a 6V continuous servo motor. Wiring these in was a fairly simple task, however I quickly realized that I wouldn’t be able to run the motor and both of my RGB LEDs off the same power source feeding the board (at least without a motor controlling chip, which I should’ve asked about at the fab lab; my Arduino kit didn’t contain one). To help alleviate this problem I set up a separate controlling chip to power the wheel off of a 9V battery. The Arduino controlling the LEDs would then be powered by a computer or power brick (what I used to help make this thing a bit more portable — an initial goal of mine.
Once I got that all set up I went about mapping out 3D designs for my adapter to help hold the wheel to the servo and a bracket to try and contain the breadboard and Arduino on the bottom, while housing the motor. I got help from Brandon and worked in Fusion to map everything out to the mm. This part way definitely new for me, but got pretty understandable pretty quickly, so I’m glad I now can work software like that better.
After printing out my component parts I headed home to assemble everything and add a piece of wax paper to the wheel that was closest to the LED (to help disperse the LED light and make it more ‘glowy’ as opposed to super direct beams). I housed my final machine in a roll of duct tape and some cardboard for the time being, as I didn’t have time to accurately measure everything and create a 3D printed housing (although at this point, I definitely want to do that).
Getting everything to sit in a way that kept the servo from getting jammed was definitely a challenge, as was finding ways to house everything that are neat and still accessible. Another problem that I realized far too far into this project was that continuous servo motors can’t be controlled speed-wise in the same way that stepper servos can, at least without additional parts. I wasn’t able to take care of this before turn-in so my light show machine looks a bit more like a glowing jet engine, but I still think it’s cool.
I would say that as much as I would have wanted this project to end up looking really finalized, there’s still some stuff I could add to it to make it better. I plan on 3D printing a housing for everything once I find a way that I can make it all sit uniformly. I also want to be able to make it so both wheels on the machine can spin in different directions, but this may take some more time and effort to crack. I lastly would like to be able to incorporate some type of sensor into this project, but again, I think I may need to take care of some other parts before that happens.
I was really happy with what I made for this project, even if it is somewhat rough, because it really helped me use the skills I already had, expand them, as well as learn new skills I wasn’t planning on learning. The coding on this project was fairly simple, as it usually seems with smaller arduino projects. Housing and measuring things was definitely something very challenging, as well as learning to approach the different design challenges that would pop up in the process of working on my gadget.
I’m excited to keep prototyping my light box and see if I can make one that really looks professional within the next couple of weeks. Maybe if I get it really right I can use it in conjunction with the speaker I plan on making for my final project!
Here are some videos of my light box in action:
Motivation and Initial Designs:
Looking at the Original
I decided to revisit my Copper Tape project since I had a bit of trouble originally completing the structure and getting the circuit to work, as the copper tape is very difficult to get working in series due to limited voltage.
link to the original project video
This time, I wanted to add in a bit of locomotion, adding in the canards and ailerons to the aircraft. To accomplish this, I would need to make use of Arduino and actual (thank gods) wires, building a more robust circuit and working with a more stable power source. Ideally, I wanted to find an Arduino PS2 joystick so I could add in some interactivity (i.e. all surfaces pitch up when the controls stick is pulled up, etc.), but I had to settle for having the control surfaces sweep back and forth. Since I wanted to add in space for servos and an Arduino board, I had to work with a bigger surface, prompting me to switch to the Laser Cutter and a 12″ x 24″ plywood board for the baseplate. As such, I had to upscale and modify my original paper template, sectioning off the control surfaces.
Build Process and Modification:
My first iteration was to get a basic feel for the circuit layout and size, so I used a 12″ x 24″ board as the base. It would later turn out that this board wasn’t large enough to accommodate the servos and Arduino Uno controller comfortably, so I would need to choose a bigger base for the later iteration. While laser cutting, the large board had warped slightly and this caused the laser to be out of focus at times due to an inconsistent z-distance. For example, note the minor offset cuts on the baseplate in the picture below:
The first issue was to attach the canards (forward winglets) to the baseplate via a servo. Since the canards were cranked at a certain angle, I had initially intended to tilt two servos, one for each canard, and rotate those independently. However, since space on the baseplate was limited, I decided to use one servo and link the two canards together via a bent paper clip. To prevent the paper clip from rotating in place from the servo’s control arm, I had to secure it in place with a bit of hot glue…
Okay, a lot of hot glue.
The first thing to get used to was working three servos in parallel. This usually would be a bit problematic with only two ground pins in the Uno board, so I had to hook them all up to the breadboard to get them working in parallel
For the prototype, I decided to keep it simple and simply attach the servos to the control surfaces (instead of using control horns and push rods as is the standard case with RC aircraft). After working with the Arduino IDE I was able to get the servos moving independently simultaneously:
Demonstration video link
For the next iteration I would like to add in the LEDs and work a bit more with Slicer to get a more 3D structure
Here is my blog post for this week: Iteration
For my iteration project, I decided to improve on my sticker project. When I left off with it, it was pretty rough around the edges, and since it was my first attempt, my sticker suffered from having trouble correctly visualizing what the end product would be. In order to fix my original, I did a lot more image editing. I essentially created a reverse of the image. The end result was pretty good, the only faults to it being problems that I could antiticapate:
The several layers were difficult to apply correctly, and the red portion doesn’t pop out as much as I would have wanted it to, due to how I set the layers on top of each other. Not bad, overall. For the next sticker, I went back to inkscape and tried to come up with something really fun. I experimented with three designs. I ended up going with the makerspace logo, since the other designs ended up being far too complicated to get a clean layering, and also used different colors from what I was already using (I wanted to use up the scraps from what was left from my first sticker).
Here, the most difficult part was applying the parts of the sticker right. As you can see in the picture above, I used my second layer that I applied to serve as a guide for the next two layers.
The end result was super clean as a result!
When thinking of ideas for this project, I wanted to incorporate sewing or embroidery since I really enjoyed those weeks earlier in the semester. To step up my previous work a bit, I decided to use sewable LEDs. My final work is really a combination of a couple of previous projects. Originally, I was planning to have sewing and wood working combined to make a new name tag that wasn’t laser-engraved but embroidered and lit up with LEDs. When I thought about the usability of this, I was discouraged since it wouldn’t be very easy to use a piece of wood and cloth as a nametag. But the wood gave me the idea to make it a frame instead – that way I could make a larger piece of work and not have to limit myself to a small piece of wood.
Since a frame wouldn’t make much sense I thought about making the embroidery part a quote or the name of my club that could be used as art. The first part in making this was the wood frame, which was relatively easy but I had to fiddle with it quite a bit towards the end. Once I had the measures of the frame, I could start the embroidery and make sure the text wasn’t too big or small. My first run with the embroidery machine was a failure since the cloth and thread caught on the machine and I had to cut the whole thing just to remove it from the machine. The frustrating thing was that it was entirely done by that point, it just wouldn’t let go without me completely cutting it off.
I attempted to do a fading effect with the thread to make it switch between multiple colors, but with the stabilizer on the back of the cloth, since didn’t have the same effect that I had hoped. With my second try, I just used one color thread and it thankfully worked. After that was set, I started working with the LEDs. Sewing by hand isn’t my forte and sewing LEDs is a little finicky since you have to wrap the conductive thread around each LED multiple times in order to ensure it connects. I messed up the first time I tried this because I connected the positive side of the battery holder to the negative side of the first LED, so I was extra careful in not making that mistake again. Once I got the hang of it, it went okay but it didn’t look pretty from the right side.
I tried to cover up the messy parts with a bit of trim I found which was good since you can still see through it to see the lights. It still looks a little messy since I didn’t use a sewing machine to sew any part of it, but I thought it went okay since I hadn’t had any experience with sewable LEDs. I checked the connection with a sensor and it was completely connected everywhere. I had two purple LEDs and three blue and that was a bad combination since only the blue will light up. To fit it into the frame, I sanded down the sides of the inside that was cut from the frame a lot so the cloth would fit snugly without being too loose. This worked much better than the idea I previously had about cutting multiple different sizes of wood to see which would fit better.
If I had more time, I probably would have figured out how to make a hinge and an easel back so it wouldn’t have to only stand upright, but I didn’t want to attempt this without a hinge because I didn’t want it to be stuck in the same position forever. I also probably won’t be using sewable LEDs in the future even though it is a cool technology, it’s a lot of work if you’re sewing multiple on there and the battery life is very short.
For my iteration assignment, I decided to revisit the 3-d modelling assignment. In that assignment I made a lot of models that I wanted to print, but was only able to do the practical motor wall for iRobotics since the competition was coming soon during that time. The model I wanted to print the most and had the most fun making was my 3-d rendition of the painting Scream, which was altered by replacing the titular characters face with my own:
To continue with this theme into the iteration assignment, I decided to make a full 3-d diorama of the scene to place the model into. I planned to use a laser cutter to make the background in three separate stages: first the “frame” for the painting, then the pier/dock behind the screaming person, and finally the background bay/sky.
I needed to do measurements to make sure the sizes matched the painting, so I did the printing first to get a proper size of the model in order to scale the background properly, as you can see noted down in the corner of the above picture.
Here is the model when I uploaded and as it’s printing
Here it is just out of the printer:
And after a bit of clean up, voila! A screaming Jacob!
I found this process decidedly less difficult than I thought it’d be, but I think that was in part thanks to the fact that I’d been 3-d printing parts in my free time for senior design, so I knew to add the supports and raft, and how to tweak fill and other odds and ends to my liking. I don’t think the lighting does it justice, but I really liked how the model came out even on its own, and was excited to turn it into a real piece of art!
Next up was drawing out in inkscape the parts for the rest of the painting.
Initially I did a lot of tinkering around, my main method to recreate the painting was to trace over it, but I decided to directly trace the bitmap of the painting for the sky, and then edit out the nodes of the other portions of the painting. In addition I decided to make the sky its own piece, adding a bit of extra depth to the background. You wouldn’t believe how time consuming getting that pier down was, I tinkered with the angles and nodes of the different shapes quite a lot, and much to my chagrin the first time I did it I forgot to save and the file was lost, forcing me to restart from scratch. The main thing was that I rastered the darker parts of the painting, and left the lighter parts untouched to give the illusion of lighting like in the painting. In addition, I made sure to cut holes in the railings so that the background could be seen through them, adding more depth and really selling the 3-d feel of the final product.
Here were the pieces I settled for as the final parts, and a comparison to the original painting.
And here we next come up to final parts just before cutting, You’ll see an additional base to support the different pieces and small support blocks to hold the up.
Here we have the piece as it’s being cut. (in this case it rastered first, technically)
Of the two main components, I’d say the laser cutter was definitely the most frustrating for me, constantly tinkering with the angles of the railings to properly align and then tracing over the raster outlines proved quite annoying. In addition the first time I cut the pieces out, I accidentally set the raster to the same settings as the vector, so I became very confused we the laser started cutting out a a mountain shaped hole by going back and forth. However, I felt pretty rewarded by the outcome after I assembled all of my pieces together:
I really liked how this assignment came out, and am glad I did it, even in spite of some of the frustrations I had. The only issue I have is that the front frame dried in place slightly crooked, and I don’t want to try to force it into place since I don’t want to snap the wood, but otherwise the model came out better than I’d imagined it would! However, you may have noticed the small hole I put in front of the model, this was originally planned to add an LED under the face, but I realized that there wasn’t enough clearance under the base to put one there, so I decided against putting one there in the final product.
It does look pretty good on top of a desk lamp though.
This week, we were tasked to make something new out of the things that we have learned throughout the semester. Earlier in the semester, I have created a motion sensor LED light where the LED light lights up when motion is detected. To iterate on that design, I decided to create a ‘smart dustbin’ that opens its lid when it detects motion (people trying to throw things). For this project, I have used laser cutting and Arduino.
Motion sensor LED light
Initial design for project
To make the body of the dustbin, I decided to create a cube out of plywood. I used makeabox.io in order to print out the outline of the box. Using this website, I did not have to figure out the measurements in order to cut off the plywood. I have also measured out my sensor and added in the necessary holes for the box.
After printing having my six sides of the cubes cut off, I realised that I did not consider that a little space is needed in order to put the boxes together. As a result, I had to use a hammer to hit the corners of the boxes together. (I felt really bad because I was making so much noise at the Fablab!) While it was more trouble than expected to put the box together, the box has become really hard to pull apart, which is actually a good thing!
After putting the box together, I used the code from the motion sensor project and edited it so that the output will move the servo 180 degree (in order to open the lid of the dustbin). Instead of using the PIR motion sensor, I decided to use the ultrasonic sensor. This took a while as I do not have a lot of coding experience, but thanks to Google, I managed to get it to work!
Here’s a picture of my final project:
Essentially, the dustbin will detect if someone passes by. When it detects motion, it will send to servo to turn a 180 degree. I initially wanted to place the servo inside the box, but found it hard to make the lid to close once it opens. Thus I decided to put the servo on top of the lid/ outside the box. Since the tip of the servo is connected to the lid, the servo will pull the lid along with it, opening the dustbin. Here, it took me some trial and error to figure out the right tension of the string between the tip of the servo and the lid. Since a looser tension will not close the lid when servo goes back to its initial position, and a higher tension will prevent the servo to turn a full 180 degree. Nevertheless, after some time, I finally managed to get it to work.
Here’s a video of it at work: smart dustbin
However, I realised that the lid is not closing properly after a couple of rounds. I figured that this is because the gap between the two parts of the lids (that is connected by the tape) becomes loose after several rounds, pushing the smaller lid outward. I realised that I should have cut down this section maybe about 2-3mm smaller in order for this work seamlessly.
Certainly, my project is not perfect and there is still room for improvement, but I’m pretty proud with what I was able to make for this project.
For this assignment we were tasked with remaking an idea from a previous assignment in a meaningful way. I choose to re make my vinyl sticker and use different technologies in order to create a more interesting final product. Here you can see a video of my sticker.
From the video you can see that the majority of the sticker came out well, the only major fault was that the letters were not cut out well. The inner section of the “B” and the “R” were missing and one of the “E’s” was crooked. If I were to try and remake this lettering using the vinyl cutter the result would most likely be very similar unless I dramatically increased the size of the font. Instead, I decided to use the laser cutter and layers of clear acrylic to replicate the effect of the vinyl sticker. I also wanted to integrate an arduino and some neopixels in order to make the project more interesting.
I started by modeling the acyrlic inserts as well as the bottom container in Fusion360. Each of the acrylic inserts has tabs on the bottom that help it line up with the base as well as serve as a path way for the lights of the neopixels to pass through. All together there will be three acrylic inserts in order to make all of the layers.
After I had modeled everything in Fusion360 I was able to start fabrication. For the lower base I used 3D printing to replicate the complex shapes.
Top part of base to hold acrylic
Bottom part of base to encase the arduino
There was some layer separation issues on these prints that didn’t look so great but functionally they worked. For the acrylic inserts I was able to import the sketch from Fusion360 into InkScape where I then made duplicates and merged it with the original SVG file I had from the sticker project. Because the neopixels are slightly offset in order to reduce light bleeding between the layers, two of the acrylic inserts needed to have the tabs on mirrored. In order to achieve this I simply mirrored the svg in InkScape. Unfortunately when I did this I mirrored the vectored content and the rastered content separately. This caused the raster art to be mirrored on it.s own axis as opposed to the axis of the vector shape. This meant that the rastered art did not line up through all of the layers.
Middle insert not lining up with the other two
I was able to modify my vector files so that the middle insert would be lined up with the other two.
After the inserts were completed I was able to work on attaching the neopixels to the base of the stand. Because I was had three rows of LEDs I needed to cut the strand into three sections and then wire them back together in order to make a new strand. This step was simple enough with a soldering iron but I did end up wiring the extensions on the wrong side initially and had to redo them. Once I had my new stand I was able to hot glue it to the top of my base.
From here I just connected the assembly to my arduino and found come code online that cycled all of the lights in a neopixel strand through the rainbow. A video of it cycling though all of the colors can be seen here.
Although this was the second iteration of the project, that does not mean that this is a final product or that there is nothing that could be improved. When designing the enclosure for the arduino I did not take into account the fact that the arduino itself would need power through a battery bank and or an external cable. This means that the base can not contain all of the electronics itself which is a bit disappointing. The holes in the top component of the base also are a bit loose with the inserts in. Additionally I noticed near the end of my project that my acrylic inserts acquired a lot of micro scratches through the process that are sadly visible because of the lighting effects. If I were to iterate through this project again I think I would make some major changes to the base of the piece and be more careful when handling and storing the acrylic.
Despite these flaws I was very pleased with how this came out. The lighting effects are very cool looking and are even clearly visible during the day! I was also pleased to see that the base I modeled in Fusion360 worked so well the first time.
Initial Design and Planning
I wanted to redo my nametag for the iteration assignment ever since I found out I actually lasered the wrong side of the acrylic (which is why it was hard to see the raster design :/). My initial nametag (the build process of which is given here) had the theme of a computer monitor and different parts of the nametag (my name, job titles, etc.) were delimited by pseudo-Linux shell commands. For my iteration, I wanted to keep the computer theme of the nametag but augment it with an actual computer, namely a Pi Zero W, that other people could interact with from their laptops or phones. The Pi would be powered by a spare micro-USB phone battery bank I had lying around.
So my iterative design was to use the same text of my first nametag to keep the computer theme going, but make a bigger nametag box that contained a Pi Zero W. That Pi Zero W would run a web server that other people could access via a web browser (e.g. Edge, Chrome) to interact with the nametag. Bolting on a large screen to the nametag is a bit overkill and would be distracting, so instead I planned to have LEDs next to the psuedo-Linux commands that, when someone typed in the corresponding command on the Pi’s web page, would turn that command’s LED.
Sketch of Nametag 2.0. Interaction between nametag and other user shown (e.g. HTTP requests through a web browser)
Pi Zero W and LED circuitry
All of the code I wrote for the Pi Zero W are on Github and you can view it here. There are 2 main Python libraries I used:
- Flask to run the webserver. You can install Flask from any Python package manager worth its salt and you can view its source code on Github here
- RPi.GPIO to control the LEDs via GPIO pins. You can find the library on PyPi here
Each LED is a simple series circuit with a GPIO pin as the input voltage, followed by a 330 Ohm resistor, and then leading to ground. To make the wiring of multiple LEDs easier, I combined some of the wiring onto a mini breadboard. This especially helped with wiring to ground since there are a finite number of GPIO pins on the Pi dedicated to ground.
One LED circuit. The top right of the breadboard is the common row used for ground
I recorded a short video while I was testing the LED Python control code, which you can view here
All 3 LEDs Attached to Breadboard and Pi. Each LED has its own GPIO output pin, but all LEDs are lead to the same ground GPIO pin through a common row on the breadboard
I wrote a test script to test multiple LEDs wired up together and to make sure that I wasn’t turning on multiple LEDs at the same time. You can see the video here.
Pi Zero W and Flask Webserver
The Flask webserver runs out of port 8080 has two primary endpoints for other devices to interact with it. The first is “/home”, which returns an HTML page. Users that want to interact with the nametag will navigate their web browser to this endpoint. They will see a webpage like the below picture
Picture of the /home webpage on my laptop’s web browser
The user has to type in the same commands that are on the nametag (“whoami”, “ls -l /home/mike/work”, or “sudo rm -rf /bad/vibes”) and dictate how long to turn on the LED. When they click “Send Command” after typing in their command, the webpage makes an HTTP request to the second main endpoint, /activateLED. If the command was typed correctly on the webpage, then the LED corresponding to that command will be illuminated for however many seconds the user specified.
Small Tangent About IP Addresses
One problem I didn’t anticipate right away is how to determine what the IP address of the Pi will be, like 220.127.116.11. In order for two computers to communicate in a network, the sender needs to know the IP address of the destination computer so that the data is correctly routed through the network.
Typically when you browse the Internet, you never have to think about IP addresses because the Internet infrastructure has something called Domain Name System (DNS). With DNS, you just have to remember a simple string like “google.com” or “cucfablab.org” and DNS will take care of figuring out the IP address of the correct webserver. But with my project, I don’t have DNS at my disposal. So for another computer to connect to the Pi Zero W in the nametag, the user has to explicitly know the IP address of the Pi on the network the Pi is currently connected to. This is slightly complicated further because in typical home networks, devices that connect to the WiFi router are assigned private IP addresses via a system called Dynamic Host Control Protocol (DHCP) and the private IP address a device is assigned may be different on different days when the device joins the network again. You can statically assign IP addresses within the private network, but every time you do this a sysadmin cries.
The bottom line is that before I could interact with the Pi wirelessly, I had to hook it up to a monitor to view its network configurations and assigned IP address. For example, I used a monitor in the Fab Lab to connect the Pi to its Wifi (IllinoisNet_Guest instead of IllinoisNet because IllinoisNet is configured to not allow computers running unusual operating systems, like Raspbian on the Pi, from connecting to that network) and to view its assigned private IP address. I did this by plugging into a Pi, opening up a terminal and typing
The output was is shown above and the parts we care about are highlighted in red.
ifconfig spits out all the network configuration information for all network interfaces of a computer (e.g. Ethernet, WiFi, loopback). For our purposes, we only care about the IP address for the WiFi interface, which is denoted in the wlan0 section. Inside that section we care most about the inet line, which contains the IP address of our Pi (172.16.192.29).
Now that we know the IP address of the Pi, a computer connected to the same network as the Pi (IllinoisNet_Guest) can access its home page by opening up a web browser and going to the URL “172.16.192.29:8080/home”…which is the private IP address of the Pi (172.16.192.29), followed by a colon and then the port we want to connect (8080, since that’s the port Flask is running out of), followed he endpoint we want to use (“/home”)
Also, to actually start the webserver I have to input the command to start the webserver on the Pi itself. Now that I know the IP address of the Pi, I can login to the Pi remotely via SSH and start the webserver with the command
nohup python app.py &
python app.py starts the webserver, the & says to run the command in the background, and nohup allows the command to still keep running after I logout of the SSH session. This way to start the nametag I just have to SSH into the Pi for a few minutes to start the server, then I can disconnect from the Pi and the webserver will keep running until I power off the Pi.
Making the Nametag Box Pieces
To make the nametag box I measured the size of the whole circuit (Pi + battery+ wiring + breadboard) and found I needed a box at least the size (8 x 4 x 4.5) inches to contain the whole package and have a 16:9 “screen resolution” for the front of the box.
The front of the nametag would be a larger version of my v1 nametag, and the rest of the box would be cut out of plywood. I designed the front of the nametag by copy-pasting the text element from my v1 nametag’s SVG file and resizing it to fit the larger 8 x 4 inch dimensions.
The rest of the box was made by making simple rectangles in Inkscape and resizing them to the correct dimensions.
Some of the cut box pieces
I wanted to make the box be a press-fit box, so I manually added tabs and notches to each of the pieces so that they would press into place. However, after I cut everything out I realized that I misplaced some of the notches and I had to cut more into the notch so all the pieces would fit. Unfortunately it wasn’t until after I had cut out everything that someone told me about Box Designer, an online application that will generate press fit boxes designs for you.
Now I could go on to make the final nametag. First, I drilled out holes on the left side panel to align with the commands on the front of the nametag (the blue lines I drew on the following picture) for the LEDs to sit in. I drilled the holes large enough to fit the LED legs through but small enough that the LED itself would not go through the hole.
Then I assembled the bottom, back, and side panels together. I used duct-tape to hold the pieces in place while I glued the edges where the pieces connected (since my press-fit design failed).
Then I placed the Pi, battery, and LED circuity inside the box and powered up the Pi with the battery.
Finally, I added on the top and front portions of the box. I didn’t glue these pieces in place because I wanted some pieces free to be taken off when I had to power off the Pi.
You can see the nametag in action using my home WiFi in this video.
Final Reflection and v3.0?
I’m happy with how the Pi Zero and electronics worked out, but the nametag box could be better. As mentioned previously in this blog, I could have used the Box Designer to make a press-fit box to save myself a lot of time and actually make a true press-fit box. But compared to v1.0, the actual nametag is much easier to read than v1.0: the font is larger and I remembered to raster the right side of the acrylic 😛
I was surprised with how much physical space the whole Pi package took up (Pi Zero + battery + USB cable + LED circuitry. In my head, the nametag box was supposed to be smaller than the (8 x 4 x 4.5) inches the final result turned out to be.
Making the webserver was easy because I’ve used the Flask library many times for various CS classes. It’s a great library for writing quick HTTP webservers and simple to use.
If I was to iterate on this iteration, I would use Box Designer to make a cleaner box and I would pretty up the /home webpage to make it feel more like an actual computer terminal (something like this).
Wow, I can’t believe that the semester is coming to an end (graduation is just around the corner, don’t know what to feel about it). So this week we had to do our iteration assignment. We have to take something that we have previously done (or the skills that we have previously learned) and try to make something unique and kick it up a notch.
So, I knew that I wanted to do something with Arduino. This part of the class – although quite tedious for someone who is a newbie in coding – piqued my interest the most. With Arduino, I can create things that I thought I would never be able to do since I am not an engineer. After browsing the internet for ideas, I came to this MakeUseOf article on how to make a mood lamp (https://www.makeuseof.com/tag/build-companion-cube-mood-lamp/). I found this article really interesting because I think it would be a really neat idea to have a mood lamp by my bedside for ambiance. In addition to that, I get to use other materials I have not used previously in the lab such as laser printing acrylics and woodworking.
I chose this project to explore the possibilities of using the laser printer. Previously, I have only done it to create a simple name tag out of wood. I really wanted to use other materials for experiments. Second, I also wanted to explore the possibilities that an Arduino can manage. The oscillating lights code for the mood lamp is the perfect approach to this intention.
So first I had to tweak with the Arduino. I created the circuit according to the schematics presented in the article. It took some tries and redoing to get the inputs correct, but after that, I managed to finish the Arduino circuit.
Now came the interesting part. I used Inkscape to create my design for the mood lamp cover. I was inspired by the tesseract in the Avengers movie (the Endgame movie is coming out this week!).
To pay homage to that, I designed the mood lamp cover to be a simple cube. I used the acrylic to create a simple yet aesthetically pleasing design. I was excited when the laser printing was done, however, I did not calculate the thickness of the acrylic would add an extra 0.6cm to my cube, and some of the parts did not fit well. So I had to redesign it in Inkscape and cut it again to create the perfect cube. After that, I decided that I want to create a wooden box below to hide the Arduino. I used the same technique but this time I used wood so that the Arduino would not be visible from the outside. Then I used the hot glue gun to assemble everything. I decided to not stick the lamp cover (acrylic cube) to the Arduino cover (wooden box) so that if maintenance is needed (like a broken bulb or problematic cable) it is possible to do it without disassembling (breaking) the whole thing. All in all, I really enjoyed the process and really proud of what I accomplished. This class had been a very interesting and fun class. To be honest it is the class that I really look forward to every week because I get to make things and learn more about being a maker.
I made the lamp cover to be removable so that maintenance could still be done
how the lamp looks like without any power source
The light starts as blue
The light oscillates to purple
The light oscillates back