Obsah:

HackerBox 0058: Kódování: 7 kroků
HackerBox 0058: Kódování: 7 kroků

Video: HackerBox 0058: Kódování: 7 kroků

Video: HackerBox 0058: Kódování: 7 kroků
Video: #105 HackerBox 0058 ENCode 2024, Prosinec
Anonim
HackerBox 0058: Kódování
HackerBox 0058: Kódování

Zdravím hackery HackerBox z celého světa! S HackerBox 0058 prozkoumáme kódování informací, čárové kódy, QR kódy, programování Arduino Pro Micro, vestavěné LCD displeje, integraci generování čárových kódů v rámci projektů Arduino, využití vstupního zařízení člověkem a další.

HackerBoxes je služba měsíčního předplatného pro nadšence elektroniky a výpočetní techniky - Hardware Hackers - The Dreamers of Dreams.

Ve FAQ HackerBoxes je k dispozici velké množství informací pro současné i potenciální členy. Téměř všechny e-maily netechnické podpory, které dostáváme, jsou zde již zodpovězeny, takže si velmi vážíme toho, že jste si přečetli FAQ několik minut.

Zásoby

Tento návod obsahuje informace, jak začít s HackerBox 0058. Celý obsah krabice je uveden na stránce produktu pro HackerBox 0058, kde je krabici také možné zakoupit do vyprodání zásob. Pokud byste chtěli každý měsíc automaticky dostávat HackerBox přímo do vaší schránky se slevou 15 $, můžete se přihlásit k odběru na HackerBoxes.com a připojit se k revoluci!

K práci na měsíčním HackerBoxu je obecně zapotřebí páječka, pájka a základní pájecí nástroje. Je také vyžadován počítač pro spuštění softwarových nástrojů. Podívejte se na HackerBox Deluxe Starter Workshop, kde najdete sadu základních nástrojů a širokou škálu úvodních aktivit a experimentů.

A co je nejdůležitější, budete potřebovat smysl pro dobrodružství, hackerského ducha, trpělivost a zvědavost. Vytváření a experimentování s elektronikou, i když je velmi přínosné, může být občas ošidné, náročné a dokonce frustrující. Cílem je pokrok, ne dokonalost. Když vytrváte a užíváte si dobrodružství, lze z tohoto koníčku odvodit velké uspokojení. Udělejte každý krok pomalu, pamatujte na detaily a nebojte se požádat o pomoc

Krok 1: Kódování

Kódování
Kódování

Komunikace, záznam nebo manipulace s informacemi vyžaduje kódování. Protože zpracování, ukládání a sdělování informací jsou podstatou moderní elektroniky, máme s kódováním mnoho starostí.

Jako velmi jednoduchý příklad kódování lze znázornit, kolik očí nebo uší mají, když podržíte dva prsty nebo použijete číslice „2“nebo „] [“nebo použijete slova „dva“nebo „dos“nebo „ Er “nebo„ zwei “. Ve skutečnosti to není tak jednoduché, že? Kódování používané v lidském jazyce, zejména pokud jde o témata jako emoce nebo abstrakce, může být velmi složité.

FYZIKA

Ano, vše vždy začíná fyzikou. V elektronických systémech začneme reprezentací nejjednodušších hodnot elektrickými signály, obvykle napěťovými hladinami. Například NULA může být reprezentována jako zem (přibližně 0 V) a JEDNA jako přibližně 5 V (nebo 3,3 V atd.), Aby se vytvořil binární systém nul a jedniček. I při pouhé NULĚ a JEDNOM často existuje nejednoznačnost k vyřešení. Když je tlačítko stisknuto, je to NULA nebo JEDEN? VYSOKÝ nebo NÍZKÝ? Je signál výběru čipu „aktivní vysoký“nebo „aktivní nízký“? Kdy je možné signál přečíst a jak dlouho bude platný? V komunikačních systémech se tomu říká „kódování řádků“.

Na této nejnižší úrovni jsou reprezentace do značné míry o fyzice systému. Jaká napětí může podporovat, jak rychle může přecházet, jak se laser zapíná a vypíná, jak informační signály modulují vysokofrekvenční nosič, jaká je šířka pásma kanálu nebo dokonce jak koncentrace iontů generují akční potenciály v neuron. U elektroniky jsou tyto informace často uvedeny v impozantních tabulkách datového listu výrobce.

Fyzická vrstva (PHY) nebo vrstva 1 je první a nejnižší vrstvou v sedmivrstvém modelu OSI počítačových sítí. Fyzická vrstva definuje způsob přenosu surových bitů přes fyzické datové spojení spojující síťové uzly. Fyzická vrstva poskytuje přenosové médium elektrickému, mechanickému a procedurálnímu rozhraní. Fyzická vrstva určuje tvary a vlastnosti elektrických konektorů, frekvence, na kterých se má vysílat, kód linky, který se má použít, a podobné parametry nízké úrovně.

ČÍSLA

S JEDNOU a NULOU toho moc nezmůžeme, jinak bychom se vyvinuli tak, že „mluvíme“tím, že na sebe mrkáme očima. Binární hodnoty jsou skvělým začátkem. Ve výpočetních a komunikačních systémech kombinujeme binární číslice (bity) do bytů a „slov“obsahujících například 8, 16, 32 nebo 64 bitů.

Jak tato binární slova odpovídají číslům nebo hodnotám? V jednoduchém 8bitovém bajtu je 00000000 obecně nula a 11111111 je obecně 255, aby poskytoval 2 až 8 nebo 256 různých hodnot. Tím to samozřejmě nekončí, protože existuje mnohem více než 256 čísel a ne všechna čísla jsou kladná celá čísla. Ještě před výpočetními systémy jsme reprezentovali číselné hodnoty pomocí různých číselných systémů, jazyků, základen a za použití technik, jako jsou záporná čísla, imaginární čísla, vědecký zápis, kořeny, poměry a logaritmické stupnice různých různých bází. Pokud jde o číselné hodnoty v počítačových systémech, musíme se potýkat s problémy, jako je strojní epsilon, endianness, pevný bod a plovoucí desetinná čárka.

TEXT (CETERA)

Kromě reprezentování čísel nebo hodnot mohou binární bajty a slova představovat písmena a jiné textové symboly. Nejběžnější formou kódování textu je americký standardní kód pro výměnu informací (ASCII). Jako text lze samozřejmě zakódovat různé druhy informací: knihu, tuto webovou stránku, xml dokument.

V některých případech, jako jsou e -maily nebo příspěvky Usenet, můžeme chtít zakódovat širší typy informací (například obecné binární soubory) jako text. Proces uuencoding je běžnou formou kódování binárního textu. Obrázky můžete dokonce „zakódovat“jako text: ASCII Art nebo ještě lépe ANSI Art.

TEORIE O KÓDOVÁNÍ

Teorie kódování je studium vlastností kódů a jejich vhodnosti pro konkrétní aplikace. Kódy se používají pro kompresi dat, kryptografii, detekci a opravu chyb, přenos dat a ukládání dat. Kódy jsou studovány různými vědními obory za účelem navrhování efektivních a spolehlivých metod přenosu dat. Mezi ukázkové obory patří teorie informací, elektrotechnika, matematika, lingvistika a informatika.

DATA COMPRESSION (odstranění nadbytečnosti)

Komprese dat, zdrojové kódování nebo snížení bitové rychlosti je proces kódování informací s použitím méně bitů než původní reprezentace. Jakákoli konkrétní komprese je buď ztrátová, nebo bezeztrátová. Bezztrátová komprese snižuje bity identifikací a odstraněním statistické redundance. Při bezeztrátové kompresi se neztratí žádné informace. Ztrátová komprese snižuje bity odstraněním nepotřebných nebo méně důležitých informací.

Kompresní metody Lempel – Ziv (LZ) patří mezi nejoblíbenější algoritmy pro bezeztrátové ukládání. V polovině 80. let se po práci Terryho Welche algoritmus Lempel – Ziv – Welch (LZW) rychle stal metodou volby pro většinu univerzálních kompresních systémů. LZW se používá v obrázcích GIF, programech, jako je PKZIP, a hardwarových zařízeních, jako jsou modemy.

Neustále používáme komprimovaná data pro disky DVD, streamování videa ve formátu MPEG, audio ve formátu MP3, grafiku JPEG, soubory ZIP, komprimované tarové kuličky atd.

DETEKCE CHYB A OPRAVA (přidání užitečné redundance)

Detekce a opravy chyb nebo kontrola chyb jsou techniky, které umožňují spolehlivé doručování digitálních dat přes nespolehlivé komunikační kanály. Mnoho komunikačních kanálů je vystaveno šumu kanálu, a proto mohou být během přenosu ze zdroje do přijímače zavedeny chyby. Detekce chyb je detekce chyb způsobených hlukem nebo jinými poruchami během přenosu z vysílače do přijímače. Oprava chyb je detekce chyb a rekonstrukce původních, bezchybných dat.

Detekce chyb se nejjednodušeji provádí pomocí opakování přenosu, paritních bitů, kontrolních součtů nebo CRC nebo hashovacích funkcí. Chybu v přenosu může detekovat (ale obvykle ne opravit) příjemce, který pak může požádat o opakovaný přenos dat.

Kódy pro opravu chyb (ECC) se používají k řízení chyb v datech přes nespolehlivé nebo hlučné komunikační kanály. Hlavní myšlenkou je, že odesílatel kóduje zprávu nadbytečnými informacemi ve formě ECC. Redundance umožňuje přijímači detekovat omezený počet chyb, ke kterým může dojít kdekoli ve zprávě, a často tyto chyby opravit bez opakovaného přenosu. Zjednodušujícím příkladem ECC je vyslat každý datový bit 3krát, což je známé jako (3, 1) opakovací kód. I když se přenáší pouze 0, 0, 0 nebo 1, 1, 1, chyby v hlučném kanálu mohou přijímači prezentovat jakoukoli z osmi možných hodnot (tři bity). To umožňuje opravu chyby v kterémkoli ze tří vzorků „většinovým hlasováním“nebo „demokratickým hlasováním“. Korekční schopnost tohoto ECC tedy opravuje 1 chybový bit v každé přenesené trojici. Ačkoli je tato trojitá modulární redundance jednoduchá na implementaci a široce používaná, je relativně neefektivní ECC. Lepší kódy ECC obvykle zkoumají posledních několik desítek nebo dokonce posledních několik stovek dříve přijatých bitů, aby určily, jak dekódovat současnou malou hrstku bitů.

Téměř všechny dvojrozměrné čárové kódy, jako jsou QR kódy, PDF-417, MaxiCode, Datamatrix a aztécký kód, používají Reed – Solomon ECC, aby umožnily správné čtení, i když je část čárového kódu poškozená.

CRYPTOGRAFIE

Kryptografické kódování je navrženo kolem předpokladů výpočetní tvrdosti. Takové kódovací algoritmy je záměrně obtížné prolomit (v praktickém smyslu) jakýmkoli protivníkem. Je teoreticky možné takový systém prolomit, ale není možné to provést žádnými známými praktickými prostředky. Tato schémata se proto nazývají výpočetně zabezpečená. Existují informačně teoreticky bezpečná schémata, která prokazatelně nelze prolomit ani s neomezeným výpočetním výkonem, jako je například jednorázový blok, ale tato schémata se v praxi používají obtížněji než nejlepší teoreticky rozbitné, ale výpočetně bezpečné mechanismy.

Tradiční šifrovací šifrování je založeno na transpoziční šifře, která přeskupuje pořadí písmen ve zprávě (např. „Ahoj svět“se v triviálně jednoduchém schématu přeuspořádání stane „ehlol owrdl“) a na substitučních šifrách, které systematicky nahrazují písmena nebo skupiny písmena s jinými písmeny nebo skupinami písmen (např. „létat najednou“se stane „gmz bu podf“nahrazením každého písmene písmenem, které za ním následuje v latinské abecedě). Jednoduché verze obou nikdy nenabídly velkou důvěrnost od podnikavých protivníků. Časná substituční šifra byla Caesarova šifra, ve které bylo každé písmeno v otevřeném textu nahrazeno písmenem o určitý počet pozic dále v abecedě. ROT13 je jednoduchá šifra pro substituci písmen, která v abecedě nahrazuje písmeno 13. po něm. Je to zvláštní případ Caesarovy šifry. Zkuste to zde!

Krok 2: QR kódy

QR kódy
QR kódy

QR kódy (wikipedie) nebo „kódy rychlé odezvy“jsou typem maticového nebo dvourozměrného čárového kódu, který byl poprvé navržen v roce 1994 pro automobilový průmysl v Japonsku. Čárový kód je strojově čitelný optický štítek, který obsahuje informace o položce, ke které je připojen. V praxi QR kódy často obsahují data pro lokátor, identifikátor nebo tracker, který ukazuje na web nebo aplikaci. K efektivnímu ukládání dat používá QR kód čtyři standardizované režimy kódování (numerické, alfanumerické, bajtové/binární a kanji).

Systém Quick Response se stal oblíbeným mimo automobilový průmysl díky jeho rychlé čitelnosti a větší úložné kapacitě ve srovnání se standardními čárovými kódy UPC. Aplikace zahrnují sledování produktů, identifikaci položek, sledování času, správu dokumentů a obecný marketing. QR kód se skládá z černých čtverečků uspořádaných do čtvercové mřížky na bílém pozadí, které lze přečíst zobrazovacím zařízením, jako je kamera, a zpracovávat je pomocí korekce chyb Reed – Solomon, dokud nelze obrázek vhodně interpretovat. Požadovaná data jsou poté extrahována ze vzorů, které jsou přítomny v horizontálních i vertikálních komponentách obrazu.

Moderní smartphony obvykle automaticky čtou QR kódy (a další čárové kódy). Jednoduše otevřete aplikaci fotoaparátu, nasměrujte kameru na čárový kód a počkejte jednu nebo dvě sekundy, než aplikace fotoaparátu oznámí, že je uzamčena na čárovém kódu. Aplikace někdy zobrazí obsah čárového kódu okamžitě, ale obvykle aplikace vyžaduje výběr oznámení o čárovém kódu, aby se zobrazily jakékoli informace, které byly z čárového kódu extrahovány. Během měsíce června 2011 naskenovalo 14 milionů amerických mobilních uživatelů QR kód nebo čárový kód.

Použili jste svůj smartphone ke čtení zpráv kódovaných na vnější straně HackerBox 0058?

Zajímavé video: Dokážete do QR kódu vměstnat celou hru?

Staří časovači si možná pamatují Cauzin Softstrip z počítačových časopisů z 80. let. (ukázka videa)

Krok 3: Arduino Pro Micro 3,3 V 8 MHz

Arduino Pro Micro 3,3 V 8 MHz
Arduino Pro Micro 3,3 V 8 MHz

Arduino Pro Micro je založen na mikrokontroléru ATmega32U4, který má vestavěné rozhraní USB. To znamená, že mezi vaším počítačem a mikrokontrolérem Arduino nepůsobí žádný FTDI, PL2303, CH340 ani žádný jiný čip.

Doporučujeme nejprve otestovat Pro Micro bez pájení kolíků na místo. Základní konfiguraci a testování můžete provádět bez použití kolíků záhlaví. Také zpoždění pájení k modulu dává o jednu proměnnou méně k ladění, pokud narazíte na jakékoli komplikace.

Pokud ve svém počítači nemáte nainstalované IDE Arduino, začněte stažením formuláře IDE arduino.cc. VAROVÁNÍ: Před programováním Pro Micro nezapomeňte vybrat verzi 3.3V v části tools> processor. Mít tuto sadu pro 5V bude fungovat jednou a pak se bude zdát, že se zařízení nikdy nepřipojí k vašemu PC, dokud nebudete postupovat podle pokynů „Reset to Bootloader“v níže diskutovaném průvodci, což může být trochu ošidné.

Sparkfun má skvělý průvodce Pro Micro Hookup Guide. Průvodce připojením obsahuje podrobný přehled desky Pro Micro a dále část „Instalace: Windows“a část „Instalace: Mac a Linux“. Chcete -li, aby vaše Arduino IDE bylo nakonfigurováno tak, aby podporovalo Pro Micro, postupujte podle pokynů v příslušné verzi těchto pokynů k instalaci. S deskou Arduino obvykle začínáme pracovat načtením a/nebo úpravou standardní skici Blink. Pro Micro však neobsahuje obvyklou LED na pinu 13. Naštěstí můžeme ovládat LED diody RX/TX. Sparkfun poskytl úhledný malý náčrt, který ukazuje, jak na to. Toto je v části Průvodce připojením s názvem „Příklad 1: Blinkies!“Ověřte, že můžete sestavit a naprogramovat tento Blinkies! na Pro Micro, než se pohnete vpřed.

Jakmile se zdá, že vše funguje k programování Pro Micro, je čas opatrně připájet kolíkové lišty na modul. Po pájení desku znovu pečlivě vyzkoušejte.

Pro informaci: Díky integrovanému transceiveru USB lze Pro Micro snadno použít k emulaci zařízení HID (Human Interface Device), jako je klávesnice nebo myš, a hrát si se vstřikováním kláves.

Krok 4: QR kódy na plnobarevném LCD displeji

QR kódy na plnobarevném LCD displeji
QR kódy na plnobarevném LCD displeji

LCD displej má 128 x 160 barevných pixelů a úhlopříčku měří 1,8 palce. Čip ovladače ST7735S (datový list) lze propojit s téměř jakýmkoli mikrokontrolérem pomocí sběrnice SPI (Serial Peripheral Interface). Rozhraní je určeno pro signalizaci 3,3 V a napájení.

Modul LCD lze připojit přímo k 3.3V Pro Micro pomocí propojovacích vodičů 7 FF:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- Žádné připojení

Toto konkrétní přiřazení pinů umožňuje, aby příklady knihovny fungovaly ve výchozím nastavení.

Knihovnu s názvem „Adafruit ST7735 a ST7789“najdete v Arduino IDE pomocí nabídky Nástroje> Spravovat knihovny. Při instalaci vám správce knihovny navrhne několik závislých knihoven, které jsou součástí této knihovny. Nechte je také nainstalovat.

Jakmile je tato knihovna nainstalována, otevřete Soubory> Příklady> Knihovna Adafruit ST7735 a ST7789> graphicstest

Zkompilujte a nahrajte grafický test. Na LCD displeji vygeneruje grafické demo, ale s některými řádky a sloupci „hlučných pixelů“na okraji displeje.

Tyto „hlučné pixely“lze opravit změnou funkce inicializace TFT používané v horní části funkce nastavení (neplatnost).

Okomentujte řádek kódu:

tft.initR (INITR_BLACKTAB);

A odkomentujte řádek o několik řádků níže:

tft.initR (INITR_GREENTAB);

Přeprogramujte demo a vše by mělo vypadat hezky.

Nyní můžeme použít LCD k zobrazení QR kódů

Zpět do nabídky Arduino IDE Nástroje> Spravovat knihovny.

Vyhledejte a nainstalujte QRCode knihovny.

Zde si stáhněte skicu QR_TFT.ino.

Zkompilujte a naprogramujte QR_TFT do ProMicro a zjistěte, zda můžete pomocí aplikace fotoaparátu telefonu načíst vygenerovaný QR kód na LCD displeji.

Některé projekty využívající pro inspiraci generování QR kódu

Řízení přístupu

Hodiny QR

Krok 5: Flexibilní plochý kabel

Flexibilní plochý kabel
Flexibilní plochý kabel

Flexibilní plochý kabel (FFC) je jakýkoli druh elektrického kabelu, který je plochý i ohebný, s plochými plnými vodiči. FFC je kabel vytvořený z flexibilního tištěného obvodu (FPC) nebo jemu podobný. Pojmy FPC a FFC se někdy používají zaměnitelně. Tyto termíny obecně označují extrémně tenký plochý kabel, který se často vyskytuje v elektronických aplikacích s vysokou hustotou, jako jsou notebooky a mobilní telefony. Jedná se o miniaturizovanou formu plochého kabelu, která se obvykle skládá z ploché a pružné základny z plastové fólie s několika plochými kovovými vodiči spojenými s jedním povrchem.

FFC se dodávají v různých roztečích pinů, přičemž dvě běžné možnosti jsou 1,0 mm a 0,5 mm. Přiložená oddělovací deska FPC má stopy pro obě tato hřiště, jednu na každé straně desky plošných spojů. V závislosti na požadované rozteči je použita pouze jedna strana desky plošných spojů, v tomto případě 0,5 mm. Ujistěte se, že používáte číslování záhlaví vytištěné na stejné 0,5 mm straně desky plošných spojů. Číslování pinů na straně 1,0 mm se neshoduje a používá se pro jinou aplikaci.

Konektory FFC na úlomku i na čtečce čárových kódů jsou konektory ZIF (nulová vložná síla). To znamená, že konektory ZIF mají mechanický jezdec, který je před vložením FFC odklápěcí a poté zavěšený zavřený, aby se konektor utáhl na FFC, aniž by se na samotný kabel kladla a vkládala síla. K těmto konektorům ZIF je třeba poznamenat dvě důležité věci:

1. Oba jsou "spodním kontaktem", což znamená, že kovové kontakty na FFC musí při vložení směřovat dolů (směrem k DPS).

2. Kloubový jezdec na vylomení je na přední straně konektoru. To znamená, že FFC přejde pod/přes sklopný posuvník. Oproti tomu sklopný jezdec na čtečce čárových kódů je na zadní straně konektoru. To znamená, že FFC vstoupí do konektoru ZIF z opačné strany, a ne přes sklopný posuvník.

Mějte na paměti, že jiné typy konektorů ZIF FFC/FPC mají boční posuvníky na rozdíl od sklopných posuvníků, které zde máme. Namísto sklápění nahoru a dolů se boční posuvníky zasouvají dovnitř a ven v rovině konektoru. Před použitím nového typu konektoru ZIF se vždy pečlivě podívejte. Jsou poměrně malé a lze je snadno poškodit, pokud jsou vytlačeny mimo zamýšlený rozsah nebo rovinu pohybu.

Krok 6: Skener čárových kódů

Čtečka kódů
Čtečka kódů

Jakmile jsou čtečka čárových kódů a FPC breakout propojeny Flexibilním plochým kabelem (FFC), lze k propojení desky Breakout PCB s Arduino Pro Micro použít pět propojovacích kabelů:

FPC ---- Pro Micro

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

Po připojení naprogramujte sketch BarScandemo.ino do Pro Micro, otevřete Sériový Monitor a skenujte všechny věci! Může být překvapivé, kolik předmětů kolem našich domovů a kanceláří má na sobě čárové kódy. Možná dokonce znáte někoho s tetováním čárovým kódem.

Přiložená příručka ke čtečce čárových kódů obsahuje kódy, které lze naskenovat pro konfiguraci procesoru zabudovaného ve skeneru.

Krok 7: Hackujte planetu

Hackujte planetu
Hackujte planetu

Doufáme, že si tento měsíc užijete dobrodružství HackerBox v oblasti elektroniky a výpočetní techniky. Oslovte a podělte se o svůj úspěch v níže uvedených komentářích nebo jiných sociálních médiích. Pamatujte také, že pokud máte dotaz nebo potřebujete pomoc, můžete kdykoli poslat e -mail na adresu [email protected].

Co bude dál? Připojte se k revoluci. Žijte HackLife. Nechte si každý měsíc doručit skvělou krabici hackerského vybavení přímo do vaší poštovní schránky. Procházejte stránky HackerBoxes.com a zaregistrujte se k odběru měsíčního předplatného HackerBox.

Doporučuje: