Kazalo:

HackerBox 0058: Kodiranje: 7 korakov
HackerBox 0058: Kodiranje: 7 korakov

Video: HackerBox 0058: Kodiranje: 7 korakov

Video: HackerBox 0058: Kodiranje: 7 korakov
Video: Latin Capital Letter M U+004D 2024, Julij
Anonim
HackerBox 0058: Kodiraj
HackerBox 0058: Kodiraj

Lep pozdrav hekerjem HackerBox po vsem svetu! S programom HackerBox 0058 bomo raziskali kodiranje informacij, črtne kode, QR kode, programiranje Arduino Pro Micro, vgrajene zaslone LCD, vključevanje ustvarjanja črtne kode v projekte Arduino, izkoriščanje človeških vnosnih naprav in drugo.

HackerBoxes je mesečna naročnina za ljubitelje elektronike in računalniške tehnologije - Hekerji strojne opreme - Sanjači sanj.

V pogostih vprašanjih o HackerBoxesu je veliko informacij za sedanje in bodoče člane. Skoraj vsa e-poštna sporočila o netehnični podpori, ki jih prejmemo, so že odgovorjena, zato zelo cenimo, da ste si vzeli nekaj minut in prebrali pogosta vprašanja.

Zaloge

Ta navodila vsebujejo informacije za začetek uporabe HackerBox 0058. Celotna vsebina škatle je navedena na strani z izdelki za HackerBox 0058, kjer je škatla na voljo tudi za nakup do razprodaje zalog. Če želite vsak mesec samodejno prejemati takšen HackerBox v svoj nabiralnik s 15 USD popusta, se lahko naročite na HackerBoxes.com in se pridružite revoluciji!

Spajkalnik, spajkalnik in osnovna orodja za spajkanje so običajno potrebni za delo na mesečnem HackerBoxu. Potreben je tudi računalnik za izvajanje programskih orodij. Oglejte si HackerBox Deluxe Starter Workshop za nabor osnovnih orodij in široko paleto uvodnih dejavnosti in poskusov.

Najpomembneje je, da boste potrebovali občutek pustolovščine, hekerskega duha, potrpežljivost in radovednost. Gradnja in eksperimentiranje z elektroniko, čeprav zelo koristno, sta včasih lahko težavna, zahtevna in celo frustrirajoča. Cilj je napredek in ne popolnost. Ko vztrajate in uživate v pustolovščini, lahko ta hobi prinese veliko zadovoljstvo. Vsak korak naredite počasi, upoštevajte podrobnosti in ne bojte se prositi za pomoč

1. korak: Kodiranje

Kodiranje
Kodiranje

Sporočilo, snemanje ali manipulacija informacij zahteva kodiranje. Ker so obdelava, shranjevanje in posredovanje informacij bistvo sodobne elektronike, moramo skrbeti za veliko kodiranja.

Kot zelo preprost primer kodiranja lahko predstavite, koliko oči ali ušes imajo, tako da držite dva prsta ali uporabite številke "2" ali "] [" ali uporabite besede "dva" ali "dos" ali " Er "ali" zwei ". Pravzaprav ni tako preprosto, kajne? Kodiranje, ki se uporablja v človeškem jeziku, zlasti glede tem, kot so čustva ali abstrakcija, je lahko zelo zapleteno.

FIZIKA

Ja, vedno se vse začne s fiziko. V elektronskih sistemih začnemo s predstavitvijo najpreprostejših vrednosti z električnimi signali, običajno napetostnimi nivoji. Na primer, ZERO je lahko predstavljen kot ozemljitev (približno 0V), ONE pa kot približno 5V (ali 3.3V itd.), Da sestavi binarni sistem ničel in enot. Tudi pri samo NULA in ENEM se pogosto pojavijo dvoumnosti. Je to pritisnjeno na gumb ZERO ali ONE? VISOKO ali NIZKO? Ali je signal za izbiro čipa "aktivno visoko" ali "aktivno nizko"? Kdaj je mogoče prebrati signal in kako dolgo bo veljaven? V komunikacijskih sistemih se to imenuje "linijsko kodiranje".

Na tej najnižji ravni predstavitve v veliki meri govorijo o fiziki sistema. Katere napetosti lahko podpira, kako hitro lahko prehaja, kako se laser vklopi in izklopi, kako informacijski signali modulirajo radijski frekvenčni nosilec, kakšna je pasovna širina kanala ali celo, kako koncentracije ionov ustvarjajo akcijske potenciale v nevron. Za elektroniko so te informacije pogosto navedene v impozantnih tabelah proizvajalčevega podatkovnega lista.

Fizična plast (PHY) ali plast 1 je prva in najnižja plast v sedemplastnem OSI modelu računalniškega omrežja. Fizična plast definira način prenosa surovih bitov po fizični podatkovni povezavi, ki povezuje omrežna vozlišča. Fizična plast zagotavlja električni, mehanski in proceduralni vmesnik za prenosni medij. Oblike in lastnosti električnih priključkov, frekvence za oddajanje, uporabljena koda linije in podobni parametri nizke ravni so določeni s fizično plastjo.

ŠTEVILKE

Z enim in nulo ne moremo storiti veliko, sicer bi se razvili, da bi »govorili« tako, da bi z očmi utripali drug v drugega. Binarne vrednosti pa so odličen začetek. V računalniških in komunikacijskih sistemih združujemo binarne števke (bite) v bajte in "besede", ki vsebujejo na primer 8, 16, 32 ali 64 bitov.

Kako te binarne besede ustrezajo številkam ali vrednostim? V preprostem 8-bitnem bajtu je 00000000 na splošno nič, 11111111 pa na splošno 255, da zagotovi 2 do 8 ali 256 različnih vrednosti. Seveda se tu ne ustavi, saj je veliko več kot 256 številk in niso vse številke pozitivna cela števila. Še pred računalniškimi sistemi smo predstavljali numerične vrednosti z uporabo različnih številskih sistemov, jezikov, baz in z uporabo tehnik, kot so negativna števila, namišljena števila, znanstveni zapis, korenine, razmerja in logaritmične lestvice različnih baz. Za numerične vrednosti v računalniških sistemih se moramo spoprijeti z vprašanji, kot so strojni epsilon, endiannost, predstavitve s fiksno vejico in s plavajočo vejico.

BESEDILO (CETERA)

Poleg predstavljanja števil ali vrednosti lahko binarni bajti in besede predstavljajo črke in druge besedilne simbole. Najpogostejša oblika kodiranja besedila je ameriška standardna koda za izmenjavo informacij (ASCII). Seveda se lahko različne vrste informacij kodirajo kot besedilo: knjiga, ta spletna stran, dokument xml.

V nekaterih primerih, na primer po e -pošti ali objavah v Usenetu, bomo morda želeli kodirati širše vrste informacij (na primer splošne binarne datoteke) kot besedilo. Postopek uuenkodiranja je običajna oblika kodiranja v binarnem besedilu. Slike lahko celo "kodirate" kot besedilo: ASCII Art ali še bolje ANSI Art.

TEORIJA KODIRANJA

Teorija kodiranja je preučevanje lastnosti kod in njihove ustreznosti za posebne aplikacije. Kode se uporabljajo za stiskanje podatkov, kriptografijo, odkrivanje in odpravljanje napak, prenos podatkov in shranjevanje podatkov. Kode preučujejo različne znanstvene discipline z namenom oblikovanja učinkovitih in zanesljivih metod prenosa podatkov. Primeri disciplin vključujejo teorijo informacij, elektrotehniko, matematiko, jezikoslovje in računalništvo.

STEČEVANJE PODATKOV (odstranjevanje odvečnosti)

Stiskanje podatkov, izvorno kodiranje ali zmanjšanje bitne hitrosti je postopek kodiranja informacij z uporabo manj bitov kot prvotna predstavitev. Vsako posebno stiskanje je bodisi z izgubo ali brez izgube. Stiskanje brez izgube zmanjšuje bite z ugotavljanjem in odpravljanjem statistične odvečnosti. Pri stiskanju brez izgube se ne izgubijo nobene informacije. Stiskanje z izgubo zmanjšuje bite z odstranitvijo nepotrebnih ali manj pomembnih informacij.

Metode stiskanja Lempel – Ziv (LZ) so med najbolj priljubljenimi algoritmi za shranjevanje brez izgub. Sredi osemdesetih let prejšnjega stoletja je po delu Terryja Welcha algoritem Lempel – Ziv – Welch (LZW) hitro postal izbrana metoda za večino splošnih kompresijskih sistemov. LZW se uporablja v slikah GIF, programih, kot je PKZIP, in strojnih napravah, kot so modemi.

Nenehno uporabljamo stisnjene podatke za DVD -je, pretakanje videoposnetkov MPEG, zvok MP3, grafiko JPEG, datoteke ZIP, stisnjene katranske kroglice itd.

ODKRITEV NAPAK IN POPRAVEK (dodajanje uporabne odvečnosti)

Odkrivanje in odpravljanje napak ali nadzor napak so tehnike, ki omogočajo zanesljivo dostavo digitalnih podatkov po nezanesljivih komunikacijskih kanalih. Številni komunikacijski kanali so izpostavljeni hrupu kanalov, zato se lahko med prenosom od vira do sprejemnika pojavijo napake. Odkrivanje napak je odkrivanje napak, ki jih povzroča šum ali druge motnje med prenosom od oddajnika do sprejemnika. Popravek napak je odkrivanje napak in rekonstrukcija izvirnih podatkov brez napak.

Odkrivanje napak je najpreprosteje z uporabo ponavljanja prenosa, parnostnih bitov, kontrolnih vsot ali CRC -jev ali funkcij razpršitve. Napako pri prenosu lahko odkrije (vendar običajno ne popravi) sprejemnik, ki lahko nato zahteva ponovni prenos podatkov.

Kode za odpravljanje napak (ECC) se uporabljajo za nadzor napak v podatkih po nezanesljivih ali hrupnih komunikacijskih kanalih. Osrednja ideja je, da pošiljatelj sporočilo kodira z odvečnimi informacijami v obliki ECC. Odvečnost omogoča sprejemniku, da zazna omejeno število napak, ki se lahko pojavijo kjer koli v sporočilu, in pogosto odpravi te napake brez ponovnega prenosa. Poenostavljen primer ECC je trikratni prenos vsakega podatkovnega bita, ki je znan kot (3, 1) koda za ponavljanje. Čeprav se prenaša le 0, 0, 0 ali 1, 1, 1, lahko napake v hrupnem kanalu sprejemniku predstavijo katero koli od osmih možnih vrednosti (tri bite). To omogoča, da se napaka v katerem koli od treh vzorcev odpravi z "večino glasov" ali "demokratičnim glasovanjem". Popravljalna sposobnost tega ECC tako popravlja 1 bit napake v vsakem poslanem trojčku. Čeprav je enostavna za izvedbo in se pogosto uporablja, je ta trojna modularna odvečnost relativno neučinkovita ECC. Boljše kode ECC običajno pregledajo zadnjih nekaj deset ali celo zadnjih nekaj sto predhodno prejetih bitov, da ugotovijo, kako dekodirati trenutno majhno peščico bitov.

Skoraj vse dvodimenzionalne črtne kode, kot so QR kode, PDF-417, MaxiCode, Datamatrix in Azteška koda, uporabljajo Reed-Solomonovo ECC, da omogočijo pravilno branje, tudi če je del črtne kode poškodovan.

KRIPTOGRAFIJA

Kriptografsko kodiranje je zasnovano na podlagi predpostavk računalniške trdote. Takšnih kodirnih algoritmov je namerno težko razbiti (v praktičnem smislu) kateri koli nasprotnik. Teoretično je mogoče zlomiti tak sistem, vendar je to nemogoče storiti na kateri koli znani praktični način. Te sheme se zato imenujejo računsko varne. Obstajajo informacijsko teoretično varne sheme, ki jih ni mogoče dokazati tudi z neomejeno računalniško močjo, na primer enkratno ploščico, vendar je te sheme v praksi težje uporabiti kot najboljše teoretično zlomljive, vendar računalniško varne mehanizme.

Tradicionalno šifriranje šifriranja temelji na transpozicijski šifri, ki prerazporedi vrstni red črk v sporočilu (npr. "Pozdravljen svet" v "trivialno preprosti shemi preureditve" postane "ehlol owrdl") in nadomestnih šifrah, ki sistematično nadomeščajo črke ali skupine črke z drugimi črkami ali skupinami črk (npr. 'leti naenkrat' postane 'gmz bu podf' tako, da vsako črko nadomesti s tisto, ki ji sledi v latinici). Preproste različice obeh niso nikoli ponujale veliko zaupnosti od podjetnih nasprotnikov. Zgodnja nadomestna šifra je bila Cezarjeva šifra, v kateri je bila vsaka črka v odprtem besedilu zamenjana s črko z določenim številom položajev nižje po abecedi. ROT13 je preprosta šifra za zamenjavo črke, ki v abecedi nadomesti črko s 13. črko za njo. Gre za poseben primer Cezarjeve šifre. Poskusite tukaj!

2. korak: QR kode

QR kode
QR kode

Kode QR (wikipedia) ali "kode za hiter odziv" so vrsta matrične ali dvodimenzionalne črtne kode, ki je bila prvič zasnovana leta 1994 za avtomobilsko industrijo na Japonskem. Črtna koda je strojno berljiva optična nalepka, ki vsebuje podatke o izdelku, na katerega je pritrjena. V praksi kode QR pogosto vsebujejo podatke za lokator, identifikator ali sledilnik, ki kažejo na spletno mesto ali aplikacijo. Koda QR uporablja štiri standardne načine kodiranja (numerično, alfanumerično, bajtno/binarno in kanji) za učinkovito shranjevanje podatkov.

Sistem hitrega odziva je postal priljubljen zunaj avtomobilske industrije zaradi hitre berljivosti in večje shranjevalne zmogljivosti v primerjavi s standardnimi črtnimi kodami UPC. Aplikacije vključujejo sledenje izdelkom, identifikacijo artiklov, časovno sledenje, upravljanje dokumentov in splošno trženje. Koda QR je sestavljena iz črnih kvadratov, razporejenih v kvadratno mrežo na belem ozadju, ki jih lahko prebere slikovna naprava, kot je kamera, in obdela z uporabo popravka napak Reed -Solomon, dokler slike ni mogoče ustrezno interpretirati. Zahtevani podatki se nato izvlečejo iz vzorcev, ki so prisotni tako v vodoravnih kot navpičnih komponentah slike.

Sodobni pametni telefoni običajno samodejno preberejo kode QR (in druge črtne kode). Preprosto odprite aplikacijo za kamero, usmerite kamero na črtno kodo in počakajte sekundo ali dve, da aplikacija za kamero pokaže, da je zaklenjena na črtno kodo. Aplikacija bo včasih takoj prikazala vsebino črtice, vendar bo običajno zahtevala izbiro obvestila o črtni kodi, da prikaže vse podatke, ki so bili izvlečeni iz črtne kode. Junija 2011 je 14 milijonov ameriških mobilnih uporabnikov skeniralo QR kodo ali črtno kodo.

Ali ste s pametnim telefonom brali sporočila, kodirana na zunanji strani HackerBox 0058?

Zanimiv video: Ali lahko v QR kodo vstavite celo igro?

Stari časi se morda spomnijo Cauzin Softstripa iz računalniških revij 80 -ih. (video predstavitev)

Korak: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro temelji na mikrokrmilniku ATmega32U4, ki ima vgrajen vmesnik USB. To pomeni, da med vašim računalnikom in mikrokrmilnikom Arduino ni posrednika FTDI, PL2303, CH340 ali katerega koli drugega čipa.

Predlagamo, da najprej preizkusite Pro Micro brez spajkanja zatičev. Osnovno konfiguracijo in testiranje lahko izvedete brez uporabe zatičev glave. Tudi zamuda pri spajanju modula daje eno manj spremenljivko za odpravljanje napak, če naletite na kakršne koli zaplete.

Če v računalniku nimate nameščenega Arduino IDE, začnite s prenosom obrazca IDE arduino.cc. OPOZORILO: Pred programiranjem Pro Micro ne pozabite izbrati različice 3.3V v orodju> procesor. Ta nastavitev za 5V bo delovala enkrat, nato pa se bo zdelo, da se naprava nikoli ne poveže z vašim računalnikom, dokler ne sledite navodilom »Ponastavi na zagonski program« v spodnjem priročniku, kar je lahko nekoliko težavno.

Sparkfun ima odličen Pro Micro Hookup Guide. Priročnik za priklop vsebuje podroben pregled plošče Pro Micro in nato razdelek za "Namestitev: Windows" in razdelek za "Namestitev: Mac in Linux". Sledite navodilom v ustrezni različici teh navodil za namestitev, da nastavite svoj Arduino IDE za podporo Pro Micro. Običajno začnemo delati z Arduino ploščo tako, da naložimo in/ali spremenimo standardno skico Blink. Vendar Pro Micro ne vključuje običajne LED na pin 13. Na srečo lahko nadzorujemo LED RX/TX. Sparkfun je predstavil lepo skico, ki dokazuje, kako. To je v razdelku Priročnika za priključitev z naslovom "Primer 1: Blinkies!" Preverite, ali lahko sestavite in programirate te Blinkies! primer na Pro Micro, preden greste naprej.

Ko se zdi, da vse deluje za programiranje Pro Micro, je čas, da zatiče glave previdno spajkate na modul. Po spajkanju ploščo znova previdno preizkusite.

Opomba: Zahvaljujoč vgrajenemu oddajniku USB lahko Pro Micro enostavno uporabite za posnemanje človeške vmesniške naprave (HID), kot sta tipkovnica ali miška, in se poigrajte z vbrizgavanjem tipk.

4. korak: QR kode na barvnem LCD zaslonu

QR kode na barvnem LCD zaslonu
QR kode na barvnem LCD zaslonu

LCD zaslon ima 128 x 160 barvnih pik in meri 1,8 palca po diagonali. Gonilniški čip ST7735S (podatkovni list) je mogoče povezati s skoraj vsakim mikrokrmilnikom z uporabo vodila serijskega perifernega vmesnika (SPI). Vmesnik je določen za 3.3V signalizacijo in napajanje.

Modul LCD lahko priključite neposredno na 3.3V Pro Micro s pomočjo 7 FF mostičnih žic:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- Brez povezave

Ta posebna dodelitev pin omogoča privzetim delovanjem primerov knjižnice.

Knjižnico z imenom "Adafruit ST7735 in ST7789" najdete v Arduino IDE z uporabo menija Orodja> Upravljanje knjižnic. Med namestitvijo bo upravitelj knjižnice predlagal nekaj odvisnih knjižnic, ki so priložene tej knjižnici. Dovolite, da namesti tudi te.

Ko je knjižnica nameščena, odprite Datoteke> Primeri> Knjižnica Adafruit ST7735 in ST7789> grafični test

Sestavite in naložite grafični test. Na LCD zaslonu bo ustvaril predstavitev grafike, vendar z nekaj vrsticami in stolpci "hrupnih slikovnih pik" na robu zaslona.

Te "hrupne slikovne pike" lahko popravite tako, da spremenite funkcijo TFT init, ki se uporablja pri vrhu funkcije setup (void).

Komentirajte vrstico kode:

tft.initR (INITR_BLACKTAB);

In komentirajte vrstico nekaj vrstic navzdol:

tft.initR (INITR_GREENTAB);

Reprogramirajte demo in vse bi moralo izgledati lepo.

Zdaj lahko z LCD -zaslonom prikažemo kode QR

Nazaj v meni Arduino IDE Orodja> Upravljanje knjižnic.

Poiščite in namestite knjižnico QRCode.

Prenesite skico QR_TFT.ino, ki je priložena tukaj.

Sestavite in programirajte QR_TFT v ProMicro in preverite, ali lahko z aplikacijo za kamero telefona preberete ustvarjeno kodo QR na LCD zaslonu.

Nekateri projekti uporabljajo navdih za ustvarjanje kode QR

Nadzor dostopa

QR ura

5. korak: Prilagodljiv ploski kabel

Prilagodljiv ploski kabel
Prilagodljiv ploski kabel

Prilagodljiv ploski kabel (FFC) je vsaka vrsta električnih kablov, ki so ploski in prilagodljivi, z ravnimi trdnimi vodniki. FFC je kabel, sestavljen iz fleksibilnega tiskanega vezja (FPC) ali podobnega. Izraza FPC in FFC se včasih uporabljata zamenljivo. Ti izrazi se na splošno nanašajo na izredno tanek ploski kabel, ki ga pogosto najdemo v elektronskih aplikacijah z visoko gostoto, kot so prenosni računalniki in mobilni telefoni. So miniaturna oblika trakovnega kabla, ki je običajno sestavljen iz ravne in prilagodljive plastične folije, z več ploščatimi kovinskimi vodniki, pritrjenimi na eno površino.

FFC -ji so na voljo v različnih velikostih, pri čemer sta pogosti možnosti 1,0 mm in 0,5 mm. Vključena odklopna plošča FPC ima sledi za obe parceli, po eno na vsaki strani tiskanega vezja. Odvisno od želenega koraka se uporablja samo ena stran tiskanega vezja, v tem primeru 0,5 mm. Uporabite oštevilčenje zatiča glave, natisnjenega na isti 0,5 mm strani tiskanega vezja. Oštevilčenje nožic na strani 1,0 mm se ne ujema in se uporablja za drugo uporabo.

Konektorji FFC na prelomu in optičnem bralniku črtne kode so konektorji ZIF (nič sile vstavljanja). To pomeni, da imajo konektorji ZIF mehanski drsnik, ki se odpre na tečajih, preden se vstavi FFC, nato pa se zapre na tečaje, da se priključek pritrdi na FFC, ne da bi pri tem kabel sam in vstavil silo. Pri teh konektorjih ZIF morate omeniti dve pomembni stvari:

1. Oba sta "spodnji stik", kar pomeni, da morajo biti kovinski kontakti na FFC obrnjeni navzdol (proti tiskanemu vezju), ko so vstavljeni.

2. Tečajni drsnik na prelomu je na sprednji strani priključka. To pomeni, da bo FFC šel pod/skozi drsnik na tečaju. Nasprotno pa je tečajni drsnik na optičnem bralniku črtne kode na zadnji strani priključka. To pomeni, da bo FFC vstopil v konektor ZIF z nasprotne strani in ne skozi tečajni drsnik.

Upoštevajte, da imajo druge vrste priključkov FFC/FPC ZIF stranske drsnike, v nasprotju s tečaji na tečaju, ki jih imamo tukaj. Namesto da bi se pomaknili navzgor in navzdol, bočni drsniki zdrsnejo in izstopijo znotraj ravnine priključka. Pred prvo uporabo nove vrste priključka ZIF vedno pozorno preglejte. So precej majhne in jih je mogoče zlahka poškodovati, če jih potisnete izven predvidenega območja ali ravnine gibanja.

6. korak: Čitalnik črtne kode

Skener črtne kode
Skener črtne kode

Ko optični bralnik črtne kode in odklop FPC povežete s prilagodljivim ravnim kablom (FFC), lahko uporabite pet ženskih mostičnih žic za povezavo prekinjenega tiskanega vezja z Arduino Pro Micro:

FPC ---- Pro Micro

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

Ko ste povezani, programirajte skico barscandemo.ino v Pro Micro, odprite serijski monitor in skenirajte vse stvari! Presenetljivo je, koliko predmetov okoli naših domov in pisarn ima črtne kode. Morda celo poznate nekoga s tetovažo črtne kode.

Priloženi priročnik za optični bralnik črtnih kod ima kode, ki jih je mogoče skenirati za konfiguracijo procesorja, vgrajenega v optični bralnik.

7. korak: Hack the Planet

Hack the Planet
Hack the Planet

Upamo, da boste v tem mesecu uživali v HackerBoxovi pustolovščini na področju elektronike in računalniške tehnologije. Obrnite se in delite svoj uspeh v spodnjih komentarjih ali drugih družabnih medijih. Ne pozabite tudi, da lahko kadar koli pošljete e -pošto na [email protected], če imate vprašanje ali potrebujete pomoč.

Kaj je naslednje? Pridružite se revoluciji. Živi HackLife. Vsak mesec dobite kul škatlo opreme, ki jo je mogoče vdreti, in jo dostavite neposredno v nabiralnik. Pojdite na HackerBoxes.com in se prijavite za mesečno naročnino na HackerBox.

Priporočena: