My final project is inspired by Mother London’s “Wildhomes for Wildlife” campaign with Ikea.
Designers took Ikea furniture and repurposed it to make wacky and creative birdhomes. I want to do something similar utilizing ‘woodshop tools’ and ‘laser printing’ to make creative homes for bees. In addition to this, I want to have my 2 learning goals be really purposeful. Firstly, I want to challenge myself to use limited resources. Only using items that I can scavenge and give a second life to. I think using recycled and repurposed materials will add another level to this sustainability focused project, as well as challenge me to not take the easiest route. Secondly, I want to work on my time management. I plan to allow myself more time than I think I need, as I’ve underestimated the time cost of nearly every project this semester.
Support-wise I think I will definitely need to reach for assistance with anything woodshop related. Friends & Fab Lab employees pls help. Additionally, I’ll use online resources like Google and Youtube to inspire the construction of the house itself and then creatively design the outside to be aesthetically pleasing in the garden.
Not sure why it uploaded upside down. But I’ve decided to call the project “Air Bee&Bee”
For my final project, I’d like to try my hand at creating a board game inspired by board games I’ve played such as evolution and munchkins!
To build this, I’ll use at least the laser cutter and the poster printer, but may end up using the 3-D printer as well. The main idea I have behind the game is for the players to have a lot of choice and be modular in play style, with multiple equally valid strategies to complete the game. This will help extend my learning by encouraging me to create from a unique design perspective in my experience, driven by how fun and playable something is rather than a technical or functionality perspective. Finally, I will need the support on the design and testing of the game, which I can through online research and my friends/peers, help in creating laminated cards, which I can get from dot, and a board for the game using the poster printer, which I can get from James/Duncan.
The first main learning goal of my final project is to learn how to use the poster printer to make a game board, and also how to use/design smaller objects with the laser printer since I’ve only done larger pieces so far. My second learning goal is to also learn about game design and playability from the perspective of a creator instead of a player.
For the initial concept and design, I was inspired by the movement of how a penguin waddles. Thus, for the pom pom bot, my goal was to make a penguin robot with a movement that was as close to a waddle as possible!
For the bot to walk, I planned on using 2 servo motors as the feet of the penguin. I would use the one sided attachment to the servo motors for each foot. My bot, as stated, would look like a penguin. In order to make this bot, I planned on using felt, foam, googly eyes, pipe cleaners, Popsicle sticks tape, and glue.
Below is a picture of my original notes and sketch for the initial concept.
My initial design for the bot. I had actually planned to use 4 servo motors. Two would be used for flapping the arms, but I would soon scrap this idea.
For the initial construction, I set up the two servo motors and used the attachment that had two sides, where one side was longer than the other. I made this change because I figured there would be more stability to the bot. I connected these servo motors by taping them both to a Popsicle stick. There was also a Popsicle stick attached to the middle of the connecting Popsicle stick. This second Popsicle stick would have the breadboard taped to it and, eventually, the penguin.
Below is a picture of my initial code:
My initial code for the penguin bot. It was not very complex because the two servo motors always moved at the same rate.
Below is a video of the initial construction:
The movement as seen in the video is more crab-like rather than waddling. As a result, for the redesign, my approach would be to make the movement of each servo motor to be slightly different.
The biggest challenge for this stage of the design was structuring it so that it wouldn’t fall backwards as it moved. Because the breadboard was taped to the back, the weight from it made it easy for it to fall over.
To improve it, I will mostly be focusing on improving the code so that the movement is more like waddling, and so that maybe it won’t jerk too much when it moves, which is part of what caused it to fall over. There won’t be any different materials for the 2nd prototype.
The focus for this second prototype was to correct the movement of the bot. My initial update to the code actually didn’t work as I had intended. My intention with the modified code was the have the motor for the right foot turn quickly when rotating clockwise and have the motor for the left foot turn quickly when rotating counter-clockwise. Though I correctly had the quick rotation on clockwise set for the right foot, I had the quick rotation on counter-clockwise also set on the right foot. This can be seen in the code below. There is also a video below that shows what this looked like.
Looking at the second loop in loop(), you can see that my conditional applied to servo2 (right foot) instead of servo1.
Looking at the video, you can see that the right foot has a jerky motion in both directions, whereas the left foot rotates smoothly in both directions. This is because of the errant code.
Below, you can see my corrected code and the video of the corrected movement.
Looking at this code, you can see that the left foot is now having its position set in the conditional in the second loop.
Looking at the video above, you can see that the right foot turns more sharply when it rotates clockwise, and the left foot turns more sharply when it rotates counter-clockwise, giving the bot more of a waddling motion.
In terms of improvements for the final version, the bot was still having trouble staying up when it was moving. Thus, my next objective would be to stabilize the bot more and even the weight out a little more, while also adding the final touches with the felt, foam, googly eyes, and pipe cleaners for the actual penguin.
Final Pom Pom Bot
For the final bot, I improved the stability by adding several Popsicle sticks on top of the servo motors to balance out the weight of the breadboard. I also added an additional two Popsicle sticks: one that was parallel to the vertical Popsicle stick and perpendicular to the horizontal one, and one that was lodged in between the other new vertical one and the previous one. The second one was added so that the bot would be taller and would support the full penguin that I made from the felt and foam. Below is a picture of the bot without the penguin attached and a picture with the penguin attached.
The final bot without the felt+foam penguin attached. Note the four Popsicle sticks on top of the servo motors and the additional two vertical Popsicle sticks.
The final bot with the penguin attached!
Here is the Google Drive link to the final bot video: https://drive.google.com/file/d/1xpnezsJ8GEvwFD2q6kZvsk7Tn0o7fQAW/view?usp=sharing
In the video, the orange pipe cleaner is Point A and the brown pipe cleaner is Point B. In the video, you can see that the bot successfully moves forward from Point A to Point B!
In terms of how this final bot differs from the original concept, the only real difference is that this bot does not feature the flapping arms that I originally planned to make. This was primarily because one Arduino would not be capable of sustaining 4 servo motors at the same time without an external battery as a power source.
Overall, there wasn’t anything too new about this design process for me because I am a computer science student. Thus, having to update code and improve a project’s design structure was something that I was relatively comfortable with! If I had to approach a similar problem in the future, something I would do differently is evaluate whether there is a need for additional power sources like a battery. I think I could have made a much cooler penguin if I had the battery and necessary connectors for it!
For this week’s continuation of Arduino, we incorporated movement using servo motors. Our assignment was to build a locomotive pom-pom bot using these motors, the Arduino for programming the movement, and basic arts and crafts skills for the robot creation.
In honor of Game of Thrones premiering its last season this weekend, I wanted to try creating a dragon. My initial prototype imitated simple wing movement.
While using the servo motors to create movement in the dragon’s wings was my original plan for this project, I figured it was too simple for the final product and obviously did not incorporate the “walking” movement that we were asked to do.
So for my second prototype, I just wanted to try creating simple “walking” movement. I taped two servo motors together and some sort of initial skeletal body, and programmed the Arduino to rotate the motors in a back and forth motion. Only having two motors on me, I could only imitate movement for what would be the two front legs of the dragon.
It sort of worked. Because of the lack of friction however, the prototype mostly moves backwards or in place rather than forward. So for my next and final prototype, I tried hot gluing all the parts together rather than tape for better stability, and added some decoration to make it look more like a dragon as well as adding some weight for better friction.
As you can see, I’m not a very crafty person… the dragon turned out to look more like a chicken. I even tried adding some fire coming out of its mouth.
Unfortunately the extra weight and stability did not help it go forward, but at least it’s moving more in place rather than backwards. If I had more time on this project, I would definitely look more into increasing the friction between the feet and surface for better, more realistic movement, as well as more time on decorating.
I learned how to make two motors work at the same time in class. I also learned how to change the starting position and delay time to make the motors go at a different time or different speed. This is the video of my first prototype going forward. Later, I found a way to make it go straight with two motors which is how I created my bots.
It was having difficulty going forward because it was heavy and the friction from the desk. I attached a popsicle stick to give a little support. I thought it would make it easier to move forward; however, now that popsicle stick is attached, it was having more frictions. I decided to give more support to the motors so they don’t have to carry way too much weight going forward. This is how I got to make my tarantula. I made some change in my code to make the two motors go at a different time. This way, they could resist frictions and go forward more easily. This is the final product of my Arduino bot. The front two legs of my tarantula have two motors attached and make the bot moves forward. I came to this design after figuring out how to move the front two motors. It doesn’t go straight so it reminded me of insects/animals that don’t move in a straight line. Some of the improvements I made to the first design are changes in code that make two motors work at a different time, perfect delay time and starting positions to make it go forward, perfect distance between two motors so they can resist the frictions, and support system from the popsicle sticks.
It was definitely challenging to make changes in code without help from instructors. However, my classmates who are familiar with coding helped me write codes and understand how to resist the frictions. I was kind of discouraged when it was working and other people were making such cool bots. I felt a little incompetent, but I figured things out myself and created this cute tarantula! It always feels good after I finish my project after having so many emotional obstacles during the process.
I’m just surprised by how many cool things you can do with Arduino. I hope to learn more skills so I can create more cool stuff with it.
We began the second portion of the Arduino unit by experimenting with servos in class. We were shown the Sweep program by Barragan and how to tweak its variables. Then, we were instructed to get two servos running at the same time. Please see my in-class servos below.
For my pom-pom bot, I took inspiration from the funky droids in Star Wars that sort of shuffle around on two legs. I began by sketching out a final product that I would want to create after my first iteration. I went online and looked for the Star Wars droid that I was thinking of, which turned out to be called a Gonk Droid, and made a sketch based off of it. Please see my drawing and the Star Wars droid that inspired it below.
I had the layout of my final pom-pom bot, but I wanted to see if I could switch up the design for my first iteration. I started by cutting out a piece of cardboard that would form the bottom frame of this first bot, and I cut a rectangle in the middle where two servos could go. The idea was that the bot would drag itself across a surface with the two servo arms. I successfully created this bot to my vision, but it was difficult to get it to move properly. I modified Barragan’s Sweep code that was used in class and tried to tweak some variables to get the right movement. The result was a prototype that moved in a skewed, circular pattern. After working on this for a while, I moved onto the second iteration. Please see the first iteration below.
Next I began work on the second iteration of this project. Because I wanted to create a droid that was similar to the one mentioned above, I reused the same base from the first iteration but, I flipped the servos to have their arms on the outside. I then created legs with popsicle sticks that I hot-glued and tied to the servo arms with rubber bands. This initially created a problem for me because I had changed the orientation of the servos, meaning that I had to adjust the code to align with the new orientation. I again used Barragan’s Sweep code and modified it to my needs. Please see the code and in-progress second iteration below.
Finally, I finished the second iteration by adding a back, front, and top to the droid. I used cardboard and glued on paper that I designed with a sharpie and some markers. The end result was a droid that was able to scuffle from point A to point B. Please see the final bot below.
Overall, I found this project to be fun and educational, because I had to consider aspects that I normally do not work with. For example, issues I had involved precise movement adjustments through code, getting the correct weight so that the droid could stand, and making sure that the legs were secured correctly to the servos. All of these gave me a hard time at one point or another, but after trying out different ideas and positions, I was able to get the droid to move in a straight line. If I were to do this project again, I would try to get the droid to take longer strides. The ones in Star Wars do shuffle in a similar way, but it would be interesting to see if I could make a faster droid. Thank you for reading.
Original code that was modified: Barragan’s Sweep program found in Arduino examples
Gonk Droid image: https://starwars.fandom.com/wiki/GNK_power_droid
Link to the write up:
My initial thought was to create an AT-AT walker from Star Wars. The idea was to build it with an upper rectangular structure and four motors with popsicle sticks attached to act as the legs. The movement would be as follows: front left, back left, front right, back right. This came from the actual movement of an AT-AT.
Upon initially building prototype #1, I found this movement would not be possible with just four motors. The real AT-AT has many joints and re-creating it’s motion would require many more than just four motors and popsicle sticks. In the first prototype above, I tried mimicking the real AT-AT’s movement, but it just kept falling over. As for the software in the first iteration, I tried overcomplicating it at first but then nothing really worked much at all, so I simplified it greatly. It ended up as just the basic servo code, but repeated code for each of the legs to move at different times. I decided that since this still didn’t work, I should take another movement approach.
For my next prototype, I decided to completely change the movement pattern and add some weights to the upper body to stabilize the robot.
Second Iteration Video
For the movement, I thought of moving the front legs together and the back legs together. If the front legs move forward to a greater angle than the back legs, with a weight above them too, I believed that would cause the robot to move.
One problem that I encountered here was that the legs position was not being updated in the code. I asked a friend for help and we figured that it was because I was passing the position by value and not by reference.
In the case of the first iteration, it did move generally in a direction, but turned at unpredictable angles. I had to find a way to fix that for the final iteration.
Final Iteration Video
For the final iteration, my goals were to:
- fix the movement so that it moved fairly straight in a direction
- make it ‘wireless,’ in that the wires and battery would all be inside the upper body
- cover up as much of the wiring as possible, while still allowing the battery to be connected/disconnected.
To fix the movement in a random direction, I modified the code slightly and added rubber bands to the front two legs. This combined definitely helped it move in a fairly straight direction.
I also added some more popsicles to the top section of the body, so it could hold all of the electronics inside without falling out.
Once I glued that together and stuck the electronics inside, I confirmed that it still worked. It did, so I covered up most of the upper body with painter’s tape, leaving some spaces for battery connection/disconnection.
This project overall was fairly challenging. To move the four motors at the right times and the right amounts, without causing the robot to become off balance and fall over, was quite difficult. At one point it nearly fell off the table. I learned once again, that starting out simple is nearly always the way to go. When the first prototype for anything is overcomplicated, it will not be possible. Starting out with an easier design and working up from there is much more feasible.
For this assignment, we were tasked with creating a robot using Arduino with the capability of moving in a specific direction. We were allowed to make anything, so long as it moves. I decided to model my robot after a dog, since I like dogs, and planned to have its legs move individually in a specific order. I would try to place most of the weight toward the front in order to move the robot forward with each step. I had decided that I would make it using popsicle sticks, rubber bands, hot glue, and pipe cleaners.
The initial construction was not difficult. I tested to the range of motion of the servos, and then placed them on popsicle sticks in the way necessary for my preferred range of motion. I used hot glue to stick the popsicle sticks together, forming the body. While attaching the rubber bands to the bot to keep the servos in place, I decided that my robot was now based off of Clifford the big red dog.
As mentioned previously, I wanted to have each leg move individually using for loops, and then have them move together to complete the step. After finishing the program, this was the result:
As shown in the video, the robot simply fell over and did not move. In an attempt to remedy this, I shifted the weight even more forward, and attached the pipe cleaners, hoping the slight change in weight would help propel it forward.
Unfortunately, that resulted in the same problem. For my final fix, I adjusted the program in a way that caused the robot to take smaller steps. The result is below (The video is sped up to meet the file size limit):
As shown in the video, that robot managed to move forward without falling.
Although there were various points in which I was extremely frustrated, overall, I enjoyed the assignment. It was challenging, but fun to figure out a way to move the servos so that the robot could move. There are definitely areas that need improvement though. I am certain that I can make the movement smoother, and build it in a way that makes it harder for the robot to fall over. I was quite surprised by how much the size of the steps mattered in stabilizing the robot. This project has gotten me interested in trying even more new things with the Arduino kit that I bought. I’m glad that we had this assignment.
For this assignment, we had to create a pom-pom bot using Arduino and servo motors. The process was simple, but a bit challenging. This was my second time working with Arduinos, and the process went pretty smoothly, and I did not encounter a lot of difficulties. The coding part of the assignment was straightforward, and there was little to no complexity to it. The most important part was to create model of the robot, so that it can move without any difficulties.
The first part of this assignment was to come up with a concept of pom-pom bot. Initially, I thought about creating a spider, which would have six legs. I watched couple of videos on how spider walks; it helped me get a clear idea on how to design the robot. It was interesting to see that spider move its all the legs independently, and without a lot of coordination.
Sketch for Spider
To create a spider bot, its legs should move differently from the movements of other legs. I thought that the it would be bit challenging to create that, because it would need about six servo motors to create something like that.
I moved on from spider, and decided to make an ant like bot. The process was less complex than spider, because there was good coordination between the legs.
Sketch for Ant
The sketch gave me a clear idea of constructing the body of the bot.
My first prototype was basically creating a basic structure of concept that I had in mind. It took me two servo motors and few pop-sticks to construct it. Balancing the bot was a big part, because it would fall without the fall. Also the part in which motors where getting rotated, which was not what I thought of. I also had to figure correct speed and maximum and minimum angle of the servos.
For the second prototype, I tried to get rid of the problem in first prototype. I attached additional pop sticks, so that it can balance itself. I also attached two pop sticks in the middle of the bot, so that it does not fall. I also changed the speed and angle of the servo, so that it can move from one position to another. After making those changes, it worked well.
Final Pom-Pom Bot:
After getting done with the second prototype, the bot walked the way I wanted it to walk. So, for the final prototype, I focused on creating body of the bot and also trying different speeds and angles of the servo. One problem that I struggled with was that I did not note down the values for which the bot walked. So, after changes the values, I loosed the delay and position values of servo. The final bot was not able to walk like second prototype. However, the final product turned out well, and I was happy with the result.
Motivation and Initial Design:
Instead of doing something that mimicked walking, as seemed the case for most others, I decided to work with something more mechanical instead. Now, obviously wheels and propellers were out of the question, since the servo could only rotate 180 degrees at most. Instead, I happened upon the idea of a rowboat, and realized I could obtain a loop-like motion by chaining two servos together (https://www.youtube.com/watch?v=bpvC5AVfEVY for inspiration)
I wanted to use the base of a Grecian/Viking warship, with a large number of oars as propulsion. The ‘oars’ would be made using basic wooden dowels, and for lightness’s consideration I wanted to use cardboard/paper for the body. However, the main issue was the ‘slots’ for the oars to be sturdy enough to withstand the oar’s rotating motion, so I decided to stick with cardboard for the first prototype and hopefully laser-cut a housing for the second one.
The basic sketch/conception of the robot.
Build Process and Modification
There were a few things that came up on the prototype. The first was the fact that the servos had tiny extensions on the side to allow them to be screwed or bolted on external surfaces. This becomes problematic when attempting to lay the servo on its side, so I had to use some extra cardboard to elevate the servo so it stayed flat:
Padding at the bottom of the servo to allow it to lay flat
I also used thin-gauge wire to substitute in as a push rod/extension for the servo arms. The thin gauge allowed it to loop and slot into the servo arms nicely, but when placed under pressure and movement it also began to bend easily.
A good view of the arm extensions and oar mechanism. Note the bending in the extensions (green wire)
I attempted to rectify this by reinforcing the center areas with thicker-gauge steel wire, but its effect was limited. This are is probably the weakest part of the design, with the best alternative to use actual push rods found with servos.
The overall result was a bit lackluster (demo video found here: IMG_5476). The primary issues were that the servos were not properly secured to the cardboard, the extensions bent too much and the overall robot was a tad too heavy for the wooden dowels to move without sufficient leverage. I will likely transition to using paper and glue for the next iteration to help secure the servos more, as well as reduce weight. I may also have to acquire more servos and push rods in order to complete this, so until I find push rods the second iteration may have to be held back a bit.
Last week when we started designing our bots, I just doodled a snowman (Christmas may still be on my mind) and thought that it would be interesting to make something that doesn’t have feet move. The most a snowman could do if they could move would be a waddle, so I tried to replicate that throughout this process. Here’s my initial design:
I thought at first that it would give better traction to have the propeller stand on popsicle sticks, but once I tried this the whole thing either collapsed or didn’t move at all. I also thought along with this original design that I could hollow out a pom pom to fit the motor inside of it. Once I got to constructing, this also fell apart since I realized pom poms aren’t that big nor is it possible to hollow one out.
My first prototype was just the base of the bot with one motor that would be the primary movement and a ring of pom poms around the motor. I played around quite a lot here with the code to make it move the way I wanted. If the motor moved too fast or slow to go back to its original position, it would reverse the movement just made so I had to find the perfect delays and angles that the propeller would go to in order for it to move properly.
As seen above, I just did random colored pom poms for my prototype since there weren’t many white ones and I wanted to save those for my final design. Moving on, I had to decide how I would build the base up with another motor and the pom poms surrounding the entire thing. Pom poms were working pretty well, I just had to be careful about my placement of them so they would not interrupt the movement.
Once I had the primary motor functioning properly, I had to add my second motor. I wanted it on top of the previous one since it would be the least likely to interrupt the movement of the base. I didn’t want to glue the motors together obviously, so I took some putty and sealed the two motors together temporarily. The code for the second motor was easier since it didn’t effect the movement of the entire bot too much, but there was still some playing around that took place in order for it to be correct. It looks a little spastic, but I had to program it a little strange so it wouldn’t hit the pom poms as much as it could have.
Overall, I was trying to create a snowman image with my additions. The motor ended up being a broom made out of pipe cleaners, and I experimented with adding more pom poms in order for it to appear like it had three tiers, each smaller than the last.
After I had worked out the kinks with the code, my final bot design was focused on the look of it and how it moved with the extra weight on top. I got a bunch of white pom poms and hot glued them together to create the closest image of a snowman I could. I couldn’t glue the entire thing together, or else I thought I would damage the motors, so the top part is just stuck on top with some more putty and a paperclip as support. The bot definitely moved slower that it did without all the other additions, but it can still move from point a to point b – just a little slower than it did before. Overall, the final bot was not too different from my original concept, I just had to adapt to changes and be creative about fixing problems. While programming and crafting as not new to me separately, I had never done them together before which was a really interesting experience and it occurred to me just how much you can do with simple technologies like this.
google drive link: https://drive.google.com/open?id=1IDozK0A9jRfa95ccKO-WBvoDQPOqyyjX