Bat telefoon van oude roterende telefoon


Disclaimer: geen oude rotary telefoons gewond in dit project!   Ik had een heleboel roterende telefoons gekocht van een vastgoed te koop en een doosje van gebroken telefoons en telefoon onderdelen opgenomen in deze aankoop was.  Het is vanuit dit vak dat ik kreeg mijn grondstoffen niet van een roterende telefoon werken. 

Dit is niet een volledige Instructable, aangezien ik niet de juiste foto's langs de weg te nemen maar ik hoop te maken een andere één van deze (hopelijk beter) en beter op dat moment zal vastleggen.

Ik zag de volgende Instructable door guidomax: (met dank guidomax!!!)   en met een collectie van roterende telefoons/delen, ik wilde om te zien wat ik kon doen met hen.

Ik besluit dat ik zou proberen te maken van de telefoon van de vleermuis met het signaal en presenteren als een geschenk aan mijn dochter voor de feestdagen.

Hier is een korte video van het werkend.  De muziek is veel harder in persoon.

mijn stappen:
1. eerst verwees ik naar de bovenstaande Instructable te zien of ik van de werking van de interface krijgen kon en zoals voorgesteld in de Instructable, was het vrij gemakkelijk om dit te doen.

2. Ik nam een oude telefoon lichaam en primer en geschilderde rode spuiten.  Ik heb ook de handset en het snoer.

3. Ik heb de code van de Arduino te spelen het thema van Batman en produceren een vleermuis signaal wanneer gezocht "B", "A", "T", "M", "A", "N" is gekozen op de telefoon.

De code was alleen het nemen van de code van guidomax en modifing het dus in plaats van een seriële uitgang op de computer, controleerde het enkel voor de goede reeks cijfers wordt gekozen.  BATMAN is voor exanple "228626". Toen de Arduino zag deze tekenreeks, het begon het lied en de vleermuis signaal ingeschakeld.

Het lied: Ik had een schild van Adafruit Wave die ik had nooit gebruikt en zag dit als een kans om het te controleren. Het duurde een goede dag voor mij om het te bouwen (het komt als een kit) en dan is er een procedure die moet worden gevolgd om uw wav-bestand op het schild.  Het is een gemakkelijke procedure als u iTunes gebruikt.  Gewoon kopen het liedje en converteren zoals vereist via de iTunes-menu's en sleep naar het schild. Zonder iTunes het is meer betrokken, maar de pagina Adafruit begeleidt u doorheen.

De vleermuis signaal: Verscheidene andere Instructables laten zien hoe een signaal en ik nam wat ik van hen kon maar het was min of meer vallen en opstaan voordat ik kwam met het idee van het einde.  Ik een fles water over in tweeën gesneden en zette een klein gaatje in de schroefdop. Ik heb een rode LED ingevoegd in het kleine gat. Ik schilderde de kroonkurk zwart.  Als u de afbeelding niet redelijk goed, moest ik een kleine vleermuis symbool gesneden en voeg het tegenover de fles.  Dat werkte, maar ik denk dat er moet een netter manier.   Ik heet gelijmd de fles een opening maakte ik in de achterkant van de telefoon (hete lijm is geweldig!!).

De code: mijn oorspronkelijke idee was om verschillende super helden worden in de code. dwz als u Batman gekozen, heb je de themamuziek en het signaal, als u SUPERMAN gekozen, heb je verschillende muziek, etc.  Zo ziet u wat code die er is voor dat doel, maar ik heb dat nooit ver.  Het is gewoon BATMAN.

Batmanv2
Dit een poging tot meerdere wav bestanden en spelen de juiste een
op basis van de volgorde van de nummers die gebeld hebt op de telefoon
Als 228626b dan de batman-thema spelen

#include < FatReader.h >
#include < SdReader.h >
#include < avr/pgmspace.h >
#include "WaveUtil.h"
#include "WaveHC.h"

Kaart van de SdReader;    Dit object bevat de gegevens voor de kaart
FatVolume vol;    Dit houdt de informatie voor de partitie op de kaart
FatReader wortel;   Dit bevat de gegevens voor het bestandssysteem op de kaart
F FatReader;      Dit bevat de gegevens voor het bestand we aan het spelen bent

WaveHC Golf;      Dit is de enige Golf (audio) object, omdat we zullen slechts één filter tegelijk spelen

#define DEBOUNCE 100 / / button debouncer

--van V1---
// -----------------
int needToPrint = 0;
int count;
mijne
int redLed = 8;
int in_from_dial = 7;
int lightOn = 6;
int craddleUp = 9;
int val = laag;     variabele de lees waarde op te slaan
//
int lastState = laag;
int trueState = laag;
lange lastStateChangeTime = 0;
int uitgeschakeld = 0;

constanten

int dialHasFinishedRotatingAfterMs = 100;
int debounceDelay = 10;

tekenreeksen
String newstring;
char Tester [] = "123";

char Batman [] = "228626";
char Spiderman [] = "774337626";
char Superman [] = "78737626";
char Batgirl [] = "2284475";

-einde van V!---

VOID Setup {}
seriële poort instellen
Serial.begin(9600);
putstring_nl ("WaveHC met select songs");

putstring ("vrije RAM:");       Dit kan helpen met het opsporen van fouten, uit RAM lopend is slecht
Serial.println(freeRam());      Als dit onder 150 bytes kan het problemen magie!

De pennen voor de DAC-besturingselement instellen Deze pennen zijn gedefinieerd in de bibliotheek
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);

van V1
pinMode (in_from_dial, INPUT);  12
pinMode (lightOn, OUTPUT);    11
pinMode(craddleUp,INPUT);  9
pinMode(redLed,OUTPUT);  9
einde v1

pin13 LED
pinMode (13, OUTPUT);



Als (! card.init(true)) //play met 4 MHz spi als 8MHz niet voor u werkt
Als (! card.init()) {//play met 8 MHz spi (standaard sneller!)
putstring_nl ("Card init. mislukt!");  Er ging iets mis, laat uitprinten waarom
sdErrorCheck();
while(1);                            vervolgens 'stoppen' - niets doen!
}

inschakelen optimaliseren lees - sommige kaarten kunnen timeout. Uitschakelen als u problemen ondervindt
card.partialBlockRead(true);

Nu gaan we voor een FAT-partitie!
uint8_t deel;
voor (deel = 0; deel < 5; deel ++) {/ / Wij hebben maximaal 5 "slots" om in te kijken
Als (vol.init (kaart, deel))
breken;                             We vonden een, laat borgtocht
}
Als (deel == 5) {/ / als we uiteindelijk niet het vinden van een :(
putstring_nl ("geen geldige FAT-partitie!");
sdErrorCheck();      Er ging iets mis, laat uitprinten waarom
while(1);                            vervolgens 'stoppen' - niets doen!
}

Laat de gebruiker te vertellen over wat we gevonden
putstring ("Using partitie");
Serial.Print (deel, DEC);
putstring (", type is vet");
Serial.println(vol.fatType(),DEC);     FAT16 of FAT32?

Probeert te openen van de root directory
Als (! root.openRoot(vol)) {}
putstring_nl ("kan niet openen root dir!"); Er ging iets mis,
while(1);                             vervolgens 'stoppen' - niets doen!
}

Oef! Daar kregen we voorbij de harde delen.
putstring_nl("Ready!");
}

idee is hier
de lus wordt voortgezet totdat de reciever pickerd is
dan is de volgorde van de nummers opgenomen en gecontroleerd
Als een hit wordt gevonden, schakelt op licht (voor Batman) en/of
de song afspelen

void loop {}


wachten op de ontvanger op te heffen
Zodra opgeheven, kan dan het kiezen worden gecontroleerd
inschakelen van rode leidde tot het tonen van dat de telefoon is levend
Val = digitalRead(craddleUp);   Lees de invoer pin


Als (val == HIGH) {}

digitalWrite (redLed, hoge);


int lezing = digitalRead(in_from_dial);

Als ((millis()-lastStateChangeTime) > dialHasFinishedRotatingAfterMs) {}
de wijzerplaat is niet wordt gekozen, of net klaar is wordt gekozen.
Als (needToPrint) {}
Als het klaar is pas wordt gekozen, moeten we het nummer van de seriële afgeven
lijn en reset de telling. We mod de telling door 10 omdat '0' 10 pulsen stuurt.
Serial.println (graaf 10%, DEC);

Nu moet de telling toevoegen aan de testtekenreeks en vervolgens testen tegen de
vereiste tekenreeks om een hit
newstring.concat(Count);

als koord Batman evenaart, schakelt op licht en wav-bestand starten
Serial.println(newstring);
delay(2000);
// --------------------
// -------------- Batman -----------------
Als ((newstring.equals(Batman)) || (newstring.equals(Tester))) {
digitalWrite (lightOn, hoge);

playcomplete ("BATMAN. WAV");
digitalWrite(lightOn,LOW);

}
---Spiderman---
Als (newstring.equals(Spiderman)) {}
bat_signal();
playcomplete("1.wav");
}
// --------------Superman -----------------
Als (newstring.equals(Superman)) {}
bat_signal();
playcomplete("1.wav");
}
// -------------- BatGirl -----------------
Als (newstring.equals(Batgirl)) {}
bat_signal();
playcomplete("1.wav");
}

needToPrint = 0;
Graaf = 0;
uitgeschakeld = 0;
}

}

Als (lezen! = lastState) {}
lastStateChangeTime = millis();
}
Als ((millis()-lastStateChangeTime) > debounceDelay) {}
ontdendering - dit gebeurt zodra het wordt gestabiliseerde
Als (lezen! = trueState) {}
Dit betekent dat de schakelaar ofwel gewoon verdwenen uit gesloten heeft -> open of vice versa.
trueState = lezing;
Als (trueState == HIGH) {}
_ / / verhogen de telling van de pulsen als het hoge gegaan.
Graaf ++;
needToPrint = 1; We moeten dit getal afdrukken (zodra de wijzerplaat heeft gebeëindigd draaien)
}
}
}
lastState = lezing;
}
anders
{
newstring = "";
digitalWrite (lightOn, laag);
digitalWrite(redLed,LOW);
}

}

Speelt een volledige bestand van begin tot eind met geen pauze.
ongeldig playcomplete(char *name) {}
Bel onze helper vinden en spelen deze naam
playfile(name);
terwijl (wave.isplaying) {}
niets te doen tijdens het spelen van haar
}
nu zijn gedaan afspelen
}

ongeldig playfile(char *name) {}
Zie als de Golf-object is momenteel bezig met iets
Als (wave.isplaying) {/ / al het spelen van iets, dus stoppen met het!
Wave.stop(); Stop ermee
}
kijken in de root directory en open het bestand
Als (! f.open (root, naam)) {}
putstring kon niet ("open bestand"); Serial.Print(name); terugkeer;
}
OK lees het bestand en zet hem in een golf-object
Als (! wave.create(f)) {}
putstring_nl ("niet een geldig WAV"); terugkeer;
}

OK tijd om te spelen! Start het afspelen
Wave.Play();
}

deze handige functie geeft het aantal bytes in het RAM, momenteel gratis groot voor debugging!
int freeRam(void)
{
extern int __bss_end;
extern int * __brkval;
int free_memory;
Als (__brkval (int) == 0) {}
FREE_MEMORY = ((int) & free_memory)-((int) & __bss_end);
}
else {}
FREE_MEMORY = ((int) & free_memory)-((int) __brkval);
}
Return free_memory;
}

VOID sdErrorCheck(void)
{
Als (! card.errorCode()) keren;
putstring ("\n\rSD I/O fout:");
Serial.Print(Card.ErrorCode(), HEX);
putstring (",");
Serial.println(Card.errorData(), HEX);
while(1);
}

De Arduino die ik gebruikte was een UNO

Nogmaals, ik wou dat ik meer foto's en betere documentatie. Volgende keer.

Mijn dochter dacht dat is een nette geschenk en ze leek gelukkig maar dat is wat dochters doen. :)

Gerelateerde Artikelen

De wijzerplaat van een roterende telefoon aan een Arduino interface

De wijzerplaat van een roterende telefoon aan een Arduino interface

een oude roterende telefoon kan worden gebruikt voor een aantal doeleinden in uw projecten Arduino - het als een roman als invoerapparaat gebruiken, of gebruik van de Arduino interface een roterende telefoon naar uw computer.Dit is een zeer basisgids
Voor het gebruik van oude telefoon om te bouwen van Internet van het huis van dingen

Voor het gebruik van oude telefoon om te bouwen van Internet van het huis van dingen

Met de snelle ontwikkeling van technologie, en nu de smartphone heeft ingevoerd elk huishouden, maar oude mobiele telefoons die werd uitgeschakeld en PHS is echt niets mee? Ik heb eerst vijf oude telefoon te upgraden van uw oude telefoon te gebruiken
Jas haken van oude telefoon lijn isolatoren

Jas haken van oude telefoon lijn isolatoren

kreeg een grote collectie van deze van iemand die een wireman voor de oude Bell Telephone company was.Stap 1: onderdelen Dit is alle recylcling: afval van hout uit andere projecten, Glazen isolatoren van oude communicatiesysteem.Stap 2: Zet de hout M
PSU-voeding van oude ATX met Arduino en LCD Monitor een proefbank

PSU-voeding van oude ATX met Arduino en LCD Monitor een proefbank

Hallo allemaal en welkom op mijn eerste Instructable.Ik wilde altijd een bankje PSU voor gemakkelijke toegang tot een bron van macht, en iets dat ik kan rekenen op wanneer u werkt aan verschillende projecten. Ik wilde een PSU dat:• biedt 3, 3V, 5v en
Hergebruik van oude PCB's

Hergebruik van oude PCB's

Wat zijn de PCB's?PCB is een afkorting voor Printed Circuit Boards. Een PCB ondersteunt mechanisch en elektrisch verbindt elektronische componenten met behulp van geleidende tracks, pads en andere functies van koperen bladen gelamineerd op een niet-g
Undistructible manier van omzetten van oude muzieksysteem in Bluetooth draadloos systeem, internetradio, Piano, gitaar enz, bioscoop, Andriod, Iphone ingeschakeld

Undistructible manier van omzetten van oude muzieksysteem in Bluetooth draadloos systeem, internetradio, Piano, gitaar enz, bioscoop, Andriod, Iphone ingeschakeld

Undistructible manier van omzetten van oude muzieksysteem in Bluetooth draadloos systeem, internetradio, Piano, gitaar enz, bioscoop, Andriod, Iphone ingeschakeldgewoon door te hacken en oude stereo hoofdtelefoon zonder beschadiging van de koptelefoo
Recycling van oude autoradio in een audio-versterker

Recycling van oude autoradio in een audio-versterker

Ik heb deze oude cd-speler die was vrij veel afval, omdat het haar voorpaneel verloren had. Zelfs als het werkte ik heb niet alle fysieke media noch ik wilde luisteren naar de radio. Maar ik wist dat ik kon het versterker-gedeelte gebruiken gebruiken
Voorzien van oude T-Shirt pyjama's

Voorzien van oude T-Shirt pyjama's

Ik eindelijk mijn vriendje te verwijderen zijn kleren van overtuigd!Wat resulteerde was een grote voorraad van oude t-shirts, werk shirts, truien, oude golf shirts en meer. Ik heb overwogen doneren hen - maar vroeg zich af, als er iets die mij verric
Zin in mobiele Pouch van oude jeans

Zin in mobiele Pouch van oude jeans

geïnspireerd door vele "how to instructies" uit instructables ik mobiele maakte pouch van oude jeans.daarvoor gebruikte ikoude jeansLaceschaarnaalddraad spoel3D outliner (stof kleur)stof lijmpailletten voor decoratieStap 1: Knippen en naaien pla
Speler van de muziek van oude Cellphone

Speler van de muziek van oude Cellphone

ik had een defect Chinese oude mobiel en als gevolg van de geluidskwaliteit, licht effect ik probeerde om het te gebruiken als een eenvoudige muziekspeler.het was niet van enig nut, omdat de sim-kaartsleuf defect & sommige nummer toetsen is / knoppen
3 dingen te maken van oude nummerplaten

3 dingen te maken van oude nummerplaten

Hier zijn drie eenvoudige en nuttige dingen kun je van oude nummerplaten.In dit instructable ik besproken hoe te maken:een dooseen mail en sleutel houdereen hanglampNummerplaten dragen veel nostalgie en zijn zeer interessant visueel, dus het is geen
Noodgevallen deken van oude partij ballonnen

Noodgevallen deken van oude partij ballonnen

een backpacken reis in northern British Columbia is iets in de werken voor mij en mijn man. Wij houden om te wandelen en vooraf van plan bent om te zien wat we precies nodig hebt en hoeveel we kunnen krijgen in onze verpakkingen zonder weging ons tev
(Nieuwe cyclus) gebouwd van oude onderdelen

(Nieuwe cyclus) gebouwd van oude onderdelen

Hallo vrienden... vandaag i 'm goin te uploaden mijn nieuwe DIY cyclus project...Tools:-moersleutel-hamer-Vet-spray-dun gewaad-borstel-tandenborstel-tennis bal tape-plakbandStap 1: Oude delen krijgen... Alle dingen zijn beschikbaar op de fiets winkel
Aan de orde gesteld tuin bed van oude ceder hek

Aan de orde gesteld tuin bed van oude ceder hek

een trend in mijn omgeving is nemen van oude, versleten cedar hekken en deze te vervangen door akelige, plastic ones. zoals ik in andere video's aangegeven heb, is dit hout meestal vrij groot materiaal voor allerlei indoor en outdoor projecten. in de