Sadržaj:

HackerBox 0058: Kodiranje: 7 koraka
HackerBox 0058: Kodiranje: 7 koraka

Video: HackerBox 0058: Kodiranje: 7 koraka

Video: HackerBox 0058: Kodiranje: 7 koraka
Video: Latin Capital Letter M U+004D 2024, Juli
Anonim
HackerBox 0058: Kodiranje
HackerBox 0058: Kodiranje

Pozdrav HackerBox hakerima širom svijeta! Sa HackerBox -om 0058 istraživat ćemo kodiranje informacija, crtične kodove, QR kodove, programiranje Arduino Pro Micro -a, ugrađene LCD zaslone, integriranje generiranja crtičnog koda u Arduino projekte, iskorištavanje uređaja za unos podataka itd.

HackerBoxes je mjesečna pretplatnička usluga za ljubitelje elektronike i računarske tehnologije - Hardverski hakeri - Sanjači snova.

U FAQ -u o HackerBoxima postoji mnogo informacija za sadašnje i buduće članove. Gotovo na sve e-poruke o tehničkoj podršci koje primamo već je odgovoreno, stoga zaista cijenimo što ste odvojili nekoliko minuta da pročitate FAQ.

Supplies

Ovaj Instructable sadrži informacije za početak korištenja HackerBox 0058. Cijeli sadržaj kutije je naveden na stranici proizvoda za HackerBox 0058, gdje je kutija dostupna i za kupovinu dok traju zalihe. Ako želite automatski primiti ovakav HackerBox u svoje poštansko sanduče svaki mjesec sa popustom od 15 USD, možete se pretplatiti na HackerBoxes.com i pridružiti se revoluciji!

Lemilica, lemilica i osnovni alati za lemljenje općenito su potrebni za rad na mjesečnom HackerBox -u. Takođe je potreban računar za pokretanje softverskih alata. Pogledajte HackerBox Deluxe Starter Workshop za skup osnovnih alata i široku lepezu uvodnih aktivnosti i eksperimenata.

Ono što je najvažnije, trebat će vam osjećaj avanture, hakerski duh, strpljenje i znatiželja. Izgradnja i eksperimentiranje s elektronikom, iako vrlo isplativo, ponekad može biti zeznuto, izazovno, pa čak i frustrirajuće. Cilj je napredak, a ne savršenstvo. Kad ustrajete i uživate u avanturi, iz ovog hobija može se steći veliko zadovoljstvo. Polako poduzimajte svaki korak, pazite na detalje i ne bojte se zatražiti pomoć

Korak 1: Kodiranje

Kodiranje
Kodiranje

Za komunikaciju, snimanje ili manipulaciju informacijama potrebno je kodiranje. Budući da su obrada, pohranjivanje i komuniciranje informacija suština moderne elektronike, moramo se zabrinuti oko mnogo kodiranja.

Kao vrlo jednostavan primjer kodiranja, moglo bi se prikazati koliko očiju ili ušiju imaju držeći dva prsta, ili koristeći brojeve "2" ili "] [" ili koristeći riječi "dva" ili "dos" ili " Er "ili" zwei ". Nije baš tako jednostavno, zar ne? Kodiranje koje se koristi u ljudskom jeziku, posebno u vezi s temama poput emocija ili apstrakcije, može postati vrlo složeno.

FIZIKA

Da, uvijek sve počinje fizikom. U elektroničkim sustavima započinjemo predstavljanjem najjednostavnijih vrijednosti električnim signalima, obično naponskim razinama. Na primjer, ZERO može biti predstavljen kao uzemljenje (približno 0V), a ONE kao približno 5V (ili 3.3V, itd.) Kako bi se napravio binarni sistem nula i jedinica. Čak i sa samo NULA i JEDNIM, često postoji nejasnoća za rješavanje. Je li to pritisnuto dugme NULA ili JEDNO? VISOKO ili NISKO? Je li signal za odabir čipa "aktivno visoko" ili "aktivno nisko"? U koje vrijeme se signal može pročitati i koliko dugo će vrijediti? U komunikacijskim sistemima to se naziva "linijsko kodiranje".

Na ovom najnižem nivou, prikazi se uglavnom odnose na fiziku sistema. Koje napone može podržati, koliko brzo može prijeći, kako se laser uključuje i isključuje, kako informacijski signali moduliraju nosač radiofrekvencije, kolika je propusnost kanala ili čak kako koncentracije iona stvaraju akcijske potencijale u neuron. Za elektroniku, ove se informacije često nalaze u impozantnim tablicama podatkovne tablice proizvođača.

Fizički sloj (PHY) ili sloj 1 prvi je i najniži sloj u sedmoslojnom OSI modelu računarskog umrežavanja. Fizički sloj definira način prijenosa sirovih bitova preko fizičke veze podataka koja povezuje čvorove mreže. Fizički sloj pruža električno, mehaničko i proceduralno sučelje za prijenosni medij. Oblici i svojstva električnih konektora, frekvencije za emitiranje, kôd linije koji se koristi i slični parametri niskog nivoa određuju se fizičkim slojem.

BROJEVI

Ne možemo mnogo učiniti samo sa JEDNIM i NULA, inače bismo evoluirali da "govorimo" trepćući očima jedno u drugo. Binarne vrijednosti su ipak odličan početak. U računalnim i komunikacijskim sustavima kombiniramo binarne znamenke (bitove) u bajtove i "riječi" koje sadrže, na primjer, 8, 16, 32 ili 64 bita.

Kako ove binarne riječi odgovaraju brojevima ili vrijednostima? U jednostavnom 8-bitnom bajtu, 00000000 je općenito nula, a 11111111 je općenito 255 za pružanje 2 do 8 ili 256 različitih vrijednosti. Naravno, tu nije kraj, jer postoji mnogo više od 256 brojeva i nisu svi brojevi pozitivni cijeli brojevi. Čak i prije računalnih sustava predstavljali smo numeričke vrijednosti koristeći različite sisteme brojeva, jezike, baze i koristeći tehnike poput negativnih brojeva, zamišljenih brojeva, naučnih zapisa, korijena, omjera i logaritamskih skala različitih baza. Za numeričke vrijednosti u računarskim sistemima moramo se boriti sa pitanjima kao što su mašinski epsilon, endijanca, prikazi s fiksnom tačkom i plutajućom zarezom.

TEKST (CETERA)

Osim što predstavljaju brojeve ili vrijednosti, binarni bajtovi i riječi mogu predstavljati slova i druge tekstualne simbole. Najčešći oblik kodiranja teksta je američki standardni kod za razmjenu informacija (ASCII). Naravno, različite vrste informacija mogu se kodirati kao tekst: knjiga, ova web stranica, xml dokument.

U nekim slučajevima, poput e -pošte ili objava na Usenetu, možda bismo htjeli kodirati šire tipove informacija (poput općih binarnih datoteka) kao tekst. Proces uuenkodiranja uobičajen je oblik binarnog kodiranja u tekst. Slike možete čak i "kodirati" kao tekst: ASCII Art ili još bolje ANSI Art.

TEORIJA KODIRANJA

Teorija kodiranja proučava svojstva kodova i njihovu prikladnost za određene primjene. Kodovi se koriste za kompresiju podataka, kriptografiju, otkrivanje i ispravljanje grešaka, prijenos podataka i pohranu podataka. Kodove proučavaju različite naučne discipline u svrhu dizajniranja efikasnih i pouzdanih metoda prijenosa podataka. Primjeri disciplina uključuju teoriju informacija, elektrotehniku, matematiku, lingvistiku i računarstvo.

KOMPRESIRANJE PODATAKA (uklanjanje viška)

Kompresija podataka, izvorno kodiranje ili smanjenje brzine prijenosa je proces kodiranja informacija korištenjem manje bitova od izvornog prikaza. Svaka posebna kompresija ima gubitak ili gubitak. Kompresija bez gubitaka smanjuje bitove identificiranjem i uklanjanjem statističke redundancije. Kod kompresije bez gubitaka ne gube se nikakve informacije. Kompresija s gubitkom smanjuje bitove uklanjanjem nepotrebnih ili manje važnih informacija.

Lempel – Ziv (LZ) metode kompresije su među najpopularnijim algoritmima za pohranu bez gubitaka. Sredinom 1980-ih, nakon rada Terryja Welcha, algoritam Lempel – Ziv – Welch (LZW) brzo je postao metoda izbora za većinu kompresionih sistema opće namjene. LZW se koristi u-g.webp

Stalno koristimo komprimirane podatke za DVD -ove, streaming MPEG video zapisa, MP3 audio, JPEG grafiku, ZIP datoteke, komprimirane katranske kuglice itd.

OTKRIVANJE GREŠKA I ISPRAVKA (dodavanjem korisne redundancije)

Otkrivanje i ispravljanje grešaka ili kontrola grešaka tehnike su koje omogućavaju pouzdanu isporuku digitalnih podataka preko nepouzdanih komunikacijskih kanala. Mnogi komunikacijski kanali podložni su šumu kanala, pa se greške mogu pojaviti tokom prijenosa od izvora do prijemnika. Otkrivanje grešaka je otkrivanje grešaka uzrokovanih šumom ili drugim smetnjama tokom prijenosa od odašiljača do prijemnika. Ispravljanje grešaka je otkrivanje grešaka i rekonstrukcija izvornih podataka bez grešaka.

Otkrivanje greške se najjednostavnije izvodi ponavljanjem prijenosa, paritetnim bitovima, kontrolnim zbrojevima ili CRC -ovima ili hash funkcijama. Greška u prijenosu može biti otkrivena (ali se obično ne ispravlja) od strane primatelja koji tada može zatražiti ponovni prijenos podataka.

Kodovi za ispravljanje grešaka (ECC) koriste se za kontrolu grešaka u podacima preko nepouzdanih ili bučnih komunikacijskih kanala. Centralna ideja je da pošiljatelj kodira poruku suvišnim informacijama u obliku ECC -a. Suvišnost omogućava primatelju da otkrije ograničen broj grešaka koje se mogu pojaviti bilo gdje u poruci, a često i da ih ispravi bez ponovnog slanja. Pojednostavljeni primjer ECC -a je da se svaki bit podataka prenese 3 puta, što je poznato kao (3, 1) kod za ponavljanje. Iako se prenosi samo 0, 0, 0 ili 1, 1, 1, greške unutar kanala sa šumom mogu predstaviti prijemniku bilo koju od osam mogućih vrijednosti (tri bita). Ovo omogućava da se greška u bilo kojem od tri uzorka ispravi "većinom glasova" ili "demokratskim glasanjem". Sposobnost ispravljanja ovog ECC -a stoga ispravlja 1 bit greške u svakom prenesenom trojcu. Iako je jednostavan za implementaciju i široko se koristi, ova trostruka modularna redundancija relativno je neefikasan ECC. Bolji ECC kodovi obično ispituju posljednjih nekoliko desetina ili čak posljednjih nekoliko stotina prethodno primljenih bitova kako bi se utvrdilo kako dekodirati trenutnu šačicu bitova.

Gotovo svi dvodimenzionalni crtični kodovi, poput QR kodova, PDF-417, MaxiCode, Datamatrix i Aztec koda, koriste Reed-Solomonov ECC za omogućavanje ispravnog čitanja čak i ako je dio bar koda oštećen.

KRIPTOGRAFIJA

Kriptografsko kodiranje dizajnirano je oko pretpostavki računske tvrdoće. Takve algoritme kodiranja namjerno je teško razbiti (u praktičnom smislu) bilo kojeg protivnika. Teoretski je moguće razbiti takav sistem, ali to je nemoguće učiniti bilo kojim poznatim praktičnim sredstvima. Ove se sheme stoga nazivaju računski sigurnim. Postoje informacijski teoretski sigurne sheme koje se dokazivo ne mogu slomiti čak ni s neograničenom računalnom snagom, kao što je jednokratni pad, ali te je sheme teže koristiti u praksi od najboljih teoretski lomljivih, ali računarski sigurnih mehanizama.

Tradicionalno šifriranje šifri zasnovano je na transpozicijskoj šifri koja preslaguje redoslijed slova u poruci (npr. 'Hello world' postaje 'ehlol owrdl' u trivijalno jednostavnoj shemi preuređivanja) i zamjenskim šiframa koje sistematski zamjenjuju slova ili grupe slova s drugim slovima ili grupama slova (npr. 'leti odjednom' postaje 'gmz bu podf' zamjenom svakog slova sa onim koje slijedi u latinici). Jednostavne verzije oboje nikada nisu nudile mnogo povjerljivosti od poduzetnih protivnika. Rana zamjenska šifra bila je Cezarova šifra, u kojoj je svako slovo u otvorenom tekstu zamijenjeno slovom s nekim fiksnim brojem pozicija dalje u abecedi. ROT13 je jednostavna šifra za zamjenu slova koja zamjenjuje slovo sa 13. slovom iza njega, u abecedi. To je poseban slučaj Cezarove šifre. Isprobajte ovdje!

Korak 2: QR kodovi

QR kodovi
QR kodovi

QR kodovi (wikipedia) ili "kodovi za brzi odgovor" su vrsta matričnog ili dvodimenzionalnog bar koda koji je prvi put dizajniran 1994. za automobilsku industriju u Japanu. Bar kod je strojno čitljiva optička oznaka koja sadrži podatke o stavci na koju je pričvršćena. U praksi, QR kodovi često sadrže podatke za lokator, identifikator ili tragač koji upućuju na web stranicu ili aplikaciju. QR kôd koristi četiri standardizirana načina kodiranja (numerički, alfanumerički, byte/binary i kanji) za učinkovito pohranjivanje podataka.

Sistem Quick Response postao je popularan izvan automobilske industrije zbog svoje brze čitljivosti i većeg skladišnog kapaciteta u odnosu na standardne UPC bar kodove. Aplikacije uključuju praćenje proizvoda, identifikaciju stavki, praćenje vremena, upravljanje dokumentima i opći marketing. QR kôd sastoji se od crnih kvadrata raspoređenih u kvadratnu mrežu na bijeloj podlozi, koje može čitati uređaj za obradu slike, poput kamere, i obrađivati korištenjem Reed -Solomonove korekcije greške sve dok se slika ne može odgovarajuće protumačiti. Zatim se potrebni podaci izdvajaju iz uzoraka koji su prisutni u vodoravnim i okomitim komponentama slike.

Moderni pametni telefoni obično automatski čitaju QR kodove (i druge bar kodove). Jednostavno otvorite aplikaciju za kameru, usmjerite kameru na crtični kod i pričekajte sekundu ili dvije da aplikacija kamere pokaže da je zaključana na crtični kod. Aplikacija će ponekad odmah prikazati sadržaj barkona, ali obično će aplikacija zahtijevati odabir obavijesti o crtičnom kodu za prikaz svih informacija izvučenih iz bar koda. Tokom mjeseca juna 2011. 14 miliona američkih mobilnih korisnika skeniralo je QR kod ili bar kod.

Jeste li koristili svoj pametni telefon za čitanje poruka kodiranih sa vanjske strane HackerBox 0058?

Zanimljiv video: Možete li uklopiti cijelu igru u QR kôd?

Stari ljudi se možda sjećaju Cauzin Softstripa iz kompjuterskih časopisa 80 -ih. (video demo)

Korak 3: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro zasnovan je na mikrokontroleru ATmega32U4 koji ima ugrađeno USB sučelje. To znači da ne postoji FTDI, PL2303, CH340 ili bilo koji drugi čip koji djeluje kao posrednik između vašeg računala i Arduino mikrokontrolera.

Predlažemo da prvo testirate Pro Micro bez lemljenja pinova na mjesto. Osnovnu konfiguraciju i testiranje možete izvesti bez upotrebe pinova zaglavlja. Također, odgađanje lemljenja modula daje jednu varijablu manje za otklanjanje grešaka ako naiđete na bilo kakve komplikacije.

Ako na vašem računaru nemate instaliran Arduino IDE, počnite preuzimanjem IDE obrasca arduino.cc. UPOZORENJE: Prije programiranja Pro Micro -a obavezno odaberite 3.3V verziju pod Tools> procesor. Ako je ovo podešenje za 5V funkcionirat će jednom, a tada će se činiti da se uređaj nikada neće povezati s vašim računarom sve dok ne slijedite upute "Reset to Bootloader" u dolje navedenom vodiču, što može biti malo zeznuto.

Sparkfun ima sjajan Pro Micro Hookup Guide. Vodič za spajanje ima detaljan pregled ploče Pro Micro, a zatim odjeljak za "Instaliranje: Windows" i odjeljak za "Instaliranje: Mac i Linux". Slijedite upute u odgovarajućoj verziji ovih uputa za instalaciju kako biste svoj Arduino IDE konfigurirali tako da podržava Pro Micro. Obično počinjemo raditi s Arduino pločom učitavanjem i/ili izmjenom standardne Blink skice. Međutim, Pro Micro ne uključuje uobičajenu LED na pinu 13. Srećom, možemo kontrolirati RX/TX LED diode. Sparkfun je dao urednu malu skicu kako bi pokazao kako. Ovo je u odjeljku Vodiča za povezivanje pod naslovom "Primjer 1: Blinkies!" Potvrdite da možete sastaviti i programirati ove Blinkies! primjer na Pro Micro prije nego krenete naprijed.

Čini se da sve funkcionira za programiranje Pro Micro -a, vrijeme je da pažljivo zalemite zaglavlje pinova na modul. Nakon lemljenja, ponovo pažljivo testirajte ploču.

Napomena: Zahvaljujući integriranom USB primopredajniku, Pro Micro se lako može koristiti za emulaciju uređaja ljudskog sučelja (HID), poput tipkovnice ili miša, i igrati se pomoću ubrizgavanja tipki.

Korak 4: QR kodovi na LCD ekranu u boji

QR kodovi na LCD ekranu u boji
QR kodovi na LCD ekranu u boji

LCD ekran ima 128 x 160 piksela u boji i ima dijagonalu od 1,8 inča. Čip upravljačkog programa ST7735S (tehnički list) može se povezati s gotovo bilo kojim mikrokontrolerom pomoću sabirnice serijskog perifernog sučelja (SPI). Sučelje je specificirano za 3.3V signalizaciju i napajanje.

LCD modul može se spojiti izravno na 3.3V Pro Micro pomoću 7 FF kratkospojnih žica:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- No Connect

Ova posebna dodjela pinova omogućuje primjerima biblioteke da rade prema zadanim postavkama.

Biblioteka pod nazivom "Adafruit ST7735 i ST7789" može se pronaći u Arduino IDE -u pomoću izbornika Alati> Upravljanje bibliotekama. Prilikom instaliranja, upravitelj biblioteke će predložiti nekoliko zavisnih biblioteka koje idu uz tu biblioteku. Dozvolite mu da instalira i njih.

Nakon što se ta biblioteka instalira, otvorite Datoteke> Primjeri> Biblioteka Adafruit ST7735 i ST7789> grafički test

Sastavite i otpremite grafički test. On će generirati grafičku demonstraciju na LCD zaslonu, ali s nekoliko redova i stupaca "bučnih piksela" na rubu zaslona.

Ovi "bučni pikseli" mogu se popraviti promjenom TFT init funkcije koja se koristi pri vrhu funkcije setup (void).

Komentirajte red koda:

tft.initR (INITR_BLACKTAB);

I raskomentirajte red par redaka dolje:

tft.initR (INITR_GREENTAB);

Reprogramirajte demo i sve bi trebalo izgledati lijepo.

Sada možemo koristiti LCD za prikaz QR kodova

Povratak na Arduino IDE meni Alati> Upravljanje bibliotekama.

Pronađite i instalirajte knjižnicu QRCode.

Ovdje preuzmite skicu QR_TFT.ino.

Kompilirajte i programirajte QR_TFT u ProMicro i provjerite možete li koristiti aplikaciju kamere na telefonu za čitanje generiranog QR koda na LCD ekranu.

Neki projekti koriste inspiraciju za generiranje QR koda

Kontrole pristupa

QR sat

Korak 5: Fleksibilni ravni kabel

Fleksibilni ravni kabel
Fleksibilni ravni kabel

Fleksibilni ravni kabel (FFC) je svaka vrsta električnih kabela koji su ravni i fleksibilni, s ravnim čvrstim vodičima. FFC je kabel formiran od ili sličan fleksibilnom tiskanom krugu (FPC). Izrazi FPC i FFC ponekad se koriste naizmjenično. Ovi se izrazi općenito odnose na izuzetno tanak ravni kabel koji se često nalazi u elektroničkim aplikacijama velike gustoće poput prijenosnih računala i mobitela. Oni su minijaturni oblik trakastog kabela koji se obično sastoji od ravne i fleksibilne podloge od plastičnog filma, s više ravnih metalnih vodiča spojenih na jednu površinu.

FFC -i dolaze u različitim razmacima pin -ova sa 1,0 mm i 0,5 mm kao dvije uobičajene opcije. Uključena FPC ploča za razbijanje ima tragove za obje ove visine, po jedan sa svake strane PCB -a. Ovisno o željenom nagibu, koristi se samo jedna strana PCB -a, u ovom slučaju 0,5 mm. Obavezno koristite numeraciju zaglavlja zaglavlja otisnutu na istoj strani 0,5 mm PCB -a. Numeracija pinova na strani od 1,0 mm se ne podudara i koristi se za drugu primjenu.

FFC konektori i na prekidaču i na skeneru barkoda su ZIF (nulta sila umetanja) konektori. To znači da ZIF konektori imaju mehanički klizač koji se otvara šarkama prije umetanja FFC -a, a zatim se zatvara šarkama kako bi se konektor zategnuo na FFC bez stavljanja i umetanja sile na sam kabel. Dvije važne stvari koje treba obratiti pažnju na ove ZIF konektore:

1. Oboje su "donji kontakt" što znači da metalni kontakti na FFC -u moraju biti okrenuti prema dolje (prema PCB -u) kada se umetnu.

2. Klizač sa šarkama na prekidaču nalazi se na prednjoj strani konektora. To znači da će FFC prolaziti ispod/kroz klizni kliznik. Nasuprot tome, klizač sa šarkama na skeneru za crtični kod nalazi se na stražnjoj strani konektora. To znači da će FFC ući u ZIF konektor sa suprotne strane, a ne kroz klizni klizač.

Imajte na umu da druge vrste FFC/FPC ZIF konektora imaju bočne klizače za razliku od kliznih klizača koje imamo ovdje. Umjesto šarkiranja gore -dolje, bočni klizači klize unutra i van unutar ravnine konektora. Uvijek pažljivo pogledajte prije nego počnete koristiti novu vrstu ZIF konektora. Prilično su mali i mogu se lako oštetiti ako se izbace izvan predviđenog raspona ili ravnine kretanja.

Korak 6: Skener bar koda

Skener bar koda
Skener bar koda

Nakon što su skener za crtični kod i prekid FPC -a povezani fleksibilnim ravnim kabelom (FFC), pet ženskih kratkospojnih žica može se koristiti za povezivanje probojne PCB -a na Arduino Pro Micro:

FPC ---- Pro Micro

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

Kada se povežete, programirajte skicu barscandemo.ino u Pro Micro, otvorite Serial Monitor i skenirajte sve stvari! Može biti iznenađujuće koliko objekata oko naših domova i ureda ima bar kodove. Možda čak poznajete nekoga s tetovažom crtičnog koda.

Priloženi priručnik za skener bar koda ima kodove koji se mogu skenirati za konfiguriranje procesora ugrađenog u skener.

Korak 7: Hakirajte planetu

Hakirajte planetu
Hakirajte planetu

Nadamo se da ćete uživati u ovomjesečnoj HackerBox avanturi u elektronici i računarskoj tehnologiji. Javite se i podijelite svoj uspjeh u komentarima ispod ili na drugim društvenim medijima. Također zapamtite da u bilo kojem trenutku možete poslati e -poruku na [email protected] ako imate pitanje ili vam je potrebna pomoć.

Šta je sledeće? Pridružite se revoluciji. Živite HackLife. Nabavite hladnu kutiju opreme za hakiranje koja se isporučuje svakog mjeseca direktno u vaše poštansko sanduče. Pređite na stranicu HackerBoxes.com i prijavite se za mjesečnu pretplatu na HackerBox.

Preporučuje se: