Close
0%
0%

Bored No More

Interactive Science Fair Board
Using Arduino, big buttons, servos, and motors create excitement while interacting with science.

Similar projects worth following
Science fair boards have failed to evolve over the last 50+ years. It is time to break away from the "Look but don't touch" mentality. Using Arduino, Big buttons, Servos and LED's we can add interactivity to the science fair boards of the future. My goal is to make science fairs more interesting to my fellow students to get them excited about science and engineering.

"Bored No More"

Interactive Display Board

When you press one of the buttons on the control panel multiple events happen depending on the button pressed.  A photo wheel will spin and display a photo in the picture window for every button.  The associated back-lit stencil will light highlighting the appropriate section of the board to look at.  Other events such as a door will open,  a photo spinner will start, or the credits roll will be activated.

The main features I have built and have working:

  • Control panel with 5 large LED arcade buttons 
    • Good for attracting attention of both young and old
  • Rotating picture wheel with a view window on the board 
    • Foam core wheel powered by stepper motor
  • Flip up door to reveal additional information 
    • Foam core door on coat hanger wire powered by a servo
  • Moving arrow to attract attention 
    • Foam core arrow on coat hanger wire powered by a servo
  • Pentagon shaped photo spinner 
    • Made with foam core powered by small DC motor
  • Spinning cylinder for a credit roll 
    • 3d printed frame and gears powered by small DC motor
  • Light up stencil signs 
    • Invisible until back-light led's turn on

  • 1 × Arduino Uno
  • 1 × Stepper Motor 5v
  • 2 × Hobby Motors
  • 5 × Jumbo LED Arcade Buttons
  • 1 × RGB Neopixels Strip Application Specific ICs / Telecom ICs

View all 26 components

  • The Arduino code for "Bored No More"

    Jazzmyn08/20/2014 at 23:46 0 comments

    The Arduino code for "Bored No More" 

    #include <PWMServo.h>
    #include <Wire.h>
    #include <Adafruit_MotorShield.h>
    #include "utility/Adafruit_PWMServoDriver.h"
    #include <Adafruit_NeoPixel.h>

    //neopixels
    #define PIN 6
    Adafruit_NeoPixel strip = Adafruit_NeoPixel(120, PIN, NEO_GRB + NEO_KHZ800);

    // Create the motor shield object with the default I2C address
    Adafruit_MotorShield AFMS = Adafruit_MotorShield();
    // 513 stepper motor on pin 1
    Adafruit_StepperMotor *myMotor = AFMS.getStepper(513, 1);
    Adafruit_DCMotor *myMotorDCSpin = AFMS.getMotor(3);
    Adafruit_DCMotor *myMotorDCCan = AFMS.getMotor(4);

    const int buttonPin1 = 0; // the number of the red pushbutton pin
    const int buttonPin2 = 1; // the number of the white pushbutton pin
    const int buttonPin3 = 2; // the number of the blue pushbutton pin
    const int buttonPin4 = 3; // the number of the green pushbutton pin
    const int buttonPin5 = 4; // the number of the yellow pushbutton pin

    const int ledPin1 = 5; // the number of the red LED pin
    const int ledPin2 = 7; // the number of the white LED pin
    const int ledPin3 = 8; // the number of the blue LED pin
    const int ledPin4 = 11; // the number of the green LED pin
    const int ledPin5 = 12; // the number of the yellow LED pin

    int button1State = 0; // variable for reading the red pushbutton status
    int button2State = 0; // variable for reading the white pushbutton status
    int button3State = 0; // variable for reading the blue pushbutton status
    int button4State = 0; // variable for reading the green pushbutton status
    int button5State = 0; // variable for reading the yellow pushbutton status

    PWMServo myservoDoor; // create servo object to control the door servo
    PWMServo myservoArrow; // create servo object to control the arrow servo
    int posArrow = 100; // variable to store the arrow servo position

    void setup()
    {
    myservoArrow.attach(SERVO_PIN_A); // servo on pin 9 to the servo object
    myservoDoor.attach(SERVO_PIN_B); // servo on pin 10 to the servo object

    AFMS.begin(); // create with the default frequency 1.6KHz
    myMotor->setSpeed(5); // 5 rpm

    strip.begin(); // start
    strip.show(); // Initialize all pixels to 'off'
    for(uint16_t i=0; i<95; i++)
    {
    strip.setPixelColor(i, 204, 0, 102);
    strip.show();
    delay(15);
    }

    // initialize the LED pin as an output:
    pinMode(ledPin1, OUTPUT);
    pinMode(ledPin2, OUTPUT);
    pinMode(ledPin3, OUTPUT);
    pinMode(ledPin4, OUTPUT);
    pinMode(ledPin5, OUTPUT);

    // initialize the pushbutton pin as an input:
    pinMode(buttonPin1, INPUT);
    pinMode(buttonPin2, INPUT);
    pinMode(buttonPin3, INPUT);
    pinMode(buttonPin4, INPUT);
    pinMode(buttonPin5, INPUT);

    // turns on LEDs in all the buttons
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, HIGH);
    digitalWrite(ledPin3, HIGH);
    digitalWrite(ledPin4, HIGH);
    digitalWrite(ledPin5, HIGH);

    myMotorDCSpin->setSpeed(150);
    myMotorDCSpin->run(FORWARD);
    myMotorDCSpin->run(RELEASE);

    myMotorDCCan->setSpeed(150);
    myMotorDCCan->run(FORWARD);
    myMotorDCCan->run(RELEASE);
    }

    void loop()
    {
    sweep(); // sweep arrow
    }

    void sweep() // sweep arrow
    { // and check for button press
    for(posArrow = 0; posArrow < 100; posArrow += 1) // goes from 0 to 180 degrees
    {
    Button1();
    Button2();
    Button3();
    Button4();
    Button5();
    myservoArrow.write(posArrow); // tell servo to go to'posArrow'
    delay(15); // servo to reach the position
    }
    for(posArrow = 100; posArrow>=1; posArrow -= 1) // goes from 180 to 0 degrees
    {
    Button1();
    Button2();
    Button3();
    Button4();
    Button5();
    myservoArrow.write(posArrow); // tell servo to go to'posArrow'
    delay(15); // servo to reach the position
    }
    }

    void Button1()
    {
    button1State = digitalRead(buttonPin1); // read the state of buttons
    if (button1State == HIGH) // check if button is pressed
    {
    myservoDoor.write(3); // close door

    //turn off neopixels for Problem
    strip.setPixelColor(96, 0, 0, 0);
    strip.setPixelColor(97, 0, 0, 0);
    strip.setPixelColor(98, 0, 0, 0);
    strip.setPixelColor(99, 0, 0, 0);
    //turn off neopixels for Hypothesis
    strip.setPixelColor(100, 0, 0, 0);
    strip.setPixelColor(101, 0, 0, 0);
    strip.setPixelColor(102, 0,...

    Read more »

  • Next Time I Will Take More Pictures During Build

    Jazzmyn08/14/2014 at 15:42 0 comments

    You live you learn.  I promise myself I will take more pictures during my next build.  Taking some components apart to get good photos today.  When I should of taken them while I was building (would of been so much easier).  Lesson learned there is never to much documentation.  What other leseons have other makers learned the hard way?  Please let me know!

  • Hopes and Dreams

    Jazzmyn08/13/2014 at 13:09 0 comments

    Hopes and dreams of things I would like to add but do not have the budget to do at this time.

    • Led bar graphs (Led's change and move in respect to science project data)
      • Requires additional LED strips
    • Moving dial displays (Servo powered and move in respect to science project data)
      • Requires multi channel servo controller
    • More doors (Flip up, barn door style, and sliding doors powered by servos)
      • Requires multi channel servo controller
    • Sound effects (to go along with activated movement)
      • Requires MP3 shield, speakers, and amplifier
    • Recorded messages (explain data being displayed by activated feature)
      • Requires MP3 shield, speakers, and amplifier
    • More buttons, switches, and knobs
      • Use to activate features and because they add interactivity

  • The Plan

    Jazzmyn08/12/2014 at 22:45 0 comments

    To show what is possible with a interactive Science Fair board. By using cheap components, a little arts and crafts, and the power of imagination Science Fairs can be interesting to all students and parents. This might inspire the future generation to become engineers.

  • Maker Faire Detroit 2014

    Jazzmyn08/12/2014 at 15:02 0 comments

    Just returned from a successful showing at Maker Faire Detroit.  Thanks to everyone who stopped by and saw my project.  Proud recipiant of a "Maker of Merit" blue ribbon.  I am excited by the interest and feedback I received.  I will be adding more images and instructions to this project shortly.  Please stay tuned.

View all 5 project logs

  • 1
    Step 1

    Dream It!

    Inspiration

    • Google search on science fair boards

    I used Google image search to look at what other projects looked like.  There were some real good looking projects but little innovation in the boards themselves.It is time to break away from the same tri-fold board that has been used for the last 50+ years.  Innovation and interactivity has touched almost every part of our lives in that time.  So why not science fairs?  With today's inventions like X-Box and smart phones we have become accustomed to interacting with the products we use.

    • Failed attempts on last years board

    Last year I entered the science fair I added a few new features to my board.  I had signs that you could flip up and a wheel you could spin.  These were not used because the rules were look but don't touch.  Science is not abut that.  In science you need to be hands on.  So I decided there needed to be a change.

    • Learned how to use Arduino

    Over the summer I worked my way through the "Experimenter's Guide for Arduino".   This taught me the basics of Arduino programming.  With the knowledge of what was possible I began to imagine what a modern science fair board could be.

  • 2
    Step 2

    Brainstorm

    • What features do I want

    I wanted the ideas that failed on my last board to work on this one.  So a big spinning wheel placed behind the board with a cut out window to show different photos was a must.  Another thing that I wanted was flip up doors to show additional information.  I also wanted a "attention getter" something moving on the top of my board to attract kids and parents to my display.  Once you learn Arduino you know LED's are a must have feature so that also made the list.

    • How to make it work

    After the features were picked the question of how to make the board work needed to be solved.  I would use an Arduino for the brain but how would the students be able to interact with the board was the next problem to solve.  Big buttons is my solution.  Who dose not like big glowing buttons?  By using the buttons to control the different features people could interact with what the board was doing.  This would increase the effectiveness of the points I was trying to communicate.  Also by connecting with your viewers they will be more likely to remember your project even after the fair.

  • 3
    Step 3

    Can it be done?

    • Do I have access to the parts

    Most of the parts I needed to test my idea were included in the Arduino experimenters kit.  Specialty parts like the big buttons could be purchased online latter.  Thanks to online vendors like adafruit.com and sparkfun.com just about anything I could imagine could be built.

    • Can I get help if I am stuck?

    When you are pushing the edge of your knowledge it is nice to know there is someone out there to help if you get stuck.  I used the Arduino forums and adafruit.com learning guides to fill in any gaps.  Both of these communities are eager to help and will give you quick responses to any question.

    • How long will it take

    This was a hard one.  I had no idea so I started way early.  Then news came down that my school might not have a science fair this year.  Talk about disappointment.  When I heard this I quit working on my project.  What a big mistake.  The school changed it mind and now I found myself behind.  The best advice I can give is start early and finish with time to spare.  Or you can do what I did and work all night every night leading up to the fair and just barley get it working so you have something to display.

    • Will it break any rules

    According to the Intel science fair rules I was in the clear.  You are allowed to use a power strip and my project fit the size requirements.  But my school had a wiring hazard clause in their rules.  If this is the case it is time to talk to your teachers and beg for a exemption.  I had to explain that there was little risk because everything was powered by less than 9 volts.  Although my wires were a mess I used heat shrink and good soldering practices to prevent any short circuits.  Plus I used puppy dog eyes when I asked.

View all 18 instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates