У овом пројекту ћемо открити боје користећи ТЦС3200 сензорски модул у боји са Распберри Пи. Овде смо користили Питхон код за Распберри Пи за откривање боја помоћу ТЦС3200 сензора. Да бисмо демонстрирали детекцију боја, користили смо РГБ ЛЕД, овај РГБ ЛЕД ће светлити у истој боји, од којих је објекат представљен у близини сензора. Тренутно смо програмирали Распберри Пи да открива само црвену, зелену и плаву боју. Али можете га програмирати да открива било коју боју након добијања РГБ вредности, јер је свака боја састављена од ових РГБ компоненти. Погледајте демо видео на крају.
Претходно смо прочитали и приказали РГБ вредности боја користећи исти ТЦС3200 са Ардуином. Пре него што наставите даље, обавестите нас о ТЦС3200 сензору боје.
ТЦС3200 сензор у боји:
ТЦС3200 је сензор за боје који може да препозна било који број боја помоћу правог програмирања. ТЦС3200 садржи РГБ (црвено зелено плаве) низове. Као што је приказано на слици на микроскопском нивоу, на сензору се могу видети квадратне кутије унутар ока. Ови квадратни оквири су низови РГБ матрице. Свака од ових кутија садржи три сензора за детекцију интензитета црвене, зелене и плаве светлости.
Дакле, имамо црвени, плави и зелени низ на истом слоју. Дакле, док откривамо боју, не можемо истовремено открити сва три елемента. Сваки од ових низова сензора треба одабрати засебно један за другим да би се детектовала боја. Модул се може програмирати да осети одређену боју и да напусти остале. Садржи чиоде за ту сврху избора, што је касније објашњено. Постоји четврти режим који није режим филтрирања; без режима филтера сензор детектује бело светло.
Повезаћемо овај сензор са Распберри Пи и програмираћемо Распберри Пи да пружи одговарајући одговор у зависности од боје.
Компоненте потребне:
Овде користимо Распберри Пи 2 Модел Б са Распбиан Јессие ОС. Сви основни хардверски и софтверски захтеви су претходно разматрани, можете их потражити у Уводу Распберри Пи и Трепћући лампица Распберри ПИ за почетак, осим онога што нам треба:
- Распберри Пи са унапред инсталираним ОС-ом
- ТЦС3200 сензор у боји
- ЦД4040 бројач чип
- РГБ ЛЕД
- Отпорник 1КΩ (3 комада)
- 1000уФ кондензатор
Кружни дијаграм и везе:
Везе које се раде за повезивање сензора боје са Распберри Пи дате су у доњој табели:
Особине сензора |
Распберри Пи Пинс |
Вцц |
+ 3.3в |
ГНД |
земљу |
С0 |
+ 3.3в |
С1 |
+ 3.3в |
С2 |
ГПИО6 од ПИ |
С3 |
ГПИО5 од ПИ |
ОЕ |
ГПИО22 од ПИ |
ОУТ |
ЦЛК ЦД4040 |
Везе за бројач ЦД4040 са Распберри Пи су дате у доњој табели:
ЦД4040 Пинс |
Распберри Пи Пинс |
Вцц16 |
+ 3.3в |
Гнд8 |
гнд |
Цлк10 |
ВАН сензора |
Ресетуј11 |
ГПИО26 из ПИ |
К0 |
ГПИО21 од ПИ |
К1 |
ГПИО20 од ПИ |
К2 |
ГПИО16 од ПИ |
К3 |
ГПИО12 од ПИ |
К4 |
ГПИО25 од ПИ |
К5 |
ГПИО24 од ПИ |
К6 |
ГПИО23 од ПИ |
К7 |
ГПИО18 од ПИ |
К8 |
Без конекције |
П9 |
Без конекције |
К10 |
Без конекције |
К11 |
Без конекције |
Испод је пуни дијаграм кола интерфејс сензора у боји са Распберри Пи:
Објашњење:
Свака боја састоји се од три боје: црвене, зелене и плаве (РГБ). А ако знамо интензитет РГБ у било којој боји, тада можемо да откријемо ту боју. Претходно смо прочитали ове РГБ вредности користећи Ардуино.
Коришћењем сензора за боју ТЦС3200 не можемо истовремено детектовати црвену, зелену и плаву светлост, па их морамо проверавати једну по једну. Боја коју сензор боје треба да осети бира се помоћу два клинова С2 и С3. Помоћу ове две пинове сензору можемо рећи коју интензитет светлости у боји треба мерити.
Рецимо ако треба да осетимо интензитет црвене боје онда морамо оба пина да подесимо на ЛОВ. Након мерења ЦРВЕНЕ светлости, поставићемо С2 ЛОВ и С3 ХИГХ да меримо плаво светло. Секвенцијалном променом логике С2 и С3 можемо мерити интензитет црвене, плаве и зелене светлости, према доњој табели:
С2 |
С3 |
Тип фотодиоде |
Ниска |
Ниска |
Црвена |
Ниска |
Хигх |
Плави |
Хигх |
Ниска |
Без филтера (бели) |
Хигх |
Хигх |
Зелена |
Једном када сензор детектује интензитет РГБ компонената, вредност се шаље контролном систему унутар модула, као што је приказано на доњој слици. Интензитет светлости измерен низом шаље се претварачу струје у фреквенцију унутар модула. Претварач фреквенције генерише квадратни талас чија је фреквенција директно пропорционална вредности коју шаље низ. Са већом вредношћу из АРРАИ-а, претварач струје у фреквенцију генерише квадратни талас веће фреквенције.
Фреквенција излазног сигнала помоћу модула сензора у боји може се подесити на четири нивоа. Ови нивои се бирају помоћу С0 и С1 сензорског модула као што је приказано на доњој слици.
С0 |
С1 |
Скалирање излазне фреквенције (ф0) |
Л |
Л |
Снага доле |
Л |
Х. |
2% |
Х. |
Л |
20% |
Х. |
Х. |
100% |
Ова функција је корисна када повезујемо овај модул са системом са ниским тактом. Са Распберри Пи ћемо одабрати 100%. Запамтите овде, испод сенке, модул сензора за боје генерише излаз квадратног таласа чија је максимална фреквенција 2500Хз (100% скалирање) за сваку боју.
Иако модул пружа излазни квадратни талас чија је фреквенција директно пропорционална интензитету светлости који пада на његову површину, овај модул не може да израчуна једноставан интензитет светлости сваке боје. Међутим, можемо рећи да ли се интензитет светлости повећава или смањује за сваку боју. Такође можемо израчунати и упоредити вредности црвене, зелене, плаве да бисмо детектовали боју светлости или боју предмета унапред подешених на површини модула. Дакле, ово је више модул Сензор боје, а не модул Сензор интензитета светлости.
Сада ћемо овај излаз квадратног таласа напајати на Распберри Пи, али не можемо га дати директно ПИ-у, јер Распберри Пи нема ниједан унутрашњи бројач. Дакле, прво ћемо дати овај излаз бинарном бројачу ЦД4040 и програмирати ћемо Распберри Пи да узима вредност фреквенције са бројача у периодичним интервалима од 100 мс.
Дакле, ПИ очитава вредност 2500/10 = 250 мак за сваку ЦРВЕНУ, ЗЕЛЕНУ и ПЛАВУ боју. Такође смо програмирали Распберри Пи да штампа ове вредности које представљају интензитет светлости на екрану као што је приказано доле. Вредности се одузимају од подразумеваних вредности да би достигле нулу. Ово добро дође приликом одлучивања о боји.
Овде су подразумеване вредности вредности РГБ, које су узете без постављања било ког предмета испред сензора. Зависи од околних светлосних услова и ове вредности се могу разликовати у зависности од околине. У основи калибришемо сензор за стандардна очитавања. Дакле, прво покрените програм без постављања предмета и забележите очитања. Ове вредности неће бити близу нуле, јер ће на сензор увек падати светло, без обзира где га поставите. Затим одузмите та очитања са очитањима која ћемо добити након постављања предмета на тестирање. На овај начин можемо добити стандардна очитавања.
Распберри Пи је такође програмиран за упоређивање вредности Р, Г и Б како би се утврдила боја предмета смештеног у близини сензора. Овај резултат је приказан сјајним РГБ ЛЕД-ом повезаним на Распберри Пи.
Укратко,
1. Модул открива светлост коју рефлектује објекат постављен у близини површине.
2. Модул сензора за боје пружа излазни талас за Р или Г или Б, који је Распберри Пи изабрао узастопно путем пинова С2 и С3.
3. Бројач ЦД4040 узима талас и мери вредност фреквенције.
4. ПИ узима вредност фреквенције са бројача за сваку боју на сваких 100 мс. Након узимања вредности, сваки пут када ПИ ресетује бројач да би открио следећу вредност.
5. Распберри Пи штампа ове вредности на екрану и упоређује их да би открио боју предмета и коначно засијао РГБ ЛЕД у одговарајућој боји у зависности од боје објекта.
Следили смо горњу секвенцу у нашем Питхон коду. Комплетан програм је дат у наставку са демонстрацијским видео записом.
Овде је Распберри Пи програмиран да детектује само три боје, можете подударати вредности Р, Г и Б да бисте открили више боја по свом укусу.