Tuesday, April 26th:
Presenting Prototype to Client
We took a mode with working LEDs and servo motor but no music to show to our client. We had hoped to include music and a more aesthetically appealing prototype. But with all the program and hardware debugging we had to do last week, the best we could present at the time was a breadboard with 6 LEDs that light up in a sequence and a cardboard hand attached to a servo that moves from the beginning to the end of the hand-washing session.
We got the following feedback from our client that we later incorporated into our improved model:
i) Make large visual cues that would attract the children's attention but also appear as clear guides.
ii) Control the servo motion such that the hand-scrubbing movement it mimics only happens on the corresponding step when we expect the children to scrub their hands. This is important because they would look forward to that step and have a better sense of when to start and stop scrubbing their hands.
iii) Make sure every electrical component is enclosed in water proof material that is an electrical insulator.
Another lesson of the day: Don't forget your batteries when taking a trip to demonstrate things like LEDs and servos. We forgot but luckily some of our more insightful classmates had brought batteries we could borrow.
Later on Tuesday: Oh no! No more music! (Bad news...with a blessing in disguise)
After we got back to class to work on our music component, we learned that incorporating music, although not impossible would be very time consuming. So, unfortunately, we had to drop the idea of having music. But this was also good news because then we could focus on perfecting the rest of our output and input methods rather than dividing our attention between music and the rest and ending up with a product not completed to our satisfaction.
Wednesday, April 27th: This was one productive day!
Since we couldn't trick our clients with nice music anymore, we had to make sure everything else works fantastically and looks a lot more appealing than a bundle of wires on a breadboard. We broke down our tasks as follows:
Making functional components coexist:
A major problem with incorporating the servo and the LEDs in one was that the 1 second trial time we set for each LED to light up was less than the minimum time our servo took to "sweep" between certain angles. After some trial and error, we figured that the servo needs at least 3 seconds to oscillate once. This wouldn't be a problem in the final product because we give 20 minutes for the light and the servo alike during the hand scrubbing step.
Another important improvement to our code that allowed us to control the servo motor better was using the detach command to disconnect the servo completely (instead of telling it to go to a certain angle and stay) and only commanding it to attach for the duration of the hand scrubbing step. This is highlighted on line 58 of our final sketch below.
(Re)testing our velostat as a potentiometer:
We tried using our velostat as a potentiometer by recycling a code we had worked with earlier this semester. This gave us unrealistic values of resistance such as 0. It also didn't show a consistent difference between the resistance of the pinched velostat and that without any pressure applied. We were able to get better results when we used a very specific way of introducing the velostat as highlighted in line #26 of the final code below.
We used the velostat as an input that reads the resistance due to the pressure applied to the sheet by people standing on it and initiates the system.
This was a much better option compared to a switch or a light sensor which we had considered as alternatives in the event that the velostat didn't work. We only had to cover the sheet of velostat with pieces of yoga mat (on either side of the sheet) that can serve as protection for the sheet, insulation, and comfort.
Assembly and packaging:
Once we made sure that the all the input and output components work together as planned, we started building a more stable and appealing physical model. We soldered the LEDs appropriately, with all the negative sides connected to a grounding wire, positive sides connected to resistors and longer wires that connect them to their respective pins on the Arduino.
Wiring inside the box |
Face of the system |
Delrin hands attached to a servo motor |
Velostat covered with yoga mat with foot prints to guide children |
Switch to control power supply to system |
We used tape to attach LEDs to their places, to insulate some wires, bind the two long wires that run to the stepping mat, and for aesthetics. Tape does wonders.
Thursday, April 28th: We made the following poster:
Friday, April 29th and Monday, May 2nd:
And of course we couldn't send cardboard hands to the adventurous land of splashing water. We converted an outline of a child's hand we found in google images (the same one we used to trace our cardboard model) to a Corel file and edited it to fit our setup. We printed two hand replica: one to be glued to the front of the servo and another to be fitted to the body of the servo motor behind the fully visible hand like a piece of a puzzle. We made each hand slightly bigger than 5 inches in length, keeping the proportionality for the rest of the dimensions. We cut out a circle in the middle of the front hand to avoid the bump in the servo motor with a screw and have a larger area of contact for gluing. We replaced the circle we cut out after gluing the rest of the hand. We cut out a rectangle on the back hand to fit over servo motor and used hot glue to secure it further.
Final code used:
Final video with instructions and pretend user:
I will follow up with my reflections on this process on my next blog post.
I really like the way you hid the wires inside the box. This project is very visually appealing! The footprints on the pad was also a nice touch.
ReplyDelete