For the maker space final project, I knew sort of what I wanted to do. Earlier in the semester I had made a theremin like device, that used ultrasonic sensors to produce different pitches. I wanted to rework that idea into something that was a bit more useable by incorporating that functionality into a midi controller. I hadn’t really worked with MIDI on the hardware level, so there was a little bit to get acquainted with as far as soldering and designing a circuit and making sure the serial data was written properly.
The most challenging part about this project was the housing. I decided that I would learn to use pressfit boxes for my required learned skill. I hadn’t used them before so I didn’t realize what I was getting myself into here, and it turned out to be a surprisingly complex and time consuming thing. I really had to spend a lot of time re-thinking how I wanted to design this box, and take a lot of caution in my measuring and such. A simple box can be just that: simple. This box was customized and includes a shutter flex lid, middle wall and top lid, so there was a lot of modifications I did, as well as vectorizing the shapes for the sensors and usb jack to stick out of. I guess what I’m most proud of with this box is that it does have a nice ‘finished’ quality to it. I believe that most people probably wouldn’t know what it was, but would recognize that there are some strong and nicely crafted design choices, and it has an appealing aesthetic, even if it is kind of bizarre.
One of my original learning goals with this project was to create something that had ‘good craftsmanship’. This was hard to define, but to me that meant that I was going to force myself not to take any shortcuts or anything, but really sit down and try to make a piece of hardware as presentable as possible and also as functional and sturdy as possible. I pushed myself to achieve this in my project in different ways. With the box, I went through a prototype phase to understand how the shutterbox design worked. I then considered multiple ways of modifying the design in different ways to get the effects I wanted. I also spent a lot more time than I ever expected on making sure that everything was going to match and line up. As I said above, the box was an accomplishment in itself, and I feel like I made something satisfactory.
Another aspect was implementing a real MIDI jack. This to me makes the piece more of an actual functional piece of equipment. It’s not just an arduino project that can spit out MIDI over USB, but the fact that it is MIDI capable for physical electronic instruments adds an air of professionality to it. Something else with the circuit design That I did was abandon bread boards. Although the circuit was originally designed on a bread board, I transferred it to perf board. All of the connections are soldered as well. I had done some soldering before, but this really put my skills to the test. I’m happy with the end result, because again I feel like pushing this project past a breadboard phase and choosing to hardwire it gives it a more professional feel, or beyond just a DIY project.
My secondary learning goal with this project was to learn more about press fit boxes. I did learn a lot about them, and I think i’ve talked about them enough already, so I’ll spare whoever is reading this.
My final main learning goal with the project was to become better at implementing my ideas, and turning them into real world pieces. This is a bit hard to explain what this means, but to me this means something along the lines of: How can I get his “idea” nailed down, and turn it into a “thing”, and not just a thing that carries out the idea but a real finished product. For me, I have a lot of ideas, but many of them never actually go through the metamorphosis of becoming reality. Along the way, many things change, and sometimes you realize you have to compromise or something, and the ‘thing’ you make is sort of far away from the original idea. As someone who has been making art of different varieties for a number of years, i’ve become accustomed to ‘going with the flow’ and accepting these compromises, or using them as points of inspiration in themselves. With this project I wanted to take a more deterministic approach, to me meaning that I would pre-plan everything, and try to design each step , with no compromises or shortcuts, and maintain a consistent methodical and ‘contractor-like’ attitude rather than an ‘artist-type’ attitude.
Although this is the hardest learning goal to explain, I feel like it was important to me because as I progressed through the course, This idea of craftsmanship kept popping up. For example, a really great project for me was the textiles project. I spent a lot of time creating a plushie, and I’m extremely proud of what I made, but there were some parts that were rushed through. I know from experience that some things can be rushed through, because having a finished product is a lot more important in some cases, so I tend to just get things out fast, and focus on making it real, not perfect. The course in general has taught me that making stuff is fun, obviously, but what really pays off is iterating through different designs, or redoing parts that were not created very well, and honing into something that you can really be proud of.
I believe this course has really given me more confidence with making things in general. Before this course, I had known how some of these things worked, and had assumed they were within my grasp. Things like arduino I felt like I could learn when I got a round to it, But with this class, it just kind of throws you into the pool and you have to learn to start swimming. So now that I’ve dealt with these things, I feel like I really can tackle bigger projects, that I know I wouldn’t be thinking about If I hadn’t had my experience. I suppose I do consider myself a maker, and I think I’ve sort of always been one. I’ve loved creating and making things my entire life, but I didn’t realize what makerspace or being a maker meant before having took the class. To me, being a maker is about really striving to do your best to create the things you want to make, the best that you can make them and committing your ideas to reality. Many people might think of something and say, “yeah, but I could never do that”, and shrug it off. I feel like a maker is someone that would say, “Hey, I can do something like that, using this tool I learned about before” or “Maybe so and so knows something about this, and they can help me make something”. I think that’s the most important thing about the makerspace community is the idea that anybody can come in and make their thoughts a reality. Not only this, but it can also be fun and easier than you might’ve thought.
For the in-class assignment, I thought a hatchet + log would be a cute and simple thing to create.
Using some cardstock and gray/black sharpies, I managed make a fairly accurate hatchet and a brown log.
Then, I glued the log onto a large popsicle stick as well as the servo and hatchet. It was through some trial & error that I got the angles right. The Arduino program was mostly similar to the Sweep program with modified angles & delays in it, with the final result:
And then for the out-of-class project, I wanted to make a rowboat! It would have a boat base, and two grippy oars that it would “row” itself with.
I realized that a repeated back and forth of the 180 degree servos might not let it move anywhere, but looking at the videos of previous bots, it looked like it might not be a problem.
In many of the videos, a slow forward motion and a rapid “reset” motion seemed to work in consistently moving the bot forwards. I thought that the reason for this might be because the slow forward motion lets the feet grip onto the floor better, while the rapid backward motion causes some slipping.
I trusted that the issue might not be something that needs solving, and began a prototype build.
This part was where I made the mistake of not taking many photos – but I originally had imagined this boat using only one servo. Since the two oars will make a symmetric motion, I thought about connecting the two oars in the middle, and letting one servo move both oars.
It was about an hour into this idea that I realized it’s a bad idea. It adds a lot of complexity, cramps the space, and requires a lot of precise holes and measurements.
So, crapping that idea, I kept the frame and attached two servos. Each oar has a dab of glue at the ends to keep it from slipping. Then the prototype/proof-of-concept was complete!
Then, I made someone to row the boat with some pipe cleaner, attached some actual paddles to the ends of the oars. I glued the little guy’s hands so that it can actually grab the oars :’)
And here’s the pretty simple circuitry:
The actual code wasn’t too different from the regular Sweep code either. After changing some delays, I just had to make sure that one motor goes from 0->180 while the other one goes from 180->0 since each servo is rowing on the opposite side of the other. Then, here was the final rowboat in action!
And by then I had already gotten out the googly eyes and then decided against putting them on the stick figure. So:
I felt that the hardest part of this project was the “getting it off the ground.” I especially felt this when going with my original design of using a single servo, but when I was trying to figure out how big, how far apart, or how narrow things should be. It felt like everything depended on everything else, and I couldn’t find a way to “incrementally” create what I had in mind without creating the whole thing at once. This was mainly because of the issue of not only moving parts, but parts that would swivel and slide past each other. I knew I could make drawings and measurements, After that though, I’m really glad that I opted for a two servo design.
Another difficulty was, really, just getting the boat to go straight. One oar kept getting better contact than the other, making it turn rather sharply to the right. I tried fixing this problem by adding shims to the bottom of one end, but that made it begin to turn the other way. After some iterations of trial and error, I finally got it moving straight enough for a 9 second video 🙂
I created a very poor implementation of a circuit design that I was very proud of. In the below video, I discuss issues with the quality of my implementation –
poorly secured battery, and a
poor work-around to prevent the battery from draining, and
poor connections between components.
I wanted to create a name tag, that was a wooden cube with a button on the top, and this button would turn on an LED. It would incorporate wood working, and circuit design. My plan was to redeem my poor copper circuit by addressing its issues in the following ways.
Secure my battery in place with superglue (I verified that this was safe).
Secure connections between components with Soldering rather than tightly wrapped copper tape
Circuit design where open circuit when button is unpressed, so that battery does not drain
Additionally, for the button design, I drew inspiration from Brandon’s Midi Controller project. I used the same design process and parameters as he did, and arrived at a well functioning ‘button’ with my name tag on it.
I also soldered the wires of my LED circuit to my LED. This was my first experience with soldering – my friends in Mechanical Engineering taught me to solder, and I took it from there. It was a rewarding process, I was surprised at how easily the solder material would melt and reform, and impressed by how secure the connections it created were.
I investigated and determined it was safe for me to solder one of the wires to the coin cell battery I was using (my initial plan was to secure it with copper tape). I soldered the black wire to the bottom of my battery.
My plan was that when the button was pushed, the battery would be directly beneath the button, and the button would make the blue wire touch the top of the battery and complete the circuit.
An issue I had was that if I just taped the blue wire to the base of mu button and pressed the button, it wouldn’t always reliably complete the circuit. I needed to always push the button at the location where the blue wire was taped below, so that that point was the lowest point and touched the battery.
I needed to create a larger surface area for the button to complete the circuit. So instead of the button pushing the end of the blue wire onto the button, it would push a copper tape onto the button. The copper tape would secure well to the button, and would ensure that it would have a larger area of contact with the button.
I had to find a way to connect the blue wire to the copper tape however, and here my MechE friends pointed out to me that I can solder the blue wire onto my copper tape! I was so excited about this possibility, I tried it and it worked perfectly. I am now a huge fan of soldering.
After I stick the tape to the bottom of my button, the full circuit looks like this.
To create the sides of my cube, I used popsicle sticks, and cut them down to the right size using a wood saw. Here’s how the finished product functions!
I’m very happy with how this project turned out. To test that I met my goals, I threw my cube against a wall and shook it in my hand very hard (in an attempt to loosen the connections. The soldered connections stayed intact, the heaviest component (the battery) was tightly secured with superglue, and the connection was always completed (irrespective of where my finger was positioned on the button) due to the larger surface area provided by the copper tape.
I’m glad that I was able to address all the shortcomings of my earlier copper tape project and create a much more reliable design.
During the week of the Iteration assignment, I opted participating in the Make-a-Thon.
My team was named “MOVI” and the goal was to design a protective guard for a prosthetic leg. Prosthetic legs are very sophisticated and are extremely valuable. Yet those products are worn at the part of our body with the most movement and thus are exposed to scratches, impact, and lots more other threats in daily life. The reference model, C-leg, cost more than $100K. It has been a pain point among users, especially the active ones. To make the matter worse, people wearing only one of these are told to fell on the prosthetic side when imbalanced. Because, falling to the other side will make it rather difficult, if not impossible, to get up by themselves.
There are some prosthetic leg covers in the market. But most of them are like the same model: a dull thick bulky black cushion covers every section of the prosthetic leg. This leads to a problem, apart from the aesthetics, the back of the prosthetic knee is an area filled with delicate moving parts. The bulky protective sleeve covers that area and makes it very difficult to bend the knee.
Thus we got the needs of users:
easy for putting it on-and-off
protection against scratches
cushioning of physical impact (mostly in case of a fell)
not blocking knee flex
Our team started the design with a 3D scanning of the prosthetic leg. The model was then printed using three 3D printers and glued together.
For the prototype, the team proposed a solution combining a hinge in the front and straps in the back for the top need. The user reported that the phase 1 prototype lacks coverage of the leg. So we created the phase 2 prototype, just to specify the max area of protection that is necessary, considering need 2, 3 and 4. Therefore, we’ve combined the two prototype together and came up with the final design.
The final design adopted the hinge-straps design and used a two-layer solution for protection and aesthetic needs. A hard shell with patterns is put on the outside. In the future, users should be able to customize and switch the shell for their taste or even the mood at the moment. Two pieces of cushions are fixed inside of the shell. Each cushion used a heavy fabric cover with foam pads inside. To help further protect the user, we’ve inserted a layer of sheet metal between two layers of foam pads inside the cushion. Two extra cushion pads are added to the top for knee protection. Two straps go through holes on the shell. We fixed velcro strips onto the straps.
Our team was well-paced during the make-a-thon, and each step was well executed throughout the event. After rounds of presentations and expert review, our team got the championship of the competition.
During the event, I helped in the 3D printing post-process, and led the efforts in the fabric department. Cleaning and gluing the PLA parts were rather easy with the training in class. But I’ve got quite some challenge in the sewing part. I was quite confident before going into it. It was not long before I recognized the challenge. The cushion pad was of an irregular shape, with five corners of varied angles. And there was a significant thickness. For solving this problem, I design the two piece of fabric of different sizes, with all the side panels included in the front piece. While sewing the corners, Duncan gave me some useful tips. Cutting off some fabric inside the corner is key to a smooth outside. I’ve got some of them right, some of them not so.
Just when I felt a relief finished sewing the cushions, there came the straps. “It’s just an extended square, not so different from the little pouch we’ve done in class!” That thought was so wrong. The fact that we’ve chosen a waterproof rubber coated fabric and a very thin strap width made the task very challenging. Flipping the strap inside out was not far from a mission impossible. It was a combination of stick and brutal force and dedication that helped me finished those two straps.
I am very happy about the results, and the fact that our team has developed something useful in real life.
is my final project for this course. It is a voice-controlled robot that can move in all directions on the ground.
The robot integrated a Raspberry Pi (as the master for control), an Arduino (as the slave managing servo actions), and a mechanical base with two panels of “legs”. An offline speech recognition module called “Snips” is used for the project. A generated Snips assistant was configured and installed onto the Pi. Then a Python script was coded and set as a native service on the Pi. The script handles internal messages from the Snips assistant and parses them for robot command. The command will be sent to the Arduino using serial communication (USB A male to B male cable). The Arduino will then call servo functions based on the message. Currently, the robot can react to five commands: forward, backward, turn left, turn right, and stop.
The mechanical base was designed using Klann’s Linkage. It has the advantage of smooth progression and heavy load lifting, from the “D” shaped pattern from its legs. The robot was based on two panels of such linkage, each panel has two sets of legs. The robot can move forward or backward when the panels are all moving in the same direction. And it can make turns when the two panels move in different directions, similar to that of a tank.
Reinforced Frame Design
Spacer and Gear Prints
Laser Cut Parts
Parts for One Set of Legs
Legs Pre-assemble Back
Challenge 1: Power Solution
Since I had very limited knowledge of power supply of robots, I decided to take this part of the project first. And it’s proved to be a wise decision.
Each of the servos has a stall current of 1.5 Amps at 6.0 V. The Arduino can be powered with a variety of options. The Pi needs stable 5V and 1.5 to 2.0 Amps for reliable performance. I was thinking a high throughput power bank would be enough for all of these. But after putting everything into a test. It was pretty obvious that even a 15W dual USB output power bank won’t be enough. Then I turned to the idea of auxiliary power supply — using the power bank for the Pi and Arduino (board only), and one to two battery packs of 4x AA batteries for the servos. In theory, two battery packs are needed in a parallel setup, since the AA batteries have a reference current of 1.5 Amps. But in testing, I found that one would be enough for the robot to move. Since the load and frictions were not terribly enormous.
Challenge 2: Assembly
Proving the movement and leg patterns in software was one thing. But putting everything together and get a useable assembly is another story. With all the printing relief, and those many layers of acrylic parts, and screws, and spacers, I was not very successful in my first attempt. Quite some time were spent on sanding and drilling, reassembling and testing of the linkage. Even getting the screws was a challenge. Because, I used 4mm holes in the design, which would fit M3 screws smoothly. But none of the local stores has enough metric sized screws and nuts for me. So I spent many more hours switching everything to #6-32 screws (from the Imperial size chart).
Legs Panel Testing
In multiple layered mechanical linkage project, extra (I mean, quite a lot extra), precautions should be paid to load balancing, stability, and relief (or spatial allowance). With all the consumer level machines of laser cutting and 3D printing, and all those environmental variations going around, many measurements could go one way or another. And the gears will tilt if the loads are not balanced. There is still a lot to improve of my design. The frame is not stable enough for holding the body. The body design should have put those heavy batteries closer to the center of support. And the gear section needs a redesign, on a certain level, for a stable and smooth power progression. But I did have learned a good deal of lessons from this project.
For my final project, I was inspired by a pokéball-themed Nintendo Switch cartridge case that I found on YouTube. My initial idea was to make six pokéballs and case/stand based on the recovery machine in pokémon centers. After considering the amount of time needed to complete the project, I cut the number of pokéballs to three, and changed the idea for the case/stand to the incubator that contained the three starter pokémon in the first episode of the anime. I also decided to have one of the pokéballs contain a small Pikachu plush rather than Nintendo Switch games. With that in mind, I needed to decide what pokéballs I would make. I, initially, was going to make one regular pokéball, one master ball, and one unique pokéball that I would design. After discussing my idea with Duncan, it was decided that I would instead design three unique pokéballs. The two pokéballs that would hold Nintendo Switch games would be based on the Overwatch logo and the Smash Ball item from the Super Smash Brothers series. The last pokéball would be based on Pikachu.
I had quite a few challenges in this project. The spring releases weren’t as strong as I had hoped they would be. I had some trouble keeping the buttons positioned so that they could hold the balls closed. I had multiple parts break during assembly, and two parts fail halfway through their prints. I hadn’t anticipated that so many parts would break, so that threw off my schedule for the project. Due to this shift in my schedule, I was only able to paint two of the pokéballs and use a primer on the case/stand. Despite the setbacks, I am very proud of how well the Smash Ball came out. I also feel that the laser print design for the case/stand came out well, considering that it was my first time using Fusion 360.
Overall, I had three learning goals: Improve my time management by making a schedule of what I needed done by a certain time, making more use of the tools at my disposal, and asking for help whenever I was confused. I did accomplish my learning goal of making a schedule for better time management, but I did not account for the possibility of parts failing. Not including the case/stand, I needed to print fifteen separate parts. I began printing on Thursday with a plan of printing six parts that day, four on Friday, and five on Sunday. I created this plan factoring in that on Friday and Sunday I would only need to use 2 printers at once, so that I wouldn’t be preventing others from completing their own projects. The plan seemed realistic, but I did not anticipate that multiple parts would fail. The setbacks caused by the broken parts caused my plan to fly off the rails, snowballing to the point in which I was having the last two parts of one pokéball printing from Monday night to Tuesday morning. Due to this result, I feel that I only partially accomplished my goal. I created a schedule, but I failed to stick to it due to a lack of flexibility in said schedule.
I definitely feel that I made use of the tools at my disposal while working on this project. When I made my 3D Printing and Scanning assignment, I simply imported my scans into Meshmixer, used the analyze tool to fix any errors, plane cut them, and then moved it over to Tinkercad to stitch the scans together. For this project, I actually used different tools such as inflate and flatten in order to morph the pokéball shells into the shape that I desired. I used Fusion 360, a software I had never used before, to design the laser printer file for the case/stand. I used power tools for a project for the first time. I needed to use a drill to widen the holes of the hinge of each pokéball. I actually also had to use a soldering iron and a heat gun for the first time to help secure the buttons into place. I also did foam smithing for the first time, using contact cement to glue foam to the wooden skeleton of the case/stand. I also painted something for the first time since I was about 6 years old, so that was fun. I definitely feel that I accomplished my goal of making better use of the tools at the fab lab.
For my final goal, I made sure to ask questions. Typically, when I feel stuck in a project, I would sit feeling defeated for a while. This time, I made sure to ask questions as soon as I felt that I did not know what to do. One person that I cannot thank enough is Brandon, who helped me with a large portion of my project. He taught me how to use Fusion 360 so I could design the case/stand. He taught me how to use a soldering iron and heat gun, and how to do foam smithing as well. When I was feeling lost after my parts broke, Brandon helped me get back on track by helping me with the case/stand while new parts were printing. I am very thankful for all of the help I received while making this project. If I hadn’t been asking questions as soon as I had, my project would have been in much worse shape.
Over the course of the semester, I feel that I truly did learn something in this class. Before this course, I never really went out of my way to make new things. In this class, I learned how satisfying it is to come up with an idea and bring it into reality. Before this class, I never thought I would ever need to learn how to sew. Surprisingly, I would say that the project I am most proud of is the stuffed animal that I made in the Sewing and Digital Embroidery assignment. I may have gotten frustrated at one point while making it, but overall, I truly enjoyed making it. This class has definitely improved my confidence as a maker.
This class has made me feel different about the very concept of making. Since high school, I have wanted to work in some sort of lab as a chemist, making different products for the company that employs me. Whenever I thought of the word “maker,” I always felt that the term applied to a select few that create inventions that have a lasting impact on the human race. This class has taught me that anyone can be a maker. This class gave me confidence in my ability to make things. It really showed how anyone can make something if they have access to the tools to create.
One of the most important lessons I received in this class is that it’s not the grade that matters; it’s the effort that really counts. I eventually got to a point in which I stopped caring about my grade, and started caring more about the projects themselves. I’ve enjoyed a lot of classes in my four years at this university. This is by far the most fun I’ve had in a class. Thanks to this class, I feel that I will feel more confident when asked to make something.
I integrated a computer into my jacket, so that I could play a game on my jacket sleeve!
I used an Adafruit Flora as the computer that controlled the game, and I used sewable circuitry – particularly conductive thread, sewable LEDs and conductive fabric as the inputs and outputs of my game.
A big focus of this project was that this was my only denim jacket – I wear it a lot. I wanted my computer+game design to be robust against the normal usage conditions of the jacket. I roll it up clip it onto my bag, or I wear it on the nasty subway, or I wear it when it is raining. I wanted the computer to be safe from the dangerous environment, and I also wanted to be able to wear the jacket in all the normal situations that I’d wear it in.
I decided that the computer will be positioned inside one of my jacket pockets. That way
it is not exposed to the external environment, AND,
if it gets loose and falls off, it safely falls into my pocket, and not on the ground.
The computer is still a very delicate item, so despite the pocket safety measure, I wanted the option to remove the computer in a modular fashion. Traditionally, the Flora computer is sewn onto the textile (this would be tough to modularly remove a sewn on item). Instead, I attached the Flora to my jacket with snappable buttons (now its modular, I can unsnap the buttons attaching the item to the fabric).
The way this works is that the LEDs and buttons are sewn onto my fabric with conductive thread. The electricity on these threads is supplied by my computer. so these same threads from the LEDs need to connect to my computer. Instead, the LED threads are attached to the male ends of snappable buttons, which are sewn onto my fabric. The female ends of the buttons are attached to the input/output pins of my Flora computer. When I want to create an electrical connection between the LED thread and my computer, I join the male and female ends of the snappable buttons. The buttons conduct electricity and act as an interface between the computer and the thread sewn into the fabric!
I initially planned to solder the female ends of the buttons onto my computer. The solder would act as a “conductive glue” between the computer and button. This was a hard task, and the force exerted by the button-unsnapping process would always break the solder-connection I had created. I spent a lot of time trying to perfect my soldering process before I gave up. This was the biggest challenge of this project.
I’m most proud of how I solved this problem. Originally, The solder was acting as a “glue”, and a “conductor”. Instead, I used superglue as the glue, and conductive thread as the conductor!
With this method, I circumvent another issue. Some snap buttons can be large, and they run the risk of either touching adjacent buttons or touching adjacent I/O ports. As seen in the above picture, I can glue some buttons far away from their respective I/O port and adjacent button, to ensure there’s no accidental touching of circuitry. I just need to create a longer connection between button and port with the conductive thread.
My learning goals were to 1) work with electronic textiles, and 2) also work on a project design that is entirely my own and iterate that design.
I believe I successfully accomplished both goals. I invested a lot of time into understanding how conductive thread and sewable circuitry works, I looked at many different implementations to understand the best practices, and I practiced my sewing technique and improved it majorly also. I hoped to learn how to properly “think” about a sewing project – what are the challenges, what difficult decisions need to be made, how to problem solve on a sewing project. I did learn those things, and I also unintentionally learned how to fix or undo sewing mistakes!
For my second goal, my whole project was my own conception, I borrowed the concept of making the Flora modular with snappable buttons, but I iterated that design by using superglue and conductive thread instead of solder. My design involved 2 types of circuits, so I made sure to sew those circuits into a woodframe and test that my technique would work correctly. After finishing sewing any thread line or snap button or any electric component, I stopped to ensure that the electric connection was still “correct” and worked. This allowed me to catch mistakes early, fix my technique and not repeat those mistakes.
I’m very happy with project, specifically because of how rewarding the learning process was.
I invested a lot more mental, physical, critical effort in the process of learning, and then I felt smart when I applied my new knowledge.
What really stands out to me upon re-reading past write-ups is that I was very conservative with my projects. I was afraid of failure, so I tried to structure my projects around the simplest techniques that had the least scope for errors. It shows because I rarely ran into road-blocks and was rarely forced to think laterally and problem solve. I would instead try to change my project to fit the outcomes of my practices.
With this final project, the requirement of formulating a challenging proposal within the structures of the two chosen learning goals was very helpful. It made me iterate my technique and process to fit the project instead of vice versa.
I really feel much more confident as a maker now – I understand now that failure isn’t such a big setback, and that working on sub-samples of the problem will allow me to catch my failures earlier and spend lesser time overall. Because of this, I feel comfortable trying new techniques and incorporating creativity into my problem solving.
People often say that your life can turn out completely different than what you plan out of college. You can work on something thats entirely outside your major, and you can be working in a work culture that you didn’t think you’d enjoy. I could not see myself in this position, adapting to my environment and pivoting my life’s direction. Its a little extreme, but I feel differently now.
Working on this project, I’ve shown myself that I can work in a domain outside my expertise (sewing and textile) and adapt and excel. Additionally, I can make a new domain my own by incorporating my expertise in other domains. I didn’t see myself having such flexibility, but now I think my mind has opened to the possibility. I was a little scared about making E-Textile the focus of my project, but I handled it just fine. Now, I wont say “No” based on my prior judgment, because I have the potential to surprise myself. I believe being a “maker” also means not saying “no”. You have to be able to think on your feet and “find a solution” in the making process.
I learnt the E-textile process by working hands-on on a project that was personally meaningful to me. Both factors really accelerated the rate at which I learned e-textile. I cannot think of another circumstance that would have been more conducive to my learning process. I feel so confident in my abilities to sew circuits into fabric right now.
Question 1: Show us what you made for your final project. Include at least two in-process photos and two final photos (or videos!) of your final project. Include a couple sentences about what challenges you faced and what you are most proud of but do not write a full step-by-step report of what you did.
I developed a fun strategy-based board game that can be played by multiple players. The game is turn-based and contains mechanics such as chess-based movement and attacking other players. The board is a rectangular grid. Players move and can attack other players. There are obstacles which players can use to shield themselves from attacks from other players. Power-ups are used to enhance offensive bonuses.
I faced several challenges along the way. One part was what technologies I would use. I downloaded models from Thingiverse and printed them with the resin printer, which turned out to be very detailed. Another was printing out the barriers, as with 3D printing it took forever and I was on a time crunch. I consulted James and he provided suggestions such as laser-cutting pieces and assembling them together, but I ultimately did not apply this idea because my project would require me to do those prints 30+ times, which was not feasible in my opinion.
Another challenge was the overall design of the game mechanics. I consulted my friend Miguel, a board game specialist, and asked him for his input on the game rules I had devised. One major implementation that he designed was the concept of a counter-play, since before, players would have no method to defend themselves against an attack.
In-progress pictures of the materials:
Question 2: What were your learning goals for your final project? Write at least one paragraph per learning goal about what you hoped to learn as you worked on this final project and what you actually learned.
Some questions to help your thinking: What did you learn that surprised you? Did you meet your goal? If you failed to meet your goal, how did you iterate your plan and what did you learn in that process? Are you happy with your final project? Is your final project meaningful to you? Why?
My learning goals for this project were: to use a new technology that I have not used before, and to push my creativity with this project and come up with unique game ideas. This project would essentially build upon the skills I have learned so far in this class, combining multiple areas into one.
I hoped to learn new technologies. I considered using neopixels for a cool effect but due to not having enough time, instead I opted to learn watercolor painting and produce my materials with different technologies, such as resin printing (which produces more detailed prints) and acrylic laser-cutting (which produced a really nice texture).
I also wanted to create a game that was creative and that people enjoyed. This is pretty difficult overall and even though I spent time considering different pros and cons of gameplay and that I like playing my own game, I am unsure if it would appeal to a wider audience. Rules and game play will have to be carefully tuned to ensure that the game makes sense and is playable, and is one that is truly strategy-based.
I think overall I met both of my goals. I like my game and think the outcome turned out decently.
Question 3: After rereading your lab assignment write-ups, what is the most significant thing you have learned over the course of these assignments? This is not a question about tool learning, but rather a question about yourself as a learner.
Some questions to help your thinking: Have you become more comfortable with certain kinds of tasks? Have you surprised yourself with what you enjoyed doing? Do you feel you’ve developed your confidence as a maker and what does that look like?
This class taught me how to pick up new technologies and how to learn them effectively. I think my TA Emilie accomplished this quite well in her instruction of my section. These assignments would include a short lesson and then building a very simple product, and then creating more complicated versions that would be used in the turned-in lab assignment. Initially I was uncomfortable and wasn’t sure if I should stay enrolled in this class because of the implications of having to force myself to be creative, but I turned out to like it, and so I’m glad I stayed because I’m proud of myself and the things I’ve learned and made.
Question(s) 4: Has this course spurred you to think about yourself differently? And/or future goals and interests in life? Do you consider yourself a maker? What does that mean to you now that it didn’t at the beginning of the semester?
Some questions to help your thinking: What does it mean to you to call yourself a maker (or not)? Who do you think should call themselves a maker? Early on you read a quotation from Seymour Papert who suggested the most significant learning is a) hands-on and b) personally meaningful. Does that quotation mean more to you now than it did at the beginning of the semester? What does it mean to you? Did you experience any learning this semester that fit this definition? Did the hands-on nature of the class make your learning more significant? Why and how?
Makerspaces encourage the development of both the technical and the creative aspects of people. It’s a very hands-on and practical area and also open toward people. I think one thing this course has changed in me is that it has helped me want to learn about not just why, but also how things work. I guess this means that I’m a maker.
Notwithstanding, ultimately being a maker is up to how you define it. If you make things, does that make you a maker? There are some specific things that people consider a part of makerspaces but I question that they are requirements to be considered a maker. In my opinion, if you can consider yourself a maker, then you are one.
I think making something hands-on and meaningful is definitely important, and I think I’ve accomplished this during the course of this semester. I think understanding makerspaces develops as you do it more. It’s a constant learning experience for everyone and it doesn’t stop.
Requirements: 2-4 players, game board, barriers, hearts, and power-ups
Each player selects one character.
Each player receives three hearts (lives).
Starting from the youngest player, going clockwise, place a power-up on the board until none.
Starting from the youngest player, going clockwise, place a barrier on the board until none.
During this process, all players should be able to reach each other at all times.
Starting from the youngest player, going clockwise, roll a die until the number 1, 2, 3, or 4 is rolled. Place your character on the spawn point that matches that number.
The youngest player starts first, and turns go clockwise.
The player must move one square, either vertically or horizontally. Diagonal movement is not allowed, and players cannot cross barriers.
If the player walks into a power-up, pick up that power-up. You can only have one.
After moving, the player can then choose to attack a player or a barrier if they are able to, given their power-up.
Unlike chess, you don’t move to the opponent’s square after the attack.
A player can attack other players differently depending on their power-ups (see below).
If the player chooses to attack another player:
The attacker and defender each roll a die.
If the attacker’s roll is higher, the attack is successful.
During any of these steps, if you roll a tie, both reroll.
Else, the attacker rolls a second time. If this roll is higher than the defender’s original roll, the attack is successful.
If the attack is successful, the player returns a heart to the bank, forfeits their power-up at the current spot, and is moved to ANY respawn point of their choosing. Discard the attacker’s power-up.
If the defender will have 0 hearts, they are eliminated from the game.
If the attack is unsuccessful, end the turn.
If the player attacks a barrier instead, then just remove the barrier.
None: Can only attack from any adjacent tile in all directions (like a chess king).
Laser gun (x4, GREEN): Can attack a player in any tile in the same X or Y axis. Does not penetrate barriers.
Sword (x4, RED): Attacks like no power-up, except you can attack barriers (to remove them) as well.
Lucky coin (x2, YELLOW): If this player is attacked at any time, add +1 to the defender’s rolls.
Speedy (x2, ORANGE): This player can move two squares instead of one each turn. Lasts until the player dies.
Teleporter (x2, BLUE): This player can choose to teleport to a respawn point of their choice during any turn, as a replacement for their movement phase.
Power-ups are single-use and most are discarded after they are used, except for the lucky coin and speedy.
Players can only have one power-up at a time, but can be swapped (the other one is discarded).
For my final project, I sought to create a Piano MIDI controller that I could potentially use with a DAW (digital audio workstation) when producing/recording music for myself in the future. MIDI controllers are typically somewhat pricey, so I thought this would be a cool alternative.
Wooden piano board created using Inkscape and the Epilog laser.
Initial Raspberry Pi testing before I switched over to the Arduino.
Some of the challenges I faced when creating this project were with executing on the initial project conception with using a Raspberry Pi. I found a lot of difficulty with setting up the Raspberry Pi and had to continuously get more and more equipment for it to fully work, and even then, I had to scrap the idea because it wouldn’t have worked as smoothly as an Arduino would. I lost a lot of time trying to setup the Raspberry Pi before switching to an Arduino.
The Adafruit MPR121 sensor with wires and metal pins soldered to it,
Example code that combined the MPR121test file that check each of the 12 touch sensors on the board with a tutorial on sending MIDI messages. The results can be seen in the Serial. This was a prototype that had problems because of the overlap of sending data through Serial multiple times.
Another challenge I faced was with soldering, something I was relatively new to. I had soldered once before 7 years ago and had decided at that time that I would never do it again because it was difficult for me. Luckily, it turned out mostly fine this time, but one of the wires that was soldered didn’t have a great connection to the Adafruit MPR121 board. Another challenge I faced was with getting the touch capacitive data from the Adafruit MPR121 to be translated to MIDI messages that would be read by the computer and any MIDI software or DAW. I tried to do this originally all with the Arduino code but found that I needed a Python script to translate the Serial input from the Arduino into MIDI messages instead. In the videos below, you can see how I experimented with MIDI messages apart from the touch sensors, in order to get that working first. In the first video, I was able to get MIDI data to send from the Arduino but it wasn’t connect to the MIDI player. In the second video, it played through the MIDI player by means of a virtual MIDI port created using the LoopMIDI software and Hairless MIDI <-> Serial Bridge to send the Serial data to the port, which was then set as the MIDI input for the MIDI software I used (Virtual MIDI Piano Keyboard).
The last challenge that I faced was with getting the MIDI messages to go to the MIDI output device of choice. I was easily able to have the computer output sound when I touched the sensors, but it needed to play through the device, where I would see the piano keys on it being pressed down as I touched it. I had to use a variety of different software to get this work, including a virtual MIDI port, but it ended up connecting smoothly after trying out the different settings and figuring out what worked!
The final setup of the Arduino with the wooden board, sensors, alligator clips, and foil for touch.
The final computer setup with virtual MIDI port through LoopMIDI, the Python script running, and the MIDI player open.
I am most proud of the fact that I was able to use my prior programming knowledge in Python to process the data from the Arduino! I found it cool that I could use the skills I learned from this class and combine it with my prior skills to create something that was even useful for my own music projects!
Learning Goal 1: I want to challenge myself to incorporate a Raspberry Pi into my project because even though I am a computer science student, I do not feel comfortable dealing with circuits, wires, and microcontrollers/microcomputers (I avoided hardware and ECE classes).
Unfortunately, I was unable to meet this goal because of unexpected circumstances with the Raspberry Pi and the corresponding equipment for it. However, I was still able to use a microcontroller in the Arduino and used libraries that I had not used before in order to make this project work. Likewise, I was able to face my discomfort with using circuits and wires and even soldering as I used the Adafruit MPR121, a new sensor, with the Arduino. I learned that the Arduino is capable of doing a lot more than I originally thought! While I thought it was a very basic computer simply by the fact that it runs a continuous loop, I was surprised to see the sheer number of libraries for it. It was cool to experiment with the different MIDI libraries and learn more about the Serial library as well. It was definitely for the best that I used the Arduino rather than the Raspberry Pi because I think the Raspberry Pi would have added a complexity that wasn’t really needed for the scope of this project. As a result, I am happy with the outcome and the implementation!
Learning Goal 2: I want to personalize the design by adding my own touches to a standard design so that I can push my creativity.
I feel that I was able to personalize the design by creating the piano keys completely from scratch in Inkscape. It was very simple to design, but it was cool to have used the Epilog Laser to raster the piano keys onto plywood for the MIDI controller. Most designs online used aluminum foil or conductive ink, so they were usually constructed on paper, so it was cool to see how it would look on a piece of engraved wood. I would have liked to add color to it somehow, but likewise, the black keys were done with raster, which would have been covered up if I had included a sticker or cardstock by using the Silhouette cutter. Likewise, the foil covered up most of the wood, but it was necessary in order to have the alligator clips attach to it and have the keys be conductive. Though I had a picture of what the board would ideally look like in my head, I learned that it is near impossible to have it look exactly like a design concept simply because all of the tools and material might not be in place. I learned that there is a great need for flexibility, adaptability, and compromise when it comes to the design process!
As I already stated, I think I learned that there is a great need for flexibility and adaptability when it comes to designing and making something. As a computer science student, I’ve seen it as I’ve written code and worked on different projects, but when it has come to this class and the mostly hands-on work, I’ve come to see even more how ideas may need to be scrapped and I have to start over from the beginning when things go awry. It really takes a lot of patience and planning in order to make a good product, and it may even take multiple prototypes to get something working as you originally planned. It may even require tweaks to the original design and omission of things that just aren’t feasible with time, material, or equipment constraints.
One thing that I’ve definitely become more comfortable with is working with hands-on projects. In the past, I steered clear of these projects because I feared the attention to detail that was necessary for these sorts of projects, but I found myself enjoying the projects in these classes (especially the Arduino units) as I became more accustomed to working with my hands. I definitely feel more confident as a maker and feel like my creativity really developed this semester.
I think this course definitely has caused me to think about myself and my potential differently. Apart from coding, I was very hesitant with other forms of engineering, but now, I feel more adventurous and willing to try out new things related to making. Likewise, I felt like my creative capacities were always limited to the arena of coding, but now, I see how I can be creative with other things, like when using Inkscape for laser cutting and stickers or the different sensors and outputs for the Arduino. I think I feel a lot more confident when it comes to potential independent projects in the future, and I would be more willing to do craft work in the future as well.
I think I considered myself a maker before because of my computer science background and the numerous projects and apps I worked on before, but I definitely would identify more as maker now after this class because I’ve had the opportunity to work on several different kinds of projects to expand my skill set.
I think that the term maker really can be a broad term to refer to anyone who can create or recreate an item by their own hands, starting at the design process and then progressing to construction and testing until a final product is achieved. I feel like this is definitely in line with Seymour Papert’s quotation as well because being a maker requires a person to do a lot of hands-on work and requires them to be original in their ideas, which usually makes it personally meaningful. This quotation definitely means more to me now in the context of making because having to design my own projects and think about how they would benefit me or be interesting to me was directly correlated with how driven I would be to complete the project. Unlike with required projects in past classes, I found myself much more interested in these projects once I had come up with an idea. The drive to complete the project that came with the idea would prompt me to learn new things in order to complete these projects and do them well, so I feel like I definitely learned a lot as a result of that. The hands-on nature definitely played a big part because it somewhat forced me out of my comfort zone and forced me to experiment with different ideas so that there would be a learning by trial and error.
For this final project, I made a solar powered motion sensor desk lamp controlled by Arduino. The lamp is made by cutting a block of wood into three pieces. Two of the longer blocks are for the stand which is connected to the other block for the head with a screw, winged bolt, and washer to make the head adjustable. I faced a lot of challenges in the project which are to create the solar panel, connecting it to the Arduino, programming the Arduino and doing the woodworking as I have never had any experience whatsoever. I am really proud of building the solar panel with the help of Brandon. Never I would have thought that I would literally build the solar panel circuit myself (thought of buying it at first), but after much experiments, it was done!
This is the electric saw that I used to cut up the wood blocks (with help of course)
This is me using the drill machine for the house the screw and bolts (shoutout to James for helping me!)
This is the lamp initial look (before inserting the neopixel and the box to house the Arduino)
This is the finished product with the solar panel plugged in
First, my learning goal was to get more of hands-on experience on building things. I come from Indonesia and woodworking was not something that was really taught to students however, crafting was something that has always intrigued me since childhood. From that, I hoped to gain the basic skills in woodworking and using power tools to create new products from materials such as wood. After doing the project, I have gained the basics in modeling materials such as cutting the wood using an electric saw and drilling using the heavy machine with supervision from the representatives in charge of safety.
The next learning goal I had in this project was to do something more on the engineering side and gain more technical skills. Although I initially thought that I am a maker by heart, this ideology does not really translate using the technical skills that I possess and have to apply to the project. So, by the end of the project, I hope to gain knowledge about circuits and power conversion. After doing the project, although not much, I did gain this knowledge such as if you are using a parallel circuit, you will get an even voltage distribution and more current (yeah, this is what worked for my project).
This learning goal also aided me in another personal goal, which is to get closer to the people in the FabLab. Earlier in the semester, I was so mesmerized with what the members of the lab are doing and really wanted to get involved. However, as the semester, I did not have that much time to come to the lab aside from class hours. So, from this project, I vowed to at least to get closer with someone (aside from my awesome instructor Emilie). After doing the project, I did get closer to one person, Brandon. Brandon was really helpful during the entire project. He helped taught me how to create the solar panel power source and how to connect them to the Arduino. Moreover, he also helped me a lot with the coding part to program the motion sensor and the lights.
All in all, I think that my project was a huge success in my own metrics. Never would I expect, an accounting student like me to create something that so far away from the education discipline I have been going through for the past 4 years and created something that does not require me to make balance sheets or income statements. Although it is successful according to me, there is definitely room for improvements. First, I should have made the cable to the solar panel longer so that it can be moved more freely. The lamp can be plugged to a portable power source, hence it could be a portable lamp. In regards to that, I would think that making the body of the lamp and the Arduino box waterproof would definitely take my project to the next level. I really think that my project is important as it is definitely a step into the future. I think climate change is destroying our world and finding an alternative power source is a step to a better world. The motion sensor is there to limit the power usage as the lamp will turn off if you do not need it anymore and the lamp is entirely solar powered.
This class has taught me a lot in regard to technical skills as well as self-development skills. One thing that I learned from this class is that it is okay to make mistakes. As a business major, we were taught that it is imperative to not make mistakes as it would hinder the efficiency of the whole business process. Although not making mistakes is important, mistakes are valuable experiences that remind us that if one way does not work, you need to find an alternative to it. From mistakes, I learned that although a solution might logical sense, it might not work the same when applied due to other factors. This brings me to another lesson I learned through the whole experience, which is to be resilient. I am not the most efficient and smartest person when it comes to making the projects given in the class. It took more time for me in doing and also designing the projects. However, the class taught me that I have to struggle and stay resilient in finishing the tasks, which actually bore wonderful fruits. I can say that I am proud of the creations I made in the class (although some were really terrible, I know). One thing I found comfortable doing is actually using the Arduino. I was always inclined to this part of the class for its limitless ability. At first, it was hard, but after doing 4 projects with it (2 Arduino projects, 1 iteration project, and final project), I came to enjoy doing it and might I say be decent at it.
Before taking this class, I thought that a maker is someone who makes something from nothing to something. However, this class has taught me that there is no one single definition for a maker as everyone has different and unique making processes. My definition of a maker is someone using tools to add value to something and tells stories using their creations (kinda borrowed the quote from Adam Savage). By that definition, I am definitely a maker. Every learning experience I obtained from the class had been hands-on and meaningful for me in different ways. I definitely think that the quote means more to me now than it had at the beginning of the semester. With the skills, I gained and the understanding of the lessons’ objectives, I can confidently say that the class had given me a more holistic learning approach to making as it encompasses education disciplines as well as backgrounds. The hands-on experience helped me understand the matter at hand as I do not need to visualize the concept, as I can just try it out with the devices that are available in the lab.
For my final project, I created a board game: Radical Robots! The main idea behind the board game was to create a game that caused players to need to make a lot of decisions and estimations of the odds to succeed. For this game I needed a large board, a number of tokens, trackers, and finally the meat of the game which consisted of almost 200 cards, with around 60 unique ones. A large portion of my time was spent developing the cards, but in terms of the physical product, here are some in progress shots:
Here were the first prototype cards I made
And a play test being setup between me and a few friends
And here are the final iterations of the cards as they are being cut out
Printing out the board proved easier than I’d thought, and it came out perfectly on the first time
Here is the final project all together during presentations
I’d say the most difficult part of the process was, ironically, the parts I’d initially thought would be the easiest, which were the printing of the cards and cutting out the tokens. For the cards, I wanted to originally use a sturdier material than plain copy paper, so I initially tried to find card stock, but we didn’t have any white card stock. I tried to print on black card stock just out of curiosity, but that didn’t work. I also tried photo paper, but that only prints on one side, and thus doesn’t work for cards. Finally, I resigned to using copy paper, with some example mock ups with a piece of card stock sandwiched between two pieces of copy paper. Additionally I had some similar issues using the laser cutter with two sided acrylic, and ended up switching to wood in the interest of time. Overall I’m pretty proud of my work, especially with the design of the art on the board and the back of the cards, and also the fact that, despite the sheer volume of rules and complexity of the game, it’s pretty playable.
For this project, my two main learning goals were one: “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.” and two: “to learn about game design and playability from the perspective of a creator instead of a player.”
For my first learning goal, I learned both the goals with ease. The poster printer was far easier to use than I had anticipated, as it turns out it basically functions like a normal printer, just on a larger scale. The smaller objects in and of themselves turned out fine with the laser printer. What the actual issue turned out to be was the material I used, as mentioned previously. Most notably, the settings for the double sided acrylic on the universal cutter are incorrect for 1/8″ material, and it would have required a lot of tinkering to get it right. For printing, ironically enough I learned more about printing cards on normal printers than I did for the poster printer. Most notably I learned how utterly time consuming prepping card pages for printing is, since both back and front pages must be aligned, and to get the right card ratios for balancing, it required almost 50 unique pages to be printed out, some multiple times, others only once or twice. I learned a lot about working with Inkscape as well, since I had to make all of the borders and back art for the cards, and then also all of the design for the poster. One major effect I learned was color correction of external images by overlaying a box over the image and turning down the opacity, allowing me to change the color and visibility of the picture to my liking. As I said previously, I’m especially proud of how these designs came out.
For my second learning goal, I’d say I learned quite a bit, but not as much as I’d hoped. I was only able to play test the game once before presentations, so I wasn’t able to iterate as much as I would’ve liked from a design stand point. However, what I did learn was quite interesting. In my first draft, I was so focused on the complexity of the rules and how interesting the mechanics could be, that I didn’t think about how those mechanics impacted time. The first play test we did took just over two hours, so it was quickly decided that changes needed to be implemented to reduce the amount of time it took to play. In particular, the issue of how quickly players progressed from the start was important, since it seemed to take a while for the game to ramp up. In addition, adjusting the requirements for what you need to fight bosses was also important to change. However, I did receive positive feed back about the core mechanics, so I believe the main thing to do in the future is simply to continue play testing and iterating on that. Overall the process opened my eyes to how easy it is to become overly absorbed in certain aspects of a project, and helped me appreciate just how much work goes into producing a well balanced and fun board game. Despite not being perfect, I do think the game has a solid core, and I’m proud of what I’ve accomplished with it so far. I don’t know if I’ll be able to, but in the future I would like continue working on this game and refining it, maybe even turn it into a proper product if I become confident enough in it.
Looking back through my write-ups, I’d say the most significant thing I’ve learned is how to fail. In most classes failure is cut and dry, and as soon as you fail that’s it, you have no chance to try again. In this class it’s been actively encouraged to fail, and then try again so that you can learn from your mistakes. In most courses failure simply results in a feeling of dread and anxiety for your grades. Here it spurs you to improve because you actually have the chance to improve, and I think this has greatly improved how much I’ve learned from this course because of it. Most importantly what this means is that I feel I can more confidently fail and move on from said failure in the future, which will be a very important skill not just in work, but in life too.
This class has definitely spurred me to think about myself differently. Because of this class, I’ve relearned how to enjoy making. Prior to this class, most experience I’ve had with making were in my major, in sterile, grade driven experiences. All my previous experiences in making have been dull and life sucking, but over the course of these assignments I’ve learned that I still have the spark and drive for creativity. It’s been quite a liberating experience for me. On some projects I was not able to do as much as I’d wished, or didn’t fully implement what I’d want, but it wasn’t failure on a points or grade based level, it was failure on a personal level because I was invested in the projects themselves for their own sake, not for the sake of some grade that is supposed to somehow tell an employer my capabilities.
I look forward to continuing to work as a maker in the future, whether in my work, or simply as a hobby. To be a maker is simple, after all: use your creativity to produce something. Previously I had thought of it in a more bland way, thinking making was just creating a product, but now I think the spark of creativity and the drive of passion are essential to being a maker as well. And I think I’ve gained these thanks over the course of the semester, in no small part thanks to this class.
I feel more confident in myself as a creative thinker, and more passionately about my work as a maker, and for that reason I’m incredibly glad I’ve taken this course.