Convierte un Teléfono Antiguo en Sistema de Pistas para Gymkhana con Arduino Pro Mini
Componentes y Suministros
| Componente | Cantidad |
|---|---|
| SparkFun Arduino Pro Mini 328 – 5 V/16 MHz | 1 |
| Módulo disparador MP3/WAV | 1 |
| Teléfono antiguo (con teclado) | 1 |
| Protoboard (genérica) | 1 |
| Cables jumper (genéricos) | 1 |
| Cable de conexión (SparkFun Hook-up wire) | 1 |
| Tarjeta microSD | 1 |
Herramientas Necesarias
- Soldador (genérico)
- Pistola de calor (SparkFun)
Sobre el Proyecto
Transforma un teléfono de disco/teclas en un sistema de pistas para una gymkhana (búsqueda del tesoro). Al marcar el código correcto en el teclado, el teléfono reproduce una pista de audio (voz + código morse).
Paso 1: Filas y Columnas del Teclado
Desmontar el teléfono y extraer el teclado. Los teclados usan matriz de filas/columnas. Con multímetro en modo continuidad, identificar qué pines corresponden a cada tecla. En este caso el teclado no seguía una matriz perfecta; se creó una matriz personalizada asignando pines del teclado a pines del Arduino (usando placeholders A, B, C, D para teclas inexistentes).
Paso 2: Soldar Extensiones al Teclado
Soldar cables a los pines necesarios del teclado (solo 5 teclas para un código de 4 dígitos + asterisco).
Paso 3: Preparar Archivos de Audio
- Voz: generada con "Peter" de Natural Readers (text-to-speech).
- Código morse: generado online (ej. SCPhillips.com).
- Beep de tecla: sonido corto.
Editar con Audacity: fusionar voz + morse, recortar beeps a uno solo. Exportar cada pista como MP3.
Nomenclatura crítica para la placa MP3: archivos nombrados 001.mp3, 002.mp3… dentro de carpeta 01 en la microSD. Cada número corresponde a un pin de disparo (trigger) de la placa.
Paso 4: Librerías y Código
Instalar librerías Keypad.h y Password.h de Arduino Playground. Configurar la matriz de teclas y el código secreto (ej. "7365") en el sketch.
Paso 5: Montaje Final
Vaciar el interior del teléfono y colocar la electrónica (Arduino Pro Mini, placa MP3, microSD, batería/power bank). Conectar teclado, altavoz del teléfono a la salida de audio de la placa MP3.
Código
#include <Password.h>
#include <Keypad.h>
Password password = Password("7365");
const byte ROWS = 4, COLS = 3;
char keys[ROWS][COLS] = {
{'4','5','6'},
{'7','8','A'}, // A placeholder
{'B','2','3'}, // B placeholder
{'*','C','D'} // C,D placeholders
};
byte rowPins[ROWS] = {7,5,3,8};
byte colPins[COLS] = {6,4,2};
const int dial = 13; // pin a trigger MP3 (beep tecla)
const int morse = 12; // pin a trigger MP3 (pista)
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
pinMode(dial, OUTPUT); digitalWrite(dial, HIGH);
pinMode(morse, OUTPUT); digitalWrite(morse, HIGH);
Serial.begin(9600);
keypad.addEventListener(keypadEvent);
}
void loop() { keypad.getKey(); }
void keypadEvent(KeypadEvent eKey) {
switch (keypad.getState()) {
case PRESSED:
Serial.print("Pressed: "); Serial.println(eKey);
digitalWrite(dial, LOW); delay(50); digitalWrite(dial, HIGH); // beep
switch (eKey) {
case '*': checkPassword(); break;
default: password.append(eKey);
}
}
}
void checkPassword() {
if (password.evaluate()) {
Serial.println("Success");
password.reset();
digitalWrite(morse, LOW); delay(50); digitalWrite(morse, HIGH); // reproduce pista
} else {
Serial.println("Wrong");
password.reset();
}
}
Esquemáticos
Ver diagrama Fritzing en el proyecto original.
Proceso de manufactura
- Construye tu Juego "UFO Attack" con Arduino UNO y Pantalla MAX7219
- Disfraz de nube DIY: Tira LED, Arduino Nano y componentes SparkFun
- Reloj 3D RGB Arduclock – Bluetooth, LED NeoPixel y RTC
- Monitor de Salud Fluvial: Sistema de Calidad de Agua con Arduino
- Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
- Juego interactivo con joystick analógico y LEDs en Arduino
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
- Pequeño Rover con Arduino: Construye tu Robot Autónomo Evita Obstáculos
- Construye un volante joystick personalizado con Arduino para gaming
- Arduino 101: Construye un Podómetro con Sensor DHT11 y Pantalla LCD