You are on page 1of 32

3rd Semester Project 2018

(Tangible Interaction Design)

Bridging the gap of communication between students of


different disciplines in college by creating interactive
spaces and experiences that spark a sense of togetherness
and collaborative learning.

Faculty Guide
Mr. Tanmoy Goswami

By

Namrata Sinha Pankaj Kumar Soven Parker Viraj Duvedi

(Department of User Experience)


1. Introduction
1.1 Background
INDEX
1.2 Problem Identification
1.3 Project Objective

2. Literature Review
2.1 Research paper
2.2 Websites and Blogs
2.3 Summary

3. Design Methodology
3.1 Need Assessment Analysis
3.1.1 Logistics for Survey
3.1.2 Questionnaire and Response
3.1.3 Insights from Student and faculty Responses

3.2 Scenario Construction


3.2.1 Before Innovation Scenario in college
3.2.2 After Innovation of our product Scenario

4. Conceptualization
4.1 Brainstorming
4.2 Concept Generation
4.3 Hardware Specifications
4.4 Ideation
4.4.1 Block Diagram
4.4.2 Pin Diagram
4.4.3 Functionality (Working)
4.4.4 Code

5. System Design
5.1 Requirement Analysis
5.2 UML Diagrams
5.2.1 Use case
5.2.2 Activity Diagram

6. Prototype Design
6.1 Monitor Screen Interface
6.2 Mobile Screen Interface
6.3 Model Making
6.4 Costing

7. Testing
8. Conclusion
1 Introduction
1.1 Background
In India, Education is virtually the practice that provides school or college experiences to children. It is
the process during which all children, regardless of their abilities and needs, participate into the same
learning environment. But due to Communication barriers in the classroom and colleges between
students themselves and between student and faculties, it makes difficult for students to get the most
out of their education.

1.2 Problem Identification


Effective communication between students of different disciplines in colleges are lacking due to fear
of public image , hesitation and shyness. Sometimes the students have difficulty to communicate as
they do not want to look creepy while approaching someone. Juniors in college fear to interact with
senior because of fear of ragging in some cases while seniors doesn’t interact as they doesn’t have any
common ground to share with juniors. Hencein such scenario we cannot imagine a positive learning
experience environment where ideas could be collaborated and exchanged. Our Design College
scenario seems to be struggling with the same issue, not only between students but with teachers too.

Personality differences and peer pressure add to the mix, making some classroom interactions feel
awkward or forced. Some of the other possible reasons behind the failure of communication between
teachers and students and between students and students are “Unknown Expectations” which means
neither the teacher or the student pushes the communication or expresses their expectations, both
parties may stay silent. Then comes “Problems with Comprehending” which means Often, students
have unaddressed learning or speech difficulties and struggle to communicate in classroom settings.
Sometimes, they have trouble comprehending lessons and organizing their thoughts. Because of hesi-
tation, students often shut down, isolating themselves out of fear or embarrassment. Communication
barriers might also be created from “Personality differences” between the two.

1.3 Project Objective


The objectives of the present project are:

1. To analyze the Interaction barrier existing in our college between interdisciplinary Department
students.

2. To propose a solution which would break the interaction barrier and would develop a positive
Learning environment.

3. To install a working prototype model within the campus premises which would help students to inter-
act, learn from each other and exchange ideas and experiences.
2 Literature Review
A lot of studies have been done focusing on the current scenario of communication barrier between
students in colleges and schools. Learning through interaction and complete engagement of one
learners to another is important to develop mastery of the subject in meaningful manner.

Department of Education statistics suggest college enrollments was approximately 20 million in the
year 2010. Implementing learning based on computer-mediated communication (CMC) is one of the
main ways the institutions are addressing rising student enrollment , costs and higher learning environ-
ment. The design of meaningful interaction, for the purpose of learning, requires selecting activities
that allow learners to practice doing what knowledgeable and experienced people do with the content.
But due to some differences, fear and hesitation among the students they are unable to get most out
of their education.

2.1 Research paper


1
Paper name:
Exploring the Practice of Teacher-Student Classroom
Interaction in EFL to Develop the Learners’ Speaking Skills in Tullu Sangota Primary
School Grade Eight Students in Focus.

Objective:
1. To find out whether the learners give an important value to classroom interactions that
happens inside the classroom in activating their speaking skill through participating with
their classmates or teachers.
2. To find out how often teachers and learners practice the communicative language
teaching and classroom interaction in their classes.

Methodology:
This research was designed to describe, analysis and interpret the conditions that exist
in relation to teachers’ use of classroom interaction. Hence, descriptive survey method
was employed on the assumption that it helps to reveal the current issues of teachers’
classroom interaction to develop learners’ speaking skills. The data obtained from teach-
ers and students through questionnaires, observation and interview were analyzed. Both
open-ended and closed-ended teachers’ questionnaires and students’ questionnaires,
and the teachers’ interview were analyzed separately. And the classroom observation is
used to support the finding by questionnaires and interviews.

Results:
As far as the factors affecting classroom interaction are concerned, Large class size,
Shyness, anxiety and stress, Fear of making mistakes, Nothing to say about the chosen
topic, Limited vocabulary knowledge are the reasons for Communication barriers. Almost
all of the responded teachers’ role in CI as follows: Providing different activities. Facilitat-
ing the interaction, Giving feedback and corrections, Assess the learners’ speaking,
Encouraging students and Grouping the learners.
2
Paper name:
CONTEXT-AWARE INTERACTION AND NAVIGATION IN MOBILE GAMES

Objective:
To Integrate a context-aware navigation and adaptive menu structure in an attempt not
only to reflect the effect of new contexts of use on human-computer interaction, but also
to overcome usability problems that occur when limitations of small screens are com-
bined with complex rules and massive options in the next generation of rich mobile
games interaction.

Research Technique and Methodology:


The Research technique used was Descriptive.
The possibility to create engaging graphical environments and therefore challenging
game play as they are
1. limit the number of detailed characters and other graphical game parts to be
displayed.
2. Require to clip or scale down information and graphics, which may render them unrec-
ognisable for some users.
3. Provide little space for integrating unobtrusive help screens,
4. Reduces freedom of design decisions due to expanded need of contrast and clearly
visible graphics.

This results in the following requirements for designing usable interaction for mobile
devices:
1. Providing fast access to information and functionality,
2. Allow high-speed interaction by providing control via numpad or touch-screen rather
than keyboard control,
3. Design of brief human-computer dialogues if possible,
4.Communication of functionality during the use rather than providing lengthy manuals,
5. Intuitive user guidance,
6. Audible feedback.

Observation:

By using the context-aware menu structure we were also able to introduce a way to teach
functionality and game concepts within the game-play, while keeping the complex rules
and rich graphics that define the game. We therefore resume that using context-aware
data to structure menus of complex mobile applications is an effective and efficient way
to enhance the usability of such programs. The advantage of this approach is that game
functionality will be more transparent as the process visualises the connection
between the appearance of interactive elements on screen and an enhanced room for
manoeuvre. This way, game concepts can be understood while playing the game and
walking through the virtual world without forcing the user to read through excessive
game descriptions.
3
Paper name:
Teens’ gaming experiences are diverse and include significant social interaction and
civic engagement

Objective:
To examine the relationship between specific gaming experiences and teens’ civic activi-
ties and commitments.

Methodology:
The Parent and Teen Survey on Gaming and Civic Engagement, sponsored by the Pew
Internet and American Life Project, obtained telephone interviews with a nationally
representative sample of 1102 12- to 17-year-olds and their parents in continental U.S.
telephone households. The survey was conducted by Princeton Survey Research
International. Interviews were done in English by Princeton Data Source, LLC, from
November 1, 2007, to February 5, 2008. Statistical results are weighted to correct
known demographic discrepancies. The margin of sampling error for the complete set of
weighted data is ±3.2%.
The sample was designed to represent all teens ages 12-17 living in continental U.S.
telephone households. The telephone sample was provided by Survey Sampling Interna-
tional, LLC (SSI) according to PSRAI specifications. Interviews were conducted from
November 1, 2007 to February 5,2008. As many as 10 attempts were made to contact
every sampled telephone number. Sample was released for interviewing in replicates,
which are representative subsamples of the larger sample.

Findings:

1. Fully 97% of teens ages 12-17 play computer, web, portable, or console games.

2. Most teens do not limit themselves to just a few game genres, instead choosing to play
many different types of games. Daily gamers are more likely to play a wider range of
game genres than non-daily gamers.

3. For most teens, gaming is a social activity and a major component of their overall
social experience. Teens play games in a variety of ways, including with others in person,
with others online, and by themselves. Although most teens play games by themselves at
least occasionally, just one-quarter (24%) of teens only play games alone, and the
remaining three-quarters of teens play games with others at least some of the time.

4. Online gamers are more likely to report playing games mostly with people they know in
their offline lives than with teens they met online. Of teens who play games online with
others: 47% of teens play online games with people they know in their offline lives. 27%
of teens play online games with people they first met online. 23% of teens play with both
friends and family known in the offline world and people they met online.

5. Teens encounter both pro-social and anti-social behavior while gaming.


2.1 Websites and Blogs

1. www.learningsolutionsmag.com
Article name: Interaction, Activities, and Learning: Engage learners meaningfully to develop mastery

2. www.hedgehoglab.com
Article name: Rise of Gaming Companion Apps

3. tophat.com
Article name: 6 INTERACTIVE CLASSROOM ACTIVITIES FOR COLLEGE STUDENTS

4. www.sciencedaily.com
Article name: How Does Online Gaming Affect Social Interactions?

5. www.toppr.com
Article name: Lack of Communication Between Teachers and Students

2.1 Summary

1. Interactivity is considered an important measure of good online learning. The design of meaningful
interaction, for the purpose of learning, requires selecting activities that allow learners to practice
doing what knowledgeable and experienced people DO with the content (in order to gain expertise and
mastery — over time).

2. Research shows that transfer of learning is greatly enhanced when learning environments allow
learners to experience real world complexity, with support. People don’t learn as well by being fed infor-
mation. They learn best by engaging in meaningful activity. The best activities are those that mirror the
way the content is used in the real world.

3. Companion apps are the natural evolution of this growing second screen trend. These apps are
specifically designed to enable the user to interact with a related third party product, so it was only a
matter of time before the booming Gaming industry tapped into this field. This rapid development of
companion apps demonstrates the immense possibilities for interaction between two different medi-
ums using Smartphones and tablets – and even wearable technologies. These powerful devices open
hundreds of wonderful possibilities for mobile app developers to create amazing interactive experienc-
es not just for games, but for any interactive medium.

4. Social interaction between members of multiplayer communities shares similarities to interaction in


face-to-face groups. Shared values and goals are the basis on which a shared understanding and a
sense of community are built on.

5. Effective communication between teachers and students has the potential to improve the learning
experience and create a positive environment in the classroom. Communication between teachers and
students might also be hampered from personality differences between the two. Peer pressure can
create communication problems in the classroom when students respond to teachers by acting funny,
cool or disengaged. Thus, indulging students in activities which involve everyone participation could
help to bridge the gap.
3 Design Methodology
3.1 Need Assessment Analysis

A needs assessment is a systematic process for determining and addressing needs, or "gaps" between
current conditions and desired conditions or "wants".

After getting insights from the Research paper , a survey was conducted within the college campus to
know the students and faculties views on interaction barrier and how it could be solved.

3.1.1 Logistics for Survey

1. How many people will you survey or interview to collect needs assessment data?
Total 10. 8 students and 2 faculty

2. Where will you find these potential participants?


Mit Institute of Design, Loni kalbhor, Pune

3. What kind of instrument(s)/tools /techniques will you use to collect data for the analysis?
Questionnaire will be formed and asked to Students and Teachers.

4. What arrangements do you need to make to collect the data/input?


I will visit student of different disciplines of design students and few faculties.
Questionnaire will be given and their response will be recorded maunally for the survey.

5. When do you plan to be collecting data for the front-end analysis?


AUGUST 21-22

3.1.2 Questionnaire for Survey

1)Do you think any friction or problems exist in communication between students of different disci-
plines?

2) If yes: why do you think they exist ?

3) Is there any hesitation that exists in approaching a senior? (For juniors only)
What kind?

4) Is there any hesitation that exists in approaching a junior? (For seniors only)
What kind?

5) Do you think interdisciplinary interaction is of any value to you?


6) What stops you from doing that?

7) What sort of place which you feel is a leveller for both people?

8) What do you think normal conversation would include?

9) Do you think that we need a correct frame of mind to even approach people outside of our comfort
zone?

10) Do digital medium interactions make it easier for you to interact but also to avoid newer territories?

11) Do you think that creates a barrier? A barrier of convenience?

-To students of differing nationalities


12) Do you feel that people in India are warmer towards you as compared to people in your home coun-
try?

3.1.3 Insight from student and faculty responses

1. According to Students of different disciplines, there is a communication barrier existing.The communi-


cation barrier for juniors is simply due ragging in some cases and fear of looking stupid or creepy while
approaching someone and according to seniors since there is no common ground, so they hardly tries to
communicate.

2. According to juinor students, Hesitation exists because no shared experiences and the sheer experi-
ence of being in the campus longer and according to senior students of college, they don't wanna look
weird and any form of senior junior interaction in sort of activities is being termed as ragging.

3. The students of different disciplines agree to the fact that interdisciplinary interactions adds value to
the cirriculum and overall learning experience as it helps to think in different perspective.

4. The students said no collaboration facilitated as part of the course for interaction.
Any activity which would involve group involvement such as chai- food- music- games- parties- education-
al as well as non educational experiences would help to break the barrier. They think digital medium
interactions is a good way to communicate someone but at the same time it does create a barrier due to
laziness and sheer comfort levels.
3. 2 Scenario Construction

After Desk Research and questionnaire survey within the design campus, we tried to create
the existing scenario. The scenario construction before innovation shows the interdisciplin-
ary students and faculty thoughts which are causes to build communication cage.

3.2.1 Before Innovation Scenario in college


3.2.2 After Innovation Scenario in college

After Our innovation, We imagine a scenario where Students and Faculties from different
departments would come together in a platform which would provide them initial
setup to break the communication cage .
4 Conceptualization
4.1 Brainstroming

4.2 Concept Generation


After Brain stroming, we came up with the concept of live installment of a game which would capture
everyone’s attention and engage students and faculties of different departments. This game installment
within the college premises would become the foundation of all future interaction. The participants would
share some memory and experience by being the part of the game. Other positive aspect would be
constant knowledge sharing and knowing other person’s perspective while playing.
Our only constant was the usage of the raspberry pi module and internet connected sensors to enable this
feat.

Strategies used in the game:


1. It’s a game of 3 participants.
2. Participants select a category and value of question to answer.
3. Once a clue is displayed, participants must press the buzzer if they know the answer.
4. A correct answer yeilds, the selected value of score, while a incorrect answer yeilds negative marking.
5. The participants with the highest score wins.
4.3 Hardware Specification

Tactile Switch

Tablet

Raspberry Pi

Andriod Phone

Monitor
4.4 Ideation

4.4.1 Block Diagram

4.4.2 Pin Diagram


4.4.3 Functionality

The setup consists of four components namely the normally open tactile push button
switches, the screen, an android phone app housing the speech recognition and the
raspberry pi itself. The buttons.py script holds the button control logic. The main.py
script controls the main logic of the game. On selecting a question from the main screen
the clue is displayed and the buttons are enabled allowing contestants to buzz in. Input
for the answer is taken from the android phone and the response is saved to the pi from
a flask script which takes the answer from url argument. The response is saved to a text
file and when a contestants time is over his answer is checked from another text file con-
taining the answers. The score is updated based on whether the answer is correct. Once
all questions are answered the game is over and the winner is congratulated in a final
screen.

4.4.4 Code

Main game code

from sys import stderr

import pygame
from pygame.locals import *
import os
import sys

from config import FPS_LIMIT, FULLSCREEN, SUBTRACT_ON_INCORRECT, SCREEN_SIZE, DRIVE


from constants import ANIMATIONEND, ANSWER_TIMEOUT, AUDIOEND, SKIP_INTRO_FLAG, ROOT_PATH
from game import GameData, JeopGameState
from ui import Controller, do_congrats, do_credits, do_intro, do_scroll
import button

EVENTS_ALLOWED = (ANIMATIONEND, ANSWER_TIMEOUT,


AUDIOEND, KEYDOWN, MOUSEBUTTONDOWN, QUIT)

buzzers = button.Poll()
def main(*flags):
"""Main game loop and event handling."""
# Initialization
pygame.init()
#Put window in center of screen
os.environ ['SDL_VIDEO_WINDOW_POS'] = 'center'

screen = pygame.display.set_mode(SCREEN_SIZE,
pygame.FULLSCREEN if FULLSCREEN else 0)
pygame.display.set_caption('Jeopardy!')
if event.type == QUIT:
gs.state = gs.QUIT

elif event.type == KEYDOWN:


handle_event_key(event, gameState, gameData)

elif event.type == MOUSEBUTTONDOWN:


handle_event_mousebuttondown(event, gameState, uicontroller)

elif event.type == ANIMATIONEND:


handle_event_animationend(event, gameState)

elif event.type == ANSWER_TIMEOUT and gs.state == gs.WAIT_BUZZ_IN:


gs.state = gs.ANSWER_TIMEOUT

elif event.type == ANSWER_TIMEOUT and gs.state == gs.WAIT_ANSWER:


#Connect with mobile app here
#coords1=gs.kwargs
#print coords1
file = open(os.path.join(ROOT_PATH, 'jeoparpy', 'answer.txt'), 'r')
answer = file.readline()
#print answer
file2 = open(os.path.join(ROOT_PATH, 'jeoparpy', 'questionnumber.txt'), 'r')
question = file2.readline()
category=int(question[1])
ques=int(question[4])
questionno = category*5 + ques
print questionno
file3 = open(os.path.join(ROOT_PATH, 'jeoparpy', 'answers.txt'), 'r')
correctanswerlist = file3.readlines()
correctanswer = correctanswerlist[questionno]
correctanswer = correctanswer[0:len(correctanswer)-1]
print answer
print correctanswer
print str(answer) == str(correctanswer), len(answer), len(correctanswer)

if str(answer) == str(correctanswer):#compare logic here


gs.set(gs.ANSWER_CORRECT, **gs.kwargs)
#print answer
else:
gs.set(gs.ANSWER_INCORRECT, **gs.kwargs)
#print 'lola'
# Re-pass playerI, amount args
#gs.set(gs.ANSWER_INCORRECT, **gs.kwargs)

elif event.type == AUDIOEND and gs.state == gs.WAIT_CLUE_READ:


coords = gs.kwargs['coords']
if uicontroller.clue_is_audioclue(coords):
gs.set(gs.PLAY_CLUE_AUDIO, coords=coords)
else:
gs.set(gs.START_CLUE_TIMER,
amount=gameData.amounts[coords[1]]
)
def handle_event_animationend(event, gameState):
gs = gameState
if gs.state == gs.WAIT_BOARD_FILL:
gs.state = gs.WAIT_CHOOSE_CLUE
elif gs.state == gs.WAIT_CLUE_OPEN:
gs.set(gs.CLUE_OPEN, coords=gs.kwargs['coords'])

def handle_event_key(event, gameState, gameData):


gs = gameState

if event.key == K_q:
if pygame.key.get_mods() & KMOD_SHIFT:
gs.state = gs.QUIT
else:
gs.state = gs.GAME_END

elif gs.state == gs.WAIT_TRIGGER_AUDIO and event.key == K_m:


gs.set(gs.PLAY_CLUE_AUDIO, coords=gs.kwargs['coords'])

elif gs.state == gs.WAIT_BUZZ_IN and event.key in (K_1, K_2, K_3):


p = event.key - K_1
if not gameData.players[p].hasAnswered:
gs.set(gs.BUZZ_IN, playerI=p, amount=gs.kwargs['amount'])

elif gs.state == gs.WAIT_BUZZ_IN and event.key == K_END:


gs.state = gs.ANSWER_TIMEOUT

elif gs.state == gs.WAIT_ANSWER:

gs.set(gs.ANSWER_INCORRECT, **gs.kwargs)

def handle_event_mousebuttondown(event, gameState, uicontroller):


gs = gameState

if gs.state == gs.WAIT_CHOOSE_CLUE and event.button == 1:


clueCoords = uicontroller.get_clicked_clue(event.pos)

if clueCoords:
gs.set(gs.CLICK_CLUE, coords=clueCoords)

def transition_state_branching(gameState, gameData, uicontroller):


gs = gameState

if gs.state == gs.CLUE_OPEN:
coords = gs.kwargs['coords']
if uicontroller.clue_has_audio_reading(coords):
gs.set(gs.WAIT_CLUE_READ, coords=coords)

elif uicontroller.clue_is_audioclue(coords):
gs.set(gs.WAIT_TRIGGER_AUDIO, coords=coords)
else:

column = coords[1]
gs.set(gs.START_CLUE_TIMER, amount=gameData.amounts[column])

elif gs.state == gs.ANSWER_INCORRECT:


if gameData.allPlayersAnswered:
gs.state = gs.ANSWER_NONE
else:
amount = gs.kwargs['amount']
gs.set(gs.START_CLUE_TIMER, amount=amount)
Live State of game

from ..config import DEBUG, DRIVE


import sys, os
from pygame.locals import *
from constants import ROOT_PATH

class Enum(object):

def __init__(self, names, start=0):


vals = range(start, start + len(names))
self.__dict__ = dict(zip(names, vals))

class GameState(Enum):
def __init__(self, *stateNames):
"""
Constructor. The names contained in 'stateNames' become the
objects attribute names that define states (see Enum and/or this
class's docstring).
"""
super(GameState, self).__init__(stateNames)
self._numStates = len(set(stateNames))
self._state = None
self._previous = None
self.kwargs = {}

def __repr__(self):
if not self.kwargs:
return repr(self.state)
else:
return '{0} {1}'.format(self.state, self.kwargs)

def set(self, state, **kwargs):


self.state = state # Note state.setter clears self.kwargs to {}
self.kwargs.update(kwargs)

if DEBUG and self.kwargs:


print 'State args set: {0}'.format(self.kwargs)

def _verify_transition(self, newState):

if self._state == newState:
raise StateTransitionError("Cannot transition a state to" +
" itself.", self._state, newState)

@property
def previous(self):
return self._previous

@property
def state(self):
return self._state
@state.setter
def state(self, val):
try:
val = int(val)
except (ValueError, TypeError):
raise StateSetError("'State' expects integer, not {0}.".format(
type(val).__name__), val)

if val not in xrange(self._numStates):


raise StateSetError("Set of 'State' attempted with value " +
"that has no assigned state.", val)

self._verify_transition(val)

self._previous = self._state
self._state = val
self.kwargs = {}

if DEBUG:
print "State change: {0}".format(self)
class JeopGameState(GameState):
def __init__(self):
#Define states
states = (
'BOARD_FILL',
'WAIT_BOARD_FILL',
'WAIT_CHOOSE_CLUE',
'CLICK_CLUE',
'WAIT_CLUE_OPEN',
'CLUE_OPEN',
'WAIT_CLUE_READ',
'WAIT_TRIGGER_AUDIO',
'PLAY_CLUE_AUDIO',
'START_CLUE_TIMER',
'WAIT_BUZZ_IN',
'BUZZ_IN',
'WAIT_ANSWER',
'ANSWER_CORRECT',
'ANSWER_INCORRECT',
'ANSWER_TIMEOUT',
'ANSWER_NONE',
'DELAY',
'GAME_END',
'QUIT')

super(JeopGameState, self).__init__(*states)

#Define state ranges


self.ANSWER = range(self.ANSWER_CORRECT, self.ANSWER_INCORRECT + 1)

#Set initial state


self.state = self.BOARD_FILL

def transition_state_immediate_linear(self, gameData):


s = self

if s.state == s.BOARD_FILL:
s.state = s.WAIT_BOARD_FILL
elif s.state == s.CLICK_CLUE:
coords = s.kwargs['coords']
file = open(os.path.join(ROOT_PATH, 'jeoparpy', 'questionnumber.txt'), 'w')
file.write(str(coords))
file.close()
s.set(s.WAIT_CLUE_OPEN, coords=coords)

elif s.state == s.START_CLUE_TIMER:


amount = s.kwargs['amount']
s.set(s.WAIT_BUZZ_IN, amount=amount)

elif s.state == s.PLAY_CLUE_AUDIO:


column = s.kwargs['coords'][1]
s.set(s.WAIT_BUZZ_IN, amount=gameData.amounts[column])

elif s.state == s.BUZZ_IN:


playerI = s.kwargs['playerI']
amount = s.kwargs['amount']
s.set(s.WAIT_ANSWER, playerI=playerI, amount=amount)

elif s.state == s.ANSWER_CORRECT:


s.state = s.DELAY

elif s.state in (s.ANSWER_NONE, s.ANSWER_TIMEOUT, s.DELAY):


s.state = s.WAIT_CHOOSE_CLUE

class StateSetError(Exception):
"""
Exception raised when a problem occurs setting State in GameState.
"""
def __init__(self, msg='', errVal=None):
self.msg = (msg if msg
else "An error occured when trying to set 'State.'")

self.errVal = errVal

def __str__(self):
addendum = (" It is recommended to use the named constants " +
"defined in %s to set State." % __file__)
if not self.errVal == None:
addendum += " Bad value: %r" % self.errVal

return self.msg + addendum

class StateTransitionError(Exception):

def __init__(self, msg='', previous=None, attempted=None):


self.msg = (msg if msg
else "An error occured when transitioning states.")

self.previous = previous
self.attempted = attempted

def __str__(self):
addendum = ''
if self.previous is not None and self.attempted is not None:
addendum = ' Previous state: {0}; Attempted state: {1}'.format(
self.previous, self.attempted)

return self.msg + addendum


Button sensors

import RPi.GPIO as gpio


import time

class Poll():
def __init__(self):
self.DEBUG = True

#Setup pins and board


gpio.setmode(gpio.BCM)
gpio.setup(22, gpio.IN, pull_up_down=gpio.PUD_UP)
gpio.setup(4, gpio.IN, pull_up_down=gpio.PUD_UP)
gpio.setup(17, gpio.IN, pull_up_down=gpio.PUD_UP)

#Put pins in variables


self.center_button = 22
self.right_button = 4
self.left_button = 17

self.first = ''

self.center_press = 0
self.right_press = 0
self.left_press = 0

def reset(self):
self.first = ''

self.center_press = 0
self.right_press = 0
self.left_press = 0

def poll(self): #Returns first button pressed


#Variables for press count (one for each button)
self.center_press = 0
self.right_press = 0
self.left_press = 0

#Check for button presses


while True:
self.first = self.check()
if self.first != '':
break
time.sleep(.5)
return self.first

def check(self):
center_input = gpio.input(self.center_button)
left_input = gpio.input(self.left_button)
right_input = gpio.input(self.right_button)
if center_input == False:
if self.center_press > 0:
if self.DEBUG:
5 System Design
5.1 Requirement Analysis

Number Requirement User

1 Button to correspond with user buzzers Players

2 Contextual questions for the game show Players

3 Model setup Team

4 Timing delay for question passing Admin

5 Code for buzzer fragment Admin

6 Code for selection of the first buzzer Admin

7 Lighting for model Team

8 provision for answering module Players

5.2 UML Diagrams

Unified Modeling language (UML) is a standardized modeling language enabling developers to speci-
fy, visualize, construct and document artifacts of a software system. Under UML Diagram, Usecase
diagram and Activity Diagram was done.
5.2.1 Usecase Diagram

A use case diagram at its simplest is a representation of a user's interaction with the system that
shows the relationship between the user and the different use cases in which the user is involved.

JEOPARDY GAME PLAY

view game

select teams and then questions

Person 1

Press buzzer

answer accepted
Person 2

Doesn't know answer


Person 3
+ask for help

UseCaseSubject1
Help contestant within time
Passer by

Receive points depending on answer

if wrong answer passed on to other players


5.2.2 Activity Diagram

Activity diagrams are graphical representations of workflows of stepwise activities and actions with
support for choice, iteration and concurrency.
6 Prototype Design

6.1 Monitor Display Interface Design

As the Jeopardy game starts, the follwing screens will be displayed on the monitor.

Introduction Screen

Main Screen

Question Screen 1
Question Screen 2

Congrats Screen

6.1 Mobile Screen Interface

Speak now

An android phone app housing the speech recognition.


6.2 Model Making process

There is four component in 3D Model


1. Backdrop
2. Roof tracklight fixture
3. Floor
4. Contestant kiosk

Following material and product has been used in component:-

1. Backdrop consist of HDMI Monitor, Raspberrypi 3B, Light indicator for correct
answer

2. Roof track fixture is extended half of the floor, which will give support to track-
light over the stage.

3. Floor is place of lighting activity as well as maintaining standard distance from


the contestant and the audience. There is a sitting arrangmemnt from both the side of
the centre step floor.

4. Contestant Kisok , there is a three kiosk for the participant and each kiosk
having buzzer button at top.

Monitor
Holder

Rasberrypi
holder
Roof Track light

Backdrop

Switch 1

Contestant Kiosk Switch 2

Switch 3
6.4 Costing

Model Scale:- 1:10


Floor size:- 18x18 inch/ backdrop size:- 18 L x 12 W inch, monitor size:-9 Lx 4 W inch
Backdrop material:- Cardboard, Color Tape, Paper :-112/-
Backdrop Componet:- monitor, Raspberrypi, Light:- 6020/-
Roof Track fixture:-Long Toothpick stick, color spray:- 80/-
Roof component:- 4 focus light:-60/-
Floor Material:- Plyboard with edge corner, 4 Sitting arrangement color paper, metal stud:-344/-
Contestant kiosk material:- cardboard, color tape, stickers, Buzzer button, wire:-80/-
Adhesive material:- feviquick, fevicol, DST, Foam DST, Tape:-120/-
Total cost:- 816/-
Monitor & rapberrypi:- 6000/-
Total cost:- 6816/-

Actual cost:- Actual Size


Backdrop material:- plyborad:- 2400/- 8x4 feet 2 piece / Size of the backdrop:- 90 L x 46 W inch
Finishing:- 1000/- making of fixture for screen
Spraypaint:- 400/- fixture coloring White
Hardware material:-100/-

Projector:- 8000/-
Raspberry pi:- 4000/-
Light Indicator:- 1500/-
Total:-17400/- approx

Roof Tracklight fixture:- Alumunium extended fixture :-1500/ approx


4 Tracklight :- 2000 x4:- 8000/-
Total:-9500/-
Step Floor Material:- Plyboard:1200 X 6:- 7200/- :- 6 piece Size 12x12 feet
Finishing & Spray paint:-2500/-

Total:- 9700/-
Contestant kiosk material:- Acrylic:- 3500/- kiosk size:- 84inch x 16 inch:- 3 pieces
Bending, finishing & making charges:-2000/-
Display Screen for kiosk:-12 L x 8 W inch
Acrylic:- 500/-
Finishing charges:- 200/-
Buzzer & Wire:- 1800/-
Total:- 8000/-

Transportation & loading Charges:- 1500/-


Adhesive material:- fevicol, Nail, others:- 500/-
7 Testing

Testing Process include the follwing steps:

1. Monitor inteface design

2. Code in Python

3. Connections on bread baord

4. Monitor interface log in and game level selection by tablet

5. Button buzzer allowing participants to buzzz in.

6. Responding to question by phone speech recognition

7. Response saved to the pi from a flask script which takes the answer from url
argument.

8. Response answer cross checked by text file containg answers.

9. The score is updated based on whether the answer is correct.

10. Once all questions are answered the game is over and the winner is congratulat-
ed in a final screen.
Interdisciplinary students participating in game

Faculty and student participation


8 Conclusion
The installment of a live game session using Raspberry pi, button sensors, monitor , tablet and
speech recognition phone tool was succesfully able to grab everyone’s attention and was able to
engage students and faculties of different departments. This game installment within the college
premises was able to become the foundation of all future interaction, hence acting an ice break-
er.

The limitation of the project was that the installment couldn’t be done in an actual dimensions
and was done in 1:10 ratio. The participant involvement for the current model was limited to
maximum number of 3, which could be increased when made in actual dimensions. Smart foot
sensors could be used instead of Contestant kiosk.

You might also like