...

Assignment

This week, we are assigned to find an interesting existing Alt+Ctrl Interface, and come up with a concept for our own Alt+Ctrl Interface.

Interesting Project from GDC

Fooscade

Find out more. What I found interesting in the GDC archive is the project called Fooscade. People can play the game by moving their fingers within shoes-shaped controllers to move the squares and prevent their goal from being breached by balls. Unlike the classic Pong Game, Fooscade combines interactive mechanics and collision physics, offering players a completely new gaming experience. One aspect that caught my attention is that they designed the controller in the shape of shoes, which allows players to take on the role of a goalkeeper while playing the game. Additionally, players use two fingers to control two squares on the screen, achieved through the use of slide pot sensors and rotating joints at the bottom of the sensors. This design enables players to move the two ‘shoes’ flexibly, enhancing their performance in the game. The designers overcame the inherent notion that two feet need to be together and put forward a bold idea to split the feet, providing players an entirely unique arcade experience. Moreover, I believe that playing this game with their fingers offers an opportunity for mental exercise, as it requires quick reactions and agility to succeed.

Exploration on Sensors

I explored two sensors which I would like to apply in my Alt+Ctrl interface design.

The first one is ultrasonic sensor which can help measure the distance. Detail image

Here are the codes in arduino to print out the data from ultrasonic sensor:

const int trigPin = 2;
const int echoPin = 3;

long duration;
int distance;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  duration = pulseIn(echoPin, HIGH);

  distance = duration * 0.034 / 2; 


  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  delay(100); 
}

When open the Serial Monitor, data comes out like this: Detail image It shows the distance between the sensor and the ceiling of room. The sensor can detect if there are people in the front and also measure the distance between people and the object in centimeters.

I also explored a joystick sensor that can provide directional data when people press the stick in right, left, forward, and backward directions. Detail image

Here are the codes in arduino to print out the data from joystick sensor:

const int sensorX = A4;
const int sensorY = A3;
const int pressButton = A2; 
const int midX = 497;
const int midY = 494;
int leftValue;
int rightValue;
int upValue;
int downValue;

void setup() {
  pinMode(sensorX, INPUT);
  pinMode(sensorY, INPUT);
  pinMode(pressButton, INPUT);
  Serial.begin(9600);
}

void loop() { 
  int valueX = analogRead(sensorX);
  if (valueX < midX) {
    leftValue = midX - valueX;
    rightValue = 0;
  } else if (valueX > midX) {
    leftValue = 0;
    rightValue = valueX - midX;
  } else {
    leftValue = 0;
    rightValue = 0;
  }
  int valueY = analogRead(sensorY);
  if (valueY < midY) {
    upValue = midY - valueY;
    downValue = 0;
  } else if (valueY > midY) {
    upValue = 0;
    downValue = valueY - midY;
  } else {
    upValue = 0;
    downValue = 0;
  }

  int pressValue;
  if (analogRead(pressButton) < 20) { 
    pressValue = 1;
  } else {
    pressValue = 0;
  }

  Serial.print("Press:");
  Serial.print(pressValue);
  Serial.print(".");
  Serial.print(" L:");
  Serial.print(leftValue);
  Serial.print(".");
  Serial.print(" R:");
  Serial.print(rightValue);
  Serial.print(".");
  Serial.print(" U:");
  Serial.print(upValue);
  Serial.print(".");
  Serial.print(" D:");
  Serial.print(downValue);
  Serial.print(".");
  Serial.println(); 
  delay(1);
}

When open the Serial Monitor, data comes out like this: Detail image

The joystick can output five kinds of data, including data for four directions and the press value as well. When people manipulate the stick and push it in one direction, the value associated with that direction will increase until the stick reaches its maximum extent. When people press down the middle part of the stick, the press value will be 1, indicating that the stick is pressed at that time. Detail image

There are many video games that use joysticks, as they are a part of the Nintendo Switch to some extent. Most developers connect the joystick on the Switch to control the movement direction of characters or cameras in the games. For example: Zelda: L & R stick (highlighted in the picture) Detail image

Design Concept of My Alt+Ctrl Interface

Here is a sketch of how my idea developed step by step: Detail image

The idea began with a mechanical fish, whose tail would be controlled by servo motors. As I thought about combining this fish with gestures, interactions, and other sensors, the concept of a player versus player (PvP) game design first came to mind. The basic idea is to have a camera detect one player’s swimming gestures and calculate how fast the player can swim to catch the fish, while on the other side the player uses a joystick to help the fish escape. In the middle, an LED strip with red and blue lights will indicate which side is currently dominating the game. When the red light reaches the fish side, it means player A wins the game by successfully catching the fish. When the blue light reaches the swimmer side, it means player B wins the game by helping the fish escape the catch. Either situation will end the game, regardless of which one occurs. During the game, instead of a digital visual representation of a fish, a mechanical fish tail’s speed will be controlled by servo motors based on the current game situations.

As I reconsidered the general interaction mentioned above, I realized that instead of using a joystick to control the fish tail, it might be more effective to create an installation that can translate people’s foot movements into control. Drawing inspiration from my previous study topics, I have slightly adjusted my idea to explore another experimental installation concept related to social anxiety disorder (SAD). In this concept, an ultrasonic sensor is placed on-site, and when someone approaches the sensor and the distance detected is less than 1 meter, one LED light out of four (LED lights will be positioned from four directions) will illuminate, shining on the fish. Subsequently, the fish’s tail will physically move rapidly, indicating its attempt to escape from the light. This process will last for 30 seconds, during which the light will gradually dim, and the speed of the fish’s tail will gradually slow down, returning to its default state, symbolizing the fish escaping from someone’s attention (the light). In addition, the audience can interact with the installation by using a joystick to assist the fish’s escape. By pushing the stick from the middle toward the direction opposite to the light as quickly as possible, they can aid the fish in getting away.