- Па, шта је уопште овај КР код?
- Генерисање вашег сопственог КР кода
- Претварање ПНГ-а у БМП формат
- Претворите БМП слику у низ ХЕКС кодова
- Кружни дијаграм
- Објашњење кода
Код „брзог одговора“ или скраћено КР код постао је суштински део нашег дигиталног живота, шансе су да сте их већ подсвесно познавали, вероватно сте већ лутали око своје локалне прехрамбене продавнице или можда јесте. читајући своју омиљену књигу, или чак можда вршите онлајн плаћање путем Гоогле Паи-а, ПхонеПе-а или Паитм-а, или сурфање Интернетом итд. (претпостављам да бих могао да набрајам и даље са примерима, ха?) и случајно сте дошли преко ове чудне четвртасте ствари и помисли, шта је уопште та квадратна ствар и ако нисте… па, не брините да ће се то догодити пре или касније, па да бисмо боље разумели тему, урадићемо забаван мали пројекат са Ардуином и ОЛЕД-ом и демистификујте следеће ствари:
- Основни концепт КР кода.
- Како то ради.
- Како направити свој властити КР код помоћу Ардуина.
- И на крају, прикажите га на ОЛЕД (ССД1306) екрану.
Па, шта је уопште овај КР код?
КР код (Куицк Респонсе цоде) је матрични 2Д код за читање података великом брзином, који је развио ДЕНСО ВАВЕ 1994. године за аутомобилску индустрију Јапана. КР код компримује податке врло ефикасно у поређењу са стандардним баркодом, да би се то постигло користи четири стандардизована начина кодирања (нумерички, алфанумерички, бајт / бинарни и кањи), технологија је учињена „отвореним кодом“, тј. Доступном свима, тако да врло брзо стекао популарност.Значајне предности КР кодова у односу на конвенционалне бар кодове су већи капацитет података и велика толеранција на кварове.
Како КР код функционише?
КР кодови (и други матрични кодови) дизајнирани су да их читају специјални алати, а не људи, тако да постоји само одређена количина коју можемо разумети визуелним проучавањем, мада се сваки код на различите начине разликује, мада садржи неколико занимљивих заједничких карактеристике посматрањем цирцуитдигест.цом КР кода проучићемо неке од њих
- Обрасци за проналажење: Велике квадратне кутије с масивним оквиром у три угла кода олакшавају потврду да се ради о КР коду, јер их има само три, па је прилично очигледно на који начин је код оријентисан.
- Узорак поравнања: Ово чини сигурним да без обзира на оријентацију кода може бити читљив.
- Временски образац: Ради хоризонтално и вертикално између три узорка тражила , помоћу ових линија читач може да одреди величину кода.
- Информације о верзији: Тренутно постоји 40 различитих верзија стандарда КР кода, овај одељак кода одређује верзију КР кода која се користи за маркетиншку верзију 1-7 која се нормално користи.
- Информације о формату: Партнери у формату имају информације о толеранцији грешака и маскирању података.
- Подручје података: Овај одељак кода садржи све елементе података и код за исправљање грешака.
- Напустите зону: Размак у сваком КР коду је обавезан да би се разликовао код од околине.
Слика испод ће вам дати јасну представу о коду
Остали одељци кода су подаци и код вишка.
Постоји низ других карактеристика и компликованих тема о којима нећу расправљати у овом упутству, ако желите да прочитате више детаља о КР коду, следите ово упутство за КР код Тан Јин Соон, ЕПЦглобал Сингапоре Цоунцил. Синтхесис Јоурнал, 2008.
Спецификација КР кода
Величина симбола |
Мин. 21к21 ћелија - макс. 177к177 ћелија (са интервалом од 4 ћелије) |
|
Врста и обим информација |
Нумерички знакови |
Максимално 7.089 знакова |
Абецеде, знакови |
Максимално 4.296 знакова |
|
Бинарни (8 бита) |
2.953 карактера максимално |
|
Кањи Цхарацтерс |
Највише 1.817 знакова |
|
Ефикасност конверзије |
Режим нумеричких знакова |
3.3 ћелије / знак |
Алфанумерички / знаковни режим |
5,5 ћелија / знак |
|
Бинарни (8-битни) режим |
8 ћелија / знак |
|
Режим знакова Кањи (13 бита) |
13 ћелија / знак |
|
Корекција грешке функционалност |
Ниво Л. |
Приближно 7% површине симбола обновљено на максимуму |
Ниво М. |
Приближно 15% површине симбола обновљено на максимуму |
|
Ниво К |
Приближно 25% површине симбола обновљено на максимуму |
|
Ниво Х. |
Приближно 30% површине симбола обновљено на максимуму |
|
Повезивање функционалности |
Могуће је поделити на највише 16 симбола |
Генерисање вашег сопственог КР кода
Следите кораке наведене у наставку да бисте генерисали свој властити КР код, у овом примеру ћемо направити КР код наше омиљене веб локације Цирцуит Дигест
Да бисте генерисали КР код, идите на ову веб страницу и ако погледате горњу страну веб странице можете видети листу опција, у овом упутству генеришемо КР код за УРЛ, па ћемо ићи на
- Кликните картицу УРЛ и залепите УРЛ за Цирцуит Дигест у одељак Ентер УРЛ.
- Кликните на саве.
- Дајте име датотеке излазној датотеци.
- Изаберите ПНГ као наш преферирани формат датотеке.
- и кликните на саве.
Слика испод ће вам дати јасну представу о процесу
Наш најдражи микроконтролер „Ардуино“ није толико интелигентан да би могао само да састави сирову ПНГ слику и прикаже је на ОЛЕД дисплеју. Дакле, за приказ КР кода на ОЛЕД морамо следити неколико једноставних корака и претворити ПНГ слику у битмап низ који чита Ардуино. Ову конверзију смо претходно извршили приликом повезивања ССД1306 ОЛЕД са Ардуином и повезивања графичког ЛЦД-а са Ардуином. Такође смо повезали ССД1306 ОЛЕД са Распберри Пи, ЕСП32, НодеМЦУ и многим другим микроконтролерима. Претварање битмапског низа може се извршити у два корака:
- Претварање ПНГ-а у БМП формат.
- Претворите БМП слику у низ ХЕКС кодова.
Претварање ПНГ-а у БМП формат
Да бисте претворили преузету ПНГ слику у БМП слику, идите на ову веб страницу и у одељак за претворбу слика и
- Кликните на падајући мени и одаберите
- Претвори у БМП
- Кликните на Го
Слика испод ће вам дати јасну представу о процесу:
Биће вам представљена нова страница која изгледа као слика испод:
- Кликните на картицу Цхоосе Филес и одаберите преузету слику
- У опционалним подешавањима, панел унесите жељену величину (користимо ОЛЕД 128к64)
- Кликните на дугме Започни конверзију
Биће вам представљена следећа страница и након неколико секунди ваша конвертована слика ће се преузети ако преузимање не започне аутоматски кликните на опцију за преузимање датотеке:
Сјајно! Сада смо добили нашу БМП датотеку да је претвори у низ ХЕКС кодова који чита Ардуино.
Претворите БМП слику у низ ХЕКС кодова
Да бисте претворили преузету БМП слику у ХЕКС низ, идите на ову веб страницу и кликните на Тоолс -> имаге2цпп
Слика испод ће вам дати јасну представу о процесу
Биће вам приказан екран који има четири опције и ми ћемо о њима детаљно разговарати
- Изаберите слику
- Имаге Сеттингс
- Преглед
- Оутпут
Изаберите одељак слике
У овом одељку ћемо одабрати слику коју смо управо конвертовали у БМП:
Одељак за поставке слике
У овом одељку ћемо поставити величину платна, боју позадине, скалирање и опције центрирања на нашу потребну вредност.
- Величина платна (поставили смо на 128к64, јер користимо ОЛЕД са густином пиксела 128к64).
- У овом одељку можемо подесити боју позадине ОЛЕД-а (бирамо да буде бела).
- Скалирање је постављено на оригиналну величину.
- Коначно, у средишњој опцији кликните на хоризонтална и вертикална поља за потврду, тако ће се слика појавити у центру.
Слика испод ће вам дати јасну представу
Преглед одељка
У одељку за преглед можемо видети јасан преглед слике која ће бити приказана у ОЛЕД-у, као што је приказано доле:
Оутпут Сецтион
У излазном одељку ћемо генерисати и копирати генерисани код, да бисмо то урадили, следите следеће кораке:
- Излазни формат кода (постављамо га као Ардуино код јер га користимо).
- Идентификатор (ова опција поставља име за генерисани низ, остављамо га подразумеваним онаквим какав јесте).
- Режим цртања (Опцију цртања поставили смо на водоравно).
- И на крају, кликнемо на дугме генерисање кода, то ће генерисати коначни излазни код.
Слика испод ће вам дати јасну представу
Кружни дијаграм
Испод слике приказане су међусобне везе између Ардуино Нано и ССД1306:
Ардуино Нано Пин |
ОЛЕД ПИН |
ГНД |
ГНД |
3.3В |
ВЦЦ |
Д13 |
ЦЛК |
Д11 |
МОСИ |
Д8 |
ОИЕ |
Д9 |
СДЦ |
Д10 |
ЦЦС |
Објашњење кода
Да бисмо приказали слику на ОЛЕД-у, потребна нам је помоћ Ардуино библиотеке, која се може преузети са овог ГитХуб спремишта. Преузмите У8глиб-1.19.1.зип верзију библиотеке и увезите је у Ардуино ИДЕ. Ако сте нови у Ардуину, потражите помоћ овог линка који описује како да увезете библиотеку. У одељку доле ћемо модификовати код да би приказао претходно генерисани ХЕКС низ на ОЛЕД. Комплетни код са радним видео записом дат је на крају овог чланка. Детаљно објашњење кода дато је у наставку.
Прво укључите преузету библиотеку.
#инцлуде "У8глиб.х" // укључујући библиотеку У8глиб
Затим дефинишите све потребне пинове за ОЛЕД.
#дефине ОЛЕД_ЦЛК_ПИН 13 // Ардуино Дигитал Пин Д13: СЦК #дефине ОЛЕД_МОСИ_ПИН 11 // Ардуино Дигитал Пин Д11: МОСИ #дефине ОЛЕД_РЕС_ПИН 10 // Ардуино Дигитал Пин Д10: СС #дефине ОЛЕД_СДЦ_ПИН 9 // Ардуино Дигитал Пин Д9де: ОдуЦ ОЛЕД_ЦСС_ПИН 8 // Ардуино дигитални пин Д13: ИЦП1
Иницијализујте библиотеку у8глиб.
У8ГЛИБ_СХ1106_128Кс64 у8г (ОЛЕД_ЦЛК_ПИН, ОЛЕД_МОСИ_ПИН, ОЛЕД_РЕС_ПИН, ОЛЕД_СДЦ_ПИН, ОЛЕД_ЦСС_ПИН);
Затим укључите генерисани низ слика.
цонст уинт8_т цирцуитдигест ПРОГМЕМ = {0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф. 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф0, 0к00, 0к1, 0к1, 0к1, 0к1, 0к1, 0к87, 0кф0, 0к00, 0к0ф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф0, 0к00, 0к0ц, 0к01, 0к87, 0кф0, 0к00, 0к0ф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф 0кфф, 0кфф, 0кфф, 0кф3, 0кфф, 0к8ф, 0кф0, 0к7ф, 0к31, 0кфф, 0к8ф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф3, 0кфф, 0к8ф, 0кф, 0кфф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф, 0кф 0кфф, 0кцф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф3, 0к81, 0к8ф, 0к31,0к80, 0к33, 0к81, 0кцф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф3, 0к01, 0к8ф, 0к31, 0к80, 0к33, 0к81, 0кцф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф 0кфф, 0кфф, 0кфф, 0кф3, 0к01, 0к8ф, 0кб1, 0к80, 0к33, 0к81, 0кцф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф3, 0к01, 0к8ф, 0кц1, 0кц, 0кц, 0кц, 0кц, 0кц 0к81, 0кцф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кфф, 0кф3, 0к01, 0к8ф, 0кц1, 0к98, 0к33, 0к81, 0кцф, 0кфф, 0кфф, 0кфф, 0кфф, …….. …..0кфф, 0кфф, …….. ………..0кфф, 0кфф, …….. ………..
Функција цртања користи се за цртање битмап слике (КР код) на ОЛЕД-у уз помоћ функције у8г.дравБитмапП.
воид драв (воид) {// графичке команде за прецртавање комплетног екрана треба овде ставити у8г.дравБитмапП (0, 0, 16, 64, цирцуитдигест); ….. ……
На крају, у функцији лооп () позовите све потребне процедуре за изградњу слике на ОЛЕД-у
воид лооп () {у8г.фирстПаге (); // Позив на овај поступак означава почетак петље слике. до {драв (); } вхиле (у8г.нектПаге ()); // Позив овој процедури означава крај тела петље слике. // обнављамо слику након одређеног одлагања (1000); }
Након довршетка кода, прикључите Ардуино у УСБ порт рачунара, одаберите ЦОМ порт и отпремите код. Ако сте све правилно урадили, на ОЛЕД-у ћете имати радни екран са КР кодом.
Надам се да вам се свидео овај пројекат и да сте уживали у учењу нечег новог, наставите да читате и даље учите и видимо се следећи пут.