Axée sur l’Arduino Blue Box (téléphone Phreaking) (3 / 9 étapes)

Étape 3: Code pour 1 schématique

Programmation

Le code pour ce nouveau schéma dans son intégralité se trouve ici sur mon profil pastebin.com. Pour des raisons de ce tutoriel, nous allons couvrir la plupart des concepts-clés de la syntaxe que j’ai utilisé. Tout d’abord l’Arduino utilise un langage de programmation qui est orientée vers l’objet ; C++. Cette langue est assez puissante et alimente beaucoup de logique de site web modernes, micro-contrôleurs et bien plus encore !

Clavier

Tout d’abord, nous créons deux dimension tableau d’entiers que nous utilisons pour contenir les fréquences tel que spécifié par les chiffres de la page de Wikipedia Blue Box. Nous avons aussi mis une durée comme un tableau d’entiers non signés de typedef. Ces entiers sont lecture des périodes de durée.

Ensuite, nous créons une matrice en tableau de clés en tant que caractères. Ces caractères seront utilisés chaque fois que vous appuyez sur une touche du clavier. Nous avons mis aussi les lignes et les broches des tableaux d’entiers.

Ensuite, nous créons un objet clavier et un simple tableau de ton objets. Puisque nous jouons tons sur deux tiges en même temps, c’est tout simplifie nos vies plus simple lors de l’écriture et débogage du code.

Lire des boutons et jouer des tonalités

Dans la fonction setup() , nous devons définir les broches freq [0] et freq [1] pour la sortie. C’est simple. Aussi, nous avons mis le "mode pin» pour le bouton de 2600 et définir un écouteur d’événements, qui est un appel de fonction personnalisée procButton() traitement de bouton. Il s’agit de programmation événementielle. Cela signifie essentiellement que nous "écouter" pour les touches à presser, qui serait un "événement". La fonction principale loop() est ce qui gère les événements et les auditeurs pour nous.

Nous avons gardé notre méthode principale loop() simple, qui est bien car il est constamment appelé. La première ligne,

Fondamentalement, appelle la méthode getKey() de l’objet de clavier pour voir si et de quelle touche a été enfoncée. Le code,

tout simplement Ecoutes pour la tension sur la broche 10 et s’il le trouve, fois le 2600 hz fréquence en appelant la fonction super() signalisation surveillance personnalisée. Il s’agit de la toute première fonction définie juste en dessous de la fonction loop() . C’est également la première fonction à appeler la fréquence unique personnalisée, jouant la fonction sf() ,

Les arguments que nous passons à cette fonction sont la fréquence à jouer et la durée. Après lexicalement, affecte la fréquence et la durée à variables entières du même nom, la fonction personnalisée sf() n’appelle une méthode de lecture seule sur une seule broche

Il s’agit de notre premier aperçu de la méthode de lecture de la synthèse de ton de la bibliothèque de ton. Donc, si vous pouvez imaginer jouer deux tonalités, multifréquence bitonale devrait ressembler, mais avec deux broches, aussi,

Et c’est exactement ce que la fonction de mf() jeu personnalisé multifréquences.

Alors, comment traitons-nous chaque pression de touche dans la fonction procButton() ? À l’aide d’une logique d’affaire-interrupteur. Les constantes "libéré," "PRESSED," et "HOLD" (pas "HELD" pour une raison étrange), font partie de la bibliothèque de clavier et nous pouvons utiliser le dans un bloc de cas-commutateur logique comme,

Et c’est exactement ce que nous faisons. Étant donné que la fonction procButton() est un gestionnaire d’événements appelé par la fonction loop() , nous obtenons un objet de keypadevent passé à son gestionnaire procButton(). Cet objet peut être considéré comme un simple caractère - et nous faisons cela par simple soustraction l’entier 48 d’elle pour obtenir quelle touche a été enfoncée entre 0 et 9.

Maintenant, nous savons quelle touche a été enfoncée et passez-la à la fonction mf() qui utilise le tableau multidimensionnel bb [] que nous avons créé précédemment pour jouer les tonalités mf. Vous avez peut-être remarqué que le KP (*) et ST (#) ne sont pas 0-9. Cela est correct, comme ils viennent à travers et après la soustraction sont respectivement de -13 et -6. La fonction de mf() puis gère ces derniers comme,

Alors joue les tons qu’ils sont affectés dans le tableau multidimensionnel [bb] .

Nous ont maintenant couvert tous les concepts clés par programme avec ce schéma (1), passons le second schéma et comment nous pouvons jouer des fichiers WAV qui offrent un son complètement différent à nos boîtes bleues.

Fonctionnalités supplémentaires

Copiez le code suivant fournit une quantité massive de fonctionnalités supplémentaires, y compris l’enregistrement des chiffres en et tableau pour la lecture et les modes de fonctionnement différents. Le code est très franche Arduino C++. Appuyez longuement sur "A" pour faire défiler les différents modes. Chaque fois que nous changer de mode, que la fonction notifyMode() flashe sur un code de 440 hz bips pour nous faire savoir quel mode nous utilisons actuellement. Tous les modes sont décrits intégralement sur mon blog ici ou sur la page de Wikipedia pour les spécifications de la boîte bleue.

Articles Liés

Arduino 12-mode Blue Box - Introduction

Arduino 12-mode Blue Box - Introduction

MISE À JOUR DU FIRMWARE ! -10/2/2015 - voir dernière étape pour plus de détailsPrésenté ici est axée sur un Arduino « Boîte bleue ». Il produit la boîte bleue « traditionnelle » tonalité de 2600 Hz et tonalités MF (multi-frequency), mais il fait bien
Modern blue box avec un PIC 12F683

Modern blue box avec un PIC 12F683

une zone bleue est un dispositif électronique qui reproduit les sons qui ont été utilisés pour passer des appels téléphoniques interurbains. Ils vous ont permis d'acheminer vos propres appels et contourner le téléphone normal de commutation et de fac
3D Printable Arduino Protection Box

3D Printable Arduino Protection Box

Yo,Nouvelle plaque version R3 et boîte téléchargées !  Y compris un bouclier Ethernet R3 top case Ajout !J'ai été appuyé sur plusieurs générations d'Arduino Uno et nécessaire une plaque sécurisé et combo box qui pourrait protéger les actifs au cours
Utilisez vos capteurs de Téléphone android sur l’arduino !

Utilisez vos capteurs de Téléphone android sur l’arduino !

Bonjour, ceci est mon tout premier étape par étape instructable et aujourd'hui, nous allons apprendre comment les capteurs dans votre smartphone android peuvent communiquer avec votre arduino.Dans les smartphones modernes, il y a beaucoup de capteurs
Animation sur un Arduino et K.K. Bossa chanson

Animation sur un Arduino et K.K. Bossa chanson

Que fait-elle ?Joue la chanson K.K. Bossa de Animal Crossing et une animation à l'aide d'un Arduino Uno, un piezo et un 16 X 2 LCD.L'animation est basée sur des Animal Crossing New Leaf.Le top vidéo est avec les villageois masculins et bas vidéo avec
Une horloge de QR-code axée sur l’arduino

Une horloge de QR-code axée sur l’arduino

J'ai eu cette idée pendant un certain temps, mais j'ai jamais eu la chance de l'essayer. Vendredi, un collègue m'a donné un écran LCD pour Arduino, et j'ai pensé que c'était le bon moment pour construire une horloge qui communiquent à la fois par le
Bateau pilote automatique - basée sur l’Arduino

Bateau pilote automatique - basée sur l’Arduino

Voici comment construire un pilote automatique qui peut diriger un RC bateau à waypoints ! Il est facile à construire, basé sur la populaire plate-forme Arduino et idéal pour les amateurs qui veulent certaine pratique soudure ! Avec ce pilote automat
Chronométrage sur ESP8266 & arduino uno sans un RTC (Real Time CLock) ?

Chronométrage sur ESP8266 & arduino uno sans un RTC (Real Time CLock) ?

Comme le titre l'indique, j'ai testé le suivi des temps sur mon arduino uno et l'ESP8266 / conseils Wemos D1 (programmés avec arduino) sans l'utilisation de bibliothèques, internet ou une unité de CCF. Beaucoup de grands instructables ici sur le site
Tachymètre optique axée sur l’Arduino

Tachymètre optique axée sur l’Arduino

plus de dix ans, j'ai mis en place une page web avec des instructions détaillées sur la construction d'un moteur électrique simple basé sur l'un de monde télévisé de le Beakman. Je l'ai appelé la page "moteur électrique de Beakman" et au fil des
CONDUIT comme lightsensor sur l’arduino

CONDUIT comme lightsensor sur l’arduino

je vous écris cette instructable comme une réponse à certaines des questions de Paolo.[J'ai fait quelques expériences plus sur ce sujet dans ce : Ible]Il n'est pas difficile à utiliser une une LED comme un capteur sur l'Arduino. Il suffit de mettre u
Suivre votre voiture avec un Lojack axée sur l’Arduino

Suivre votre voiture avec un Lojack axée sur l’Arduino

Vol de voiture est un frein réel ! Augmentez vos chances de récupérer votre voiture en installant ce tracker simple axée sur l'Arduino dans votre voiture.Ce projet est assez simple et serait un bon projet pour un nouveau programmeur Arduino vous cher
Présentation Climaduino - Thermostat axée sur l’Arduino vous contrôler depuis votre téléphone !

Présentation Climaduino - Thermostat axée sur l’Arduino vous contrôler depuis votre téléphone !

Mise à jour :Il y a une nouvelle version de la Climaduino et le contrôleur Climaduino avec des changements très importants.Prend en charge plusieurs zonesUtilise la Arduino YúnFonctionne avec a/c centraleCommunique à l'aide du protocole MQTT (peut in
Plusieurs LED clignotant sur l’Arduino

Plusieurs LED clignotant sur l’Arduino

dans ce tutoriel, je vais vous montrer comment faire plusieurs LEDs clignotent avec Arduino.  Vous aurez besoin de trois LEDs, fils de raccordement, maquette et Arduino.Étape 1: Programmer l'Arduino Maintenant vous devez coller le code suivant dans l
Programmer une Simple mélodie sur un Arduino Uno

Programmer une Simple mélodie sur un Arduino Uno

Cette instructable va vous montrer une façon super simple de programmer votre Arduino Uno à jouer une mélodie midi simple (dans ce cas "You Are My Sunshine"). J'ai utilisé quelques éléments dans mon Arduino Starter Kit, un Chromebook et le libre