Съдържание:

HackerBox 0058: Кодиране: 7 стъпки
HackerBox 0058: Кодиране: 7 стъпки

Видео: HackerBox 0058: Кодиране: 7 стъпки

Видео: HackerBox 0058: Кодиране: 7 стъпки
Видео: #105 HackerBox 0058 ENCode 2024, Юли
Anonim
HackerBox 0058: Кодиране
HackerBox 0058: Кодиране

Поздрави на HackerBox хакери по целия свят! С HackerBox 0058 ще изследваме кодирането на информация, баркодовете, QR кодовете, програмирането на Arduino Pro Micro, вградените LCD дисплеи, интегрирането на генерирането на баркод в проектите на Arduino, експлоатациите на устройства за въвеждане на хора и др.

HackerBoxes е услугата за месечни абонаментни кутии за ентусиасти на електрониката и компютърните технологии - Хардуерни хакери - Мечтателите на мечтите.

В често задаваните въпроси за HackerBoxes има богата информация за настоящи и бъдещи членове. Почти всички имейли за нетехническа поддръжка, които получаваме, вече са отговорени там, така че наистина оценяваме, че отделихте няколко минути, за да прочетете често задаваните въпроси.

Консумативи

Тази инструкция съдържа информация за започване на работа с HackerBox 0058. Цялото съдържание на кутията е изброено на страницата с продукти за HackerBox 0058, където кутията също е достъпна за закупуване до изчерпване на количествата. Ако искате автоматично да получавате такъв HackerBox точно във вашата пощенска кутия всеки месец с отстъпка от 15 долара, можете да се абонирате на HackerBoxes.com и да се присъедините към революцията!

Поялник, спойка и основни инструменти за запояване обикновено са необходими за работа върху месечния HackerBox. Необходим е и компютър за стартиране на софтуерни инструменти. Разгледайте HackerBox Deluxe Starter Workshop за набор от основни инструменти и широк спектър от уводни дейности и експерименти.

Най -важното е, че ще имате нужда от приключение, хакерски дух, търпение и любопитство. Изграждането и експериментирането с електроника, макар и много възнаграждаващо, може да бъде сложно, предизвикателно и дори разочароващо понякога. Целта е напредък, а не съвършенство. Когато упорствате и се наслаждавате на приключението, от това хоби може да се получи голямо удовлетворение. Вземете всяка стъпка бавно, обърнете внимание на детайлите и не се страхувайте да помолите за помощ

Стъпка 1: Кодиране

Кодиране
Кодиране

Комуникирането, записването или манипулирането на информация изисква кодиране. Тъй като обработката, съхраняването и предаването на информация са същността на съвременната електроника, имаме много кодиране, за което да се тревожим.

Като много прост пример за кодиране може да се представи колко очи или уши имат, като държите вдигнати два пръста, или като използвате цифрите "2" или "] [" или като използвате думите "два" или "dos" или " Er "или" zwei ". Всъщност не е толкова просто, нали? Кодирането, използвано на човешки език, особено по теми като емоции или абстракция, може да стане много сложно.

ФИЗИКА

Да, винаги всичко започва с физиката. В електронните системи започваме с представяне на най -простите стойности чрез електрически сигнали, обикновено нива на напрежение. Например, ZERO може да бъде представен като земя (приблизително 0V) и ONE като приблизително 5V (или 3.3V и т.н.), за да съставят двоична система от нули и единици. Дори само с нула и едно, често има неясноти за разрешаване. При натискане на бутона това НУЛА или ЕДИН? ВИСОК или НИСКИ? Сигналът за избор на чип „активен висок“или „активен нисък“ли е? По кое време може да се прочете сигнал и за колко време ще бъде валиден? В комуникационните системи това се нарича "линейно кодиране".

На това най -ниско ниво представите са до голяма степен за физиката на системата. Какво напрежение може да поддържа, колко бързо може да премине, как лазерът се включва и изключва, как информационните сигнали модулират радиочестотен носител, каква е честотната лента на канала или дори как концентрациите на йони генерират потенциали за действие в неврон. За електрониката тази информация често се предоставя в внушителните таблици на листа с данни на производителя.

Физическият слой (PHY) или слой 1 е първият и най-ниският слой в седемслойния OSI модел на компютърни мрежи. Физическият слой определя средствата за предаване на необработени битове през физическа връзка за данни, свързваща мрежови възли. Физическият слой осигурява електрически, механичен и процедурен интерфейс към предавателната среда. Формите и свойствата на електрическите конектори, честотите за излъчване, кодът на линията за използване и подобни параметри на ниско ниво се определят от физическия слой.

НОМЕРА

Не можем да направим много само с ЕДИН и НУЛА, или щяхме да се развием, за да „говорим“, като мигаме с очи един към друг. Двоичните стойности обаче са чудесно начало. В изчислителните и комуникационните системи комбинираме двоични цифри (битове) в байтове и "думи", съдържащи например 8, 16, 32 или 64 бита.

Как тези двоични думи съответстват на числа или стойности? В прост 8-битов байт 00000000 обикновено е нула, а 11111111 обикновено е 255, за да осигури 2 към 8 или 256 различни стойности. Разбира се, това не спира дотук, защото има много повече от 256 числа и не всички числа са положителни числа. Още преди изчислителните системи, ние представяхме числени стойности, използвайки различни бройни системи, езици, бази и използвайки техники като отрицателни числа, въображаеми числа, научна нотация, корени, съотношения и логаритмични скали на различни различни бази. За числените стойности в компютърните системи трябва да се борим с въпроси като машинен епсилон, ендианност, представяне с фиксирана точка и плаваща запетая.

ТЕКСТ (CETERA)

В допълнение към представяне на числа или стойности, двоичните байтове и думи могат да представляват букви и други текстови символи. Най -често срещаната форма на кодиране на текст е Американският стандартен код за обмен на информация (ASCII). Разбира се, различни видове информация могат да бъдат кодирани като текст: книга, тази уеб страница, xml документ.

В някои случаи, като например имейли или публикации в Usenet, може да искаме да кодираме по -широки типове информация (като общи двоични файлове) като текст. Процесът на uuencoding е често срещана форма на двоично-текстово кодиране. Можете дори да "кодирате" изображения като текст: ASCII Art или още по -добре ANSI Art.

ТЕОРИЯ ЗА КОДИРАНЕ

Теорията на кодирането е изследване на свойствата на кодовете и съответната им годност за специфични приложения. Кодовете се използват за компресиране на данни, криптография, откриване и коригиране на грешки, предаване на данни и съхранение на данни. Кодовете се изучават от различни научни дисциплини с цел проектиране на ефективни и надеждни методи за предаване на данни. Примерните дисциплини включват теория на информацията, електротехника, математика, лингвистика и компютърни науки.

КОМПРЕСИРАНЕ НА ДАННИ (премахване на излишъка)

Компресирането на данни, кодирането на източника или намаляването на битрейта е процесът на кодиране на информация, използваща по-малко битове от оригиналното представяне. Всяка конкретна компресия е или със загуба, или без загуба. Компресията без загуби намалява битовете, като идентифицира и елиминира статистическата излишност. При компресиране без загуби не се губи информация. Компресията със загуба намалява битовете, като премахва ненужната или по -малко важна информация.

Методите за компресиране на Lempel – Ziv (LZ) са сред най -популярните алгоритми за съхранение без загуби. В средата на 80-те години, след работата на Тери Уелч, алгоритъмът Lempel – Ziv – Welch (LZW) бързо се превърна в метод на избор за повечето системи за компресиране с общо предназначение. LZW се използва в-g.webp

Ние постоянно използваме компресирани данни за DVD, поточно MPEG видео, MP3 аудио, JPEG графики, ZIP файлове, компресирани катранени топки и т.н.

ОТКРИВАНЕ НА ГРЕШКИ И КОРЕКЦИЯ (добавяне на полезна резервираност)

Откриването и коригирането на грешки или контролът на грешките са техники, които позволяват надеждна доставка на цифрови данни по ненадеждни комуникационни канали. Много комуникационни канали са обект на канален шум и по този начин могат да възникнат грешки по време на предаването от източника към приемника. Откриването на грешки е откриването на грешки, причинени от шум или други нарушения по време на предаването от предавателя към приемника. Корекцията на грешки е откриване на грешки и възстановяване на оригиналните данни без грешки.

Откриването на грешки най -просто се извършва чрез повторение на предаване, битове за паритет, контролни суми или CRC или хеш функции. Грешка в предаването може да бъде открита (но обикновено не коригирана) от приемника, който след това може да поиска повторно предаване на данните.

Кодовете за коригиране на грешки (ECC) се използват за контролиране на грешки в данните по ненадеждни или шумни комуникационни канали. Централната идея е подателят да кодира съобщението с излишна информация под формата на ECC. Излишъкът позволява на приемника да открие ограничен брой грешки, които могат да възникнат навсякъде в съобщението, и често да коригира тези грешки без повторно предаване. Опростен пример за ECC е предаването на всеки бит данни 3 пъти, което е известно като (3, 1) код за повторение. Въпреки че се предават само 0, 0, 0 или 1, 1, 1, грешките в шумния канал могат да представят всяка от осемте възможни стойности (три бита) на приемника. Това позволява грешка в някоя от трите извадки да бъде коригирана чрез „гласуване с мнозинство“или „демократично гласуване“. По този начин коригиращата способност на този ECC коригира 1 бит за грешка във всеки предаден триплет. Макар и лесна за изпълнение и широко използвана, тази тройна модулна излишък е относително неефективна ECC. По -добрите ECC кодове обикновено изследват последните няколко десетки или дори последните няколко стотици предварително получени бита, за да се определи как да се декодира текущата малка шепа битове.

Почти всички двуизмерни баркодове, като QR кодове, PDF-417, MaxiCode, Datamatrix и Aztec Code използват Reed – Solomon ECC, за да позволят правилно четене, дори ако част от баркода е повреден.

КРИПТОГРАФИЯ

Криптографското кодиране е проектирано около предположения за изчислителна твърдост. Такива алгоритми за кодиране са умишлено трудни за разбиване (в практически смисъл) от всеки противник. Теоретично е възможно да се разбие такава система, но е невъзможно да се направи това с известни практически средства. Следователно тези схеми се наричат изчислително сигурни. Съществуват теоретично сигурни схеми за информация, които доказуемо не могат да бъдат нарушени дори с неограничена изчислителна мощност, като например еднократната подложка, но тези схеми са по-трудни за използване на практика от най-добрите теоретично разбиваеми, но изчислително сигурни механизми.

Традиционното шифроване на шифър се основава на транспониращ шифър, който пренарежда реда на буквите в съобщението (например, „здравей свят“става „ehlol owrdl“в тривиално проста схема за пренареждане) и заместващи шифри, които системно заменят букви или групи от букви с други букви или групи от букви (напр. „летете наведнъж“става „gmz bu podf“, като замените всяка буква с тази след нея в латинската азбука). Простите версии на двете никога не са предлагали голяма поверителност от предприемчиви противници. Един ранен заместващ шифър беше шифърът на Цезар, при който всяка буква в открития текст беше заменена с буква с определен фиксиран брой позиции по -надолу по азбуката. ROT13 е прост шифър за заместване на буква, който заменя буква с 13 -та буква след нея, в азбуката. Това е специален случай на шифъра на Цезар. Опитайте тук!

Стъпка 2: QR кодове

QR кодове
QR кодове

QR кодовете (wikipedia) или „кодовете за бърз отговор“са вид матричен или двуизмерен баркод, създаден за първи път през 1994 г. за автомобилната индустрия в Япония. Баркодът е машинно четим оптичен етикет, който съдържа информация за елемента, към който е прикрепен. На практика QR кодовете често съдържат данни за локатор, идентификатор или тракер, които сочат към уебсайт или приложение. QR код използва четири стандартизирани режима на кодиране (цифров, буквено -цифров, байт/двоичен и канджи) за ефективно съхраняване на данни.

Системата за бърз отговор стана популярна извън автомобилната индустрия поради бързата си четливост и по -големия капацитет за съхранение в сравнение със стандартните UPC баркодове. Приложенията включват проследяване на продукти, идентификация на артикули, проследяване на времето, управление на документи и общ маркетинг. QR кодът се състои от черни квадрати, подредени в квадратна решетка на бял фон, които могат да бъдат прочетени от устройство за изобразяване, като например камера, и обработени с помощта на корекция на грешки на Рийд -Соломон, докато изображението може да бъде интерпретирано по подходящ начин. След това необходимите данни се извличат от шаблони, които присъстват както в хоризонталните, така и във вертикалните компоненти на изображението.

Съвременните смартфони обикновено автоматично ще четат QR кодове (и други баркодове). Просто отворете приложението за камера, насочете камерата към баркода и изчакайте секунда или две, докато приложението за камера покаже, че е заключено към баркода. Приложението понякога ще показва незабавно съдържанието на баркона, но обикновено приложението ще изисква избор на известие за баркод, за да покаже каквато и да е информация, извлечена от баркода. През месец юни 2011 г. 14 милиона американски мобилни потребители сканираха QR код или баркод.

Използвали ли сте своя смартфон, за да прочетете съобщенията, кодирани от външната страна на HackerBox 0058?

Интересно видео: Можете ли да поставите цяла игра в QR код?

Старите таймери може би си спомнят Cauzin Softstrip от компютърни списания от 80 -те. (видео демонстрация)

Стъпка 3: Arduino Pro Micro 3.3V 8MHz

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

Arduino Pro Micro е базиран на микроконтролера ATmega32U4, който има вграден USB интерфейс. Това означава, че няма FTDI, PL2303, CH340 или друг чип, действащ като посредник между вашия компютър и микроконтролера Arduino.

Предлагаме първо да тествате Pro Micro без запояване на щифтовете на място. Можете да извършите основната конфигурация и тестване без да използвате щифтовете на заглавката. Също така, забавянето на запояването към модула дава една променлива по -малко за отстраняване на грешки, ако срещнете някакви усложнения.

Ако нямате инсталирана Arduino IDE на вашия компютър, започнете с изтеглянето на IDE формуляра arduino.cc. ПРЕДУПРЕЖДЕНИЕ: Не забравяйте да изберете версията 3.3V под инструменти> процесор, преди да програмирате Pro Micro. Това задаване на 5V ще работи веднъж и тогава устройството ще изглежда никога да не се свързва с вашия компютър, докато не следвате инструкциите „Нулиране на зареждащия механизъм“в ръководството, обсъдено по -долу, което може да бъде малко трудно.

Sparkfun има страхотно ръководство за Pro Micro Hookup. Ръководството за свързване има подробен преглед на платката Pro Micro и след това раздел за „Инсталиране: Windows“и раздел за „Инсталиране: Mac и Linux“. Следвайте указанията в съответната версия на тези инструкции за инсталиране, за да настроите вашата Arduino IDE да бъде конфигурирана да поддържа Pro Micro. Обикновено започваме да работим с дъска Arduino, като зареждаме и/или променяме стандартната скица на Blink. Pro Micro обаче не включва обичайния светодиод на щифт 13. За щастие можем да контролираме RX/TX светодиодите. Sparkfun предостави чиста малка скица, за да демонстрира как. Това е в раздела на Ръководството за свързване, озаглавен „Пример 1: Мигащи части!“Проверете дали можете да компилирате и програмирате това Blinkies! пример върху Pro Micro, преди да продължите напред.

След като изглежда, че всичко работи, за да програмирате Pro Micro, е време внимателно да запоите щифтовете на заглавката към модула. След запояване, внимателно тествайте отново платката.

Обяснение: Благодарение на вградения си USB трансивър, Pro Micro може лесно да се използва за емулиране на устройство с човешки интерфейс (HID), като например клавиатура или мишка, и да играете с инжектиране на клавиши.

Стъпка 4: QR кодове на пълноцветен LCD дисплей

QR кодове на пълноцветен LCD дисплей
QR кодове на пълноцветен LCD дисплей

LCD дисплеят разполага с 128 x 160 пълноцветни пиксела и е с размери 1,8 инча по диагонала. Чип драйверът ST7735S (лист с данни) може да бъде свързан от почти всеки микроконтролер, използвайки шина за сериен периферен интерфейс (SPI). Интерфейсът е специфициран за 3.3V сигнализация и захранване.

LCD модулът може да бъде свързан директно към 3.3V Pro Micro, като се използват 7 FF Jumper проводници:

LCD ---- Pro Micro

GND ---- GND VCC ---- VCC SCL ---- 15 SDA ---- 16 RES ---- 9 DC ----- 8 CS ----- 10 BL ----- Няма връзка

Това специфично присвояване на щифтове позволява на библиотечните примери да работят по подразбиране.

Библиотеката, наречена „Adafruit ST7735 и ST7789“, може да бъде намерена в Arduino IDE чрез меню Инструменти> Управление на библиотеки. Докато инсталирате, мениджърът на библиотеката ще предложи няколко зависими библиотеки, които вървят с тази библиотека. Позволете му да инсталира и тези.

След като тази библиотека е инсталирана, отворете Файлове> Примери> Adafruit ST7735 и ST7789 Library> graphicstest

Компилирайте и качете графичен тест. Той ще генерира графична демонстрация на LCD дисплея, но с някои редове и колони с „шумни пиксели“в края на дисплея.

Тези „шумни пиксели“могат да бъдат коригирани чрез промяна на функцията TFT init, използвана в горната част на функцията за настройка (void).

Коментирайте реда на кода:

tft.initR (INITR_BLACKTAB);

И разкомментирайте реда няколко реда надолу:

tft.initR (INITR_GREENTAB);

Препрограмирайте демото и всичко трябва да изглежда добре.

Сега можем да използваме LCD дисплея за показване на QR кодове

Обратно към менюто на Arduino IDE Инструменти> Управление на библиотеки.

Намерете и инсталирайте QRCode на библиотеката.

Изтеглете скицата QR_TFT.ino, приложена тук.

Компилирайте и програмирайте QR_TFT в ProMicro и вижте дали можете да използвате приложението за камера на телефона си, за да прочетете генерирания QR код на LCD дисплея.

Някои проекти, използващи генериране на QR код за вдъхновение

Контрол на достъпа

QR часовник

Стъпка 5: Гъвкав плосък кабел

Гъвкав плосък кабел
Гъвкав плосък кабел

Гъвкав плосък кабел (FFC) е всякакъв вид плоски и гъвкави електрически кабели с плоски твърди проводници. FFC е кабел, образуван от или подобен на гъвкава печатна схема (FPC). Термините FPC и FFC понякога се използват взаимозаменяемо. Тези термини обикновено се отнасят до изключително тънък плосък кабел, често срещан в електронни приложения с висока плътност, като лаптопи и мобилни телефони. Те са миниатюрна форма на лентов кабел, който обикновено се състои от плоска и гъвкава основа от пластмасово фолио, с множество плоски метални проводници, свързани към една повърхност.

FFC се предлагат в различни размери на щифтове с 1,0 mm и 0,5 mm като две общи опции. Включената FPC пробивна дъска има следи и за двата терена, по един от всяка страна на печатната платка. Използва се само едната страна на печатната платка в зависимост от желаната стъпка, в този случай 0,5 мм. Не забравяйте да използвате номерацията на щифта на заглавката, отпечатана от същата страна от 0,5 мм на печатната платка. Номерацията на щифтовете от страната на 1,0 мм не съвпада и се използва за различно приложение.

Съединителите FFC както на пробива, така и на скенера за баркод са съединители ZIF (нулева сила на вмъкване). Това означава, че конекторите ZIF имат механичен плъзгач, който се отваря на панти, преди да се постави FFC, и след това се затваря на панти, за да се затегне конекторът към FFC, без да се поставя и вкарва сила върху самия кабел. Две важни неща, които трябва да се отбележат за тези ZIF конектори:

1. И двата са "долен контакт", което означава, че металните контакти на FFC трябва да са обърнати надолу (към печатната платка), когато са поставени.

2. Шарнирният плъзгач на пробива е отпред на конектора. Това означава, че FFC ще мине под/през шарнирния плъзгач. За разлика от това, шарнирният плъзгач на скенера за баркод е на гърба на конектора. Това означава, че FFC ще влезе в конектора ZIF от противоположната страна, а не през шарнирния плъзгач.

Имайте предвид, че други видове FFC/FPC ZIF конектори имат странични плъзгачи, за разлика от шарнирните плъзгачи, които имаме тук. Вместо да завиват нагоре и надолу, страничните плъзгачи се плъзгат навътре и навън в равнината на съединителя. Винаги гледайте внимателно, преди да използвате нов тип конектор ZIF. Те са доста малки и могат лесно да се повредят, ако бъдат принудени извън предвидения им обхват или равнина на движение.

Стъпка 6: Скенер за баркод

Баркод скенер
Баркод скенер

След като скенерът за баркод и пробивът на FPC са свързани чрез гъвкавия плосък кабел (FFC), пет женски джъмперни проводника могат да се използват за свързване на пробивната платка към Arduino Pro Micro:

FPC ---- Pro Micro

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

След като се свържете, програмирайте скицата barcandemo.ino в Pro Micro, отворете серийния монитор и сканирайте всички неща! Може да е изненадващо колко обекти около домовете и офисите ни имат баркодове. Може дори да познавате някой с татуировка с баркод.

Приложеното ръководство за скенер за баркод има кодове, които могат да бъдат сканирани за конфигуриране на процесора, вграден в скенера.

Стъпка 7: Хакнете планетата

Хакнете планетата
Хакнете планетата

Надяваме се да се насладите на приключението HackerBox този месец в електрониката и компютърните технологии. Посетете и споделете успеха си в коментарите по -долу или в други социални медии. Също така не забравяйте, че можете да изпратите имейл на [email protected] по всяко време, ако имате въпрос или имате нужда от помощ.

Какво следва? Присъединете се към революцията. Изживейте HackLife. Вземете готина кутия с хакерски съоръжения, доставяни директно до вашата пощенска кутия всеки месец. Сърфирайте към HackerBoxes.com и се регистрирайте за месечния си абонамент за HackerBox.

Препоръчано: