Group 6: User-interactive Theatrical Props

fullsizeoutput_2137

Hello, welcome to our project page! We are excited for you to learn more about what we’re building. Keep reading to see the evolution of our project.

Cheers,

Justin, Audrey, and Max

Design Blog

Project Decision and Developing Ideas

November 20th

We submitted our group members and determined which project we will work on! We began to consider the problem we are solving and coming up with ideas on how to best solve it. Our main focus was to create a high-level idea of the user interface.

When picking a project we wanted to choose something that left us some space for creativity, so the theatre props project was a perfect fit because we had a huge range of ways to interpret it. After selecting the project, we needed to decide what we wanted to build! After discussing how interactive objects could be useful for a scene in a play, we decided that we wanted to create something that appeared magical and could be used as a special effect in a play. In this way, the device is meant to deceive the audience. Before building a prototype, we considered the intended effect of our object and if we could reasonably build it. The steps of our decision process were as follows:

  1. How can we make a prop respond to a user’s action?
    1. These will require sensors.
  2. How can we make the sensors invisible to the audience?
    1. Embed them in a table.
  3. What will respond to input from the sensor?
    1. An object on the table that responds to the movement around it, a hat, per se.
  4. How would it react?
    1. Follow the actor’s hand as he moves it around the table

In this way, we built a conceptual model for the interactions between users and our object. The users move around the table, and the hat “follows” them. When considering this model, we had to reconcile our goal to make the object behave in a way that deceives the audience, while maintaining visibility for the user, the actor. The embedding of sensors in the table solved the issue because the actors will either be able to see them from their unique angle, or they will be well trained in where the sensors are from rehearsals.

Ordering Parts

November 26th

We have ordered the parts for our object! After deciding a general idea of what we wanted to build, we needed to determine exactly HOW we could build it. This week we researched ways to accomplish our goals, thought through the necessary hardware components and made a full beginning to end plan of how to build the object. All of this was critical to ordering parts because we know that once our parts arrive we will not be able to order new ones (because of time) so we needed a fully detailed and comprehensive plan. Our biggest concerns were if we realized something we ordered was wrong or that we needed to order something else. To avoid this, we tried to think through edge cases and in detail, every part we would need and how the parts would work together. Our steps were as follows:

  1. How will we get the hat to move?
    1. Considered a motor that would be able to spin the hat in response to sensor input.
    2. We looked up examples of how people used Arduino with motors.
  2. What kind of motor should we use?
    1. One that is strong enough to carry a top hat, can run without being plugged into a computer, was within our budget, and could be delivered promptly.
    2. Most motors we found took weeks to be delivered or were very expensive.
    3. We eventually found one that would work and realized we would need a shield and battery pack to give it the full functionality we desired.
  3. What sensors will we use?
    1. The photoresistors from our kit will work great and there are extras in the carousel.
  4. How will we connect everything?
    1. We can have multiple breadboards that are connected to the same Arduino.

Understanding our Hardware Components

November 30th

We have begun to assemble our hardware! We received notification from the lab that our motor’s shipping arrival was delayed a month, thus we would be unable to use it for the project. We met in the lab to see how we could work around this issue. Luckily, the rest of our parts had arrived and we were able to collect them. We asked the lab if there were any appropriate motors we could use but they only had step motors and one spinning motor used for building toy cars. We decided to try the toy motor even though it:

  1. spins on both sides, even though we only need one
  2. is not as strong as we want
  3. is difficult to attach anything other than a wheel to

Once we began working with the motor, we had a hard time getting the motor to change direction. The side which you place the 2 wires in the motor determines the direction it spins in because 1 is connected to power and the other to a pin. To change direction, would need to remove and switch the wires which obviously can’t be done on stage. To solve the issue, we found an L293D chip that allows you to switch the inputs to the motor programmatically.

We also built the sensor functionality. We carefully considered how to arrange the sensors to avoid skewed input. We initially wanted to have the sensors dispersed throughout the table but would need many breadboards with single sensors on them which is unreasonable. We decided to arrange the sensors in a circle on a single breadboard where the user can wave their hand over. This is a prototype for a possible future implementation that might have the sensors placed elsewhere. To avoid skewed input we needed to ensure that no wires cover sensors and that if the user reaches for a sensor across the board, they don’t cover one on the way. To do so, we rearranged our circular pattern into a trapezoid so the user could wave their hand in a circle and still only cover the intended sensors. This week we had to make a lot of compromises and find new ways to implement our plan when facing challenges.

img_8890

Connecting the Sensors and Motor

December 5th

We connected the pieces of our object into one functional unit! To do so we:

  1. Created a Git-Repository
    1. Available here: https://github.com/audreybrooke/MovingHat
  2. Wrote 2 separate sketches to understand the motor and sensors and build their corresponding functionality.
    1. The sensor sketch determines which sensor is covered and compares it with whichever sensor was previously covered to determine if there is movement and if so if it is clockwise or counterclockwise.
    2. This was initially difficult because our sensors are stored in an array (which is linear) and we needed to treat it as if it was a circle. A few extra if-statements cleared this up.
    3. The motor sketch tested the chip and built functionality for switching direction on demand
    4. At first, configuring the chip was very difficult and we struggled to determine which pins we needed to connect to.
  3. Created a third sketch that merged the functionality of both tester sketches. This is how we implemented a mapping between the sensors and the motor and also how the object gives feedback about the input to the sensors.
  4. Found a prototype hat to place on the motor
    1. The new motor required us to adjust the plan to have a very light hat
      1. Built a lo-fi hat out of paper
    2. Needed to find a way to connect hat to motor
      1. The motor was ripping the paper we attached to it
      2. Tried to use electrical wires that were taped to the hat and motor
        1. This didn’t work because wires weren’t strong enough
      3. Found a rod behind the tape dispenser in the lab and asked if it was a part of something being built and if I could have it
        1. Turns out, the rod is a leftover piece of the new windows that were installed in the lab and they let us have it
        2. Sawed off an ~4 cm portion
        3. Taped it to the bottom of the hat
      4. Still, the inside of rod a little too thick for the motor, so we stuffed it with tape so they would connect better.

This process required us to give up some of our hopes for the final product, namely a full table of sensors and a real hat. We were able to make appropriate compromises by sticking with the single-breadboard sensors, creating a light mock-hat and placing the motor in a box.

 47576926_272916783422041_8328018063131672576_n

Putting it all Together

December 8th

We have performed our final tests and assembled all the parts of our object! To test we checked waved our hand over the sensors at different speeds, distances, and directions. Then, we asked our friends to use the object, giving them as little instruction as possible to see how they felt with it. We asked them questions like, does it respond as you intended? Is it easy to get the response you want? Is the experience enjoyable? We also had other testers watching to see how well they could see the motor and detect what was going on. When testing our object we experienced some difficulty with the sensors, they could barely detect hands moving above them. To prevent this, we created a testing function that finds the approximate base values being sensed to determine which value to check for that means they have been covered. The sensors still don’t always respond perfectly, but we have optimized them to the best of our ability. We believe the issue is that a shadow may cast over the wrong sensor and the hat moves the wrong direction. Here is a video of Justin (the great) testing the object!

 

Presentation!

December 11th

We just finished our presentation. Here are the slides for reference:

ecs-final-project

 

Project Task List

1. Research – all, as described above in the documentation
2. Coding – Justin & Audrey as based on our research
3. Components ordering – all, as described above in the documentation
4. Setting up arduino board – Justin, Audrey
5. Ideas – all, mainly Justin  
6. Pictures/Videos – Audrey, Max
7. Assessing project progress – all
8. Online portfolio – Audrey, Max
9. Design concepts & interface – all
10. Prototyping – all
11. Circuit layout and diagrams – Max
12. Testing – all
13. Presentation – all

47689091_540436629787389_9012703315460358144_n

 

Maker’s Manual

A. Overview and Summary

This project is under the theatre props project as mentioned above, Out of the options that were given. We chose the spinning hat project. We connected some photo-sensor Arduino breadboard, so that the motor attached to the hat can detect the hand movement. We also used L293D, in order to make sure that the motor is able to connect both clockwise & anticlockwise.

To use this, all you have to do is turn the arduino on and wave ur hand over the photoresistors. Depending on the direction you wave your hand, the motor will spin accordingly, thus giving the illusion that the hat is moving to the motions of your hands. Below are some photos capturing the building of the project.

B. Tools and Supplies

The tools and supplies include a combination of parts we were exposed to in class and as well as parts we scavenged for ourselves. Below is a comprehensive list detailing each tool used.
  • 12V D/C Motor (Yellow Motor)
  • 3.5cm of gray PVC pipe
  • Paper (to construct hat figure)
  • Arduino UNO
  • 2 Breadboards
  • 4 Photoresistors (Light Sensors)
  • 4 10K Ohm resistors
  • L293D Motor Driver Chip
  • Lots of wires

C. Layout and Circuit Diagram

Below is a fritzing-generated circuit diagram of our project.

 

48220589_219846612264748_4295682777421971456_n

 

D. Build Procedure

Below is a fritzing schematic of our Arduino. It outlines all the connections to peripherals, and the motor as well. The diagram, though, omits the hat which lies on top of the motor.

47394810_539044153241586_2260357222489915392_n

 

E. Code

To upload all our code at once, we have used codeblock. If the link does not work, you can use the below url.

Click to access codeblock.pdf

F. Testing and Known Shortcomings

[This section was covered in the blog but has been repeated here]

To test we checked waved our hand over the sensors at different speeds, distances, and directions. Then, we asked our friends to use the object, giving them as little instruction as possible to see how they felt with it. We asked them questions like, does it respond as you intended? Is it easy to get the response you want? Is the experience enjoyable? We also had other testers watching to see how well they could see the motor and detect what was going on. When testing our object we experienced some difficulty with the sensors, they could barely detect hands moving above them. To prevent this, we created a testing function that finds the approximate base values being sensed to determine which value to check for that means they have been covered. The sensors still don’t always respond perfectly, but we have optimized them to the best of our ability. We believe the issue is that a shadow may cast over the wrong sensor and the hat moves the wrong direction.

Leave a Reply