by Connor Maggio and Nina Yoo

Description: Bright Balance is like a game where you change the brightness through a pressure sensor and see the motor change the angle of the ramp according to the brightness level.

Images:

 

Process Images:

Schematic:

  1. <span class="typ">Code</span><span class="pun">:</span><br><br><span class="typ">Bright</span><span class="pln"> </span><span class="typ">Balance</span><br><span class="typ">Nina</span><span class="pln"> </span><span class="typ">Yoo</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> </span><span class="typ">Connor</span><span class="pln"> </span><span class="typ">Maggio</span><br><br><span class="typ">Summary</span><span class="pun">:</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> code below </span><span class="kwd">implements</span><span class="pln"> an FSR that maps brightness to an LED</span><span class="pun">,</span><span class="pln"> which </span><span class="kwd">is</span><span class="pln"> sensed </span><span class="kwd">by</span><span class="pln"> a photoresistor that maps angle to a servo motor</span><span class="pun">.</span><span class="pln"> </span><span class="typ">There</span><span class="pln"> </span><span class="kwd">is</span><span class="pln"> also an exponential filter on the photoresistor values so the servo motor </span><span class="kwd">is</span><span class="pln"> normalized</span><span class="pun">.</span><br><br><span class="typ">Inputs</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> FSR</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> photoresistor </span><span class="typ">Outputs</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> LED</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="typ">Servo</span><br><span class="pln">
  2. </span><span class="typ">Collaboration</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Robert</span><span class="pln"> </span><span class="typ">Zacharias</span><span class="pln"> helped us </span><span class="kwd">with</span><span class="pln">
  3. </span><span class="kwd">using</span><span class="pln"> a power source </span><span class="kwd">for</span><span class="pln"> a few elements </span><span class="kwd">in</span><span class="pln"> </span><span class="kwd">our</span><span class="pln"> project</span><span class="pun">.</span><span class="pln">
  4. </span><span class="typ">He</span><span class="pln"> also helped us implement a transistor </span><span class="kwd">in</span><span class="pln"> order to
  5. create a </span><span class="lit">12V</span><span class="pln"> </span><span class="kwd">switch</span><span class="pun">.</span><span class="pln">
  6. </span><span class="typ">Challenge</span><span class="pun">:</span><span class="pln"> </span><span class="typ">This</span><span class="pln"> project had more elements than any
  7. previous project</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Thus</span><span class="pun">,</span><span class="pln"> there were a lot </span><span class="kwd">of</span><span class="pln"> wires to keep
  8. track </span><span class="kwd">of</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> it was a challenge making sure everything
  9. was </span><span class="kwd">in</span><span class="pln"> tact</span><span class="pun">.</span><span class="pln"> </span><span class="typ">For</span><span class="pln"> instance</span><span class="pun">,</span><span class="pln"> at some point </span><span class="kwd">our</span><span class="pln"> servo was </span><span class="kwd">not</span><span class="pln">
  10. grounded correctly </span><span class="kwd">and</span><span class="pln"> it would </span><span class="kwd">not</span><span class="pln"> move</span><span class="pun">.</span><span class="pln">
  11. </span><span class="typ">Next</span><span class="pln"> time</span><span class="pun">:</span><span class="pln"> </span><span class="typ">It</span><span class="pln"> would be beneficial to </span><span class="kwd">use</span><span class="pln"> a smaller arduino
  12. that we could fully house the project</span><span class="pun">.</span><span class="pln"> </span><span class="typ">In</span><span class="pln"> addition</span><span class="pun">,</span><span class="pln"> I will
  13. check the entire wiring </span><span class="kwd">of</span><span class="pln"> </span><span class="kwd">my</span><span class="pln"> projects before linking the
  14. power to prevent burning </span><span class="kwd">out</span><span class="pln"> elements</span><span class="pun">.</span><span class="pln">
  15. </span><span class="pun">*/</span><span class="pln">
  16. </span><span class="com">#include</span><span class="str"><Servo.h></span><span class="pln">
  17. </span><span class="kwd">int</span><span class="pln"> fsrAnalogPin </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> </span><span class="com">// FSR is connected to analog 0</span><span class="pln">
  18. </span><span class="kwd">int</span><span class="pln"> </span><span class="typ">LEDpin</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6</span><span class="pun">;</span><span class="pln"> </span><span class="com">// connect LED to pin 6 (PWM pin)</span><span class="pln">
  19. </span><span class="kwd">int</span><span class="pln"> fsrReading</span><span class="pun">;</span><span class="pln"> </span><span class="com">// the analog reading from the FSR resistor divider</span><span class="pln">
  20. </span><span class="kwd">int</span><span class="pln"> </span><span class="typ">LEDbrightness</span><span class="pun">;</span><span class="pln">
  21. </span><span class="kwd">int</span><span class="pln"> motorAngle</span><span class="pun">;</span><span class="pln">
  22. </span><span class="kwd">int</span><span class="pln"> servoPin </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3</span><span class="pun">;</span><span class="pln"> </span><span class="com">// pin the servo data line is plugged into</span><span class="pln">
  23. </span><span class="kwd">int</span><span class="pln"> photocell </span><span class="pun">=</span><span class="pln"> A4</span><span class="pun">;</span><span class="pln">
  24. </span><span class="kwd">float</span><span class="pln"> cur_reading</span><span class="pun">;</span><span class="pln">
  25. </span><span class="kwd">float</span><span class="pln"> filtered_val </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> </span><span class="com">// this variable, of type float (decimal), holds the filtered sensor value</span><span class="pln">
  26. </span><span class="kwd">const</span><span class="pln"> </span><span class="kwd">float</span><span class="pln"> PREV_WEIGHT </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0.85</span><span class="pun">;</span><span class="pln"> </span><span class="com">// this variable, of type float (decimal), determines the previously filtered value's weight.</span><span class="pln">
  27. </span><span class="kwd">const</span><span class="pln"> </span><span class="kwd">float</span><span class="pln"> CUR_WEIGHT </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> PREV_WEIGHT</span><span class="pun">;</span><span class="pln">
  28. </span><span class="typ">Servo</span><span class="pln"> myLittleMotor</span><span class="pun">;</span><span class="pln">
  29. </span><span class="kwd">void</span><span class="pln"> setup</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  30. </span><span class="typ">Serial</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">(</span><span class="lit">9600</span><span class="pun">);</span><span class="pln">
  31. pinMode</span><span class="pun">(</span><span class="pln">fsrAnalogPin</span><span class="pun">,</span><span class="pln"> INPUT</span><span class="pun">);</span><span class="pln">
  32. pinMode</span><span class="pun">(</span><span class="typ">LEDpin</span><span class="pun">,</span><span class="pln"> OUTPUT</span><span class="pun">);</span><span class="pln">
  33. myLittleMotor</span><span class="pun">.</span><span class="pln">attach</span><span class="pun">(</span><span class="pln">servoPin</span><span class="pun">);</span><span class="pln"> </span><span class="com">// set up the servo on that data pin</span><span class="pln">
  34. pinMode</span><span class="pun">(</span><span class="pln">photocell</span><span class="pun">,</span><span class="pln"> INPUT</span><span class="pun">);</span><span class="pln">
  35. filtered_val </span><span class="pun">=</span><span class="pln"> analogRead</span><span class="pun">(</span><span class="pln">photocell</span><span class="pun">);</span><span class="pln">
  36. </span><span class="com">// Print the intial value so we can see it</span><span class="pln">
  37. </span><span class="typ">Serial</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"initial filtered value: "</span><span class="pun">);</span><span class="pln">
  38. </span><span class="typ">Serial</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="pln">filtered_val</span><span class="pun">);</span><span class="pln">
  39. </span><span class="pun">}</span><span class="pln">
  40. </span><span class="kwd">void</span><span class="pln"> loop</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  41. fsrReading </span><span class="pun">=</span><span class="pln"> analogRead</span><span class="pun">(</span><span class="pln">fsrAnalogPin</span><span class="pun">);</span><span class="pln">
  42. </span><span class="com">// convert the integer value returned by analogRead </span><span class="pln">
  43. </span><span class="com">// to a float by casting it</span><span class="pln">
  44. cur_reading </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">float</span><span class="pun">)</span><span class="pln">analogRead</span><span class="pun">(</span><span class="pln">photocell</span><span class="pun">);</span><span class="pln">
  45. </span><span class="com">// Calculate the next filtered value</span><span class="pln">
  46. filtered_val </span><span class="pun">=</span><span class="pln"> filtered_val </span><span class="pun">*</span><span class="pln"> PREV_WEIGHT </span><span class="pun">+</span><span class="pln"> cur_reading </span><span class="pun">*</span><span class="pln"> CUR_WEIGHT</span><span class="pun">;</span><span class="pln">
  47. </span><span class="com">// Print the filtered value so we can see it</span><span class="pln">
  48. </span><span class="typ">Serial</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"filtered value: "</span><span class="pun">);</span><span class="pln">
  49. </span><span class="typ">Serial</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="pln">filtered_val</span><span class="pun">);</span><span class="pln">
  50. </span><span class="com">// change the range from the analog reading (0-1023) </span><span class="pln">
  51. </span><span class="com">// down to the range used by analogWrite (0-255)</span><span class="pln">
  52. </span><span class="typ">LEDbrightness</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> map</span><span class="pun">(</span><span class="pln">fsrReading</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1023</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">255</span><span class="pun">);</span><span class="pln">
  53. </span><span class="com">// LED gets brighter the harder you press</span><span class="pln">
  54. analogWrite</span><span class="pun">(</span><span class="typ">LEDpin</span><span class="pun">,</span><span class="pln"> </span><span class="typ">LEDbrightness</span><span class="pun">);</span><span class="pln">
  55. motorAngle </span><span class="pun">=</span><span class="pln"> map</span><span class="pun">(</span><span class="pln">filtered_val</span><span class="pun">,</span><span class="pln"> </span><span class="lit">50</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">35</span><span class="pun">,</span><span class="pln"> </span><span class="lit">120</span><span class="pun">);</span><span class="pln">
  56. myLittleMotor</span><span class="pun">.</span><span class="pln">write</span><span class="pun">(</span><span class="pln">motorAngle</span><span class="pun">);</span><span class="pln">
  57. </span><span class="pun">}</span>
<span class="typ">Code</span><span class="pun">:</span><br><br><span class="typ">Bright</span><span class="pln"> </span><span class="typ">Balance</span><br><span class="typ">Nina</span><span class="pln"> </span><span class="typ">Yoo</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> </span><span class="typ">Connor</span><span class="pln"> </span><span class="typ">Maggio</span><br><br><span class="typ">Summary</span><span class="pun">:</span><span class="pln"> </span><span class="typ">The</span><span class="pln"> code below </span><span class="kwd">implements</span><span class="pln"> an FSR that maps brightness to an LED</span><span class="pun">,</span><span class="pln"> which </span><span class="kwd">is</span><span class="pln"> sensed </span><span class="kwd">by</span><span class="pln"> a photoresistor that maps angle to a servo motor</span><span class="pun">.</span><span class="pln"> </span><span class="typ">There</span><span class="pln"> </span><span class="kwd">is</span><span class="pln"> also an exponential filter on the photoresistor values so the servo motor </span><span class="kwd">is</span><span class="pln"> normalized</span><span class="pun">.</span><br><br><span class="typ">Inputs</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> FSR</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> photoresistor </span><span class="typ">Outputs</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> LED</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="typ">Servo</span><br><span class="pln">

</span><span class="typ">Collaboration</span><span class="pun">:</span><span class="pln"> </span><span class="typ">Robert</span><span class="pln"> </span><span class="typ">Zacharias</span><span class="pln"> helped us </span><span class="kwd">with</span><span class="pln">

</span><span class="kwd">using</span><span class="pln"> a power source </span><span class="kwd">for</span><span class="pln"> a few elements </span><span class="kwd">in</span><span class="pln"> </span><span class="kwd">our</span><span class="pln"> project</span><span class="pun">.</span><span class="pln">

</span><span class="typ">He</span><span class="pln"> also helped us implement a transistor </span><span class="kwd">in</span><span class="pln"> order to

create a </span><span class="lit">12V</span><span class="pln"> </span><span class="kwd">switch</span><span class="pun">.</span><span class="pln">

</span><span class="typ">Challenge</span><span class="pun">:</span><span class="pln"> </span><span class="typ">This</span><span class="pln"> project had more elements than any

previous project</span><span class="pun">.</span><span class="pln"> </span><span class="typ">Thus</span><span class="pun">,</span><span class="pln"> there were a lot </span><span class="kwd">of</span><span class="pln"> wires to keep

track </span><span class="kwd">of</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> it was a challenge making sure everything

was </span><span class="kwd">in</span><span class="pln"> tact</span><span class="pun">.</span><span class="pln"> </span><span class="typ">For</span><span class="pln"> instance</span><span class="pun">,</span><span class="pln"> at some point </span><span class="kwd">our</span><span class="pln"> servo was </span><span class="kwd">not</span><span class="pln">

grounded correctly </span><span class="kwd">and</span><span class="pln"> it would </span><span class="kwd">not</span><span class="pln"> move</span><span class="pun">.</span><span class="pln">

</span><span class="typ">Next</span><span class="pln"> time</span><span class="pun">:</span><span class="pln"> </span><span class="typ">It</span><span class="pln"> would be beneficial to </span><span class="kwd">use</span><span class="pln"> a smaller arduino

that we could fully house the project</span><span class="pun">.</span><span class="pln"> </span><span class="typ">In</span><span class="pln"> addition</span><span class="pun">,</span><span class="pln"> I will

check the entire wiring </span><span class="kwd">of</span><span class="pln"> </span><span class="kwd">my</span><span class="pln"> projects before linking the

power to prevent burning </span><span class="kwd">out</span><span class="pln"> elements</span><span class="pun">.</span><span class="pln">




</span><span class="pun">*/</span><span class="pln">

</span><span class="com">#include</span><span class="str"><Servo.h></span><span class="pln">

</span><span class="kwd">int</span><span class="pln"> fsrAnalogPin </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> </span><span class="com">// FSR is connected to analog 0</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> </span><span class="typ">LEDpin</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="lit">6</span><span class="pun">;</span><span class="pln"> </span><span class="com">// connect LED to pin 6 (PWM pin)</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> fsrReading</span><span class="pun">;</span><span class="pln"> </span><span class="com">// the analog reading from the FSR resistor divider</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> </span><span class="typ">LEDbrightness</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> motorAngle</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> servoPin </span><span class="pun">=</span><span class="pln"> </span><span class="lit">3</span><span class="pun">;</span><span class="pln"> </span><span class="com">// pin the servo data line is plugged into</span><span class="pln">
</span><span class="kwd">int</span><span class="pln"> photocell </span><span class="pun">=</span><span class="pln"> A4</span><span class="pun">;</span><span class="pln">

</span><span class="kwd">float</span><span class="pln"> cur_reading</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">float</span><span class="pln"> filtered_val </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0</span><span class="pun">;</span><span class="pln"> </span><span class="com">// this variable, of type float (decimal), holds the filtered sensor value</span><span class="pln">
</span><span class="kwd">const</span><span class="pln"> </span><span class="kwd">float</span><span class="pln"> PREV_WEIGHT </span><span class="pun">=</span><span class="pln"> </span><span class="lit">0.85</span><span class="pun">;</span><span class="pln"> </span><span class="com">// this variable, of type float (decimal), determines the previously filtered value's weight.</span><span class="pln">
</span><span class="kwd">const</span><span class="pln"> </span><span class="kwd">float</span><span class="pln"> CUR_WEIGHT </span><span class="pun">=</span><span class="pln"> </span><span class="lit">1</span><span class="pln"> </span><span class="pun">-</span><span class="pln"> PREV_WEIGHT</span><span class="pun">;</span><span class="pln">

</span><span class="typ">Servo</span><span class="pln"> myLittleMotor</span><span class="pun">;</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> setup</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
</span><span class="typ">Serial</span><span class="pun">.</span><span class="kwd">begin</span><span class="pun">(</span><span class="lit">9600</span><span class="pun">);</span><span class="pln">
pinMode</span><span class="pun">(</span><span class="pln">fsrAnalogPin</span><span class="pun">,</span><span class="pln"> INPUT</span><span class="pun">);</span><span class="pln">
pinMode</span><span class="pun">(</span><span class="typ">LEDpin</span><span class="pun">,</span><span class="pln"> OUTPUT</span><span class="pun">);</span><span class="pln">
myLittleMotor</span><span class="pun">.</span><span class="pln">attach</span><span class="pun">(</span><span class="pln">servoPin</span><span class="pun">);</span><span class="pln"> </span><span class="com">// set up the servo on that data pin</span><span class="pln">
pinMode</span><span class="pun">(</span><span class="pln">photocell</span><span class="pun">,</span><span class="pln"> INPUT</span><span class="pun">);</span><span class="pln">
filtered_val </span><span class="pun">=</span><span class="pln"> analogRead</span><span class="pun">(</span><span class="pln">photocell</span><span class="pun">);</span><span class="pln">

</span><span class="com">// Print the intial value so we can see it</span><span class="pln">
</span><span class="typ">Serial</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"initial filtered value: "</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Serial</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="pln">filtered_val</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> loop</span><span class="pun">(</span><span class="kwd">void</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
fsrReading </span><span class="pun">=</span><span class="pln"> analogRead</span><span class="pun">(</span><span class="pln">fsrAnalogPin</span><span class="pun">);</span><span class="pln">

</span><span class="com">// convert the integer value returned by analogRead </span><span class="pln">
</span><span class="com">// to a float by casting it</span><span class="pln">
cur_reading </span><span class="pun">=</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">float</span><span class="pun">)</span><span class="pln">analogRead</span><span class="pun">(</span><span class="pln">photocell</span><span class="pun">);</span><span class="pln">

</span><span class="com">// Calculate the next filtered value</span><span class="pln">
filtered_val </span><span class="pun">=</span><span class="pln"> filtered_val </span><span class="pun">*</span><span class="pln"> PREV_WEIGHT </span><span class="pun">+</span><span class="pln"> cur_reading </span><span class="pun">*</span><span class="pln"> CUR_WEIGHT</span><span class="pun">;</span><span class="pln">

</span><span class="com">// Print the filtered value so we can see it</span><span class="pln">
</span><span class="typ">Serial</span><span class="pun">.</span><span class="kwd">print</span><span class="pun">(</span><span class="str">"filtered value: "</span><span class="pun">);</span><span class="pln">
</span><span class="typ">Serial</span><span class="pun">.</span><span class="pln">println</span><span class="pun">(</span><span class="pln">filtered_val</span><span class="pun">);</span><span class="pln">

</span><span class="com">// change the range from the analog reading (0-1023) </span><span class="pln">
</span><span class="com">// down to the range used by analogWrite (0-255)</span><span class="pln">
</span><span class="typ">LEDbrightness</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> map</span><span class="pun">(</span><span class="pln">fsrReading</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1023</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0</span><span class="pun">,</span><span class="pln"> </span><span class="lit">255</span><span class="pun">);</span><span class="pln">

</span><span class="com">// LED gets brighter the harder you press</span><span class="pln">
analogWrite</span><span class="pun">(</span><span class="typ">LEDpin</span><span class="pun">,</span><span class="pln"> </span><span class="typ">LEDbrightness</span><span class="pun">);</span><span class="pln">

motorAngle </span><span class="pun">=</span><span class="pln"> map</span><span class="pun">(</span><span class="pln">filtered_val</span><span class="pun">,</span><span class="pln"> </span><span class="lit">50</span><span class="pun">,</span><span class="pln"> </span><span class="lit">1000</span><span class="pun">,</span><span class="pln"> </span><span class="lit">35</span><span class="pun">,</span><span class="pln"> </span><span class="lit">120</span><span class="pun">);</span><span class="pln">
myLittleMotor</span><span class="pun">.</span><span class="pln">write</span><span class="pun">(</span><span class="pln">motorAngle</span><span class="pun">);</span><span class="pln">
</span><span class="pun">}</span>

 

Discussion: From the start we just started to brainstorm ideas that were interesting. We settled on Bright Balance and when we first began we started with a schematic giving the overall view of how it would work and what components it would require. However, though this step did help us begin the project, we did not really follow it as much when proceeding with our project. We turned to website tutorials to help us with our code as well as the wiring. It would have been easier for us if we had mapped or continuously updated our schematic as we went through the process.

The first component that we set up were the lights. At first, we had used the simple LED lights that were provided from earlier projects, but we needed something stronger. We then proceeded to go to a stronger LED, but that was also too weak. The professor then introduced us to an LED panel that had more than enough light, but required a 12 volt battery. We then proceeded to learn how to use bigger batteries and how we can connect it to the light source as well as the Arduino. It was helpful that the professor was with us during the wiring of the 12 volt battery to make sure everything went smoothly.

The next components we tackled was the pressure sensor and the photocell. It was easy to wire and code, but the data was noisy so we implemented “float” in order to filter out the data. This allowed for a much smoother response when printing the numbers/ looking at the graph.

After implementing the FSR and photocell, we converted that data into the motor. We used the filtered value that the photocell got from the light, which was read from the FSR, to then move the motor at different angles. We played with values of the motor to see how much angle it needed to move the marble around as well as keeping in mind the space around it. In the beginning, we had a small servomotor that was given to us in class, but then was introduced to a larger servomotor which required 5 volts. We broke the first motor, and after trying to rewire and code for a while, we realized we just needed another one.