Taula de continguts:
- Subministraments
- Pas 1: codificació
- Pas 2: codis QR
- Pas 3: Arduino Pro Micro 3,3 V 8 MHz
- Pas 4: codis QR a la pantalla LCD a tot color
- Pas 5: cable pla flexible
- Pas 6: escàner de codis de barres
- Pas 7: piratejar el planeta
Vídeo: HackerBox 0058: Codificació: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
Salutacions als hackers de HackerBox de tot el món! Amb HackerBox 0058 explorarem la codificació d’informació, codis de barres, codis QR, la programació d’Arduino Pro Micro, pantalles LCD incrustades, la integració de la generació de codis de barres dins dels projectes Arduino, les explotacions de dispositius d’entrada humana i molt més.
HackerBoxes és el servei de caixa de subscripció mensual per als entusiastes de l'electrònica i la tecnologia informàtica - Hardware Hackers - The Dreamers of Dreams.
A les preguntes freqüents sobre HackerBoxes hi ha una gran quantitat d’informació per a membres actuals i potencials. Gairebé tots els correus electrònics d’assistència no tècnica que rebem ja s’hi responen, així que agraïm molt que dediqueu uns minuts a llegir les PMF.
Subministraments
Aquest document instructiu conté informació per començar a utilitzar HackerBox 0058. El contingut complet de la caixa apareix a la pàgina del producte de HackerBox 0058, on la caixa també està disponible per a la compra fins que esgotin les existències. Si voleu rebre automàticament una HackerBox com aquesta a la vostra bústia de correu cada mes amb un descompte de 15 $, us podeu subscriure a HackerBoxes.com i unir-vos a la revolució.
Generalment, es necessita un soldador, soldadura i eines bàsiques per treballar a la HackerBox mensual. També cal un equip per executar eines de programari. Mireu el HackerBox Deluxe Starter Workshop per obtenir un conjunt d’eines bàsiques i una àmplia gamma d’activitats introductòries i experiments.
El més important és que necessiteu un sentiment d’aventura, esperit de pirata informàtic, paciència i curiositat. Construir i experimentar amb electrònica, tot i que és molt gratificant, pot ser complicat, desafiant i fins i tot frustrant de vegades. L’objectiu és el progrés, no la perfecció. Quan persisteix i gaudeix de l'aventura, d'aquesta afició es pot obtenir una gran satisfacció. Feu cada pas lentament, tingueu en compte els detalls i no tingueu por de demanar ajuda
Pas 1: codificació
Comunicar, gravar o manipular informació requereix codificació. Atès que el processament, l’emmagatzematge i la comunicació d’informació són l’essència de l’electrònica moderna, tenim molta codificació per preocupar-nos.
Com a exemple molt senzill de codificació, es pot representar quants ulls o orelles tenen aixecant dos dits o fent servir els números "2" o "] [" o amb les paraules "dos" o "dos" o " Er "o" zwei ". En realitat no és tan senzill, oi? La codificació que s’utilitza en el llenguatge humà, especialment en temes com les emocions o l’abstracció, pot esdevenir molt complexa.
FÍSICA
Sí, tot sempre comença per la física. En els sistemes electrònics, comencem representant el més simple dels valors mitjançant senyals elèctrics, normalment nivells de tensió. Per exemple, ZERO es pot representar com a terra (aproximadament 0V) i ONE com aproximadament 5V (o 3,3V, etc.) per formar un sistema binari de zeros i uns. Fins i tot només amb ZERO i ONE, sovint hi ha ambigüitats per resoldre. Quan es prem el botó, és ZERO o ONE? ALTA o BAIXA? El senyal de selecció de xip és "actiu alt" o "actiu baix"? A quina hora es pot llegir un senyal i durant quant de temps serà vàlid? Als sistemes de comunicació, això es coneix com a "codificació de línia".
En aquest nivell més baix, les representacions es refereixen en gran mesura a la física del sistema. Quines tensions pot suportar, quina velocitat pot fer la transició, com s’activa i apaga el làser, com modulen els senyals d’informació una portadora de radiofreqüència, quin és l’amplada de banda del canal o, fins i tot, com les concentracions d’ions generen potencials d’acció en un neurona. Per a l'electrònica, aquesta informació es proporciona sovint a les imposants taules del full de dades del fabricant.
La capa física (PHY) o capa 1 és la primera i la més baixa del model OSI de set capes de xarxes informàtiques. La capa física defineix els mitjans de transmissió de bits en brut a través d’un enllaç de dades físic que connecta nodes de xarxa. La capa física proporciona una interfície elèctrica, mecànica i procedimental al mitjà de transmissió. La forma física i les propietats dels connectors elèctrics, les freqüències a emetre, el codi de línia a utilitzar i paràmetres similars de baix nivell.
NOMBRES
No podem fer moltes coses només amb UN i ZERO, o hauríem evolucionat per "parlar" parpellejant els ulls. Els valors binaris són un bon començament. En sistemes informàtics i de comunicació, combinem dígits binaris (bits) en bytes i "paraules" que contenen, per exemple, 8, 16, 32 o 64 bits.
Com corresponen aquestes paraules binàries a nombres o valors? En un simple byte de 8 bits, 00000000 sol ser zero i 11111111 és generalment 255 per proporcionar 2 a 8 o 256 valors diferents. Per descomptat, no s’atura aquí, perquè hi ha molt més de 256 nombres i no tots els nombres són nombres enters positius. Fins i tot abans dels sistemes informàtics, representàvem valors numèrics utilitzant diferents sistemes numèrics, llenguatges, bases i emprant tècniques com ara nombres negatius, nombres imaginaris, notació científica, arrels, relacions i escales logarítmiques de diverses bases diferents. Per als valors numèrics dels sistemes informàtics, hem de lluitar amb qüestions com la representació de la màquina, l’endianisme, el punt fix i les representacions de coma flotant.
TEXT (CETERA)
A més de representar nombres o valors, els bytes i les paraules binàries poden representar lletres i altres símbols de text. La forma més comuna de codificació de text és el codi estàndard americà d’intercanvi d’informació (ASCII). Per descomptat, es poden codificar diversos tipus d'informació com a text: un llibre, aquesta pàgina web, un document XML.
En alguns casos, com ara missatges de correu electrònic o Usenet, és possible que vulguem codificar tipus d’informació més àmplia (com ara fitxers binaris generals) com a text. El procés de codificació automàtica és una forma comuna de codificació binària a text. Fins i tot podeu "codificar" imatges com a text: ASCII Art o millor encara ANSI Art.
TEORIA DE LA CODIFICACIÓ
La teoria de codificació és l’estudi de les propietats dels codis i de la seva respectiva idoneïtat per a aplicacions específiques. Els codis s’utilitzen per a la compressió de dades, la criptografia, la detecció i correcció d’errors, la transmissió de dades i l’emmagatzematge de dades. Els codis són estudiats per diverses disciplines científiques amb el propòsit de dissenyar mètodes de transmissió de dades eficients i fiables. Exemples de disciplines inclouen teoria de la informació, enginyeria elèctrica, matemàtiques, lingüística i informàtica.
COMPRESSIÓ DE DADES (eliminació de la redundància)
La compressió de dades, la codificació de fonts o la reducció de la taxa de bits és el procés de codificació de la informació utilitzant menys bits que la representació original. Qualsevol compressió en particular és amb pèrdues o sense pèrdues. La compressió sense pèrdues redueix els bits identificant i eliminant la redundància estadística. No es perd cap informació en compressió sense pèrdues. La compressió amb pèrdues redueix els bits eliminant informació innecessària o menys important.
Els mètodes de compressió Lempel – Ziv (LZ) es troben entre els algorismes més populars per a l’emmagatzematge sense pèrdues. A mitjan anys vuitanta, després del treball de Terry Welch, l'algorisme Lempel – Ziv – Welch (LZW) es va convertir ràpidament en el mètode escollit per a la majoria de sistemes de compressió d'ús general. LZW s’utilitza en imatges GIF, programes com PKZIP i dispositius de maquinari com ara mòdems.
Utilitzem constantment dades comprimides per a DVD, transmissió de vídeo MPEG, àudio MP3, gràfics JPEG, fitxers ZIP, boles de tar comprimides, etc.
DETECCIÓ I CORRECCIÓ D'ERRORS (afegint una redundància útil)
La detecció i correcció d’errors o el control d’errors són tècniques que permeten l’enviament fiable de dades digitals a través de canals de comunicació poc fiables. Molts canals de comunicació estan sotmesos al soroll del canal i, per tant, es poden introduir errors durant la transmissió des de la font cap al receptor. La detecció d’errors és la detecció d’errors causats per sorolls o altres alteracions durant la transmissió des del transmissor al receptor. La correcció d’errors és la detecció d’errors i la reconstrucció de les dades originals sense errors.
La detecció d'errors es realitza simplement utilitzant la repetició de transmissió, bits de paritat, checksums o CRC o funcions de hash. El receptor pot detectar (però no corregir-lo) un error en la transmissió, que pot sol·licitar la retransmissió de les dades.
Els codis de correcció d’errors (ECC) s’utilitzen per controlar els errors de dades a través de canals de comunicació no fiables o sorollosos. La idea central és que el remitent codifica el missatge amb informació redundant en forma d’ECC. La redundància permet al receptor detectar un nombre limitat d’errors que es poden produir a qualsevol lloc del missatge i, sovint, corregir aquests errors sense retransmissió. Un exemple simplista d’ECC és transmetre cada bit de dades 3 vegades, que es coneix com a codi de repetició (3, 1). Tot i que només es transmeten 0, 0, 0 o 1, 1, 1, els errors del canal sorollós poden presentar al receptor qualsevol dels vuit valors possibles (tres bits). Això permet corregir un error en qualsevol de les tres mostres mitjançant un "vot majoritari" o "vot democràtic". La capacitat de correcció d’aquest ECC és, doncs, la correcció d’un bit d’error en cada tripleta transmesa. Tot i que és senzill d’implementar i s’utilitza àmpliament, aquesta triple redundància modular és un ECC relativament ineficient. Els codis ECC millors solen examinar els darrers desenes o fins i tot els darrers centenars de bits rebuts anteriorment per determinar com descodificar el petit grapat de bits actual.
Gairebé tots els codis de barres bidimensionals, com ara codis QR, PDF-417, MaxiCode, Datamatrix i Aztec Code, utilitzen Reed – Solomon ECC per permetre la lectura correcta fins i tot si una part del codi de barres està danyada.
CRIPTOGRAFIA
La codificació criptogràfica està dissenyada al voltant de suposicions de duresa computacional. Aquests algoritmes de codificació són intencionadament difícils de trencar (en un sentit pràctic) per qualsevol adversari. Teòricament és possible trencar aquest sistema, però és inviable fer-ho per qualsevol mitjà pràctic conegut. Per tant, aquests esquemes s’anomenen segurs computacionalment. Existeixen esquemes teòricament segurs de la informació que probablement no es poden trencar ni amb una potència de càlcul il·limitada, com el bloc de comandaments únic, però aquests esquemes són més difícils d’utilitzar a la pràctica que els millors mecanismes teòricament trencables però computacionalment segurs.
El xifratge tradicional de xifratge es basa en un xifratge de transposició, que reordena l'ordre de les lletres d'un missatge (per exemple, "hola món" es converteix en "ehlol owrdl" en un esquema de reordenació senzillament senzill), i en xifrats de substitució, que substitueixen sistemàticament lletres o grups de les lletres amb altres lletres o grups de lletres (per exemple, "volar alhora" es converteix en "gmz bu podf" substituint cada lletra per la que la segueix a l'alfabet llatí). Les versions simples de cap dels dos mai han ofert molta confidencialitat per part dels opositors emprenedors. Un xifratge de substitució primerenca va ser el xifratge de Cèsar, en el qual cada lletra del text pla era substituïda per una lletra amb un nombre fix de posicions més avall de l'alfabet. ROT13 és un xifratge senzill de substitució de lletres que substitueix una lletra per la 13a lletra posterior, en alfabet. És un cas especial del xifratge Cèsar. Prova-ho aquí!
Pas 2: codis QR
Els codis QR (wikipedia) o "Codis de resposta ràpida" són un tipus de matriu o codi de barres bidimensionals dissenyat per primera vegada el 1994 per a la indústria de l'automòbil al Japó. Un codi de barres és una etiqueta òptica llegible per màquina que conté informació sobre l’element al qual està connectat. A la pràctica, els codis QR solen contenir dades d’un localitzador, identificador o rastrejador que apunta a un lloc web o aplicació. Un codi QR utilitza quatre modes de codificació estandarditzats (numèric, alfanumèric, byte / binari i kanji) per emmagatzemar dades de manera eficient.
El sistema de resposta ràpida es va popularitzar fora de la indústria de l’automòbil a causa de la seva llegibilitat ràpida i una major capacitat d’emmagatzematge en comparació amb els codis de barres UPC estàndard. Les aplicacions inclouen el seguiment de productes, identificació d’elements, seguiment de temps, gestió de documents i màrqueting general. Un codi QR consisteix en quadrats negres disposats en una quadrícula quadrada sobre un fons blanc, que pot ser llegit per un dispositiu d’imatge com una càmera, i processat mitjançant la correcció d’errors Reed – Solomon fins que la imatge es pugui interpretar adequadament. Les dades necessàries s’extreuen de patrons que es troben presents tant en components horitzontals com verticals de la imatge.
Els telèfons intel·ligents moderns solen llegir automàticament els codis QR (i altres codis de barres). Simplement obriu l'aplicació de la càmera, dirigiu la càmera cap al codi de barres i espereu un o dos segons perquè l'aplicació de la càmera indiqui que s'ha bloquejat al codi de barres. De vegades, l’aplicació mostrarà el contingut de les barres de barres a l’instant, però normalment l’aplicació requereix la selecció de la notificació de codi de barres per mostrar tota la informació que s’hagi extret del codi de barres. Durant el mes de juny de 2011, 14 milions d’usuaris mòbils nord-americans van escanejar un codi QR o un codi de barres.
Heu utilitzat el telèfon intel·ligent per llegir els missatges codificats a l'exterior de HackerBox 0058?
Vídeo interessant: podeu encabir tot un joc en un codi QR?
Els ancians poden recordar el Cauzin Softstrip de revistes informàtiques dels anys 80. (demostració de vídeo)
Pas 3: Arduino Pro Micro 3,3 V 8 MHz
L'Arduino Pro Micro es basa en el microcontrolador ATmega32U4 que té una interfície USB integrada. Això significa que no hi ha cap FTDI, PL2303, CH340 o cap altre xip que actuï com a intermediari entre l'ordinador i el microcontrolador Arduino.
Suggerim primer provar el Pro Micro sense soldar els passadors al seu lloc. Podeu realitzar la configuració i les proves bàsiques sense utilitzar els pins de capçalera. A més, retardar la soldadura al mòdul proporciona una variable menys per depurar si teniu cap complicació.
Si no teniu l’IDE Arduino instal·lat a l’ordinador, comenceu descarregant el formulari IDE arduino.cc. ADVERTÈNCIA: assegureu-vos de seleccionar la versió de 3,3 V a eines> processador abans de programar el Pro Micro. Tenir aquest paràmetre per a 5V funcionarà una vegada i, aleshores, el dispositiu no es connectarà mai al vostre PC fins que no seguiu les instruccions "Restableix al carregador d'arrencada" de la guia que es descriu a continuació, cosa que pot resultar una mica complicat.
Sparkfun té una bona guia de connexió Pro Micro. La Guia de connexió conté una descripció detallada de la placa Pro Micro i, a continuació, una secció per a "Instal·lació: Windows" i una secció per a "Instal·lació: Mac i Linux". Seguiu les instruccions de la versió adequada d'aquestes instruccions d'instal·lació per tal de configurar el vostre ID Arduino perquè admeti el Pro Micro. Normalment comencem a treballar amb una placa Arduino carregant i / o modificant l’esbós estàndard de Blink. Tot i això, el Pro Micro no inclou el LED habitual al pin 13. Per sort, podem controlar els LED RX / TX. Sparkfun ha proporcionat un petit esbós per demostrar com fer-ho. Això es troba a la secció de la Guia de connexió titulada "Exemple 1: parpelleigs". Verifiqueu que podeu compilar i programar aquest Blinkies. exemple al Pro Micro abans d’avançar.
Un cop tot sembla funcionar per programar el Pro Micro, és hora de soldar acuradament els passadors de capçalera al mòdul. Després de soldar, torneu a provar el tauler amb cura.
FYI: gràcies al seu transceptor USB integrat, el Pro Micro es pot utilitzar fàcilment per emular un dispositiu d’interfície humana (HID), com ara un teclat o un ratolí, i jugar amb la injecció de tecles.
Pas 4: codis QR a la pantalla LCD a tot color
La pantalla LCD inclou píxels a tot color de 128 x 160 i mesura 1,8 polzades a la diagonal. El xip de controlador ST7735S (full de dades) es pot connectar a la interfície des de gairebé qualsevol microcontrolador mitjançant un bus d’interfície sèrie perifèrica (SPI). La interfície s'especifica per a la senyalització i l'alimentació de 3,3V.
El mòdul LCD es pot connectar directament al 3.3V Pro Micro mitjançant 7 cables de pont FF:
LCD ---- Pro Micro
GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- Sense connexió
Aquesta assignació específica de pins permet que els exemples de biblioteca funcionin per defecte.
La biblioteca anomenada "Adafruit ST7735 i ST7789" es pot trobar a l'IDE Arduino mitjançant el menú Eines> Gestiona les biblioteques. Mentre s’instal·la, el gestor de biblioteques us suggerirà algunes biblioteques dependents que s’acompanyin d’aquesta biblioteca. Permeteu-li instal·lar-los també.
Un cop instal·lada aquesta biblioteca, obriu Fitxers> Exemples> Biblioteca Adafruit ST7735 i ST7789> graphicstest
Compileu i pengeu graphicstest. Generarà una demostració de gràfics a la pantalla LCD, però amb algunes files i columnes de "píxels sorollosos" a la vora de la pantalla.
Aquests "píxels sorollosos" es poden corregir canviant la funció d'inici TFT que s'utilitza a la part superior de la funció de configuració (buida).
Comenteu la línia de codi:
tft.initR (INITR_BLACKTAB);
I descomenteu la línia un parell de línies cap avall:
tft.initR (INITR_GREENTAB);
Torneu a programar la demostració i tot hauria de quedar bé.
Ara podem utilitzar la pantalla LCD per mostrar codis QR
Torna al menú Arduino IDE Eines> Gestiona les biblioteques.
Localitzeu i instal·leu el QRCode de la biblioteca.
Baixeu-vos l'esbós QR_TFT.ino adjunt aquí.
Compileu i programeu QR_TFT al ProMicro i vegeu si podeu utilitzar l’aplicació de la càmera del telèfon per llegir el codi QR generat a la pantalla LCD.
Alguns projectes que fan servir la generació de codi QR per inspirar-se
Control d'accés
Rellotge QR
Pas 5: cable pla flexible
Un cable pla flexible (FFC) és qualsevol cable elèctric pla i flexible, amb conductors sòlids plans. Un FFC és un cable format a partir o similar a un circuit imprès flexible (FPC). Els termes FPC i FFC de vegades s’utilitzen indistintament. Aquests termes es refereixen generalment a un cable pla extremadament prim que es troba sovint en aplicacions electròniques d'alta densitat com ara ordinadors portàtils i telèfons mòbils. Són una forma miniaturitzada de cable de cinta que normalment consisteix en una base de pel·lícula de plàstic plana i flexible, amb múltiples conductors metàl·lics plans units a una superfície.
Els FFC vénen en una gran varietat de passos de pin amb 1,0 mm i 0,5 mm, sent dues opcions habituals. El tauler de ruptura FPC inclòs té rastres per a aquests dos llançaments, un a cada costat del PCB. Només s’utilitza un costat del PCB en funció del pas desitjat, 0,5 mm en aquest cas. Assegureu-vos d’utilitzar la numeració de pins de capçalera impresa al mateix costat de 0,5 mm del PCB. La numeració dels pins del costat d’1,0 mm no coincideix i s’utilitza per a una aplicació diferent.
Els connectors FFC de l'escàner i del codi de barres són connectors ZIF (zero insertion force). Això vol dir que els connectors ZIF tenen un control lliscant mecànic que s’obre amb frontissa abans d’inserir el FFC i després es tanca per fixar el connector al FFC sense posar força i inserció al mateix cable. Dues coses importants que cal tenir en compte sobre aquests connectors ZIF:
1. Tots dos són un "contacte inferior", cosa que significa que els contactes metàl·lics de l'FFC han de ser cap a baix (cap al PCB) quan s'insereixen.
2. El control lliscant articulat del brot es troba a la part frontal del connector. Això significa que l'FFC passarà per sota / a través del control lliscant articulat. En canvi, el control lliscant articulat de l’escàner de codis de barres es troba a la part posterior del connector. Això significa que l'FFC entrarà al connector ZIF des del costat oposat i no a través del control lliscant articulat.
Tingueu en compte que altres tipus de connectors ZFC FFC / FPC tenen barres lliscants laterals en lloc dels barres abatibles articulades que tenim aquí. En lloc de fer frontisses amunt i avall, els lliscadors laterals rellisquen dins i fora del pla del connector. Mireu sempre atentament abans d’utilitzar per primera vegada un nou tipus de connector ZIF. Són força petites i es poden danyar fàcilment si es forcen fora del seu rang o pla de moviment previst.
Pas 6: escàner de codis de barres
Un cop connectats l’escàner de codis de barres i el trencament FPC mitjançant el cable pla flexible (FFC), es poden utilitzar cinc cables de pont femella per connectar el PCB de trencament a l’Arduino Pro Micro:
FPC ---- Pro Micro
3 ------ GND 2 ------ VCC 12 ----- 7 4 ------ 8 5 ------ 9
Un cop connectat, programa l'esbós barscandemo.ino al Pro Micro, obre el monitor de sèrie i escaneja totes les coses. Pot sorprendre la quantitat d’objectes que hi ha al voltant de les nostres llars i oficines amb codis de barres. Fins i tot podeu conèixer algú amb un tatuatge de codi de barres.
El manual de l’escàner de codis de barres adjunt inclou codis que es poden escanejar per configurar el processador incrustat dins de l’escàner.
Pas 7: piratejar el planeta
Esperem que gaudiu d’aquest mes de l’aventura HackerBox en electrònica i tecnologia informàtica. Arribeu i compartiu el vostre èxit als comentaris següents o en altres xarxes socials. Recordeu també que podeu enviar un correu electrònic a [email protected] en qualsevol moment si teniu alguna pregunta o necessiteu ajuda.
Que segueix? Uneix-te a la revolució. Viu el HackLife. Obteniu una caixa d’equips piratejables que es lliuri directament a la vostra bústia de correu cada mes. Navegueu a HackerBoxes.com i inscriviu-vos a la vostra subscripció mensual a HackerBox.
Recomanat:
Codificació Kazoo: 5 passos
Codificació Kazoo: es tracta d'un bonic model en 3D d'un kazoo fet a Tinkercad. Podeu fer-ne un amb aquest intestructible
Codificació amb blocs de codi IOS: 6 passos
Codificació amb blocs de codi IOS: la codificació amb iOS és una manera única de fer que el vostre dispositiu iOS faci automatitzacions, obtingui les notícies, iniciï la guerra cibernètica i fins i tot programi missatges de text. Per a aquesta instrucció, ens centrarem en la guerra cibernètica, específicament els amics de correu brossa i c
Extensió web de Chrome: no cal experiència prèvia en codificació: 6 passos
Extensió web de Chrome: no cal experiència prèvia de codificació: les extensions de Chrome són petits programes creats per millorar la navegació dels usuaris. Per obtenir més informació sobre les extensions chrome, aneu a https://developer.chrome.com/extensions.Per crear una extensió web Chrome, cal codificar, de manera que és molt útil revisar HT
Codificació de formes de Playdoh simples W / P5.js i Makey Makey: 7 passos
Codificació de formes de Playdoh simples W / P5.js i Makey Makey: es tracta d’un projecte d’informàtica física que us permet crear una forma amb Playdoh, codificar aquesta forma mitjançant p5.js i activar aquesta forma a la pantalla de l’ordinador tocant Playdoh. forma amb un Makey Makey.p5.js és un codi obert, web b
Convertidors de codificació de línia de bricolatge: 15 passos
Convertidors de codificació de línies serials de bricolatge: la comunicació de dades en sèrie s’ha convertit en omnipresent en moltes aplicacions industrials i existeixen diversos enfocaments per dissenyar qualsevol interfície de comunicació de dades en sèrie. És convenient emprar un dels protocols estàndard, és a dir, UART, I2C o SPI. A més