Final Project, Part 5
Objective: To build a balance beam that would encourage risky play for children in classroom settings
We finished our balance beam!
To highlight some of the ideas from my Part 1 and Part 2 of the Beam Project, risky play is a form of activity where children can engage with the "risks" of their environment without actually harming themselves. A balance beam, a solution that my team and I brainstormed, would be a great way to build a "risky play" environment where children can feel challenged without breaking the numerous laws and regulations that restrict the activity.
Our Balance Beam:
- Final Dimensions - 8.5 inches tall by 48 inches long (4 feet) by 3.5 inches wide
- Lights guides children along the beam, shapes lighting up underneath them and blinking in front to encourage them to step
- Shapes (LED strips) controlled by photocell readings, so they will only light up if child steps close/on the shapes
Lessons from the prototype has helped us finish the chiseling, drilling, and surprisingly (+ thankfully), the soldering connections processes pretty smoothly. If the soldering connections didn't go as smoothly...well, let's say we were running out of strips to work with.
To highlight the challenges that we faced while trying to put the prototype together again:
1) hole placement & sizes on the shapes
2) soldering connections between the copper ends of the LED strip and wires
3) and many more minor details (covering the sides, spacing of shapes) that we found solutions to in my last post
Soldering the connections for the other wire strand LED went smoothly too (well, besides a few bumps here and there because the given wire was weak and we had to solder it onto a stronger one of our own). We tested each strip to make sure they worked probably more than a dozen times each during this period, to make sure that they still worked whenever we moved them.
The process of nailing the base plank to the 4x4's and screwing the planks together was not a large challenge either. With help from Larry, our machinist (thanks so much for your ideas and help!) we learned how to stably put the beam together. As I mentioned in my last post, Part 4, we also figured out how to cover up the sides of our balance beam using Delrin.
The most formidable opponent in this last stage then, was the wiring process. We were connecting all the wires to the multiple breadboards, and at the end, decided to use one long breadboard to wire everything together. There were many wires all over, and even when the connection to the breadboard appeared to be secure, the wires could pop out with enough pressure. (As mentioned in the reflections of the prototype, wished we only bought the wire LED strand that wouldn't have required transistors! But we definitely have experience with connecting and using LED strips now!) Lowering the top of the plank to the rest of beam was a challenge, and I'm glad that we were able to lower the that final section successfully to finish the beam! It took quite a few tries (and hours...) but we managed to lower the plank without the wiring popping out. We attached the Arduino to a wooden board, and hot glued the board next to the side openings so that the battery pack can sit more comfortable, which was still attached to the Arduino, to the side the beam. The final steps, then, were relative easy: we screwed the top plank to the sides and the Delrin to the four pieces, or planks, that make up our beam.
Final Code (If anyone wants to build a beam of their own! :D):
//level 1, going forward: child steps, shape underneath lights up and next shape blinks
const int kPin_Photocell1 = A0; //declaring variables for photocell
const int kPin_Photocell2 = A1;
const int kPin_Photocell3 = A2;
const int kPin_Photocell4 = A3;
const int ledPin1 = 8; //declaring variables for LEDs
const int ledPin2 = 7;
const int ledPin3 = 2;
const int ledPin4 = 12;
int value1; //declaring variables (later to be set to the reading values of the photocell)
int value2;
int value3;
int value4;
void setup() {
//setup code
pinMode(ledPin1, OUTPUT); //initializes pin/LED
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(ledPin4, OUTPUT);
}
void loop() {
//main code, runs repeatedly:
value1 = analogRead(kPin_Photocell1); //sets declared variable to
numerical value read by one of the photocells (kPin_Photocell1)
if(value1 < 800) //if the value read by photocell1 is too dark
(kid is on the shape)
{
digitalWrite(ledPin1, HIGH); //shape1 lights up
dot(); //calls dot function, which makes the next shape blink
}
else
{
if(value1 > 800) //if child steps off of the shape
{
digitalWrite(ledPin1, LOW); //light turns off for shape1
delay(300); //light for shape1 continues to be turned off
}
}
value2 = analogRead(kPin_Photocell2); //sets declared variable to
numerical value read by one of the photocells (kPin_Photocell2)
if(value2 < 700) //if the value read by photocell2 is too dark
(kid is on the shape)
{
digitalWrite(ledPin2, HIGH); //shape2 lights up
dash(); //calls dash function, which makes the next shape blink
}
else
{
if(value2 > 700) //if child steps off of the shape
{
digitalWrite(ledPin2, LOW); //light turns off for shape2
delay(300); //light for shape2 continues to be turned off
}
}
value3 = analogRead(kPin_Photocell3); //sets declared variable to
numerical value read by one of the photocells (kPin_Photocell3)
if(value3 < 750) //if the value read by photocell3 is too dark
(kid is on the shape)
{
digitalWrite(ledPin3, HIGH); //shape3 lights up
ace(); //calls ace function, which makes the next shape blink
}
else
{
if(value3 > 750) //if child steps off of the shape
{
digitalWrite(ledPin3, LOW); //light turns off for shape3
delay(300); //light for shape3 continues to be turned off
}
}
value4 = analogRead(kPin_Photocell4); //sets declared variable to
numerical value read by one of the photocells (kPin_Photocell4)
if(value4 < 700) //if the value read by photocell4 is too dark
(kid is on the shape)
{
digitalWrite(ledPin4, HIGH); //shape4 lights up
}
else
{
if(value4 > 700) //if child steps off of the shape
{
digitalWrite(ledPin4, LOW); //light turns off for shape4
}
}
}
void dot()//dot function, shape2 blinks
{
digitalWrite(ledPin2, HIGH);
delay(100);
}
void dash()//dash function, shape3 blinks
{
digitalWrite(ledPin3, HIGH);
delay(100);
}
void ace()//ace function, shape4 blinks
{
digitalWrite(ledPin4, HIGH);
delay(100);
}
//I took the Serial.begin and Serial.print lines off of this code so that only the main functions that affect photocell & LEDs exist
As natural, the day before the presentation, we took precautions to make sure our beam would be functional...
This is my team that finished the balance beam with me! I am so happy I worked with them on this project. We all put effort into this final piece, and I'm glad it is the way it turned out!
And it works! With Brooke's hand, you can see they light up underneath and blink the next. In the second video, I am walking across, and although my feet cover the whole shape, it is still lit underneath!
- Soldering! I feel like my team and I definitely have become more cautious, careful, and more gentle with our equipment after all the failed soldering sessions. We had experience of being limited to the number of times we could try again with the soldering process, and although it was nerve-racking, this will be a lesson to remember when we are trying out materials we never worked with before. And for sure, never try soldering without making sure that the plastic around your materials are as far away from the soldering iron as possible...
- Safety first! It was very important for us as a group to make sure we aren't sacrificing the safety to put our own ideas first, and of course, my team and I were the first testers of the completed beam! (As you can see in the video...it holds our weight!)
- And most importantly (for a successful construction process)...check! Double check! Triple check! Especially mixed with 1) wires, 2) insecure, potentially insecure, and yes, even secure connections, and lastly, 3) human error in making those connections, I think I've definitely learned to check if the product/materials work the way I want it to every step of the way! And not only once, but several times; in the real world, I imagine there would be a lot more partnerships, and with that, handling of equipment and passing it around. I am happy that we checked the wires as many times as we did to make sure it was properly soldered on, because there have been times where we though the connection was already very secure (like with the LED strips that make up our triangle) but broke off somehow when we were about to put it on our final beam.
With more time, I would like to incorporate:
- levels! I wish we had time to program levels to our beam so that the beam would grow with the aptitude of the child (i.e. the child has to finish the beam faster in level 2)
- more than one beam...I say this tentatively, because putting together one was not easy, but because we went through a relatively* smoother process putting together the final product, a replica of the initial product doesn't sound* so bad...my stars are there to emphasize the words they are next to. I imagine that with a second beam, it would be easier to give them more challenges (i.e. stepping across beams)
- the placement of the battery holder! As mentioned during the presentation, we could have found a way to play the battery holder so that it is out of the way on the sides (in case a child slips), and this would be a relatively easy fix
- finding a better method of securing the wires to the bottom plank! At the moment, we are unsure of how snugly they would lie on the bottom (and in their holders), but it would have been nice for a peace of mind...
Thank you for working with us throughout the year Amy! Your class has taught me a lot!


Your balance beam turned out to be really awesome. I think that the kids will have a lot of fun on it!
ReplyDelete