Table des matières:

HackerBox 0058 : Encoder : 7 étapes
HackerBox 0058 : Encoder : 7 étapes

Vidéo: HackerBox 0058 : Encoder : 7 étapes

Vidéo: HackerBox 0058 : Encoder : 7 étapes
Vidéo: #105 HackerBox 0058 ENCode 2024, Novembre
Anonim
HackerBox 0058: Encoder
HackerBox 0058: Encoder

Salutations aux HackerBox Hackers du monde entier ! Avec HackerBox 0058, nous explorerons l'encodage des informations, les codes-barres, les codes QR, la programmation de l'Arduino Pro Micro, les écrans LCD intégrés, l'intégration de la génération de codes-barres dans les projets Arduino, les exploits des périphériques d'entrée humains, etc.

HackerBoxes est le service de box d'abonnement mensuel pour les passionnés d'électronique et d'informatique - Hardware Hackers - The Dreamers of Dreams.

Il y a une mine d'informations pour les membres actuels et potentiels dans la FAQ HackerBoxes. Presque tous les e-mails d'assistance non techniques que nous recevons y sont déjà répondus, nous apprécions donc vraiment que vous preniez quelques minutes pour lire la FAQ.

Fournitures

Ce Instructable contient des informations pour démarrer avec HackerBox 0058. Le contenu complet de la boîte est répertorié sur la page du produit pour HackerBox 0058 où la boîte est également disponible à l'achat jusqu'à épuisement des stocks. Si vous souhaitez recevoir automatiquement une HackerBox comme celle-ci directement dans votre boîte aux lettres chaque mois avec un rabais de 15 $, vous pouvez vous inscrire sur HackerBoxes.com et rejoindre la révolution !

Un fer à souder, de la soudure et des outils de soudure de base sont généralement nécessaires pour travailler sur la HackerBox mensuelle. Un ordinateur pour exécuter les outils logiciels est également requis. Jetez un œil à l'atelier de démarrage HackerBox Deluxe pour un ensemble d'outils de base et un large éventail d'activités et d'expériences d'introduction.

Plus important encore, vous aurez besoin d'un sens de l'aventure, d'un esprit de hacker, de patience et de curiosité. Construire et expérimenter avec l'électronique, bien que très gratifiant, peut être délicat, stimulant et même parfois frustrant. Le but est le progrès, pas la perfection. Lorsque vous persistez et profitez de l'aventure, une grande satisfaction peut être tirée de ce passe-temps. Faites chaque pas lentement, faites attention aux détails et n'ayez pas peur de demander de l'aide

Étape 1: encodage

Codage
Codage

Communiquer, enregistrer ou manipuler des informations nécessite un codage. Étant donné que le traitement, le stockage et la communication d'informations sont l'essence même de l'électronique moderne, nous devons nous préoccuper de beaucoup d'encodage.

Comme exemple très simple d'encodage, on pourrait représenter combien d'yeux ou d'oreilles ils ont en levant deux doigts, ou en utilisant les chiffres "2" ou "][" ou en utilisant les mots "deux" ou "dos" ou " Euh" ou "zwei". Pas si simple en fait, non ? L'encodage utilisé dans le langage humain, en particulier concernant des sujets comme les émotions ou l'abstraction, peut devenir très complexe.

LA PHYSIQUE

Oui, tout commence toujours par la physique. Dans les systèmes électroniques, nous commençons par représenter les valeurs les plus simples par des signaux électriques, généralement des niveaux de tension. Par exemple, ZÉRO peut être représenté par la masse (environ 0 V) et UN par environ 5 V (ou 3,3 V, etc.) pour constituer un système binaire de zéros et de uns. Même avec seulement ZÉRO et UN, il y a souvent une ambiguïté à résoudre. Lorsque le bouton est enfoncé, est-ce ZÉRO ou UN ? Haut ou bas? Le signal de sélection de puce est-il "actif haut" ou "actif bas" ? A quelle heure un signal peut-il être lu et pendant combien de temps sera-t-il valide ? Dans les systèmes de communication, cela est appelé « codage de ligne ».

A ce niveau le plus bas, les représentations concernent en grande partie la physique du système. Quelles tensions peut-il supporter, à quelle vitesse peut-il passer, comment le laser est-il allumé et éteint, comment les signaux d'information modulent-ils une porteuse radiofréquence, quelle est la bande passante du canal, ou même comment les concentrations d'ions génèrent-elles des potentiels d'action dans un neurone. Pour l'électronique, cette information est souvent fournie dans les tableaux imposants de la fiche technique du constructeur.

La couche physique (PHY) ou couche 1 est la première et la plus basse couche du modèle OSI à sept couches des réseaux informatiques. La couche physique définit les moyens de transmettre des bits bruts sur une liaison de données physique reliant les nœuds du réseau. La couche physique fournit une interface électrique, mécanique et procédurale au support de transmission. Les formes et propriétés des connecteurs électriques, les fréquences sur lesquelles diffuser, le code de ligne à utiliser et les paramètres de bas niveau similaires, sont spécifiés par la couche physique.

NOMBRES

Nous ne pouvons pas faire grand-chose avec seulement UN et ZÉRO, ou nous aurions évolué pour « parler » en clignant des yeux les uns sur les autres. Les valeurs binaires sont un bon début cependant. Dans les systèmes informatiques et de communication, nous combinons des chiffres binaires (bits) en octets et "mots" contenant, par exemple, 8, 16, 32 ou 64 bits.

Comment ces mots binaires correspondent-ils à des nombres ou à des valeurs ? Dans un simple octet de 8 bits, 00000000 est généralement zéro et 11111111 est généralement 255 pour fournir 2 à 8 ou 256 valeurs différentes. Bien sûr, cela ne s'arrête pas là, car il y a bien plus de 256 nombres et tous les nombres ne sont pas des entiers positifs. Même avant les systèmes informatiques, nous représentions des valeurs numériques en utilisant différents systèmes de nombres, langages, bases et en utilisant des techniques telles que des nombres négatifs, des nombres imaginaires, une notation scientifique, des racines, des rapports et des échelles logarithmiques de différentes bases. Pour les valeurs numériques dans les systèmes informatiques, nous devons faire face à des problèmes tels que les représentations epsilon, endianité, virgule fixe et virgule flottante.

TEXTE(CETERA)

En plus de représenter des nombres ou des valeurs, les octets et les mots binaires peuvent représenter des lettres et d'autres symboles textuels. La forme la plus courante de codage de texte est l'American Standard Code for Information Interchange (ASCII). Bien entendu, divers types d'informations peuvent être encodées sous forme de texte: un livre, cette page Web, un document XML.

Dans certains cas, tels que les e-mails ou les publications Usenet, nous pouvons souhaiter coder des types d'informations plus larges (tels que des fichiers binaires généraux) sous forme de texte. Le processus de uuencoding est une forme courante de codage binaire en texte. Vous pouvez même « encoder » des images sous forme de texte: ASCII Art ou mieux encore ANSI Art.

THÉORIE DU CODAGE

La théorie du codage est l'étude des propriétés des codes et de leur aptitude respective à des applications spécifiques. Les codes sont utilisés pour la compression des données, la cryptographie, la détection et la correction des erreurs, la transmission et le stockage des données. Les codes sont étudiés par diverses disciplines scientifiques dans le but de concevoir des méthodes de transmission de données efficaces et fiables. Des exemples de disciplines comprennent la théorie de l'information, le génie électrique, les mathématiques, la linguistique et l'informatique.

COMPRESSION DES DONNÉES (suppression de la redondance)

La compression des données, le codage source ou la réduction du débit binaire est le processus de codage des informations en utilisant moins de bits que la représentation d'origine. Toute compression particulière est soit avec perte, soit sans perte. La compression sans perte réduit les bits en identifiant et en éliminant la redondance statistique. Aucune information n'est perdue dans la compression sans perte. La compression avec perte réduit les bits en supprimant les informations inutiles ou moins importantes.

Les méthodes de compression Lempel-Ziv (LZ) sont parmi les algorithmes les plus populaires pour le stockage sans perte. Au milieu des années 1980, à la suite des travaux de Terry Welch, l'algorithme de Lempel-Ziv-Welch (LZW) est rapidement devenu la méthode de choix pour la plupart des systèmes de compression à usage général. LZW est utilisé dans les images GIF, les programmes tels que PKZIP et les périphériques matériels tels que les modems.

Nous utilisons constamment des données compressées pour les DVD, le streaming vidéo MPEG, l'audio MP3, les graphiques JPEG, les fichiers ZIP, les boules de goudron compressées, etc.

DÉTECTION ET CORRECTION D'ERREURS (ajout de redondance utile)

La détection et la correction des erreurs ou le contrôle des erreurs sont des techniques qui permettent une livraison fiable de données numériques sur des canaux de communication non fiables. De nombreux canaux de communication sont sujets au bruit de canal, et ainsi des erreurs peuvent être introduites lors de la transmission de la source à un récepteur. La détection d'erreurs est la détection d'erreurs causées par le bruit ou d'autres dégradations lors de la transmission de l'émetteur au récepteur. La correction d'erreurs consiste à détecter les erreurs et à reconstruire les données d'origine sans erreur.

La détection d'erreur est plus simplement effectuée à l'aide de la répétition de transmission, des bits de parité, des sommes de contrôle ou des CRC ou des fonctions de hachage. Une erreur de transmission peut être détectée (mais généralement pas corrigée) par le récepteur qui peut alors demander la retransmission des données.

Les codes de correction d'erreurs (ECC) sont utilisés pour contrôler les erreurs de données sur des canaux de communication peu fiables ou bruyants. L'idée centrale est que l'expéditeur encode le message avec des informations redondantes sous la forme d'un ECC. La redondance permet au récepteur de détecter un nombre limité d'erreurs pouvant se produire n'importe où dans le message, et souvent de corriger ces erreurs sans retransmission. Un exemple simpliste d'ECC consiste à transmettre chaque bit de données 3 fois, ce qui est connu sous le nom de code de répétition (3, 1). Même si seuls 0, 0, 0 ou 1, 1, 1 sont transmis, les erreurs dans le canal bruyant peuvent présenter n'importe laquelle des huit valeurs possibles (trois bits) au récepteur. Cela permet à une erreur dans l'un des trois échantillons d'être corrigée par "vote majoritaire" ou "vote démocratique". La capacité de correction de cet ECC est donc de corriger 1 bit d'erreur dans chaque triplet transmis. Bien que simple à mettre en œuvre et largement utilisée, cette triple redondance modulaire est un ECC relativement inefficace. De meilleurs codes ECC examinent généralement les dernières dizaines ou même les dernières centaines de bits précédemment reçus pour déterminer comment décoder la petite poignée actuelle de bits.

Presque tous les codes à barres bidimensionnels tels que les codes QR, PDF-417, MaxiCode, Datamatrix et Aztec Code utilisent Reed-Solomon ECC pour permettre une lecture correcte même si une partie du code à barres est endommagée.

CRYPTOGRAPHIE

L'encodage cryptographique est conçu autour d'hypothèses de dureté de calcul. De tels algorithmes de codage sont intentionnellement difficiles à briser (dans un sens pratique) par n'importe quel adversaire. Il est théoriquement possible de casser un tel système, mais il est impossible de le faire par tout moyen pratique connu. Ces schémas sont donc qualifiés de sécurité informatique. Il existe des schémas de sécurité théorique de l'information qui ne peuvent pas être brisés même avec une puissance de calcul illimitée, comme le bloc à usage unique, mais ces schémas sont plus difficiles à utiliser en pratique que les meilleurs mécanismes théoriquement cassables mais sécurisés du point de vue informatique.

Le chiffrement traditionnel est basé sur un chiffrement de transposition, qui réorganise l'ordre des lettres dans un message (par exemple, « hello world » devient « ehlol owrdl » dans un schéma de réarrangement trivialement simple), et des chiffrements de substitution, qui remplacent systématiquement les lettres ou les groupes de lettres avec d'autres lettres ou groupes de lettres (par exemple, "voler à la fois" devient "gmz bu podf" en remplaçant chaque lettre par celle qui la suit dans l'alphabet latin). Des versions simples de l'un ou l'autre n'ont jamais offert beaucoup de confidentialité vis-à-vis d'opposants entreprenants. Un premier chiffrement de substitution était le chiffrement de César, dans lequel chaque lettre du texte en clair était remplacée par une lettre d'un nombre fixe de positions plus loin dans l'alphabet. ROT13 est un chiffrement de substitution de lettre simple qui remplace une lettre par la 13e lettre après elle, dans l'alphabet. C'est un cas particulier du chiffrement de César. Essayez-le ici !

Étape 2: Codes QR

Codes QR
Codes QR

Les codes QR (wikipedia) ou « codes à réponse rapide » sont un type de matrice ou de code-barres bidimensionnel conçu pour la première fois en 1994 pour l'industrie automobile au Japon. Un code-barres est une étiquette optique lisible par machine qui contient des informations sur l'article auquel elle est attachée. En pratique, les codes QR contiennent souvent des données pour un localisateur, un identifiant ou un tracker qui pointe vers un site Web ou une application. Un code QR utilise quatre modes de codage standardisés (numérique, alphanumérique, octet/binaire et kanji) pour stocker efficacement les données.

Le système Quick Response est devenu populaire en dehors de l'industrie automobile en raison de sa lisibilité rapide et de sa plus grande capacité de stockage par rapport aux codes-barres UPC standard. Les applications incluent le suivi des produits, l'identification des articles, le suivi du temps, la gestion des documents et le marketing général. Un code QR se compose de carrés noirs disposés dans une grille carrée sur un fond blanc, qui peuvent être lus par un appareil d'imagerie tel qu'une caméra, et traités à l'aide de la correction d'erreur Reed-Solomon jusqu'à ce que l'image puisse être interprétée de manière appropriée. Les données requises sont ensuite extraites des motifs présents dans les composantes horizontales et verticales de l'image.

Les smartphones modernes lisent généralement automatiquement les codes QR (et autres codes-barres). Ouvrez simplement l'application appareil photo, dirigez l'appareil photo sur le code-barres et attendez une seconde ou deux pour que l'application appareil photo indique qu'elle s'est verrouillée sur le code-barres. L'application affichera parfois le contenu du cône à barres instantanément, mais généralement, l'application nécessitera la sélection de la notification de code à barres pour afficher les informations extraites du code à barres. Au cours du mois de juin 2011, 14 millions d'utilisateurs mobiles américains ont scanné un QR code ou un code-barres.

Avez-vous utilisé votre smartphone pour lire les messages encodés à l'extérieur de la HackerBox 0058 ?

Vidéo intéressante: pouvez-vous intégrer un jeu entier dans un code QR ?

Les anciens se souviendront peut-être du Cauzin Softstrip des magazines informatiques des années 80. (démo vidéo)

Étape 3: Arduino Pro Micro 3.3V 8MHz

Arduino Pro Micro 3.3V 8MHz
Arduino Pro Micro 3.3V 8MHz

L'Arduino Pro Micro est basé sur le microcontrôleur ATmega32U4 qui possède une interface USB intégrée. Cela signifie qu'il n'y a pas de FTDI, PL2303, CH340 ou toute autre puce servant d'intermédiaire entre votre ordinateur et le microcontrôleur Arduino.

Nous vous suggérons de tester d'abord le Pro Micro sans souder les broches en place. Vous pouvez effectuer la configuration de base et les tests sans utiliser les broches d'en-tête. De plus, retarder la soudure au module donne une variable de moins à déboguer si vous rencontrez des complications.

Si l'IDE Arduino n'est pas installé sur votre ordinateur, commencez par télécharger le formulaire IDE arduino.cc. ATTENTION: Assurez-vous de sélectionner la version 3,3 V sous outils > processeur avant de programmer le Pro Micro. Avoir cet ensemble pour 5V fonctionnera une fois, puis l'appareil semblera ne jamais se connecter à votre PC jusqu'à ce que vous suiviez les instructions "Réinitialiser le chargeur de démarrage" dans le guide discuté ci-dessous, ce qui peut être un peu délicat.

Sparkfun a un excellent guide de connexion Pro Micro. Le guide de branchement contient un aperçu détaillé de la carte Pro Micro, puis une section pour « Installation: Windows » et une section pour « Installation: Mac et Linux. » Suivez les instructions de la version appropriée de ces instructions d'installation afin de configurer votre IDE Arduino pour prendre en charge le Pro Micro. Nous commençons généralement à travailler avec une carte Arduino en chargeant et/ou en modifiant le croquis Blink standard. Cependant, le Pro Micro n'inclut pas la LED habituelle sur la broche 13. Heureusement, nous pouvons contrôler les LED RX/TX. Sparkfun a fourni un petit croquis soigné pour montrer comment. C'est dans la section du Guide de connexion intitulée "Exemple 1: Blinkies !" Vérifiez que vous pouvez compiler et programmer ce Blinkies ! exemple sur le Pro Micro avant de continuer.

Une fois que tout semble fonctionner pour programmer le Pro Micro, il est temps de souder soigneusement les broches d'en-tête sur le module. Après la soudure, testez à nouveau soigneusement la carte.

Pour info: grâce à son émetteur-récepteur USB intégré, le Pro Micro peut facilement être utilisé pour émuler un périphérique d'interface humaine (HID) tel qu'un clavier ou une souris, et jouer avec l'injection de frappe.

Étape 4: Codes QR sur un écran LCD couleur

Codes QR sur écran LCD couleur
Codes QR sur écran LCD couleur

L'écran LCD dispose de 128 x 160 pixels couleur et mesure 1,8 pouce en diagonale. La puce de pilote ST7735S (fiche technique) peut être interfacée à partir de presque n'importe quel microcontrôleur à l'aide d'un bus d'interface périphérique série (SPI). L'interface est spécifiée pour la signalisation et l'alimentation 3,3 V.

Le module LCD peut être câblé directement au 3.3V Pro Micro à l'aide de 7 fils cavaliers FF:

LCD ----- Micro Pro

GND----GND VCC----VCC SCL----15 SDA----16 RES----9 DC-----8 CS-----10 BL----- Pas de connexion

Cette affectation de broches spécifique permet aux exemples de bibliothèque de fonctionner par défaut.

La bibliothèque appelée "Adafruit ST7735 et ST7789" peut être trouvée dans l'IDE Arduino en utilisant le menu Outils > Gérer les bibliothèques. Lors de l'installation, le gestionnaire de bibliothèque suggérera quelques bibliothèques dépendantes qui vont avec cette bibliothèque. Permettez-lui de les installer également.

Une fois cette bibliothèque installée, ouvrez Fichiers> Exemples> Bibliothèque Adafruit ST7735 et ST7789> graphicstest

Compilez et téléchargez le test graphique. Il générera une démonstration graphique sur l'écran LCD, mais avec quelques lignes et colonnes de "pixels bruyants" au bord de l'écran.

Ces "pixels bruyants" peuvent être corrigés en modifiant la fonction d'initialisation TFT utilisée près du sommet de la fonction de configuration (void).

Commentez la ligne de code:

tft.initR(INITR_BLACKTAB);

Et décommentez la ligne quelques lignes plus bas:

tft.initR(INITR_GREENTAB);

Reprogrammez la démo et tout devrait être beau.

Maintenant, nous pouvons utiliser l'écran LCD pour afficher les codes QR

Retour au menu Outils de l'IDE Arduino > Gérer les bibliothèques.

Localisez et installez la bibliothèque QRCode.

Téléchargez le croquis QR_TFT.ino joint ici.

Compilez et programmez QR_TFT dans le ProMicro et voyez si vous pouvez utiliser l'application appareil photo de votre téléphone pour lire le code QR généré sur l'écran LCD.

Quelques projets utilisant la génération de QR Code pour s'inspirer

Contrôle d'accès

Horloge QR

Étape 5: Câble plat flexible

Câble plat flexible
Câble plat flexible

Un câble plat flexible (FFC) est une variété de câble électrique à la fois plat et flexible, avec des conducteurs plats et solides. Un FFC est un câble formé à partir d'un circuit imprimé flexible (FPC) ou similaire à celui-ci. Les termes FPC et FFC sont parfois utilisés de manière interchangeable. Ces termes font généralement référence à un câble plat extrêmement fin que l'on trouve souvent dans les applications électroniques à haute densité telles que les ordinateurs portables et les téléphones portables. Il s'agit d'une forme miniaturisée de câble plat qui se compose généralement d'une base de film plastique plat et flexible, avec plusieurs conducteurs métalliques plats liés à une surface.

Les FFC sont disponibles dans une variété de pas de broches, 1,0 mm et 0,5 mm étant deux options courantes. La carte de dérivation FPC incluse a des traces pour ces deux emplacements, un de chaque côté du PCB. Un seul côté du PCB est utilisé en fonction du pas souhaité, 0,5 mm dans ce cas. Assurez-vous d'utiliser la numérotation des broches d'en-tête imprimée sur le même côté de 0,5 mm du PCB. La numérotation des broches sur le côté 1,0 mm ne correspond pas et est utilisée pour une application différente.

Les connecteurs FFC sur le breakout et le lecteur de codes-barres sont des connecteurs ZIF (force d'insertion nulle). Cela signifie que les connecteurs ZIF ont un curseur mécanique qui est ouvert avant que le FFC ne soit inséré, puis fermé pour serrer le connecteur sur le FFC sans mettre et forcer l'insertion sur le câble lui-même. Deux choses importantes à noter à propos de ces connecteurs ZIF:

1. Ils sont tous les deux des "contacts inférieurs", ce qui signifie que les contacts métalliques du FFC doivent être orientés vers le bas (vers le PCB) lorsqu'ils sont insérés.

2. Le curseur articulé sur l'évasion se trouve à l'avant du connecteur. Cela signifie que le FFC passera sous/à travers le curseur articulé. En revanche, le curseur articulé du lecteur de codes-barres se trouve à l'arrière du connecteur. Cela signifie que le FFC entrera dans le connecteur ZIF du côté opposé et non par le curseur articulé.

Gardez à l'esprit que d'autres types de connecteurs FFC/FPC ZIF ont des curseurs latéraux par opposition aux curseurs articulés que nous avons ici. Au lieu de s'articuler de haut en bas, les curseurs latéraux glissent dans le plan du connecteur. Regardez toujours attentivement avant d'utiliser pour la première fois un nouveau type de connecteur ZIF. Ils sont assez petits et peuvent être facilement endommagés s'ils sont forcés en dehors de leur amplitude ou plan de mouvement prévu.

Étape 6: Scanner de codes-barres

Scanner de code-barres
Scanner de code-barres

Une fois que le scanner de codes-barres et le module de dérivation FPC sont connectés par le câble plat flexible (FFC), cinq câbles de raccordement femelles peuvent être utilisés pour connecter le PCB de dérivation à l'Arduino Pro Micro:

FPC ---- Pro Micro

3------GND 2------VCC 12-----7 4------8 5------9

Une fois connecté, programmez le sketch barscandemo.ino dans le Pro Micro, ouvrez le moniteur série et scannez tout ! Il peut être surprenant de voir combien d'objets autour de nos maisons et bureaux portent des codes-barres. Vous pourriez même connaître quelqu'un avec un tatouage de code-barres.

Le manuel du lecteur de codes-barres ci-joint contient des codes qui peuvent être numérisés pour configurer le processeur intégré au lecteur.

Étape 7: pirater la planète

Pirater la planète
Pirater la planète

Nous espérons que vous appréciez l'aventure HackerBox de ce mois-ci dans l'électronique et la technologie informatique. Contactez-nous et partagez votre succès dans les commentaires ci-dessous ou sur d'autres réseaux sociaux. N'oubliez pas non plus que vous pouvez envoyer un e-mail à [email protected] à tout moment si vous avez une question ou avez besoin d'aide.

Et après? Rejoignez la révolution. Vivez la HackLife. Recevez chaque mois une glacière contenant du matériel piratable directement dans votre boîte aux lettres. Surfez sur HackerBoxes.com et souscrivez à votre abonnement mensuel à HackerBox.

Conseillé: