In dem ein Telefon mit einem Dialer Elektronik empfängt, um in Mobilfunknetzen zu arbeiten, und wie vorgesehen arbeiten kann.
Dies ist eine dreiteilige Projektbeschreibung, die ich als feierlichen Abschluss des Projekts selbst schreiben musste. Da ich diesen Punkt jedoch zu sehr verzögerte, beschloss ich, das gesamte Projekt als eine einzige zusammenhängende Aussage zu beschreiben.Wenn sich jemand erinnert, bin ich eine sehr wütende Person. Ich werde leicht wütend, wenn ich telefoniere, aber im Moment gibt es keine gute Möglichkeit, meinen Ärger auszudrücken. Ich vermisse die alte Zeit, in der man das Mobilteil des Geräts gewaltsam umdrehen konnte, um Spannungen abzubauen - aber Mobiltelefone bieten keine solche Gelegenheit. Und ich machte mich daran, ein Mobiltelefon mit einem Dialer zu erstellen.So wurde iRotary geborenIRotary Projekt
SchönheitIch kaufte zunächst ein echtes Telefon der alten Schule mit einem Wählrad - genau das, das ich als Kind verwendet habe. Ich habe eine herrliche orange Farbe gewählt, damit die Schönheit von iRotary der Ehrgeiz des Projekts nicht unterlegen ist.Das Foto wurde am ersten Tag des Kaufs mit Kabeln und allem anderen vom selben Telefon aufgenommen. Es sieht heute so cool aus, obwohl es 50% weniger Kabel hat - was bei Mobiltelefonen gut ist.Das gesamte Projekt kostete mich 150 USD für Teile und 2000 USD für die Entwicklungszeit - die Montage dauerte zwei volle Tage und dauerte mehrere Monate mit allen Arten von Aktionen, Warten auf Ersatzteile, Verwenden von Ersatzteilen, Warten auf die nächsten Teile usw. Der erste Schritt bestand natürlich darin, alles Unnötige zu extrahieren und durch alles zu ersetzen, was Sie brauchen.Schritt 1: Zuerst Wah!
Stellen Sie sich vor, wie es sich anfühlt, eine solche Erdbeere zu machen!Der beste Kandidat für Schnittstellen mit dem alten Dialer ist natürlich der Arduino. Er wird auch für die Arbeit mit GSM verantwortlich sein. Es ist ideal, um Impulse von einem Dialer zu lesen und in eine Ganzzahl umzuwandeln, die dann zum Wählen einer Nummer verwendet werden kann.Kommunikationen werden leicht von der GSM-Abschirmung verarbeitet. Dies ist ein Peripheriegerät, das eine Verbindung zum Arduino herstellt (auf den Straßen nennen wir es einen „Schild“). Es ist sehr einfach zu programmieren und verfügt über eine Bibliothek mit den meisten erforderlichen Funktionen - Lesen von SMS, Senden und Empfangen von Anrufen, Senden von DTMF usw.Der nächste Schritt war das Schreiben von Code, um das Zifferblatt in Zahlen umzuwandeln. Der Dialer funktioniert folgendermaßen: Nach einer erzwungenen Drehung beginnt er sich zurückzudrehen und berührt den Schalter einmal für jede gewählte Nummer. Das heißt, wenn Sie drei wählen, sendet der Schalter drei Signale, da drei Nummern daran vorbeigehen. Um die gewählte Nummer zu bestimmen, müssen Sie nur zählen, wie oft der Schalter geöffnet und geschlossen wurde.Dies war mit dem folgenden Code einfach zu bewerkstelligen, der die Variable jedes Mal erhöht, wenn sich die Spannung vom Schalter von niedrig nach hoch ändert:void readPulses() {
char pinPulse = digitalRead(PIN_PULSE);
if (pinPulse == HIGH && edge == 0) {
pulses++;
edge = 1;
} else if (pinPulse == LOW && edge == 1) {
edge = 0;
}
}
Als nächstes müssen Sie nur die Nummern sammeln und den Anruf tätigen, wenn die Anzahl der Ziffern 10 erreicht. In Griechenland sind alle Nummern zehnstellig, mit Ausnahme der Telefonnummern, für die ich später einen Code hinzufügen werde.Das Hinzufügen von Zahlen zu einer Zeile ist ein einfacher Vorgang, der mit dem folgenden Code ausgeführt wird.void readDialing() {
char digit;
bool finalDigit = false;
char pinDialing = digitalRead(PIN_DIALING);
if (pinDialing == 1 && dialing == 0) {
digit = getDigit();
if (digit != -1) {
number += (int)digit;
showNumber(number);
if (number.length() == NUMBER_LENGTH) {
dialNumber(number);
}
}
}
dialing = pinDialing;
}
Er hatte noch keinen Anruf gesendet, da der Schild noch nicht verbunden war - dies war der nächste Schritt. Hier ist ein Prototyp bei der Arbeit:Er verdiente sofort gutes Geld, selbst mit der alten, heruntergekommenen Maschine, die ich für das Prototyping gefunden hatte. Der Dialer ist eine erstaunlich genaue Sache, und es sollte so sein, sonst hätten Sie sich an die falsche Stelle begeben und nichts davon erfahren können, bis Ihnen ein Typ geantwortet hat und Sie Ihre Freundin angerufen haben und Sie entschieden haben, dass sie Sie betrogen hat und einen Skandal werfen, aber tatsächlich ist es nur ein Schaltermüll. Aus diesem Grund ist die Zahl der Scheidungen nach der Einführung digitaler Tonwähler gesunken. Darüber hinaus reduziert Gewalt gegen Menschen mit einer großen Anzahl von Nullen in den Räumen.Schritt 2: Wer kein Risiko eingeht, der ist nicht GSM-it
Der nächste Schritt nach erfolgreicher Nummernerkennung besteht darin, die Möglichkeit zum Tätigen von Mobilanrufen hinzuzufügen. Ich habe das Schild mit Arduino verbunden und den für Anrufe erforderlichen Code hinzugefügt:void dialNumber(String number) {
call.Call(numArray);
}
Aufregend.Obwohl es so einfach war, war es sehr cool, da die meisten Funktionen des Mobiltelefons (Wählen und Anrufen) bereit waren. So funktioniert es:Bei diesem Schritt stieß ich auf mehrere Schwierigkeiten. Das erste ist, wo das Arduino mit dem Schild am Telefon platziert werden soll, da aufgrund der Komponenten des Telefons praktisch kein Platz vorhanden war. Um dieses fast unlösbare Problem zu lösen, musste ich einen Kompromiss eingehen: Ich habe den Anruf gelöscht, der immer noch nicht mit dem Akku betrieben werden konnte (er benötigt 50 V), was die Authentizität des Geräts beeinträchtigte. Warum brauche ich ein Telefon mit Dialer, wenn es nicht den bekannten Klang eines dzzzzzzzzzzzzzzzzz erzeugen kann?Und die Inspiration kam! Die Lösung war einfach: Lassen Sie das Telefon im leisen Modus arbeiten, seien Sie höflich, um andere Menschen nicht zu stören, aber ansonsten schön.Nachdem ich zwei Probleme auf einen Schlag gelöst hatte, spürte ich, wie meine Freude wuchs. Ein weiteres Problem war, dass es irgendwie notwendig war, den Ein- und Ausgang der Abschirmung mit dem Mobilteil zu verbinden. Hier helfen Ausreden nicht weiter, da kein Telefon mit Selbstachtung taub und stumm sein wird. Deshalb habe ich mich zuerst für ein kleines Mikrofon und einen Lautsprecher entschieden und sie in das Mobilteil gesteckt. Und ich hätte es fast bestellt, als ich mich plötzlich entschied: Ich werde zuerst das vorhandene Mikrofon und den Lautsprecher ausprobieren.Ich sprang schnell zum Kuhlmann und skizzierte eine sehr komplizierte Schaltung, die aus einer Vielzahl von Komponenten bestand: drei Drähten und zwei Steckern. Alles zusammen, steckte ich die Stecker in die Ein- und Ausgänge der Abschirmung und rief an.- Hallo! - sagte meine Stimme.- Hallo! Ich antwortete freudig.- Ich höre dich! Ich sagte mir.- Und ich dich! - Die Antwort klang.Der Test war ein voller Erfolg. Bestehende Komponenten passen nicht nur zum Schild, sondern erzeugen auch authentisches Rascheln und Feedback, das ich vergessen habe.Der Unterschied zwischen einem Mobiltelefon und einem solchen Telefon besteht darin, dass das erstere Ihre Stimme nicht über den Lautsprecher wiedergeben muss. Daher scheint es Ihnen, dass Ihre Stimme leiser ist als sie ist (da Sie das Ohr mit dem Lautsprecher verbinden) und Sie mehr schreien - als ob Sie versuchen würden, Musik über Kopfhörer zu hören, während Sie mit jemandem sprechen.Und am alten Telefon können Sie Ihre Stimme beim Sprechen hören, was nett ist, und das erfordert nicht, dass Sie Ihren Gesprächspartner anschreien. Dies ist ein angenehmer Effekt, den wir verloren haben.Hier ist der Teaser für das Endprodukt:Die Klingeltöne sind falsch, aber es ist Hollywood.Schritt 3: Schritt weiter
Wenn Audio, Nummernerkennung und GSM funktioniert haben, ist es Zeit, die restlichen Bedienelemente anzuschließen - einen Hebel, eine Taste und eine seltsame LED, eine Download-Anzeige.Es ist am besten, dies durch Ereignisse zu tun. Arduino funktioniert so nicht, weil Sie ständig fragen müssen: "Wird der Knopf gedrückt?" viele tausend Mal pro Sekunde, aber die Ereignisarchitektur ist mit ein wenig Code leicht zu fälschen.Ich wollte das Telefon vom Hebel abheben, um den Anruf anzunehmen, wenn das Telefon klingelte, und das Zurücksetzen des Telefons auf den Hebel unterbrach den aktuellen Anruf. Ich wollte auch, dass alle Steuersignale ignoriert werden, wenn sich das Mobilteil am Hebel befindet.Dies ist mit einer Zustandsmaschine leicht zu erreichen. Dies bedeutet, dass es eine Variable gibt, die den aktuellen Status des Telefons enthält - allein, sprechen, klingeln, wählen usw. Und wenn Ereignisse auftreten (Drücken der Taste), können sie einfach überprüfen, in welchem Zustand sich das Telefon befindet, und entweder eine Aktion ausführen oder nicht.Ereignisse
Ereignisse können wie Zahlen erkannt werden. Wir werden prüfen, ob sich der Status der Schaltfläche ändert, und das Ereignis nur starten, wenn wir die Änderung erkennen (andernfalls würden wir das Ereignis tausende Male auslösen, wenn wir gefragt würden, ob die Schaltfläche gedrückt wurde, und Arduino würde tausende Male pro Sekunde mit "Ja" antworten).#define PIN_BUTTON_HALF 6
char buttonHalfEdge = 0;
void checkButtonHalfPressed() {
if (digitalRead(PIN_BUTTON_HALF) == LOW) {
if (buttonHalfEdge == 0) {
buttonHalfPressed();
}
buttonHalfEdge = 1;
} else {
if (buttonHalfEdge == 1) {
buttonHalfReleased();
}
buttonHalfEdge = 0;
}
}
Diese Taste hat zwei Zustände: halb gedrückt und vollständig gedrückt (oder halb gedrückt und vollständig gedrückt, wenn Sie den Pessimisten fragen). Der Code definiert beide Zustände, und andere Ereignisse werden auf die gleiche Weise behandelt.Sie können sehen, wie das System im nächsten Video funktioniert, in dem sich die Komponenten befinden, es muss jedoch noch an USB angeschlossen werden, um Strom zu erhalten.Schönheit!Schritt 4: Batterieleistung
USB-Anschluss zum Laden des AkkusWas für ein Mobiltelefon wäre es natürlich, wenn es nicht mobil wäre? Es wäre kein Handy! Die beiden Optionen zum Tragen des Telefons sind also ein kleiner 5-Volt-Akku und eine Schaltung zum Aufladen über USB oder ein sehr, sehr langes Kabel. Da Kupfer heute teurer als Gold ist und ich kein Geld verdiene, habe ich mich für die erste Option entschieden.Es benötigt drei Komponenten:- ( , ). , , , .
- , , – USB- «». USB-.
- ( ). , , . , , , Arduino 5, .
Regler und LadeeinheitWieder sind Batterie und Regler mit dem Laden verbunden. Das Aufladen hat einen USB-Anschluss (und ich habe ein Verlängerungskabel verwendet, um es an die Stelle zu verlegen, an der sich das Telefonkabel befand), der zum Aufladen verwendet wird. Der Regler zerstört alles und gibt die erforderliche Spannung an die erforderlichen Komponenten ab, so dass Sie das Telefon während des Betriebs ein- und ausschalten können und die Spannung nicht abfällt.Sie können auch das mitgelieferte Telefon aufladen, was praktisch ist. Ich weiß nicht, wie lange der Akku hält. Ich habe ihn nicht länger als ein paar Stunden verwendet, aber vielleicht können Sie für ein paar Tage nicht über Ihr Telefon an Ihre Freunde schreiben (Sie müssen eine Schreibmaschine anschließen). Ich werde versuchen, es eines Tages zu testen, aber im Moment sage ich nur, dass der Akku monatelang hält und Sie wochenlang sprechen können. Dann wird er besser verkauft oder nimmt zumindest die erforderliche Menge mit einem Kickstarter auf.Schritt 5: Es gibt keinen Schritt 5.
Die Innenseiten sind zusammengebautund das Projekt ist abgeschlossen! Nachdem Sie die Drähte gezogen und an Stellen geschoben haben, für die sie nicht vorgesehen waren, können Sie den Koffer schließen, in den alles gut passt - es sei denn, Sie schütteln ihn.Sie können die Position der Komponenten grob verstehen. Arduino befindet sich oben rechts, darunter befindet sich eine Abschirmung (Sie sehen eine hervorstehende Antenne). Ein blaues USB-Stromkabel führt zum Regler, der mit dem Akku und dem Ladegerät verbunden ist, und zum Mutterstecker oben links. Sie können die Kabel für Mikrofon und Lautsprecher sehen (von rechts oben nach links).Die Schaltkreise auf der braunen Leiterplatte unten sind die Originalschaltkreise des Telefons. Sie werden nicht verwendet, aber es wäre schwierig, sie zu entfernen, und möglicherweise würde der Hebel (ein transparentes Stück Plastik links) ohne sie nicht funktionieren, was inakzeptabel wäre.Und jetzt, wie versprochen, der letzte Werbespot in seiner ganzen Schönheit. Was für ein Zauber! Schicken Sie es unbedingt an alle Ihre Freunde, auch an diejenigen, mit denen Sie lange nicht gesprochen haben. Was könnte wichtiger sein, als dank des verrückten Internetprojekts eines Typen aus Griechenland wieder mit alten Freunden zu chatten? Natürlich nichts!Wenn es Sie direkt kratzt, Ihr eigenes Mobiltelefon mit einem Dialer herzustellen, und Sie überlegen, von Grund auf neu zu schreiben und schlaflose Nächte mit dem Reverse Engineering meiner Code-Teile zu verbringen, habe ich gute Nachrichten für Sie. Ich habe den gesamten Code online veröffentlicht, weil ich eine solche Person bin.github.com/skorokithakis/iRotarySagen Sie mir in den Kommentaren zum Originalartikel oder auf Twitter, wie sehr dieses erstaunliche Projekt Ihr Leben verändert hat! Schlag!