EchoMaze

Project by Biro Anya-Andreea, 332CA

Introduction

What is the project about?
EchoMaze is a sound-guided blind maze game developed using an Arduino Nano. The player moves through a hidden maze without any visual clues, relying solely on audio cues that indicate their proximity to the goal.

What is the project's purpose?
The purpose of this project is to explore how sound can be used as an alternative to visual navigation. It challenges the player to rely on hearing to make spatial decisions, while showcasing the creative potential of microcontroller features in unconventional, engaging ways.

What inspired the idea?
The idea started from classic logic and memory-based games like mazes and puzzles, but I wanted to remove the visual element to create a more immersive and unconventional challenge. The goal was to create something simple in concept, yet unusual and technically interesting to implement. It explores how people can interpret space and direction using only sound.

Why is this project useful?
This project is useful because it demonstrates how simple hardware can be used to create engaging, educational, and accessible experiences. It’s valuable for understanding sensory-based challenges and applying theoretical concepts like GPIO, timers, PWM, and I2C in a real-world embedded project.

Overview

Block Diagram

Description of Components

  • Arduino Nano
    • Runs the maze logic and manages input/output operations.
    • Communicates with all other components to coordinate feedback and interaction.
  • OLED Display
    • Displays information such as game instructions, progress, or status messages.
    • Connected to the Arduino Nano via I2C for efficient two-wire communication.
  • Buzzer
    • Provides audio cues that help the player navigate the maze based on proximity to the target.
    • Controlled by the Arduino using a PWM signal to vary the pitch of the sound.
  • Buttons
    • Enable directional control (up, down, left, right) for navigating the maze.
    • Each button is connected to a GPIO pin on the Arduino.

Hardware Design

Bill Of Materials

Name Quantity Price per unit (lei) Purchase link
Arduino Nano124.99 Link
OLED Display115.38 Link
Buzzer10.99 Link
Button40.36 Link
Breadboard19.52 Link
Jumper Wire Set 17.99 Link
USB Type-A to Mini-B cable14.37 Link
Total price: 64.68 lei

Additional components may be added later.

Schematic

Arduino Pin Configuration

Name Arduino Pin Connection Description
Display - SDAA4I2C data line
Display - SCLA5I2C clock line
BuzzerD6PWM-capable digital output
Button DownD9User input – Down
Button RightD10User input – Right
Button LeftD11User input – Left
Button UpD12User input – Up

Software Design

Development environment: PlatformIO with Visual Studio Code.
3rd-party libraries and sources used:

  • Adafruit_SSD1306.h – used to control the OLED display (SSD1306 driver)
  • Adafruit_GFX.h – core graphics library required by Adafruit_SSD1306

Algorithms and data structures planned:

  • Maze representation using a 2D character array
  • Implementation of player movement logic and collision detection
  • Buzzer feedback based on distance map

The implemented functions are organized into the following categories:

  • Display: OLED init, message display, maze rendering (work in progress)
  • Movement: Player navigation logic and collision detection
  • Input/Output: Button reading, LED toggling, GPIO init

Code

Final results

Download

Resources

pm/prj2025/eradu/anya_andreea.biro.txt · Last modified: 2025/05/30 09:24 by anya_andreea.biro
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0