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.
Original: Simple temperature sensor that shows a color between blue-green-red depending on where the temperature is relative to a low-medium-high set-value.
Light on Low Setting
Light on Middle Setting
My goal was to turn the temperature sensor into a more useful, more ‘physical’ thermometer. Feature-wise, this included integrating more sensors that I’ve never used before: An lcd screen, buzzer, button, and changed the single RGB LED for an array of neopixels. The max-min range of the thermometer is changeable in the code easily. The neopixels start at blue at the bottom, and interpolate up to red at the top. An alarm can be set to go off if the temperature goes above (or below, with a different flag) a certain temperature – and a button can enable/disable the alarm. The lcd screen displays the current temperature.
Laser-etch of the thermometer panel. Made before the extension, so I left some options open for additional buttons, etc
Wiring mid-assembly. Components stuck to the acrylic top. They’re only taped because I intend to return the components
Wiring fully finished. All lights are on because I lowered the temperature’s maximum to better test them.
Pastebin of final code: https://pastebin.com/ee14AiWq
I spent a lot of time tinkering with the LCD – the trouble being that there are several libraries with the same name (LiquidCrystal_I2C.h) and it took a while to find one that worked. This library did the trick: https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
Clean wiring was another thing I struggled with – especially when factoring in the box itself. I used a simple press-fit box and smoothed out an edge on each of the walls.
Otherwise, incrementally adding more components to the arduino wasn’t an issue – adding more sensors is easy enough once you’ve done it a few times.
I’m pretty happy with how it turned out, but if I had the chance to iterate again, I might redesign the box with thought given to how the components will sit.
This week, I tried to build a machine powered by an arduino and two servos that would walk. My initial design had two servos tightly rubber banded together, with popsicle sticks glued onto the mounts. I did a lot of experimentation with getting it to move differently by changing the rates and timings of turning the sticks. I couldn’t achieve very coordinated motion with this initial design. The main issue I had to consider was how to get the bot to be able to reset the servos after they carried it forward (without the reset moving it backward too much).
I came back to the bot and decided to create a pipe cleaner tripod underneath it and shorten one of the sticks. I thought this might make the movement easier to analyze and increment off of. Unfortunately I had less time than I would have liked to spend with this because I had to go through a lengthy process of elimination of working/faulty parts, which came down to a single malfunctioning wire. I ended up with a robot that moves slowly sideways, and only when set up in a very particular way.
I feel I’ve reached a stage close enough to completion to make this post. I decided to challenge myself and make a plushie for this project. Initially, what was most difficult was making clean and tight cuts in the fabric.
My efforts there were met with mixed success, and some parts of the plushie suffer (all the appliques were really hard). Straight line sewing stuff together was difficult since I had to be very mindful of the curvature to sew within the allowed margins. Whipstitching was fun but took a very long time since there were a lot of small pieces. Basically, everything took a long time.
When I finally wrapped things up with the face, I used the machine to make straight line stitches to construct the form of the body. I had to be very patient here since I had to constantly compensate for bad edges and shape by pulling fabric and shifting it. Finally, I stuffed it thoroughly and did a ladder stitch to close the back.
I formatted this post as what nearly amounts to stepping through my entire process because everything I did presented some kind of challenge that I wasn’t familiar with, and all of it was worth mentioning. Pretty fun stuff!
For the storyboard portion, I thought about a few different IoT ideas that have been going through my head for a while. I’ve been thinking about doing a final project with kubernetes running on Raspberry Pis/Arduinos to accomplish some complicated task. The one I’ve been thinking about was for creating a music visualizer that ran off spotify. I already have an arduino project using neopixels to visualize some mp3 files, so I was primarily thinking about how to trigger the system and how to interact with spotify. I looked through some Spotify API libraries and realized this wasn’t totally unreasonable to accomplish. Maybe a final project idea!
In lab, I decided to provide some visualization of a rotary encoder’s position. No particular reason or imspiration for this. I started off with a piece of example code that I modified to write the position of the encoder to the serial out. I verified that it worked, and then decided to try a try an LCD output. Eventually, I got mired in the LiquidCrystal docs and was running out of lab time, so I switched to the RGB LEDs. This was much more simple to implement, and the end product shows the LEDs switching to a different color when the encoder position passes a factor of 25. Pretty neat!
Overall, the process of troubleshooting with arduino code was something I was familiar with (looking through forums, scanning through and implementing parts of example/other’s code). I don’t see this device having many useful applications, but it could be fun to provide ambient light on a joystick for a modded controller.
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.