Skip to content

pcout/Color-Hunter-Wand

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Color Hunter

License: MIT Hardware Software

The Color Hunter is a Tangible User Interface (TUI) educational toy designed to bridge the physical-digital divide in early childhood education. Grounded in the principles of Embodied Interaction, it moves children away from passive, screen-reliant interfaces (GUI) by transforming their physical environment into an active scavenger hunt.

This project was developed for the Multimedia Design Master's Degree at the Department of Informatics Engineering (DEI), University of Coimbra.


Table of Contents

  1. About the Project
  2. Interaction Design & Gamification
  3. Hardware Architecture
  4. Software Ecosystem
  5. Installation & Setup
  6. Author

About the Project

Modern educational systems frequently suffer from over-gamified digital feedback, creating a "screen magnet effect" that reduces physical artifacts to mere controllers. The Color Hunter reverses this paradigm. The digital component acts strictly as an ambient canvas, prompting the user to find a specific color (e.g., "Find something RED").

The child must physically navigate the room, find a matching object, and use the 3D-printed wand to scan it. The wand provides localized, non-blocking luminous and auditory feedback, successfully migrating the user's attention back to the physical world and fostering gross motor skills and spatial awareness.


Interaction Design & Gamification

The system operates on a highly structured state machine to manage cognitive load for early learners:

  • Standby Mode: Ambient purple breathing light.
  • Hunting Mode: The wand mimics a heartbeat (pulsing animation) in the target color.
  • Capture Action: Flashing white light upon pressing the tactile button.
  • Success State: Playful green dance animation and positive sound.
  • Error State: Sharp red strobe and caution sound.

Hardware Architecture

The physical artifact was parametrically modeled in Autodesk Fusion 360 and 3D printed using FDM technology.

Bill of Materials (BOM)

  • Microcontroller: ESP32-C3 Super Mini (160 MHz, 32-bit RISC-V)
  • Color Sensor: TCS34725 RGB Sensor (I2C Protocol)
  • Visual Output: 3-LED WS2812B NeoPixel Array
  • Audio Output: TMB12A05 Passive Buzzer
  • Input: Tactile Push-Button
  • Enclosure: Transparent PETG (acts as an omnidirectional light diffuser)
  • Hardware Fasteners: Brass threaded inserts & machine screws

Mechanical Assembly

The assembly features an Internal Sliding Exoskeleton that organizes the wiring and hosts the buzzer, locking into the main tube via snap-fit detents. The sensor is deeply recessed within a mechanical shroud at the tip, requiring the user to press it flush against an object to block ambient light and guarantee accurate color capture.


Software Ecosystem

The project relies on a Master-Slave architecture communicating via USB Serial at 115200 bps.

  1. Firmware (Arduino IDE): C++ logic running on the ESP32-C3. It handles hardware interrupts, I2C sensor reading, real-time mathematical color calibration (to offset the PETG plastic refraction), and non-blocking millis() NeoPixel animations.
  2. Game Engine (Processing PDE): Java-based state machine that renders the ambient canvas, manages the 30-second action timers, and calculates the final score based on the color data strings received from the serial port.

Installation & Setup

1. Hardware Assembly

  1. Upload the .stl files from your 3D models directory to your slicer (OrcaSlicer recommended). Print using Transparent PETG to ensure proper light diffusion.
  2. Wire the components using a centralized ground node. Use heat-shrink tubing for insulation.
  3. Seat the ESP32-C3 in the base, slide the exoskeleton into the main tube, and secure the TCS34725 in the top shroud using threaded inserts.

2. Sensor Calibration

  1. Open your color calibration sketch in the Arduino IDE and upload it to the ESP32-C3.
  2. Press the wand flush against a pure white surface to extract the RAW RGB values and calculate your specific PETG light-refraction multipliers.
  3. Update these multipliers in your main firmware file.

3. Flashing the Main Firmware

  1. Open your main firmware sketch in the Arduino IDE.
  2. Install the required libraries: Adafruit_TCS34725 and Adafruit_NeoPixel.
  3. Select the ESP32-C3 board and flash via USB-C.

4. Running the Game Engine

  1. Open your game engine sketch in Processing 4+.
  2. Ensure the Serial Port index matches your ESP32-C3 connection.
  3. Press SPACE BAR to start the hunt!

Author

Pedro Coutinho Multimedia Design Master's Degree University of Coimbra - Faculdade de Ciências e Tecnologia (DEI)

About

Interface Tecnologies Project

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors