Мазмуну:

Interactive Touchless Light: 7 кадам (Сүрөттөр менен)
Interactive Touchless Light: 7 кадам (Сүрөттөр менен)

Video: Interactive Touchless Light: 7 кадам (Сүрөттөр менен)

Video: Interactive Touchless Light: 7 кадам (Сүрөттөр менен)
Video: Webinar: Impact of New Technologies, and How to Get Guests Back Post COVID Pandemic 2024, Ноябрь
Anonim
Interactive Touchless Light
Interactive Touchless Light

Салам баарына! Мен бул жерде иштеп жаткан долбоорум менен бөлүшкүм келет. Мен университетимдеги проект аркылуу сыйымдуу сенсордук тажрыйбага шыктандым. Мен бул технологияны үйрөткүчтөр аркылуу билдим жана интернеттин башка жерлеринен үйрөнгөн нерселеримди колдонуп, тийбөөчү контроллеримди түздүм, мен ар кандай RGB баалуулуктарын аралаштырып, кызыктуу ачык түстөрдү түздүм.

Баштоо үчүн, мен бул долбоорду баштаганда мен электроника же сыйымдуу сенсордук сезүү жөнүндө эч нерсе билчү эмесмин.

Мен башында чуркаган кээ бир көйгөйлөр чынында эмне болуп жатканын түшүнбөөчүлүктөн улам келип чыккан. Ошентип, мен аны кантип түшүнөөрүм жөнүндө кыскача киришүү:

Сыйымдуу сенсор бир нече компоненттерди колдонот, негизинен:

Конденсатор (бул долбоордо биз алюминий фольганы колдонобуз, бирок өткөргүч суюктуктарды ж.б. колдонсо болот), зымдар (албетте, анын электроникасы)

жана резистор, 10 МОм астындагы нерсе түз тийүү үчүн өтө кичине каршылык.

анын иштөө жолу - А чекити менен В чекитинин ортосундагы убакыттын айырмасын өлчөө. Башталгычтан баштап чекитке сигнал жөнөтөт, анын убактысы таймер менен өлчөнөт. Каршылык маанисин төмөндөтүү менен (конденсаторду (бул учурда колуңузду) сенсордун конденсаторуна (алюминий фольгага) жакындатуу менен, бул убакыт кыскарат, убакыттын айырмасы сенсор кайра баалуулук катары берет.

Улам сенсор сыйымдуу беттерден жабыркап жаткандыктан, интерференциянын кесепетинен маалыматтар өтө туруксуз болуп калышы мүмкүн. Муну көбүнчө конденсаторду туура жылуулоо жана жерди колдонуу менен чечсе болот (мен кийинчерээк көрсөтөм).

Ошентип, азыр биз керектүү нерселердин бардыгын инвентаризациялоону баштай албайбыз:

1 -кадам: Бизге эмне керек?

Электроника:

1. 2 x 22M Ом + каршылыгы

2. 3x 330 Ом каршылыгы

3. Зымдар

4. Нан тактасы

5. Райондук такта (шахтада жез тилкелери бар болчу)

6. Бир нече жалпы катоддук RGB Leds (мен 8 колдонгом, бирок сиз каалаган жарыкка аздыр -көптүр ээ боло аласыз)

7. Алюминий фольга

8. Чаптоо

9. Ардуино Уно

10. Тасма

Иш:

1. Жыгач Мен 50 x 50 x 1.8 CM MDF колдондум (чындыгында каалаган нерсени колдонсоңуз болот. Бул сиз каалаган эффектке жана колуңуздагы инструменттерге жараша болот)

2. Акрил плексигласы 50 x 50 x 0.3 CM (же күрүч кагазы сыяктуу башка тунук/тунук материалды) колдондум

3. Sandpaper (жакшы зымырак)

4. Жыгач клей

5.veneer (милдеттүү эмес)

6. Акрил клей

Куралдар:

Зым чечүүчү

Лайка + калай

Стэнли бычагы

бургулоо

Көрдүм (столдогу арааны колдондум)

2 -кадам: Прототиптөө:

Прототип түзүү
Прототип түзүү
Прототип түзүү
Прототип түзүү

Эми бизде баары бар жана анын кантип иштээрин көрүү үчүн прототипти түзө баштасак болот:

Даярдоо жумуштары:

Алюминий фольгасынан 4 тик бурчтукту кесип алыңыз (Меники болжол менен 10 см х 5 см), буларды жабыштыруучу пленкага ороп, түз тийүүдөн изоляциялап, алюминий фольгага зым чаптаңыз. Мен фольгага эле чечип койгом (алар байланышта болушса эле).

Алюминийдин коопсуз түрдө изоляциялангандыгын текшерүү үчүн, мен аны пленкага ороп, кагаздардын ортосуна үтүктөп койдум (бир нече секундга чейин, ал толугу менен эрип кетпейт).

Андан кийин схемада сүрөттө көрүнүп тургандай орнотуңуз.

4 -пин эки сенсор үчүн жөнөтүүчү төөнөгүч катары колдонулат, ал эми кабыл алуу түйрүктөрү 2 -жана 5 -пин болуп саналат. Сиз бир нече жөнөтүү төөнөгүчтөрүн колдоно аласыз, бирок алар синхрондошпогондуктан көйгөй жаратат.

Бул орнотууну мүчүлүштүктөрдү оңдоо үчүн колдонуңуз, бардыгы чындыгында ойлогондой иштээрине ынануу үчүн.

3 -кадам: Код:

Азыр бизде баары бар жана сенсорлорду оңдоону баштасак болот.

Менин кодумду колдонуу үчүн, сыйымдуулукту сезүүчү китепкананы Arduinoдон жүктөп алып, аны маалымдама баракчасында берилген көрсөтмөлөргө ылайык орнотушуңуз керек: Мени чыкылдатыңыз

Код: (Мен коддоодо анча жакшы эмесмин, андыктан эгер сиз муну жакшыраак билсеңиз, анда кылыңыз)

#include // код китепканасын импорттоо

CapacitiveSensor cs_4_2 = CapacitiveSensor (4, 2); // Жөнөтүү пин = 4, алуу 2 жана 5 CapacitiveSensor cs_4_5 = CapacitiveSensor (4, 5); const int redPin = 11; const int greenPin = 10; const int bluePin = 9; const int numIndexR = 10; // массивдин өлчөмү const int numIndexG = 10; int colorR = 0; int colorG = 0; float colorB = 0; int indexR [numIndexR]; int posIndexR = 0; long totalR = 0; // бул узун болушу керек, анткени менин массивимдин саны бүтүн сан үчүн чоң болчу. int орточоR = 0; int indexG [numIndexG]; int posIndexG = 0; long totalG = 0; int орточоG = 0; жараксыз орнотуу () {pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); for (int thisIndexR = 0; thisIndexR <numIndexR; thisIndexR ++) {// массивди 0 indexR [thisIndexR] = 0; } үчүн (int thisIndexG = 0; thisIndexG = 4500) {// сенсордун маанилерин колдонулуучу максимумга чейин чектегиле, бул ар бир резистордун мааниси үчүн бирдей эмес, ошондой эле айлана -чөйрөдөн бир аз айырмаланышы мүмкүн, муну тууралоо керек өз муктаждыктарыңыз. total1 = 4500; } if (total2> = 4500) {total2 = 4500; } totalR = totalR - indexR [posIndexR]; // бул жерде сенсордун өндүрүмүн үзгүлтүксүз кошуп, орточо өндүрүүчү массив түзүлөт. indexR [posIndexR] = total1; totalR = totalR + indexR [posIndexR]; posIndexR = posIndexR + 1; эгер (posIndexR> = numIndexR) {posIndexR = 0; } орточоR = totalR / numIndexR; // биз өндүрүштү текшилөө үчүн чийки маалыматтын ордуна орточо көрсөткүчтү колдонобуз, ал процессти бир аз басаңдатат, бирок чынында эле сонун жылмакай агым жаратат. totalG = totalG - indexG [posIndexG]; indexG [posIndexG] = жалпы2; totalG = totalG + indexG [posIndexG]; posIndexG = posIndexG + 1; эгер (posIndexG> = numIndexG) {posIndexG = 0; } орточоG = жалпыG / numIndexG; if (averageR> = 2000) {// биз сиздин колуңуздан эч нерсе келбесе, leds дайыма маанини өзгөртүүсүн каалабайбыз, андыктан экологиялык көрсөткүчтөрдүн төмөндүгү эске алынбайт. colorR = карта (орточоR, 1000, 4500, 255, 0); analogWrite (redPin, colorR); } else if (орточоR = 1000) {colorG = карта (орточоG, 1000, 4500, 255, 0); analogWrite (greenPin, colorG); } if if (averageG <= 1000) {colorG = 255; analogWrite (greenPin, colorG); } if (colorR <= 125 && colorG <= 125) {// B бир аз башкача иштейт, анткени мен 2 гана сенсорду колдондум, ошондуктан эки сенсорго B картасын түшүрдүм colorB = map (colorR, 255, 125, 0, 127.5) + карта (colorG, 255, 125, 0, 127.5); analogWrite (bluePin, colorB); } else {colorB = map (colorR, 255, 125, 127.5, 0) + map (colorG, 255, 125, 127.5, 0); if (colorB> = 255) {colorB = 255; } if (colorB <= 0) {colorB = 0; } analogWrite (bluePin, colorB); } Serial.print (millis () - баштоо); // бул мүчүлүштүктөрдү оңдоо үчүн Serial.print ("\ t"); Serial.print (colorR); Serial.print ("\ t"); Serial.print (colorG); Serial.print ("\ t"); Serial.println (colorB); кечигүү (1); }

Бул код эмне кылат - бул сенсордон чийки маалыматтарды алуу (бул маалымат сенсорго таасир эткен ар кандай факторлордон улам дайыма бир аз туруксуз болуп калат) жана ал массив максималдуу мааниге жеткенде чийки маалыматты үзгүлтүксүз массивге коет (менин учурда 10) ал акыркы маанини тазалайт жана жаңысын кошот. Ар бир маани кошулганда, ал орточо маанини эсептеп, аны жаңы өзгөрмөгө коёт. Бул орточо өзгөрмө 0дөн 255ке чейинки маанини картага түшүрүү үчүн колдонулат, бул ар бир каналдын жарыктыгын жогорулатуу үчүн RGB казыктарына жазган мааниси (R G жана B каналдары).

Эми сиз кодуңузду arduinoго жүктөсөңүз жана сериялык мониторду ачсаңыз, колуңузду ар бир сенсордун үстүнө алып келгенде, RGB маанилеринин төмөндүгүн көрүшүңүз керек, ошондой эле жарыктын түсү өзгөрүшү керек.

4 -кадам: Эми иш үчүн:

Эми иш үчүн
Эми иш үчүн
Эми иш үчүн
Эми иш үчүн
Эми иш үчүн
Эми иш үчүн

Иш: Мен бул ишти университетим аркылуу жеткиликтүү болгон инструменттердин жардамы менен жасадым, андыктан бул процесс баарына эле тиешелүү эмес. Бирок бул жерде өтө өзгөчө эч нерсе жок, ал USB портуна туура келиши үчүн бир жагында тешик керек, бирок андан башка анын үстү ачык куту.

Өлчөмдөрү төмөнкүчө:

Тунук үстү үчүн 15 x 15 CM

жана

15 х 8 CM жыгач базасы үчүн (жыгачтын калыңдыгы мен үчүн 1,8 см болгон).

Мен керектүү өлчөмдөргө MDF табагын кесүү үчүн стол араа колдондум (бул 4 панель 15 x 8 CM жана 1 15 x 15 CM жер панели), андан кийин бурчтарды 45 градус бурчка кесип алдым. Мен жыгач желимин жана кыскычтарын колдонуп жабышкан бардык бөлүктөр (жок дегенде 30 мүнөт кургатыңыз), мен ошол эле процедураны плексиглас үчүн колдонгом, бирок атайын араа бычагы менен.

Жыгач капталдарынын 1инин борборунда arduino USB сайгычынын бийиктигинде тешик болушу керек, бул ардуинону туташтырууга мүмкүндүк берет.

Мен базаны шпон менен бүтүрдүм. Мен аны ар бир тараптын бетинен бир аз чоңураак бөлүктөргө бөлдүм.

Муну мен чаптап койдум, андан кийин аны ар бир тарапка 30 мүнөткө кыскарттым (муну жекече жасоо жакшыраак, ошондо анын тайып кетпешине көзүңүз жетет жана кургатылгандан кийин мен тыгылып калган нерселерди кесип салдым.

Acryl үчүн атайын клейди Acryfix деп колдонуп чаптадым.

Билиңиз, эгер сиз акрил плексигласын колдонсоңуз, клей плексигласын бир аз ээритет, андыктан мүмкүн болушунча так жана ылдам болуңуз (ал бир нече мүнөттүн ичинде кургайт, бирок секунда ичинде абага тийет).

Капкакты бүтүрүү үчүн мен кубду кум чачуучу менен тоңдуруп койдум, бирок сиз ошондой эле майда кумду колдоно аласыз, аны бир калыпка келтирүү үчүн көп убакыт талап кылынат. Эсиңизде болсун, эгер сиз кумду колдонсоңуз, анда ал майда бүртүкчөлүү болушу керек жана тоңдуруу процедурасынан кийин тетиктерди бири -бирине жабыштырышы керек (Ошентип, сиз көп басым жасоо менен кокусунан сынбайсыз)

Капкак көпкө чейин жылып кетпеши үчүн, мен жыгач кубдун четине кичинекей жыгачтан жасалган куймаларды чаптадым.

5 -кадам: Акыркы жыйынтык ушундай окшош болушу керек:

Мунун жыйынтыгы ушундай болушу керек
Мунун жыйынтыгы ушундай болушу керек

6 -кадам: ширетүү

Soldering!
Soldering!
Soldering!
Soldering!

Эгерде сизде электр тактасы бар болсо, анда сиз бардык бөлүктөрүңүздү нон тактаңызда орнотууну колдонуп баштай аласыз.

Менин схемамда колдонуунун оңойлугу үчүн үзгүлтүксүз жез тилкелери бар.

Ар бир сенсор үчүн мен резисторлорду жана зымдарды ширетүү үчүн кичинекей квадратты кесип алдым.

Жөнөтүүчү зымдар (4 -пинден ар бир сенсорго өтүүчү зымдар) ырааттуу түрдө өзүнчө квадратка ширетилет, 1 зым 4 -пинге кирет.

Мен импровизацияланган LED тилкесин жасоо үчүн узун тик бурчтукту сактап койдум (аны капкактын ичине, бирок базанын четине туура келгендей ченеп коюңуз). Сиз жөн гана ледтерди биринин артынан бирин ээрчитип койсоңуз болот (сүрөттө эстен чыгарбаңыз, мен кокусунан ледтерди жана резисторлорду тактайдын туура эмес жагына эриттим, жез тилкелери дайыма асты жагында болушу керек).

Айрым бөлүктөрдү бириктирип бүткөндөн кийин, аларды корпуска салып коюңуз. Мен жеке зымдарымды бириктирген жокмун, керек болсо оңой эле алмаштырып коём.

Баарын базага батыра турган убак: Бул эң оңой кадам, arduino биринчи учурда USB порту менен иштин артындагы тешик аркылуу болушу керек. Эми сенсорлорду кошуңуз, сенсор фольгасы жыгачка эки жагы менен дал келерин текшериңиз, жерге фольга тике карама -каршы. Баары жакшы шайкеш келгенде, RGB леддерин туура казыктарга сайыңыз (9, 10, 11) жана базанын четине сүйөнүңүз.

7 -кадам: Биз бүттүк

Эгерде сиз мунун баарын аткарган болсоңуз, анда сизде сыйымдуу түстүү аралаштыруучу жумушчу жарык болушу керек. Көңүл ачуу!

Сунушталууда: