The customer controller is now in the prototype phase. It will be able to play the original Frogger utilizing four pressure plates, which will be lily pads, with the player able to move a prop frog to each plate to move the frog in the game. This setup mimics the frog’s movement in the original game while introducing a physical, hands-on component. The concept draws directly from Frogger’s visual and thematic identity, transforming passive button inputs into a playful, full-body experience that emphasizes timing and spatial awareness. The lily pad pressure plates will be inside a box to contain the controller and connected to the circuit playground, which will read and signal the player's inputs. We are experimenting with layout and responsiveness.
Questions:
1. Does the layout of the controller and operation feel fun and rewarding or not? If not how can it be improved upon?
2. Is there anything you think should be added to the controller? Another pressure plate or component, or is it good as is?
Photo of controller prototype
Photo of circuit prototype
video demonstration
Code
#include <Keyboard.h>
#include <KeyboardLayout.h>
#include <Adafruit_CircuitPlayground.h>
#include <Adafruit_Circuit_Playground.h>
#define THRESHOLD 600
void setup() {
Serial.begin(9600);
while (!Serial); // Wait for serial to be ready
CircuitPlayground.begin();
Keyboard.begin();
Serial.println("Pressure sensor readings:");
}
void loop() {
int sensor1 = analogRead(1); // Pin 1
int sensor2 = analogRead(3); // Pin 3
int sensor3 = analogRead(4); // Pin 4
int sensor4 = analogRead(7); // Pin 7
// Print sensor readings to the Serial Monitor
Serial.print("Sensor 1: ");
Serial.print(sensor1);
Serial.print(" | Sensor 2: ");
Serial.print(sensor2);
Serial.print(" | Sensor 3: ");
Serial.print(sensor3);
Serial.print(" | Sensor 4: ");
Serial.println(sensor4);
if (sensor1 > 600) {
Keyboard.press(KEY_UP_ARROW); // Forward
} else {
Keyboard.release(KEY_UP_ARROW);
}
if (sensor2 > 600) {
Keyboard.press(KEY_LEFT_ARROW); // Left
} else {
Keyboard.release(KEY_LEFT_ARROW);
}
if (sensor3 > 600) {
Keyboard.press(KEY_DOWN_ARROW); // Backward
} else {
Keyboard.release(KEY_DOWN_ARROW);
}
if (sensor4 > 600) {
Keyboard.press(KEY_RIGHT_ARROW); // Right
} else {
Keyboard.release(KEY_RIGHT_ARROW);
}
delay(50);
}
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.