Cuprins:

HackerBox 0058: Codificare: 7 pași
HackerBox 0058: Codificare: 7 pași

Video: HackerBox 0058: Codificare: 7 pași

Video: HackerBox 0058: Codificare: 7 pași
Video: Configurar controle universal de TV (qualquer marca) 2024, Iulie
Anonim
HackerBox 0058: Codificare
HackerBox 0058: Codificare

Salutări hackerilor HackerBox din întreaga lume! Cu HackerBox 0058 vom explora codificarea informațiilor, coduri de bare, coduri QR, programarea Arduino Pro Micro, afișaje LCD încorporate, integrarea generării de coduri de bare în cadrul proiectelor Arduino, exploatarea dispozitivelor de intrare umană și multe altele.

HackerBoxes este serviciul de cutie de abonament lunar pentru pasionații de electronică și tehnologia computerelor - Hardware Hackers - The Dreamers of Dreams.

Există o mulțime de informații pentru membrii actuali și potențiali în întrebările frecvente despre HackerBoxes. Aproape toate e-mailurile de asistență non-tehnică pe care le primim au primit deja un răspuns acolo, așa că apreciem foarte mult că ați luat câteva minute pentru a citi FAQ.

Provizii

Acest instructabil conține informații pentru a începe să utilizați HackerBox 0058. Conținutul complet al cutiei este listat pe pagina produsului pentru HackerBox 0058, unde cutia este disponibilă și pentru cumpărare până la epuizarea stocurilor. Dacă doriți să primiți automat un HackerBox ca acesta chiar în cutia poștală în fiecare lună cu o reducere de 15 USD, vă puteți abona la HackerBoxes.com și vă puteți alătura revoluției!

Un instrument de lipit, lipit și instrumente de lipit de bază sunt, în general, necesare pentru a lucra la HackerBox lunar. De asemenea, este necesar un computer pentru rularea instrumentelor software. Aruncați o privire la HackerBox Deluxe Starter Workshop pentru un set de instrumente de bază și o gamă largă de activități introductive și experimente.

Cel mai important, veți avea nevoie de un sentiment de aventură, spirit hacker, răbdare și curiozitate. Construirea și experimentarea cu electronice, deși foarte plină de satisfacții, poate fi dificilă, provocatoare și chiar frustrantă uneori. Scopul este progresul, nu perfecțiunea. Când persistați și vă bucurați de aventură, din acest hobby se poate obține o mulțime de satisfacții. Faceți fiecare pas încet, țineți cont de detalii și nu vă fie teamă să cereți ajutor

Pasul 1: Codificare

Codificare
Codificare

Comunicarea, înregistrarea sau manipularea informațiilor necesită codificare. Întrucât procesarea, stocarea și comunicarea informațiilor sunt esența electronicii moderne, avem o mulțime de codare de care să ne facem griji.

Ca un exemplu foarte simplu de codificare, s-ar putea reprezenta câți ochi sau urechi au ridicând două degete sau folosind cifrele „2” sau „] [” sau folosind cuvintele „doi” sau „dos” sau „ Er "sau" zwei ". Nu este chiar atât de simplu, nu? Codificarea utilizată în limbajul uman, în special în ceea ce privește subiecte precum emoțiile sau abstractizarea, poate deveni extrem de complexă.

FIZICĂ

Da, totul începe întotdeauna cu fizica. În sistemele electronice, începem prin a reprezenta cele mai simple valori prin semnale electrice, de obicei niveluri de tensiune. De exemplu, ZERO poate fi reprezentat ca sol (aproximativ 0V) și ONE ca aproximativ 5V (sau 3,3V etc.) pentru a alcătui un sistem binar de zerouri și unii. Chiar și doar cu ZERO și ONE, există adesea ambiguitate de rezolvat. Când este apăsat butonul este ZERO sau ONE? MARE sau MICĂ? Semnalul de selectare a cipului este „activ ridicat” sau „activ scăzut”? La ce oră se poate citi un semnal și pentru cât timp va fi valid? În sistemele de comunicații, aceasta este denumită „codare de linie”.

La acest nivel inferior, reprezentările sunt în mare parte despre fizica sistemului. Ce tensiuni poate suporta, cât de repede poate face tranziția, cum este pornit și oprit laserul, cum modulează semnalele de informații ale unei purtătoare de frecvență radio, care este lățimea de bandă a canalului sau chiar cum concentrațiile de ioni generează potențiale de acțiune într-un neuron. Pentru electronice, aceste informații sunt adesea furnizate în tabelele impozante ale fișei tehnice a producătorului.

Stratul fizic (PHY) sau stratul 1 este primul și cel mai mic strat din modelul OSI cu șapte straturi de rețea de calculatoare. Stratul fizic definește mijloacele de transmitere a biților bruti pe o legătură de date fizică care conectează nodurile de rețea. Stratul fizic oferă o interfață electrică, mecanică și procedurală pentru mediul de transmisie. Formele și proprietățile conectorilor electrici, frecvențele pe care trebuie difuzate, codul de linie de utilizat și parametri similari de nivel scăzut sunt specificate de stratul fizic.

NUMERE

Nu putem face multe doar cu UNUL și ZERO, sau am fi evoluat să „vorbim”, clipind din ochi. Valorile binare sunt totuși un început excelent. În sistemele de calcul și comunicații, combinăm cifre binare (biți) în octeți și „cuvinte” care conțin, de exemplu 8, 16, 32 sau 64 de biți.

Cum corespund aceste cuvinte binare cu cifre sau valori? Într-un octet simplu de 8 biți, 00000000 este în general zero și 11111111 este în general 255 pentru a furniza 2 până la 8 sau 256 de valori diferite. Desigur, nu se oprește aici, deoarece există mult mai mult de 256 de numere și nu toate numerele sunt numere întregi pozitive. Chiar înainte de sistemele de calcul, am reprezentat valori numerice folosind diferite sisteme numerice, limbaje, baze și folosind tehnici precum numere negative, numere imaginare, notație științifică, rădăcini, rapoarte și scale logaritmice de diferite baze diferite. Pentru valorile numerice din sistemele informatice, trebuie să ne confruntăm cu probleme cum ar fi epsilonul mașinii, endianness, punct fix și reprezentări în virgulă mobilă.

TEXT (CETERA)

Pe lângă reprezentarea numerelor sau valorilor, octeții și cuvintele binare pot reprezenta litere și alte simboluri de text. Cea mai comună formă de codificare a textului este American Standard Code for Information Interchange (ASCII). Desigur, diferite tipuri de informații pot fi codificate ca text: o carte, această pagină web, un document XML.

În unele cazuri, cum ar fi postările prin e-mail sau Usenet, am putea dori să codificăm tipuri de informații mai largi (cum ar fi fișiere binare generale) ca text. Procesul de codificare uuenc este o formă comună de codificare binară-text. Puteți chiar „codifica” imaginile ca text: ASCII Art sau mai bine ANSI Art.

TEORIA CODIFICĂRII

Teoria codării este studiul proprietăților codurilor și a adecvării lor corespunzătoare pentru aplicații specifice. Codurile sunt utilizate pentru compresia datelor, criptografie, detectarea și corectarea erorilor, transmiterea datelor și stocarea datelor. Codurile sunt studiate de diferite discipline științifice în scopul proiectării metodelor eficiente și fiabile de transmitere a datelor. Exemple de discipline includ teoria informației, electrotehnică, matematică, lingvistică și informatică.

COMPRESIE DE DATE (eliminarea redundanței)

Compresia datelor, codarea sursă sau reducerea ratei de biți este procesul de codificare a informațiilor folosind mai puțini biți decât reprezentarea inițială. Orice compresie specială este fie cu pierderi, fie fără pierderi. Compresia fără pierderi reduce biții prin identificarea și eliminarea redundanței statistice. Nicio informație nu se pierde prin compresia fără pierderi. Compresia cu pierderi reduce biții prin eliminarea informațiilor inutile sau mai puțin importante.

Metodele de compresie Lempel – Ziv (LZ) sunt printre cei mai populari algoritmi pentru stocarea fără pierderi. La mijlocul anilor 1980, în urma lucrărilor lui Terry Welch, algoritmul Lempel – Ziv – Welch (LZW) a devenit rapid metoda de alegere pentru majoritatea sistemelor de compresie de uz general. LZW este utilizat în imagini GIF, programe precum PKZIP și dispozitive hardware precum modemuri.

Folosim în mod constant date comprimate pentru DVD-uri, streaming video MPEG, audio MP3, grafică JPEG, fișiere ZIP, bile de gudron comprimate și așa mai departe.

DETECTAREA ȘI CORECȚIA ERORILOR (adăugarea unei redundanțe utile)

Detectarea și corectarea erorilor sau controlul erorilor sunt tehnici care permit livrarea fiabilă a datelor digitale pe canale de comunicare nesigure. Multe canale de comunicare sunt supuse zgomotului canalului și, prin urmare, pot fi introduse erori în timpul transmiterii de la sursă la receptor. Detectarea erorilor este detectarea erorilor cauzate de zgomot sau alte deficiențe în timpul transmiterii de la transmițător la receptor. Corecția erorilor este detectarea erorilor și reconstrucția datelor originale, fără erori.

Detectarea erorilor se realizează cel mai simplu folosind repetarea transmisiei, biții de paritate, sumele de control sau CRC-uri sau funcții hash. O eroare în transmisie poate fi detectată (dar de obicei nu corectată) de către receptor, care poate solicita apoi retransmiterea datelor.

Codurile de corectare a erorilor (ECC) sunt utilizate pentru controlul erorilor din date prin canale de comunicare nesigure sau zgomotoase. Ideea centrală este că expeditorul codifică mesajul cu informații redundante sub forma unui ECC. Redundanța permite receptorului să detecteze un număr limitat de erori care pot apărea oriunde în mesaj și, deseori, să corecteze aceste erori fără retransmisie. Un exemplu simplist de ECC este de a transmite fiecare bit de date de 3 ori, ceea ce este cunoscut sub numele de (3, 1) cod de repetare. Chiar dacă sunt transmise doar 0, 0, 0 sau 1, 1, 1, erorile din canalul zgomotos pot prezenta receptorului oricare dintre cele opt valori posibile (trei biți). Acest lucru permite corectarea unei erori în oricare dintre cele trei eșantioane prin „vot majoritar” sau „vot democratic”. Capacitatea de corectare a acestui ECC corectează astfel 1 bit de eroare în fiecare triplet transmis. Deși este simplu de implementat și utilizat pe scară largă, această redundanță modulară triplă este un ECC relativ ineficient. Codurile ECC mai bune examinează în mod obișnuit ultimele câteva zeci sau chiar ultimele câteva sute de biți primiți anterior pentru a determina cum să decodificați o mână mică de biți.

Aproape toate codurile de bare bidimensionale, cum ar fi codurile QR, PDF-417, MaxiCode, Datamatrix și Aztec Code, utilizează Reed – Solomon ECC pentru a permite citirea corectă chiar dacă o parte din codul de bare este deteriorată.

CRIPTOGRAFIE

Codificarea criptografică este concepută în jurul unor ipoteze de duritate de calcul. Astfel de algoritmi de codificare sunt greu de rupt în mod intenționat (într-un sens practic) de către orice adversar. Teoretic este posibil să se spargă un astfel de sistem, dar este imposibil să se facă acest lucru prin orice mijloace practice cunoscute. Prin urmare, aceste scheme sunt denumite sigure din punct de vedere al calculului. Există schemele securizate din punct de vedere informațional, care nu pot fi sparte, chiar și cu o putere de calcul nelimitată, cum ar fi tamponul unic, dar aceste scheme sunt mai dificil de utilizat în practică decât cele mai bune mecanisme care se pot rupe teoretic, dar sunt sigure din punct de vedere computerizat.

Criptarea tradițională a cifrelor se bazează pe un cifru de transpunere, care rearanjează ordinea literelor dintr-un mesaj (de exemplu, „hello world” devine „ehlol owrdl” într-o schemă de rearanjare simplă) și cifrele de substituție, care înlocuiesc sistematic literele sau grupurile de litere cu alte litere sau grupuri de litere (de exemplu, „zbura deodată” devine „gmz bu podf” prin înlocuirea fiecărei litere cu cea care o urmează în alfabetul latin). Versiunile simple ale oricăruia dintre ele nu au oferit niciodată prea multă confidențialitate din partea oponenților întreprinzători. Un cifru de substituție timpuriu a fost cifrul Cezar, în care fiecare literă din textul clar a fost înlocuită cu o literă cu un număr fix de poziții mai jos de alfabet. ROT13 este o cifră simplă de înlocuire a literelor care înlocuiește o literă cu a 13-a literă după aceasta, în alfabet. Este un caz special al cifrului Cezar. Încercați aici!

Pasul 2: Coduri QR

Coduri QR
Coduri QR

Codurile QR (wikipedia) sau „Codurile de răspuns rapid” sunt un tip de matrice sau cod de bare bidimensional conceput pentru prima dată în 1994 pentru industria auto din Japonia. Un cod de bare este o etichetă optică citibilă de mașină care conține informații despre articolul la care este atașat. În practică, codurile QR conțin adesea date pentru un localizator, identificator sau tracker care indică un site web sau o aplicație. Un cod QR utilizează patru moduri de codificare standardizate (numeric, alfanumeric, octet / binar și kanji) pentru a stoca datele în mod eficient.

Sistemul de răspuns rapid a devenit popular în afara industriei auto datorită lizibilității sale rapide și a capacității de stocare mai mari în comparație cu codurile de bare UPC standard. Aplicațiile includ urmărirea produselor, identificarea articolelor, urmărirea timpului, gestionarea documentelor și marketingul general. Un cod QR constă din pătrate negre dispuse într-o grilă pătrată pe un fundal alb, care poate fi citit de un dispozitiv de imagistică, cum ar fi o cameră foto, și procesat folosind corectarea erorilor Reed – Solomon până când imaginea poate fi interpretată în mod corespunzător. Datele necesare sunt apoi extrase din tipare care sunt prezente atât în componentele orizontale, cât și verticale ale imaginii.

Smartphone-urile moderne vor citi automat codurile QR (și alte coduri de bare). Pur și simplu deschideți aplicația camerei, direcționați camera către codul de bare și așteptați o secundă sau două pentru ca aplicația camerei să indice că s-a blocat pe codul de bare. Aplicația va afișa uneori conținutul barei de bare instantaneu, dar de obicei aplicația va necesita selectarea notificării codului de bare pentru a afișa orice informații au fost extrase din codul de bare. În luna iunie 2011, 14 milioane de utilizatori americani de telefonie mobilă au scanat un cod QR sau un cod de bare.

V-ați folosit smartphone-ul pentru a citi mesajele codate în exteriorul HackerBox 0058?

Videoclip interesant: Poți încadra un joc întreg într-un cod QR?

Vechii temporizatori ar putea să-și amintească Cauzin Softstrip din revistele computerizate din anii '80. (demo video)

Pasul 3: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro se bazează pe microcontrolerul ATmega32U4 care are o interfață USB încorporată. Aceasta înseamnă că nu există FTDI, PL2303, CH340 sau orice alt cip care să acționeze ca intermediar între computerul dvs. și microcontrolerul Arduino.

Vă sugerăm mai întâi să testați Pro Micro fără a lipi pinii în poziție. Puteți efectua configurarea și testarea de bază fără a utiliza pinii antetului. De asemenea, întârzierea lipirii la modul oferă o variabilă mai puțin de depanat în cazul în care întâmpinați complicații.

Dacă nu aveți instalat ID-ul Arduino pe computer, începeți prin descărcarea formularului IDE arduino.cc. AVERTISMENT: Asigurați-vă că ați selectat versiunea de 3.3V în instrumentele> procesor înainte de a programa Pro Micro. Dacă aveți acest set pentru 5V, va funcționa o singură dată, iar aparatul va părea să nu se conecteze niciodată la computerul dvs. până când nu urmați instrucțiunile „Resetare la încărcător” din ghidul discutat mai jos, ceea ce poate fi puțin dificil.

Sparkfun are un ghid minunat de conectare Pro Micro. Ghidul de conectare are o prezentare detaliată a plăcii Pro Micro și apoi o secțiune pentru „Instalare: Windows” și o secțiune pentru „Instalare: Mac și Linux”. Urmați instrucțiunile din versiunea corespunzătoare a acestor instrucțiuni de instalare pentru a vă configura ID-ul Arduino configurat pentru a suporta Pro Micro. De obicei, începem să lucrăm cu o placă Arduino încărcând și / sau modificând schița standard Blink. Cu toate acestea, Pro Micro nu include LED-ul obișnuit pe pinul 13. Din fericire, putem controla LED-urile RX / TX. Sparkfun a oferit o schiță îngrijită pentru a demonstra cum. Aceasta se află în secțiunea Ghidului de conectare intitulată „Exemplul 1: clipiri!” Verificați dacă puteți compila și programa acest Blinkies! exemplu pe Pro Micro înainte de a merge mai departe.

Odată ce totul pare să funcționeze pentru a programa Pro Micro, este timpul să lipiți cu atenție pinii antetului pe modul. După lipire, testați din nou cu atenție placa.

FYI: Datorită emițătorului USB integrat, Pro Micro poate fi ușor utilizat pentru a emula un dispozitiv de interfață umană (HID), cum ar fi tastatura sau mouse-ul, și pentru a se juca cu injecție de apăsare de tastă.

Pasul 4: Coduri QR pe afișajul LCD color

Coduri QR pe afișajul LCD color
Coduri QR pe afișajul LCD color

Afișajul LCD are 128 x 160 pixeli color și măsoară 1,8 inch pe diagonală. Cipul Driver ST7735S (foaie de date) poate fi interfațat de la aproape orice microcontroler utilizând o magistrală Serial Peripheral Interface (SPI). Interfața este specificată pentru semnalizare și alimentare de 3.3V.

Modulul LCD poate fi conectat direct la 3.3V Pro Micro folosind 7 fire jumper FF:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- Fără conectare

Această atribuire specifică de pini permite exemplelor de bibliotecă să funcționeze în mod implicit.

Biblioteca numită „Adafruit ST7735 și ST7789” poate fi găsită în Arduino IDE utilizând meniul Instrumente> Gestionare biblioteci. În timpul instalării, managerul de bibliotecă va sugera câteva biblioteci dependente care merg cu biblioteca respectivă. Permiteți-i să le instaleze și pe acestea.

Odată ce biblioteca respectivă este instalată, deschideți Fișiere> Exemple> Biblioteca Adafruit ST7735 și ST7789> graphicstest

Compilați și încărcați graphicstest. Acesta va genera o demonstrație grafică pe ecranul LCD, dar cu câteva rânduri și coloane de „pixeli zgomotoși” la marginea ecranului.

Acești „pixeli zgomotoși” pot fi remediați schimbând funcția de inițiere TFT utilizată în partea de sus a funcției de configurare (nul).

Comentează linia de cod:

tft.initR (INITR_BLACKTAB);

Și decomentați linia cu câteva linii în jos:

tft.initR (INITR_GREENTAB);

Reprogramați demo-ul și totul ar trebui să arate frumos.

Acum putem folosi ecranul LCD pentru a afișa coduri QR

Înapoi la meniul Arduino IDE Instrumente> Gestionare biblioteci.

Localizați și instalați biblioteca QRCode.

Descărcați schița QR_TFT.ino atașată aici.

Compilați și programați QR_TFT în ProMicro și vedeți dacă puteți utiliza aplicația camerei telefonului pentru a citi codul QR generat pe ecranul LCD.

Unele proiecte care folosesc generarea de coduri QR pentru inspirație

Controlul accesului

Ceas QR

Pasul 5: Cablu plat flexibil

Cablu plat flexibil
Cablu plat flexibil

Un cablu plat flexibil (FFC) este orice varietate de cablu electric care este atât plat, cât și flexibil, cu conductori solizi plati. Un FFC este un cablu format din sau similar cu un circuit imprimat flexibil (FPC). Termenii FPC și FFC sunt uneori folosiți interschimbabil. Acești termeni se referă, în general, la un cablu plat extrem de subțire care se găsește adesea în aplicațiile electronice de înaltă densitate, cum ar fi laptopurile și telefoanele mobile. Acestea sunt o formă miniaturizată de cablu panglică care constă de obicei dintr-o bază de film din plastic plană și flexibilă, cu mai mulți conductori metalici plati legați de o singură suprafață.

FFC-urile vin într-o varietate de pasuri de pin, 1,0 mm și 0,5 mm fiind două opțiuni comune. Placa de separare FPC inclusă are urme pentru ambele pitch-uri, câte una pe fiecare parte a PCB-ului. Doar o parte a PCB este utilizată în funcție de pasul dorit, 0,5 mm în acest caz. Asigurați-vă că utilizați numerotarea pinului antetului imprimată pe aceeași parte de 0,5 mm a PCB. Numerotarea pinilor de pe partea de 1,0 mm nu se potrivește și este utilizată pentru o altă aplicație.

Conectorii FFC atât de pe breakout cât și de pe scanerul de coduri de bare sunt conectori ZIF (zero insertion force). Acest lucru înseamnă că conectorii ZIF au un glisor mecanic care este articulat deschis înainte ca FFC să fie introdus și apoi articulat închis pentru a strânge conectorul pe FFC fără a pune și forța de introducere pe cablu în sine. Două lucruri importante de remarcat despre acești conectori ZIF:

1. Amândouă sunt „contact de jos”, ceea ce înseamnă că contactele metalice de pe FFC trebuie să fie orientate în jos (spre PCB) atunci când sunt introduse.

2. Glisorul articulat de pe ruptură se află pe partea din față a conectorului. Aceasta înseamnă că FFC va intra sub / prin glisorul articulat. În schimb, glisorul articulat de pe scanerul de coduri de bare se află pe spatele conectorului. Aceasta înseamnă că FFC va intra în conectorul ZIF din partea opusă și nu prin glisorul articulat.

Rețineți că alte tipuri de conectori FFC / FPC ZIF au glisoare laterale, spre deosebire de glisoarele articulate pe care le avem aici. În loc să se balanseze în sus și în jos, glisoarele laterale alunecă în și în interiorul planului conectorului. Uitați-vă întotdeauna cu atenție înainte de a utiliza mai întâi un nou tip de conector ZIF. Acestea sunt destul de mici și pot fi ușor deteriorate dacă sunt forțate în afara razei lor de aplicare sau a planului de mișcare.

Pasul 6: Scanner de coduri de bare

Scaner de coduri de bare
Scaner de coduri de bare

Odată ce scanerul de coduri de bare și breakout-ul FPC sunt conectate prin cablul flexibil plat (FFC), se pot utiliza cinci fire jumper de sex feminin pentru a conecta PCB-ul de breakout la Arduino Pro Micro:

FPC ---- Pro Micro

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

Odată conectat, programați schița barscandemo.ino în Pro Micro, deschideți monitorul serial și scanați toate lucrurile! Poate fi surprinzător câte obiecte din jurul caselor și birourilor noastre au coduri de bare pe ele. S-ar putea să cunoști chiar și pe cineva cu un tatuaj cu cod de bare.

Manualul scanerului de coduri de bare atașat are coduri care pot fi scanate pentru a configura procesorul încorporat în scaner.

Pasul 7: Hack planeta

Hack planeta
Hack planeta

Sperăm că vă veți bucura de aventura HackerBox din această lună în electronică și tehnologie computerizată. Intindeți-vă și împărtășiți-vă succesul în comentariile de mai jos sau în alte rețele sociale. De asemenea, amintiți-vă că puteți trimite e-mail la [email protected] oricând dacă aveți o întrebare sau aveți nevoie de ajutor.

Ce urmeaza? Alatura-te revolutiei. Trăiește HackLife. Obțineți o cutie grozavă de echipamente care se pot pirata livrate direct în cutia poștală în fiecare lună. Navigați la HackerBoxes.com și înscrieți-vă pentru abonamentul dvs. HackerBox lunar.

Recomandat: