Karsten Krull
Challenging fish with a Raspberry Pi as its pacemaker
Responsive to different sensory input
Use your hands, eyes, ears and voice to interact with Karsten.
Recognizes up to 4 players
Karsten addresses each player individually every turn.
Over 400 different voice lines
Karsten loves to communicate, to give out tasks, complaining and even singing.
It's not only a toy, it's a game
With Karsten you can play turn based game rounds and different mini games.
Project
This toy was developed as a 5th semester project at
HTW Berlin (2015/16)
Theme
Digital Toy, No Screen Game, IoT
My Job
► Technical Setup
► System Design
► Programming
Time frame
600 hours
Engine
Raspberry Pi
Technical Setup
Setup
I was responsible for setting up the Raspberry Pi. I made the sensors working with the device and set up its input and output handling.
Prototyping
I did a lot of breadboard prototyping to make us familiar with the possibilities of the Raspberry Pi and its sensors, and to experiment with mini games.
System Design
Flowchart of the intersection of player inputs by players and sensors and their influence on game states.
► Download code sample
Gameplay development
As a team we developed the behavior of the toy and created different pen & paper prototypes to demonstrate and play through different scenarios.
System modelling
Due to the dynamic nature of the toy, I modeled the behavior of Karsten in Machinations and translated the final interaction of sensors in a flowchart.
Minigame Development
I modeled mini games like 'Karsten's Toothache' as pen&paper and breadboards prototypes and created the scripts to implement them into the main game.
Interface
The final prototype of Karsten is equipped with the following sensors:
Voice - speaker
Ears - microphone
Taste - RFID
Eye - light sensor and LED
Teeth - buttons and LED
Scales - touch sensitive fabric
Sense of balance - Gyroscope
Programming
Flowchart of the player controller class which handles player recognition and player turns.
► Download code sample
Flowchart of the condition class structure and the core behavior of the different classes and child classes.
► Download code sample
For evaluation and debugging reasons I developed a logging system that writes every user input and change of game state in a text file.
The log lines are structured in a way that would make later parsing quite easy to analyze different game rounds.
► Download code sample
Structure
I developed the program structure in flowcharts and documented later changes as well.
Coding
I learned python from scratch for this project and wrote most of the code of it
► Download code sample
Log
The feedback of the toy is very audio-heavy. For debugging and enhancement of the game system it was important for me to write a log system.