Lire une carte à bande magnétique avec un lecteur de carrés et un appareil Android (4 / 5 étapes)

Étape 4: décoder l’audio

Donc, maintenant nous avons un tas d’audio sur notre dispositif. Comment nous décoder ? J’ai basé mon code sur un Android tutoriel qui montre comment enregistrer des données et puis il lit. Dans mon cas, j’ai fait en sorte d’enregistrer que l’audio 16 bits PCM encoded. J’ai goûté à 44100hz. Sur Android (et d’ailleurs, je suppose) données PCM 16 bits signifie que chaque échantillon est une valeur signé 16 bits. Puisque nous nous préoccupons seulement la fréquence, nous avons seulement besoin de soin sur combien de temps il y a entre "passages à zéro". Un passage à zéro est lorsque le signal passe de positif à négatif ou vice versa. Un bit 0 sera représentée par l’espace entre 2 passages, et un 1 aura un passage supplémentaire à peu près la même période.
Données de la carte dans chaque piste commencent avec un nombre (variable) de 0, pour établir la fréquence de base. Ce que je faisais était écoutez pour le premier échantillon dépassant un certain seuil « calme », puis comptez le nombre d’échantillons entre les passages à zéro. Ce nombre devient la valeur de base pour un 0. Ces cartes étant glissée à la main, les fréquences réelles quelque peu changera dès le début de l’analyse à la fin. Alors, j’ai fait une méthode simple qui détermine si le nombre d’échantillons depuis le dernier passage à zéro est plus proche de la fréquence de base ou de deux fois la fréquence de base (la base moitié des échantillons). Il ajuste alors la fréquence de base prévue en conséquence. Cela fonctionne bien, tant que les changements entre les deux bits logiques sont assez faibles. Et ils seront presque certainement.

Pour détecter un passage à zéro, il faut regarder le signe de chaque échantillon et de le comparer au signe de l’exemple précédent.  S’ils diffèrent (une positive, une négative) puis le signal traverse 0 entre ces échantillons.

L’algorithme de base est de parcourir le tableau d’octets, extraction des échantillons.  Compter le nombre d’échantillons entre les passages à zéro et comparez le nombre le nombre prévu pour un 0 ou 1.

Bon, après quelques main-ondulation, nous avons maintenant une séquence binaire des données, que nous voulons faire demi-tour en ASCII. L’encodage plus courantes (et le seul que j’ai écrit un gestionnaire pour) encode chaque caractère comme un certain nombre de bits, plus un bit de parité. Dans le cas de la piste 2, c'est-à-dire 4 bits pour le personnage et 1 pour la parité, faire des groupes de 5 bits. Les morceaux sont lus dans moins significatif pour la plupart, avec le bit de parité dernière. Le bit de parité est placée pour faire le nombre de 1 dans le groupe impair. Dans mon implémentation, j’ai juste ignorer le bit de parité, mais il serait utile de déterminer si la lecture était bonne ou pas. En piste 1, c’est 6 bits pour le personnage, ainsi que la parité.
Le jeu de caractères des titres diffèrent trop, mais les deux sont des sous-ensembles d’ASCII avec un décalage. Dans le cas de la piste 2, qui n’encode certains symboles et des chiffres, le jeu de caractères commence à 48, qui est le code ASCII pour "0". Donc si nous obtenons 0,0,0,0,1 comme notre caractère, nous transformer qui en 0, ajouter 48 et obtenir 48. De même, 1,0,0,0,0 est 1. 1 + 48 = 49 = ASCII « 1 ».
Pour la voie 1, le jeu de caractères commence par "" (espace) qui est ASCII 32. Alors nous avons ajouter 32 à la valeur numérique décodée et obtenir notre caractère ASCII. Après cela, nous avons les données, donc tous que le reste est accrocher la colle de l’interface utilisateur.

Articles Liés

Décodeur de bande magnétique Arduino

Décodeur de bande magnétique Arduino

cette instructable montre comment utiliser un code disponible gratuitement, un arduino et un lecteur de piste magnétique standard pour analyser et afficher les données stockées sur les cartes à bande magnétique comme les cartes de crédit, student ID,
Retirer rapidement bandes magnétiques bobines

Retirer rapidement bandes magnétiques bobines

Nous avons eu quelques vieilles bobines de bande magnétique nous avions récupérés dans un studio d'enregistrement - les rouleaux étaient gentils et robuste, mais la bande magnétique était assez inutile pour nous. Ainsi, nous avons décidé de retirer l
En tirant la bande magnétique de papier-monnaie américain

En tirant la bande magnétique de papier-monnaie américain

mon grand-père m'a appris comment faire cela dans le temps il y a et j'ai compris parce que c'est le site qui est le dépositaire pour savoir comment toutes les connaissances de va-et-vient pourquoi ne pas ajouter mon propre truc bizarre.Étape 1: Loca
Faire une géocache magnétique boulon

Faire une géocache magnétique boulon

J'ai voulu faire une géocache magnétique sournoise pendant un certain temps maintenant, mais jusqu'à récemment, je ne savais pas comment je voulais le faire. J'ai été inspiré par cette instructable faire un conteneur sur un boulon. Mon idée était de
Pendule magnétique (avec capteur à effet hall)

Pendule magnétique (avec capteur à effet hall)

Construire cette simple Pendule magnétique avec très peu de composants. Capteur à effet Hall est utilisé pour détecter la présence du champ magnétiqueet de "pousser" le pendule au moment précis. Électro-aimant est "ON" pendant seulemen
Comment lire une carte arduino à l’aide de LabVIEW

Comment lire une carte arduino à l’aide de LabVIEW

Cette vidéo montre comment lire une carte Arduino à l'aide de LabVIEW. LabVIEW possède une excellente interface qui le rend facile à enregistrer des données provenant d'une carte Arduino. Un des défis plus importants lorsque vous utilisez une carte A
Faire une carte en plastique à voler avec une bande élastique

Faire une carte en plastique à voler avec une bande élastique

c'est mon premier instructable. Dedans je vais vous enseigner ce que j'ai foud comment faire un jour avec un élastique et une carte en plastique. Il va vous apprendre comment faire un plastique volée de carte assez détroit.AVERTISSEMENT : Ceci a un c
Comment lire une carte topographique

Comment lire une carte topographique

avant de vous aventurez dans le désert, planifiez les moyens pour un retour en toute sécurité. À moins que vous avez sincèrement l'intention de revenir à la nature pour une longue période de temps alors vous devrez peut-être des compétences de naviga
Lévitation magnétique avec k ' NEX !

Lévitation magnétique avec k ' NEX !

Salut! Il s'agit de mon deuxième Instructable et ici je joue avec des aimants et K'nex. J'ai combiné les deux pour faire une plate-forme de lévitation de K'nex ! Répulsion magnétique est une bonne chose.AVERTISSEMENT : l'auteur de ce Instructable n'e
Cloner une carte de crédit avec une Cassette

Cloner une carte de crédit avec une Cassette

Vous avez jamais besoin de 2 cartes de crédit ? Jamais souhaité que vous pouvez juste remettre votre carte à un étranger, donc ils pourraient acheter un repas ? Voulez-vous une carte de sauvegarde car votre parano juste que vous perdrez il ? Il y a p
Échecs de mur magnétique, avec conseil personnalisé

Échecs de mur magnétique, avec conseil personnalisé

l'idée derrière cette instructable reposait entièrement autour de mon manque d'espace.Je voulais être capable de jouer aux échecs, en personne et sur longue distance. le dernier exigeant un ensemble de mettre la plupart du temps.Comme je n'ai pas la
Émulateur de bande magnétique Arduino

Émulateur de bande magnétique Arduino

il s'agit d'un émulateur simple piste magnétique.  Fondamentalement, vous pouvez coller ceci dans un lecteur de cartes magnétiques et émuler n'importe quelles données de bande que vous tiens.Étape 1: pièces Mince morceau de métal ferreux (environ 1 "
BRACELET magnétique avec du ruban adhésif

BRACELET magnétique avec du ruban adhésif

matériaux et connaître les matériauxPour cela instructable nous devons :-Aimants en néodyme-Quelques pièces magnétiques comme les rondelles ou une plaque de métal-Une chaîne ou un câble à mesurer le périmètre du poignet- Et du ruban adhésif (logique)
Comment faire des feux de vélo magnétique avec sugru + aimants

Comment faire des feux de vélo magnétique avec sugru + aimants

Feux de vélo peut être frustrant et lent à attacher et enlever, surtout par mauvais temps avec des gants ! En ajoutant des aimants pour vos lumières et votre vélo, vous serez en mesure de casser vos lumières sur et en dehors avec vos gants et dans un