Verander een Oude Telefoon in een Speurtocht Clue Systeem met SparkFun Arduino Pro Mini
Onderdelen en Benodigdheden
| SparkFun Arduino Pro Mini 328 - 5V/16MHz | 1 |
| MP3 / WAV Trigger | 1 |
| Oude Telefoon | 1 |
| Breadboard (standaard) | 1 |
| Draadbruggen (standaard) | 1 |
| SparkFun Hook-up Draad | 1 |
| microSD Kaart | 1 |
Nodige Tools en Machines
- Soldeerbout (standaard)
- SparkFun Heetluchtpistool
Over dit Project
Volg deze instructies om een oude telefoon om te bouwen tot een speurtocht clue systeem.
Stap 1 - Toetsenblok Rijen en Kolommen
Haak de telefoon uit en verwijder het toetsenblok. Toetsenblokken gebruiken een systeem van rijen en kolommen om toetsaanslagen te detecteren. Deze pagina geeft goede instructies voor het identificeren van knoppen op een toetsenblok en het mappen ervan naar de juiste rij en kolom met een multimeter met doorvoeringstest. In mijn geval ziet het toetsenblok er zo uit:
De printplaat op je toetsenblok (als zichtbaar) maakt het heel gemakkelijk om te identificeren welke pinnen met welke toetsen verbonden zijn. Helaas lijken de pinnen van mijn toetsenblok geen perfecte rijen en kolommen te vormen, dus de tweede afbeelding toont de matrix die ik maakte om de pinnen in rijen en kolommen te verdelen. De omcirkelde getallen vertegenwoordigen de toetsenblok pinnummers, de getallen in de matrix vertegenwoordigen de toetsen, en de gekaderde getallen "I/O" vertegenwoordigen de Arduino pinnen. Zorg dat je de pin mapping noteert, en wijs vervolgens elke toetsenblok pin toe aan een Arduino pin. Mijn toetsenblok is vreemd, het lijkt meer pinnen te hebben dan nodig, maar dat is OK.
De derde afbeelding toont mijn finalesimplificatiematrix, die alleen gebruikmaakt van de toetsen die ik gebruik. Het lijkt nu bijna op rijen en kolommen! In mijn code gebruik ik placeholders A, B, C, en D om de lege plekken in de matrix op te vullen. Deze toetsen bestaan niet op mijn toetsenblok.
Stap 2 - Verlengingen Soldeeren aan het Toetsenblok
Om het gemakkelijker te maken om de toetsenblok pinnen met het breadboard te verbinden, soldeer verlengingen aan de benodigde pinnen. Om dit project te maken is het niet nodig elke toets te gebruiken, dus de onderstaande afbeelding toont alleen de pinnen die ik koos. Ik gebruikte een 4-cijferige pincode, dus ik had alleen 5 toetsen nodig (inclusief * ).
Stap 3 - Audiobestanden Voorbereiden
In mijn project is de stem in de clue Peter van Natural Readers text-to-speech. Download het stem bestand. Vervolgens de morsecode voorbereiden. Er zijn veel morsecode audiogeneratoren online, maar ik gebruikte deze van SCPhillips.com. Download dit bestand ook. Download ook deze toetsenklik geluid.
Audacity is een geweldig hulpmiddel voor audiobewerking, en kan gebruikt worden om de morsecode en stem bestanden samen te voegen en de piepen in te korten tot een enkele piep.
Sleep en zet deze bestanden in Audacity en pas het clue bestand aan tot het aan je behoeften voldoet. Verkort ook de toetsenklikken door het ongewenste deel te selecteren en op delete te drukken.
Sla het Audacity bestand op, exporteer daarna elk spoor apart als MP3. Als je nog nooit Audacity hebt gebruikt, moet je misschien de LAME MP3 encoder downloaden.
Om de audiobestanden op deze specifieke MP3 speler bord te laten spelen, moeten ze correct benoemd zijn en in een map op de SD kaart staan. Elk MP3 moet genoemd worden 001, 002, etc om te corresponderen met trigger pinnen 1-9 op het MP3 bord. Ook moeten de bestanden in een map genaamd 01 op de SD kaart staan. Andere MP3 trigger borden kunnen dit misschien eenvoudiger aan.
Stap 4 - Bibliotheken Downloaden en Code Voorbereiden
Voor dit project zijn de Keypad en Password Arduino bibliotheken nodig. Download en installeer deze bibliotheken, en download de code voor dit project (hieronder). Maak de pincode wat je wilt, en vul de toetsenmatrix in met je corresponderende toetsen.
Stap 5 - Alles Aansluiten
Haak de binnenkant van de telefoon uit en stop de nieuwe spullen erin! Je kunt misschien een powerbank erin knijpen.
Code
Telefoon Toetsenblok Sketch
Deze voorbeeldcode is aangepast om te werken met een telefoontoetsenblok en MP3 trigger.
#include <Password.h> //https://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //https://www.arduino.cc/playground/uploads/Code/Keypad.zip
Password password = Password( "7365" );
const byte ROWS = 4; // Vier rijen
const byte COLS = 3; // kolommen
// Definieer de Keymap
char keys[ROWS][COLS] = {
{'4','5','6'},
{'7','8','A'}, //"A" is een placeholder; geen dergelijke knop bestaat op mijn toetsenblok
{'B','2','3'}, //"B" is een placeholder; geen dergelijke knop bestaat op mijn toetsenblok
{'*','C','D'} //"C" en "D" zijn placeholders; geen dergelijke knoppen bestaan op mijn toetsenblok
};
byte rowPins[ROWS] = { 7,5,3,8 };//Verbind toetsenblok rijen met deze Arduino pinnen.
byte colPins[COLS] = { 6,4,2 };// Verbind toetsenblok kolommen met deze Arduino pinnen.
const int dial = 13; //Digi Arduino pin naar MP3 triggerbord.
const int morse = 12; //Digi Arduino pin naar MP3 trigger bord.
// Maak het Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup(){
pinMode(dial, OUTPUT);
pinMode(morse, OUTPUT);
digitalWrite(dial, HIGH); //MP3 bord triggers active low, dus start met HIGH.
digitalWrite(morse, HIGH); //MP3 bord triggers active low, dus start met HIGH.
Serial.begin(9600);
keypad.addEventListener(keypadEvent); //voeg een event listener toe voor dit keypad
}
void loop(){
keypad.getKey();
}
// Zorg voor speciale events
void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
case PRESSED:
Serial.print("Pressed: ");
Serial.println(eKey);
digitalWrite(dial, LOW); //Speel het dial piep audio bestand; dit gebeurt bij elke toetsaanslag
delay(50);
digitalWrite(dial, HIGH);
switch (eKey){
case '*':
checkPassword();
break; // * is de enter toets
default:
password.append(eKey);
}
}
}
void checkPassword(){
if (password.evaluate()){
Serial.println("Success");
password.reset(); //Wis de toetsinvoeren
digitalWrite(morse, LOW); //Speel het clue audio bestand
delay(50);
digitalWrite(morse, HIGH);
}else{
Serial.println("Wrong");
password.reset(); //Wis de toetsinvoeren voor de volgende poging
}
}
Schema's
Schema beschikbaar als afbeelding.
Productieproces
- Bouw je eigen UFO Attack Game met Arduino UNO & MAX7219 Display
- DIY Wolk Kostuum: LED-strip, Arduino Nano & SparkFun Onderdelen
- 3D RGB Arduclock – Bluetooth LED Tijdstuk met Real-Time Clock
- Riviergezondheidsmonitor: Arduino-gebaseerd Waterkwaliteitssysteem
- Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
- Interactieve Joystick Game met Arduino en LED Feedback
- Find Me: Slimme Item Locator met Arduino en Bluetooth
- DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
- Arduino-aangedreven mini-rover: Bouw je eigen autonome robot
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
- Arduino 101: Bouw een teller met DHT11 sensor & LCD display