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, Studeni
Anonim
HackerBox 0058: Kodiranje
HackerBox 0058: Kodiranje

Pozdrav HackerBox hakerima širom svijeta! S HackerBox -om 0058 istražit ć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 ljudskih uređaja i drugo.

HackerBoxes je mjesečna pretplatna usluga za ljubitelje elektronike i računalne tehnologije - Hardverski hakeri - Sanjari snova.

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

Pribor

Ovaj Instructable sadrži informacije za početak rada s HackerBox 0058. Cijeli sadržaj kutije naveden je na stranici proizvoda za HackerBox 0058, gdje je kutija također dostupna za kupnju do isteka zaliha. Ako želite svaki mjesec automatski primiti ovakav HackerBox u svoj poštanski sandučić sa popustom od 15 USD, možete se pretplatiti na HackerBoxes.com i pridružiti se revoluciji!

Za rad na mjesečnom HackerBoxu općenito su potrebni lemilica, lemilica i osnovni alati za lemljenje. Također je potrebno računalo za pokretanje softverskih alata. Pogledajte HackerBox Deluxe Starter Workshop za skup osnovnih alata i širok raspon 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 bit moderne elektronike, moramo se zabrinuti oko 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 sustav 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 sustavima to se naziva "linijsko kodiranje".

Na ovoj najnižoj razini prikazi se uglavnom odnose na fiziku sustava. 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 neurona. Za elektroniku se ti podaci č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čunalnog umrežavanja. Fizički sloj definira način prijenosa sirovih bitova preko fizičke podatkovne veze koja povezuje čvorove mreže. Fizički sloj pruža električno, mehaničko i proceduralno sučelje prijenosnom mediju. Oblici i svojstva električnih konektora, frekvencije za emitiranje, kôd linije koji se koristi i slični parametri niske razine određeni su fizičkim slojem.

BROJEVI

Ne možemo puno učiniti samo sa JEDNIM i NULA, inače bismo evoluirali da "govorimo" trepćući očima jedno na 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 općenito je nula, a 11111111 općenito 255 za osiguravanje 2 do 8 ili 256 različitih vrijednosti. Naravno, tu nije kraj, jer postoji puno 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 brojevne sustave, jezike, baze i koristeći tehnike poput negativnih brojeva, zamišljenih brojeva, znanstvenih zapisa, korijena, omjera i logaritamskih ljestvica različitih baza. Za numeričke vrijednosti u računalnim sustavima moramo se boriti s pitanjima kao što su strojni epsilon, endijanca, prikazi s fiksnom točkom i s pomičnim 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 šifrirati šire vrste informacija (poput općih binarnih datoteka) kao tekst. Postupak 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 znanstvene discipline u svrhu projektiranja učinkovitih i pouzdanih metoda prijenosa podataka. Primjeri disciplina uključuju teoriju informacija, elektrotehniku, matematiku, lingvistiku i informatiku.

KOMPRESIRANJE PODATAKA (uklanjanje viška)

Kompresija podataka, izvorno kodiranje ili smanjenje brzine prijenosa je proces kodiranja informacija pomoću 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 među najpopularnijim su 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 kompresijskih sustava opće namjene. LZW se koristi u-g.webp

Neprestano 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 pogrešaka ili kontrola pogrešaka tehnike su koje omogućuju pouzdanu dostavu digitalnih podataka putem nepouzdanih komunikacijskih kanala. Mnogi komunikacijski kanali podložni su šumu kanala, pa se mogu pojaviti greške tijekom prijenosa s izvora na prijemnik. Otkrivanje pogrešaka je otkrivanje grešaka uzrokovanih šumom ili drugim oštećenjima tijekom prijenosa s odašiljača na prijemnik. Ispravljanje pogrešaka je otkrivanje pogrešaka i rekonstrukcija izvornih podataka bez pogrešaka.

Otkrivanje pogrešaka najjednostavnije se izvodi pomoću ponavljanja prijenosa, paritetnih bitova, kontrolnih suma ili CRC -ova ili funkcija raspršivanja. 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 pogrešaka (ECC) koriste se za kontrolu pogrešaka u podacima preko nepouzdanih ili bučnih komunikacijskih kanala. Središnja ideja je da pošiljatelj kodira poruku suvišnim podacima u obliku ECC -a. Suvišnost omogućuje primatelju da otkrije ograničen broj pogrešaka koje se mogu pojaviti bilo gdje u poruci, te često ispravi te pogreške bez ponovnog prijenosa. Pojednostavljeni primjer ECC -a je prijenos svakog bita podataka 3 puta, što je poznato kao (3, 1) kod ponavljanja. Iako se prenosi samo 0, 0, 0 ili 1, 1, 1, pogreške unutar kanala s bukom mogu prikazati prijemniku bilo koju od osam mogućih vrijednosti (tri bita). To omogućuje da se pogreška u bilo kojem od tri uzorka ispravi "većinom glasova" ili "demokratskim glasovanjem". Sposobnost ispravljanja ovog ECC -a tako ispravlja 1 bit pogreške u svakom prenesenom trojcu. Iako je jednostavan za implementaciju i široko se koristi, ova trostruka modularna redundancija relativno je neučinkovit ECC. Bolji ECC kodovi obično ispituju zadnjih nekoliko desetaka ili čak posljednjih nekoliko stotina prethodno primljenih bitova kako bi se utvrdilo kako dekodirati trenutnu malu šaku bitova.

Gotovo svi dvodimenzionalni crtični kodovi, poput QR kodova, PDF-417, MaxiCode, Datamatrix i Aztec koda, koriste Reed-Solomonov ECC kako bi omogućili ispravno čitanje čak i ako je dio bar koda oštećen.

KRIPTOGRAFIJA

Kriptografsko kodiranje osmišljeno je na temelju pretpostavki računalne tvrdoće. Takve algoritme kodiranja namjerno je teško razbiti (u praktičnom smislu) bilo kojeg protivnika. Teoretski je moguće razbiti takav sustav, ali to je nemoguće učiniti bilo kojim poznatim praktičnim sredstvima. Ove se sheme stoga nazivaju računalno 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čunalno sigurnih mehanizama.

Tradicionalno šifriranje šifri temelji se na transpozicijskoj šifri koja preslaguje redoslijed slova u poruci (npr. 'Hello world' postaje 'ehlol owrdl' u trivijalno jednostavnoj shemi preuređenja) i zamjenskim šiframa koje sustavno zamjenjuju slova ili skupine slova s drugim slovima ili skupinama slova (npr. 'leti odjednom' postaje 'gmz bu podf' zamjenom svakog slova s onim koje slijedi u latinici). Jednostavne verzije nijednog od njih 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 zamjenska slova koja zamjenjuje slovo s 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" vrsta su matričnog ili dvodimenzionalnog barkoda koji je prvi put dizajniran 1994. za automobilsku industriju u Japanu. Crtični kôd je strojno čitljiva optička naljepnica 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 spremanje podataka.

Sustav Quick Response postao je popularan izvan automobilske industrije zbog svoje brze čitljivosti i većeg skladišnog kapaciteta u usporedbi sa standardnim UPC crtičnim kodovima. 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 pogreške sve dok se slika ne može odgovarajuće protumačiti. Zatim se potrebni podaci izdvajaju iz uzoraka koji su prisutni i u vodoravnim i u okomitim komponentama slike.

Suvremeni pametni telefoni obično će automatski čitati QR kodove (i druge barkodove). Jednostavno otvorite aplikaciju kamere, usmjerite kameru na crtični kod i pričekajte sekundu ili dvije da aplikacija kamere pokaže da je zaključana na crtični kôd. Aplikacija će ponekad odmah prikazati sadržaj crtičnog stupca, ali obično će aplikacija zahtijevati odabir obavijesti o crtičnom kodu za prikaz svih podataka izvučenih iz crtičnog koda. Tijekom mjeseca lipnja 2011. 14 milijuna američkih mobilnih korisnika skeniralo je QR kod ili crtični kod.

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

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

Stari ljudi bi se mogli sjetiti Cauzin Softstripa iz računalnih č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 temelji se 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 isprobate Pro Micro bez lemljenja pinova na mjesto. Osnovnu konfiguraciju i testiranje možete izvesti bez upotrebe zaglavlja zaglavlja. Također, odgađanje lemljenja modula daje jednu varijablu manje za ispravljanje pogrešaka ako naiđete na bilo kakve komplikacije.

Ako na vašem računalu nemate instaliran Arduino IDE, počnite preuzimanjem IDE obrasca arduino.cc. UPOZORENJE: Prije programiranja Pro Micro -a obavezno odaberite verziju 3,3 V pod alati> procesor. Ova postavka za 5V jednom će funkcionirati, a zatim će se činiti da se uređaj nikada neće povezati s vašim računalom sve dok ne slijedite upute "Reset to Bootloader" u dolje navedenom vodiču, što može biti malo zeznuto.

Sparkfun ima izvrstan 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 mijenjanjem standardne Blink skice. Međutim, Pro Micro ne uključuje uobičajenu LED na pin 13. Srećom, možemo kontrolirati RX/TX LED diode. Sparkfun je dao urednu malu skicu koja pokazuje kako. Ovo se nalazi u odjeljku Vodiča za povezivanje pod naslovom "Primjer 1: Blinkies!" Provjerite možete li sastaviti i programirati ove Blinkies! primjer na Pro Micro prije nego krenete naprijed.

Kad se čini da sve radi za programiranje Pro Micro -a, vrijeme je za pažljivo lemljenje igle zaglavlja na modul. Nakon lemljenja, ploču ponovno pažljivo testirajte.

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 s ubrizgavanjem tipki.

Korak 4: QR kodovi na LCD zaslonu u boji

QR kodovi na LCD zaslonu u boji
QR kodovi na LCD zaslonu u boji

LCD zaslon ima 128 x 160 piksela u boji i dijagonale mu je 1,8 inča. Čip upravljačkog programa ST7735S (podatkovni 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 ----- Nema povezivanja

Ova posebna dodjela pinova omogućuje primjerima knjižnice da rade prema zadanim postavkama.

Knjižnica pod nazivom "Adafruit ST7735 i ST7789" može se pronaći u Arduino IDE -u pomoću izbornika Alati> Upravljanje knjižnicama. Tijekom instalacije upravitelj knjižnice predložit će nekoliko ovisnih knjižnica koje idu uz tu knjižnicu. Dopustite mu da instalira i njih.

Nakon što se ta knjižnica instalira, otvorite Datoteke> Primjeri> Knjižnica Adafruit ST7735 i ST7789> grafički test

Sastavite i prenesite grafički test. Generirat će grafičku demonstraciju na LCD zaslonu, ali s nekim redovima i stupcima "bučnih piksela" na rubu zaslona.

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

Komentirajte red koda:

tft.initR (INITR_BLACKTAB);

I raskomentirajte redak nekoliko redaka dolje:

tft.initR (INITR_GREENTAB);

Reprogramirajte demo i sve bi trebalo izgledati lijepo.

Sada možemo koristiti LCD za prikaz QR kodova

Natrag na Arduino IDE izbornik Alati> Upravljanje knjižnicama.

Pronađite i instalirajte knjižnicu QRCode.

Skicu QR_TFT.ino preuzmite ovdje u prilogu.

Kompilirajte i programirajte QR_TFT u ProMicro i provjerite možete li pomoću aplikacije kamere na telefonu pročitati generirani QR kôd na LCD zaslonu.

Neki projekti koriste inspiraciju za generiranje QR koda

Kontrola 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). Pojmovi FPC i FFC ponekad se koriste naizmjenično. Ovi se pojmovi općenito odnose na iznimno tanak ravni kabel koji se često nalazi u elektroničkim aplikacijama velike gustoće poput prijenosnih računala i mobitela. Oni su minijaturni oblik vrpcastog 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 iglica s 1,0 mm i 0,5 mm koje su 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. Svakako upotrijebite numeraciju zaglavlja zaglavlja otisnutu na istoj strani od 0,5 mm PCB -a. Numeriranje pinova na strani od 1,0 mm ne podudara se i koristi se za drugu primjenu.

FFC konektori i na prekidaču i na skeneru barkoda su konektori ZIF (nulta sila umetanja). To znači da ZIF konektori imaju mehanički klizač koji se otvara šarkama prije umetanja FFC -a, a zatim se šarkama zatvara kako bi se konektor zategnuo na FFC bez stavljanja i umetanja sile na sam kabel. Dvije važne stvari koje treba obratiti pozornost 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 su umetnuti.

2. Klizač sa zglobovima na prekidaču nalazi se na prednjoj strani priključka. To znači da će FFC prolaziti ispod/kroz zglobni klizač. Nasuprot tome, klizač sa šarkama na skeneru za crtični kod nalazi se na stražnjoj strani priključka. 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 zglobanja prema gore i dolje, bočni klizači klize unutra i van unutar ravnine konektora. Uvijek pažljivo pogledajte prije prve uporabe nove vrste ZIF konektora. Prilično su mali i mogu se lako oštetiti ako se istisnu izvan predviđenog raspona ili ravnine kretanja.

Korak 6: Čitač bar koda

Skener barkoda
Skener barkoda

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

FPC ---- Pro Micro

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

Nakon povezivanja, 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 crtične kodove. Možda čak poznajete nekoga s tetovažom crtičnog koda.

Priloženi priručnik za skener crtičnih kodova ima kodove koji se mogu skenirati za konfiguraciju procesora ugrađenog u skener.

Korak 7: Hakirajte planet

Hakirajte planet
Hakirajte planet

Nadamo se da uživate u ovomjesečnoj HackerBox avanturi u elektronici i računalnoj 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 trebate pomoć.

Što je sljedeće? Pridružite se revoluciji. Živite HackLife. Svaki mjesec nabavite hladnu kutiju opreme za hakiranje izravno u vaš poštanski sandučić. Pređite na stranicu HackerBoxes.com i prijavite se za mjesečnu pretplatu na HackerBox.

Preporučeni: