Interactive Theatrical Puppet

What is a Theatrical Prop?

It is a theatrical property; an object used on stage or on screen by actors. A prop is considered anything movable or portable on a stage/set, distinct from actors, scenery, costumes and electrical equipment.

It is common for actors during a theatrical performance to use props in order to interact with the audience and inject life into the scene delivered. This is commonly done with objects found in everyday live based on the environment of the scene.

 

User-Interactive Theatrical Prop Puppuino

Our puppet, named Puppuino, has a very simple life. He gets sleepy, hungry, sad and happy. However, Puppuino cannot talk. He lets others know how he feels by changing the LEDs attached to him. A sock puppet which will give an output based on changes of hand gestures. When the puppeteer’s hand is at a certain angle, a specific LED turns on. When the angle changes, that LED turns off and another one turns on.

image1

Objectives

Puppets are objects often resembling humans, animals or mythical figures. They are manipulated by the puppeteer. Uses movements of their hands, arms or control devices (eg rods/strings) to move the body, head or limbs of the puppet. Puppeteer wears sock on hand like a glove. Fingers form and control the puppet’s mouth.

Puppet with no voice

Usually, puppeteers speak on behalf of the puppets to tell a story. In this case, there is no speech at all.

This is done to enhance the sensation of the puppet’s moves and of the whole process of using the interactive element.

Puppuino as an example

Children get ‘shaped’ by the world around them from a young age. Hidden or indirect meanings can really mark their sub consciousness. It is important that technology is included as a stimulus in their fun activities. This will make it part of their lives; consequently they will enjoy it more, be better at it and know more about it.

 

 

Project Plan

prop

 

Initial Planning Stage

  • Brainstorming
  • Research
  • Idea Analyzing
  • Low-Fi Prototype
  • Storyboard
  • Pseudo code

 jknk-2

 

Final Planning Stage

  • Decide on Components
  • Order Component
  • Resemble Component
  • Test Component
  • Basic Design Layout
  • Further Design Layout
  • Test code
  • Hi-Fi prototype

Development

  • Objective Interaction
  • Real Prototype
  • Further Programming
  • Constructing Arduino Board Sample
  • Software Testing
  • Hardware Testing
  • Theatrical Idea Relation
  • Design Principle Relation

Documentation

  • Design blog
  • Project task list
  • Maker manual
  • Overview – Dalilah
  • Tools and supplies – Michael & Karla
  • Layout and circuit diagram – Michael
  • Build – Michael & Karla
  • Commented and well organised code – Michael
  • Discussion of testing conducted and known shortcomings – Dalilah
  • Presentation
  • Project idea – all
  • Evolution of project – Dalilah
  • Design principles and choices – all
  • Goals of the product and how we achieved or fell short of them – Dalilah and Michael

 

 

Maker Manual

 

            Overview:

In this project, we were assigned to create a ‘user-interactive theatrical propfor using on theatrical or cinematic purpose, such as a stage show, a screen play, etc.  Usually, a prop, also known as a (theatrical) property, will be something that an actor/actress uses to enhance the audience’s sensation to keep their interest with the story that is being told at that moment. So, we decided to make ‘interactive puppets’ that can react to some certain gestures while the story tellers move their hands. One puppet (in one hand) will be the sender that will be giving a command by tracking the hand gestures and movement angles via a 3-axis accelerometer module attached to the board, and then sending that information to a receiver puppet (in another board) so that it will react and output some actions according to how the first one is moving.

 

Apparatus:

– Arduino Duo Board x2

– Breadboard x2

– 9v Battery x2

– Power Cable Clip Connector 2.1mm DC Jack Plug x2

– GY-521 3 axis Accelerometer/Gyroscope Module x1

– HC-12 Wireless Communication Module x2

– 74HC595 Shift Register x1

– Red LEDs x2

– Green LEDs x2

– Blue LEDs x2

– Piezo Speaker x1

– 560 Ohms Resistor x6

– 8 Pin Header x1

– 5 Pin Header x2

– Jumper Wires (Male-Male, Male-Female, Female-Female)

– Vinyl Electrical Tape

 

Board Layout

 

  • Sender Board
  • Receiver Board

 

Build Section

First let’s take a closer look at all the essential components that are required from above. The main components apart from ones inside the Arduino Duo kits tools that we specifically added in project are: GY-521 – a 3 axis accelerometer/gyroscope module to keep track on the hand gestures, and HC-12 – a wireless communication module to make the communication between two circuits possible and works wirelessly.  Since we will be making two circuit boards, one as a ‘Sender’ and another one as a ‘Receiver’, we will separate the components into two groups:

  • Sender Components: Arduino Board, Breadboard, Battery, Power cable, GY-521, HC-12, 8 Pin Header, and 5 Pin Header.
  • Receiver Components: Arduino Board, Breadboard, Battery, Power cable, HC-12, 5 Pin Header, 74HC595 Shift Register, Red LEDs, Green LEDs, Blue LEDs, Piezo Speaker, and 560 Ohms Resistor.

After identifying which components for which board, we will now start to assemble them together. Some components like the HC-12 or GY-521, usually the modules will come without any pin attached to them or some parts were not fully connected right out of the package, this means we need to solder them in order to make them function properly. Otherwise, you can somehow use a solderless component only for testing or any other way of joint would cause the unsteadiness in electric flow, some unexpected hiccup, or the worst case would be electric spike occurs. So, soldering is a must in this case.

User-interactive Sock Puppet

A sock puppet which will give an output based on changes of hand gestures.

When the puppeteer’s hand is at a certain angle, a specific LED turns on. When the angle changes, that LED turns off and another one turns on.

The Story: Meet Puppuino

Our puppet, named Puppuino, has a very simple life. He gets sleepy, hungry, sad and happy. However, Puppuino cannot talk. He lets others know how he feels by changing the LEDs attached to him.

frit frittt wed wede whatsapp-image-2017-12-18-at-21-54-30

Further Development with Speed^2

First, the logo for the game has been completed. The new design is based off of the original but created with tiny squares to keep the “squared” theme continuous. The play symbol is used to represent game and the flames behind it add an element of speed and energy. The two of course is used to represent the name of the game: Speed^2.

Game Logo

Second, while coding the visuals for the game using Processing it was decided to have a square be the shape to change colours to test the user’s speed. Rather than have a random shape or the full screen change colours. The square shape throughout the game creates a product that is uniform. Note: the image used below is not the final product but just a visual of how rounds and the coloured square will appear on the screen.

part one

Third, due to  the size of the TFT display, Michael, Karla, and Dalilah decided to use one laptop in order to have the two controllers connected to one screen. The laptop screen is big enough for both users to comfortably look at the screen for direction and feedback.

Fourth, due some technically difficulty with the audio mp3 shield, it will no longer be used. Instead, there will be audio to give instructions to the users.

Fifth, originally the game had 10 rounds per part. But since 10 is not a squared number, the rounds were changed from 10 to 16 rounds since 16 is a squared number. Hence most design decisions that were not technically based were changed to do uniformity with the brand and name created for the game: Speed^2.

Project Tasks

Project Task List

Major tasks:

Ideation

  • Brainstorming – all
  • Game objectives – all
  • Idea development #1 – all
  • Choosing final idea – all
  • Storyboard – Karla

Planning

  • Delegation of tasks – Karla
  • Time and plan chart – Karla
  • Pseudocode – all

Testing

  • Test components – Dalilah & Michael
  • Test code – Dalilah & Michael
  • Make hardware prototype – Dalilah & Michael
  • Make material product prototype – Karla

Development

  • Idea development #2 – all
  • Planning of components – Michael
  • Planning of materials – Karla
  • Final design idea sketches – Karla
  • Final design idea documentation – all
  • Logo design – Dalilah & Karla

Making

  • Write the code – all
  • Construct arduino hardware – all
  • Construct the product – Karla

Documentation

  • Design blog – Dalilah & Michael
  • Project task list – Karla
  • Maker manual – all
    • Overview – Dalilah
    • Tools and supplies – Michael & Karla
    • Layout and circuit diagram – Michael
    • Build – Michael & Karla
    • Commented and well organised code – Michael
    • Discussion of testing conducted and known shortcomings – Dalilah
  • Presentation for assessment – all
    • Project idea – all
    • Evolution of project – Dalilah
    • Design principles and choices – all
    • Goals of the product and how we achieved or fell short of them – Dalilah and Michael

Pseudo Code Part A

Part A PSEUDO CODE – BASIC STRUCTURE

  •         DECLARE int variable for maximum number of rounds (default is 10) (maxRounds)
  •         DECLARE int variable to record number of rounds passed (default is 0) (currentRound)
  •         DECLARE colour Array of possible colours displayed on LED (possibleColours[])
  •         DECLARE class for all the possible colour combinations to be stored in colour array
  •         DECLARE random int from 0- Length of array of possible colours
  •         DECLARE int variable for number of points gained for both Player 1 and Player 2 (default is 0)

SETUP link all buttons to correct digital pin (eg. 1-4 for player1, 5-8 for player2)

//(PLAYER1)  1 = red, 2 = green, 3 = black, 4 = white

//(PLAYER 2) 5 = red, 6 = green, 7 = black, 8 = white

Game Flow:

LOOP FOR maxRounds (default is 10){

  •         Text on screen: “Round ” + currentRound
  •         Play sound file (currentRound announcement)
  •         currentRound increment by 1
  •         display random LED colour
  •         DECLARE int variable for number of milliseconds passed (updates)
  •         if player1 presses correct random LED colour, DECLARE int variable (p1miliseconds passed)
  •         if player2 presses correct random LED colour, DECLARE int variable (p2miliseconds passed)
  •         COMPARE which is the smaller amount
  •         If player1 is smaller, player1Point++
  •         If player2 is smaller, player2point++

}

IF currentRound == maxRounds

Move on to part 2!!

CLASS

  • DECLARE int array (0-3) (each index corresponding to the 4 different BG colours)
  • DECLARE int array (0-3) (each index corresponding to the 4 different FG colours)

DECLARE function to generate the displayed LED screen

Prototyping

Exercise in class:

Notice: Instead of calling the two different parts of the game “round,” we will call it Part One and Part Two so rounds one through ten can be announced every time. For example: After Part One directions are announced, then “Round one, ready set go!” is announced and repeated until round ten is completed.

 

Pick one function/dimension of your project: Prototyping Part 1: speedy colour visual

Brainstorm about the user’s goals

  • What does the player want to do? To react to colour that appears on screen by pressing the correct coloured button before their opponent does.
  • What info will player need? To understand that coloured buttons correlate with colours that appear on screen.
  • What kind of interface supports these tasks? LCD display with coloured TFT LED display, coloured buttons, and audio.

 

Create an initial low fidelity prototype:

  • Materials: paper, markers, index cards, pen, and scissors
  • Iteration of game: 1. Four paper screens are created to showcase four different colours that can appear on LCD display, which will be controlled with a random functionality. 2. Two index cards are used as breadboard representation with coloured buttons in diamond formation to create the two player experience. 3. Karla acts as game, which will randomly show coloured screens for Michael and Dalilah to act as players racing to react the fastest. 4. Karla will randomly show coloured screens and tally points for ten rounds.

20171127_174720

 

 

 

 

 

 

*Part One: If player is guesses correctly but too late, they will receive another different negative confirmation sounds indicating they didn’t receive a point. Therefore, there are now three different sounds occurring as feedback: one for a correct guess and point, one for correct guess but no point, and one for wrong guess.

 

*If there is tie after Part One or Part Two, there is a Sudden Death of three rounds of the part that just occurred. Therefore, if there is a tie after Part One then Sudden Death occurs right after.

 

Results:

  • Round 1: Dalilah, 8 points
  • Round 1: Michael, 5 points
  • Round 2: Dalilah, 5 points
  • Round 2: Michael, 6 points
  • Winner is: Dalilah!!!!

 

Possible additions to Part One:

  • On coloured screen, the colour will be spelled out but in a different colour, which will confuse the players but the players need to press the button matching the screen background colour.
  • LED coloured buttons: buttons change position for every round.
  • The change in position makes Part One more competitive meaning more fun!

 

Possible additions to Part Two:

  • LED coloured buttons: buttons change position for every round.
  • The change in position makes Part Two more competitive meaning more fun!

Post #1 Speed base-2 : The Initiation

Meeting No. 1: Wednesday 22nd November 2017

Planning, initial ideas, time management…

Our Concept

Round 1: Each player has four different coloured buttons. The motor displays random color (out of four). Users need to react to the color displayed by pressing the coloured button that correlates to the colour on the motor. The user will be notiified if answer was wrong or right via sounds. One sound positive the other negative. This round goes for ten times before moving on to round two. (Buttons are in a diamond formation.)

Round Two: Two tones correlated with two buttons (right and left buttons). Players press button that represents the tone that is played. This round goes for ten times before moving on to the optional round three. One LED on breadboard that will change colour (red or green) based on the player’s answer being wrong or right after each reaction to tone played.

Winner announced at the end.

sticknotes

Components Required:

  • MP3 player shield
  • LED screen shield
  • 2X 4 button shields

Meeting No.2: Friday 24th November 2017

Ordered materials for the game:

  • LCD display with coloured TFT LED display
  • Coloured buttons

Materials from the lab for the game:

  • MP3 Arduino Shield
  • Coloured buttons (that may be used)

Still need to get:

  • Headphone splitters

Meeting No. 3: Monday 27 November 2017

Name for the game: Speed2 ( base 2)

We were inspired by the goal of the game, which is to be the fastest to react to sound and visuals as well as the computer science aspect and use of binary.

Font for the game: barbatrick

Logo for the game: flames attached to the common symbol of the play button (to represent game mode) and base 2.
notes

This picture represents the brainstorming process for naming the game, choosing a font, and a logo. The circled items represent what we chose for the name, font, and logo.

Delegated tasks for next meeting, which will occur on Friday 1st December 2017 at 1:30pm.

  • Michael pseudocode: Round 1 and working prototype of audio
  • Karla pseudocode: Round 2
  • Dalilah pseudocode: Relating to extra functionality such as introduction, announcement of win, accumulation of points, etc