Dans lequel un téléphone avec un numéroteur reçoit des composants électroniques pour fonctionner sur les réseaux mobiles et peut fonctionner comme prévu.
Il s'agit d'une description de projet en trois parties, que j'ai dû écrire comme l'achèvement solennel du projet lui-même, mais comme j'ai trop retardé ce point, j'ai décidé de décrire l'ensemble du projet comme une seule exposition cohérente.Si quelqu'un se souvient, je suis une personne très en colère. Je me fâche facilement lorsque je parle au téléphone, mais pour le moment, il n'y a pas de bon moyen d'exprimer mon agacement. Je m'ennuie de l'ancien temps, où vous pouviez forcer le combiné sur l'appareil pour soulager la tension - mais les téléphones mobiles ne donnent pas une telle opportunité. Et j'ai décidé de créer un téléphone portable avec un numéroteur.Donc iRotary est néProjet IRotary
BeautéJ'ai commencé par acheter un vrai téléphone à l'ancienne avec un numéroteur rotatif - juste celui que j'utilisais enfant. J'ai choisi une glorieuse couleur orange pour que la beauté d'iRotary ne soit pas inférieure à l'ambition du projet.La photo a été prise à partir du même téléphone le premier jour de l'achat, avec des câbles et tout le reste. Il a l'air si cool aujourd'hui, bien qu'il ait 50% de fils en moins - ce qui est bien dans le cas des téléphones mobiles.L'ensemble du projet m'a coûté 150 $ pour les pièces et 2000 $ pour le temps de développement - il a fallu deux jours complets pour assembler et a duré plusieurs mois toutes sortes d'actions, en attendant des pièces de rechange, en utilisant des pièces de rechange, en attendant les pièces suivantes, etc. La première étape, bien sûr, a été d'extraire tout ce qui n'était pas nécessaire et de le remplacer par tout ce dont vous avez besoin.Étape 1: d'abord, wah!
Imaginez ce que ça fait de faire une telle fraise!Le meilleur candidat pour les interfaces avec l'ancien numéroteur, bien sûr, est l'Arduino. Il sera également chargé de travailler avec GSM. Il est idéal pour lire les impulsions d'un composeur et les convertir en un entier, qui peut ensuite être utilisé pour composer un numéro.Les communications sont facilement traitées par le bouclier GSM. Il s'agit d'un périphérique qui se connecte à l'Arduino (dans les rues, nous l'appelons un «bouclier»). Il est très simple à programmer, il est livré avec une bibliothèque avec la plupart des fonctions nécessaires - lecture de SMS, envoi et réception d'appels, envoi DTMF, etc.L'étape suivante consistait à écrire du code pour convertir le cadran en chiffres. Le composeur fonctionne comme ceci: après une rotation forcée, il commence à tourner en arrière, il touche le commutateur une fois pour chaque numéro composé. Cela signifie que si vous composez trois, le commutateur enverra trois signaux, car trois numéros passeront par lui. Pour déterminer le numéro composé, il vous suffit de compter combien de fois le commutateur a été ouvert et fermé.Cela a été facile à faire avec le code suivant, qui incrémente simplement la variable chaque fois que la tension du commutateur passe de faible à élevée:void readPulses() {
char pinPulse = digitalRead(PIN_PULSE);
if (pinPulse == HIGH && edge == 0) {
pulses++;
edge = 1;
} else if (pinPulse == LOW && edge == 1) {
edge = 0;
}
}
Il vous suffit ensuite de collecter les numéros et de passer l'appel lorsque le nombre de chiffres atteint 10. En Grèce, tous les numéros sont à dix chiffres, à l'exception des numéros de téléphone, un code pour lequel j'ajouterai plus tard.Ajouter des numéros à une ligne à son tour est un processus simple, il se fait avec le code suivant.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;
}
Il n'avait pas encore envoyé d'appel, car le bouclier n'était pas encore connecté - c'était la prochaine étape. Voici un prototype à l'œuvre:Il a tout de suite fait beaucoup d'argent, même avec la vieille machine délabrée que j'ai trouvée pour le prototypage. Le composeur est une chose incroyablement précise, et cela devrait être comme ça, sinon vous auriez pu vous trouver au mauvais endroit et ne pas le savoir jusqu'à ce qu'un mec vous réponde et que vous appeliez votre petite amie et que vous décidiez qu'elle vous trompait , et jette un scandale, mais en fait, ce n'est qu'une camelote. C'est pourquoi le nombre de divorces a chuté après l'introduction des numéroteurs numériques. En outre, réduction de la violence contre les personnes avec un grand nombre de zéros dans les chambres.Étape 2: qui ne prend pas de risques, ce n'est pas GSM-it
La prochaine étape après une reconnaissance de numéro réussie consiste à ajouter la possibilité de passer des appels mobiles. J'ai connecté le bouclier avec Arduino et ajouté le code nécessaire pour les appels:void dialNumber(String number) {
call.Call(numArray);
}
Passionnant.Bien que c'était si simple, c'était très cool, car la plupart des fonctionnalités du téléphone mobile (numérotation et appel) étaient prêtes. Voici comment cela fonctionne:À cette étape, j'ai rencontré plusieurs difficultés. Le premier est où placer l'Arduino avec le blindage sur le téléphone, car il n'y avait pratiquement pas d'espace en raison des composants du téléphone. Pour résoudre ce problème presque insoluble, j'ai dû faire un compromis: j'ai supprimé l'appel, qui ne pouvait toujours pas être alimenté par la batterie (il a besoin de 50 V), ce qui a réduit l'authenticité de l'appareil. Pourquoi ai-je besoin d'un téléphone avec un numéroteur s'il ne peut pas produire le son familier d'un dzzzzzzzzzzzzzzzzz?Et l'inspiration est venue! La solution était simple: laisser le téléphone fonctionner en mode silencieux, être poli, afin de ne pas déranger les autres, mais sinon beau.Ayant résolu deux problèmes d'un seul coup, j'ai senti ma joie grandir. Un autre problème était qu'il était en quelque sorte nécessaire de connecter l'entrée et la sortie du blindage au combiné. Ici, les excuses n'aideront pas, car aucun téléphone qui se respecte ne sera sourd et muet, j'ai donc d'abord décidé d'acheter un petit microphone et un haut-parleur, et de les mettre dans le combiné. Et je l'ai presque commandé quand j'ai soudainement décidé: je vais d'abord essayer le microphone et le haut-parleur existants.J'ai rapidement sauté sur le Kuhlmann et esquissé un circuit très compliqué composé d'un grand nombre de composants: trois fils et deux connecteurs. En mettant tout cela ensemble, j'ai inséré les connecteurs dans les entrées et sorties du bouclier et j'ai passé un appel.- salut! - dit ma voix.- salut! Répondis-je joyeusement.- Je t'entends! Me dis-je.- Et je suis toi! - la réponse a retenti.Le test a été un succès retentissant. Les composants existants s'adaptaient non seulement au bouclier, mais produisaient également un bruit de bruissement et une rétroaction authentiques, que j'ai réussi à oublier.La différence entre un mobile et un tel téléphone est que le premier n'a pas besoin de reproduire votre voix via le haut-parleur. Par conséquent, il vous semble que votre voix est plus silencieuse qu'elle ne l'est (puisque vous branchez l'oreille au haut-parleur), et vous criez davantage - comme si vous essayiez d'écouter de la musique avec un casque tout en parlant avec quelqu'un.Et sur l'ancien téléphone, vous pouvez entendre votre voix lorsque vous parlez, ce qui est bien, et cela ne vous oblige pas à crier après votre interlocuteur. C'est un effet agréable que nous avons perdu.Voici le teaser du produit final:Les sonneries sont fausses, mais c'est Hollywood.Étape 3: aller plus loin
Lorsque l'audio, la reconnaissance des numéros et le GSM ont fonctionné, il est temps de connecter le reste des commandes - un levier, un bouton et une étrange LED, un indicateur de téléchargement.Il est préférable de le faire par le biais d'événements. Arduino ne fonctionne pas comme ça parce que vous devez constamment demander: "Le bouton est-il enfoncé?" plusieurs milliers de fois par seconde, mais l'architecture des événements est facile à simuler en utilisant un peu de code.Je voulais décrocher le téléphone du levier pour répondre à l'appel si le téléphone sonnait, et remettre le téléphone sur le levier a interrompu l'appel en cours. Je voulais également que tous les signaux de commande soient ignorés lorsque le combiné était sur le levier.Ceci est facile à réaliser avec une machine d'état. Cela signifie qu'il existe une variable contenant l'état actuel du téléphone - seul, parler, sonner, composer, etc. Et si des événements se produisent (en appuyant sur le bouton), ils peuvent simplement vérifier l'état du téléphone et effectuer une action ou non.Les événements
Les événements peuvent être reconnus de la même manière que les nombres. Nous vérifierons si l'état du bouton change et ne commencerons l'événement que si nous détectons le changement (sinon nous déclencherions l'événement des milliers de fois lorsque nous demandions si le bouton était enfoncé et Arduino répondrait «oui» des milliers de fois par seconde).#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;
}
}
Ce bouton a deux états, à moitié enfoncé et complètement enfoncé (ou à moitié enfoncé et complètement enfoncé, si vous demandez au pessimiste). Le code définit les deux états et les autres événements sont traités de la même manière.Vous pouvez regarder le système fonctionner dans la vidéo suivante, où les composants sont dans le boîtier, mais il doit toujours être branché sur USB pour l'alimentation.La beauté!Étape 4: alimentation par batterie
Connecteur USB pour charger la batterieBien sûr, quel type de téléphone portable serait-il s'il n'était pas mobile? Ce ne serait pas un téléphone portable! Ainsi, les deux options pour transporter le téléphone sont une petite batterie de 5 volts et un circuit de charge USB, ou un câble très, très long. Comme le cuivre est plus cher que l'or aujourd'hui et que je n'ai pas d'argent, j'ai choisi la première option.Il a besoin de trois composants:- ( , ). , , , .
- , , – USB- «». USB-.
- ( ). , , . , , , Arduino 5, .
Régulateur et ensemble de chargeUne fois de plus, la batterie et le régulateur sont connectés à la charge. La charge a un port USB (et j'ai utilisé une rallonge pour l'acheminer vers l'endroit où se trouvait le câble téléphonique), qui sera utilisé pour la charge. Le régulateur va tout gâcher et donner la tension nécessaire aux composants nécessaires, de sorte que vous pouvez allumer et éteindre le téléphone pendant le fonctionnement, et la tension ne baissera pas.Vous pouvez également charger le téléphone inclus, ce qui est pratique. Je ne sais pas combien de temps dure la batterie, je ne l'ai pas utilisée pendant plus de quelques heures, mais peut-être que pendant quelques jours vous ne pourrez pas écrire à vos amis depuis votre téléphone (vous devez connecter une machine à écrire). J'essaierai de le tester un jour, mais pour l'instant je dirai simplement que la batterie dure des mois, et vous pouvez parler pendant des semaines, puis elle sera mieux vendue, ou au moins ramasser le montant requis sur un kickstarter.Étape 5: Il n'y a pas d'étape 5.
Les intérieurs sont assemblésEt le projet est terminé! Après avoir tiré les fils et poussé les objets dans des endroits auxquels ils n'étaient pas destinés, vous pouvez fermer le boîtier dans lequel tout va bien - sauf si vous le secouez.Vous pouvez comprendre approximativement l'emplacement des composants. Arduino est en haut à droite, sous c'est un bouclier (vous pouvez voir une antenne saillante), un câble d'alimentation USB bleu va au régulateur connecté à la batterie et au chargeur, qui va au connecteur de type mère en haut à gauche. Vous pouvez voir les câbles du microphone et du haut-parleur (du coin supérieur droit vers la gauche).Les circuits sur la carte de circuit imprimé marron ci-dessous sont les circuits d'origine du téléphone. Ils ne sont pas utilisés, mais il serait difficile de les retirer, et peut-être que le levier (un morceau de plastique transparent à gauche) ne fonctionnerait pas sans eux, ce qui serait inacceptable.Et maintenant, comme promis, la dernière publicité, dans toute sa beauté finale. Quel charme! Assurez-vous de l'envoyer à tous vos amis, même à ceux à qui vous n'avez pas parlé depuis longtemps. Quoi de plus important que de reparler avec de vieux amis grâce au projet fou d'Internet d'un mec de Grèce? Bien sûr, rien!Si cela vous égratigne directement pour créer votre propre téléphone mobile avec un numéroteur, et que vous envisagez d'écrire à partir de zéro, de passer des nuits blanches à faire de l'ingénierie inverse de mes morceaux de code, j'ai de bonnes nouvelles pour vous. J'ai publié tout le code en ligne parce que je suis une telle personne.github.com/skorokithakis/iRotaryDites-moi combien ce projet étonnant a changé votre vie dans les commentaires sur l'article original ou sur Twitter! Smack!