Мазмуну:

Arduino Interactive LED кофе столу: 6 кадам (сүрөттөр менен)
Arduino Interactive LED кофе столу: 6 кадам (сүрөттөр менен)

Video: Arduino Interactive LED кофе столу: 6 кадам (сүрөттөр менен)

Video: Arduino Interactive LED кофе столу: 6 кадам (сүрөттөр менен)
Video: Котика ударило током, 10 т. Вольт 2024, Ноябрь
Anonim
Image
Image
Arduino Interactive LED кофе столу
Arduino Interactive LED кофе столу

Мен интерактивдүү кофе үстөлүн жасадым, ал предметтин үстүнө коюлганда, анын астындагы жарыктарды күйгүзөт. Ошол объекттин астындагы ледтер гана күйөт. Бул муну жакындык сенсорлорун эффективдүү колдонуу менен кылат жана жакындык сенсору объект жетиштүү жакын экенин сезгенде, ал ошол нерсенин астындагы түйүндү жарык кылат. Ал ошондой эле жакындык сенсорлоруна муктаж болбогон анимацияларды коюу үчүн Arduino колдонот, бирок мага абдан жаккан чындап эффект кошот.

Жакындык сенсорлору фотодиоддордон жана IR эмитенттеринен турат. Эмитенттер столдон жаркыраш үчүн инфракызыл нурду (адамдын көзү көрө албаган) колдонушат жана фотодиоддор объекттен чагылган инфракызыл нурду алышат. Жарык канчалык көп чагылса (объект жакыныраак), ошончолук фотодиоддордон чыңалуу өзгөрөт. Бул кайсы түйүндү күйгүзүү керектигин көрсөтүү үчүн индикатор катары колдонулат. Түйүндөр ws2812b LEDлердин жана жакындык сенсорунун жыйындысы.

Тиркелген видео бүтүндөй курулуш процессин камтыйт, ал эми мен төмөндө майда -чүйдөсүнө чейин айтып берем.

Жабдуулар

  1. ws2812b LED лампалары -
  2. 5V электр булагы -
  3. Мен каалаган Arduino 2560ты колдондум -
  4. Фотодиоддор
  5. IR эмитенттери
  6. 10 Ом резисторлору
  7. 1 MOhms резисторлору
  8. 47 pF конденсаторлор
  9. CD4051B Мультиплексорлор
  10. SN74HC595 Shift реестрлери
  11. ULN2803A Дарлингтон массивдери
  12. Леддер үчүн чоң такта катары колдонула турган кандайдыр бир субстрат, мен үй кампасынан кагаздан куралган тактаны колдондум

1 -кадам: Такта түзүңүз жана Светодиоддорду салыңыз

Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз
Такта түзүңүз жана LED диоддорун салыңыз

Мен жасаган биринчи нерсе, биз кофе үстөлүнүн ичине кое турган леддерди камтыган тактайчаны түзүү. Мен үйдүн кампасынан кагаздан жасалган композиттик такта колдондум жана аны кофе столуна ылайыктуу өлчөмдө кесип алдым. Тактайдын өлчөмүн кескенден кийин, мен леддер бара турган бардык тешиктерди бургуладым. Тактанын өзүндө 8 катар жана 12 колонна ws2812b леддери 3 дюймга бөлүнүп, алар жылан үлгүсүндө тиркелген. Аларды ордуна коюу үчүн ысык клей колдондум.

Мен ошондой эле түйүн болуп кала турган нерсенин борборунда тешиктерди бурушум керек болчу: 4 ws2812b чарчы, 2 фото диод жана 2 IR эмитенти. Түйүндүн борборундагы бул 4 тешик фотодиоддордун жана ир эмитенттеринин тактары болмок (ар биринен 2). Мен аларды максималдуу экспозицияны камсыз кылуу үчүн алмаштырдым жана аларды ар бир түйүндүн ортосуна болжол менен 1 дюйм аралыкта жайгаштырдым. Буларды ысык желим менен жабыштыруунун кереги жок болчу, алар башка тарапка чыкпашы үчүн, мен башка тараптын учтарын ийкем. Мен ошондой эле позитивдүү жана терс учтарды белгилүү бир багытта бүгүүнү тактадым, андыктан алар схемада туура багытталган. Бардык оң көрсөткүчтөр тактанын арт жагынын сол жагында, ал эми бардык терс көрсөткүчтөр тактанын оң жагында болгон.

2 -кадам: Районду түшүнүңүз

Circuit түшүнүү
Circuit түшүнүү
Circuit түшүнүү
Circuit түшүнүү
Circuit түшүнүү
Circuit түшүнүү

Эскертүү: Бардык анимацияланган чиймелер ишке ашыруу үчүн так эмес (кээ бир arduino казыктары башкача, мен чынжырлуу бир нече, кийинчерээк дагы). Жыйынтык чынжырдын татаалдыгына байланыштуу бир аз башкача болгон, бирок бардык анимацияланган микросхемалар ар бир бөлүктү кантип прототиптөө керек экенин түшүнүү үчүн чоң база болуп кызмат кылат. Кадимки схемалык жана райондук схема долбоордо колдонулган ПХБда болгондой.

KiCad долбоорун жана gerber файлдарын камтыган ПХБ кодун бул жерден тапса болот: https://github.com/tmckay1/interactive_coffee_tabl…, эгер сиз ПХБга өзүңүз заказ кылгыңыз келсе жана ушул сыяктуу долбоорду түзсөңүз. Мен такталарды түзүү үчүн NextPCB колдондум.

Бул столду түзгөн негизинен үч башка схема бар. Биринчиси, биз майда -чүйдөсүнө чейин токтобойбуз жана ws2812b LEDлерди иштетүүчү жөнөкөй схема. PWM маалымат сигналы Arduinoдон ws2812b лампаларына жөнөтүлөт жана кайсы түстөр кайда көрсөтүлгөнүн көзөмөлдөйт. Биз ws2812b леддерди колдонобуз, анткени алар жекече даректелет, андыктан биз леддердин кайсынысын күйгүзүп, кайсынысын өчүрүүнү көзөмөлдөй алабыз. Ws2812b леддери 5В тышкы энергия булагы менен иштейт, анткени ардуинонун бардык чырактарды күйгүзүүгө күчү жетпейт. Тиркелген анимацияланган диаграммада алар 330 Ом тартылуу каршылыгын колдонушат, бирок мен муну өзүмдүн курулушумда колдонбойм.

Экинчи схема IR эмитенттерин күйгүзөт. Бул схема IR эмитенттерине энергия жөнөтүүчү дарлингтон массивин башкаруу үчүн нөөмөт реестрин колдонот. Сменалык реестр - бул аз гана сандагы төөнөгүчтөргө HIGH жана LOW сигналдарын жөнөтө алган интегралдык микросхема. Биздин учурда, биз SN74HC595 сменалык реестрин колдонобуз, аны 3 кирүүдөн башкарууга болот, бирок 8ге чейин көзөмөлдөйт. Муну arduino менен колдонуунун пайдасы, сиз 8 смена регистрине чейин катарга тизе аласыз (arduino алардын 8ине чейин гана иштей алат). Бул 64 IR эмитентти күйгүзүү жана өчүрүү үчүн сизге arduinoдон 3 пин гана керек дегенди билдирет. Дарлингтон массиви, эгерде кирүү сигналы ЖОК болсо, тышкы булактан түзмөктү кубаттай алат же кирүү сигналы ТӨМӨН болсо, ал түзүлүштү өчүрөт. Ошентип, биздин мисалда биз ULN2803A дарлингтон массивин колдонобуз, ал 5В тышкы энергия булагына ИК эмитенттеринин 8ге чейин күйгүзүүгө жана өчүрүүгө мүмкүндүк берет. Биз IR эмитенттеринен максималдуу амперди алуу үчүн IR эмитенттери менен 10 Ом каршылыгын колдонобуз.

Үчүнчү схема фотодиоддордон бир нече кирүүлөрдү алуу үчүн мультиплексорду колдонот жана чыгууну маалымат сигналында жөнөтөт. Мультиплексор - бул сиз окууну каалаган бир нече кирүүлөрдү алуу үчүн колдонулган түзмөк жана ошол кирүүлөрдөн окуу үчүн бир нече төөнөгүчтөр гана керек. Ал ошондой эле тескерисинче жасай алат (демультиплекс), бирок биз аны бул жерде бул колдонмо үчүн колдонбойбуз. Демек, биздин учурда биз фотодиоддордон 8ге чейин сигналды кабыл алуу үчүн CD4051B мультиплексорун колдонобуз жана ал сигналдарды окуу үчүн бизге 3 гана киргизүү керек. Мындан тышкары, биз 8 мультиплексорго чейин ромашка жасай алабыз (arduino алардын 8ине чейин иштете алат). Бул ардуино 64 фотодиод сигналынан 3 санарип казыктан окуй алат дегенди билдирет. Фотодиоддор тескери багытталган, бул оң чыңалуу булагына тиркелген оң коргошун менен кадимки багытка багытталуунун ордуна, биз терс коргошун оң чыңалуу булагына дайындайбыз. Бул фотодиоддорду эффективдүү түрдө фото резисторго айлантат, алар кабыл алган жарыктын санына жараша каршылыктарын өзгөртөт. Андан кийин жерге өтө туруктуу 1 MOhms каршылыгын кошуу менен фотодиоддордун каршылыгына көз каранды болгон чыңалууну окуу үчүн чыңалуу бөлүштүргүчүн түзөбүз. Бул бизге фотодиоддордун канчалык IR нуруна жараша ардуиного жогорку жана төмөнкү чыңалуусун алууга мүмкүнчүлүк берет.

Мен бул дизайндын көбүн бул жерде кылган башка бирөөнөн алгам: https://www.instructables.com/Infrared-Proximity-S… Бул дизайнга алар дагы биз сыяктуу эле 1pOf резисторунун тушунда 47pF конденсатор кошушкан. фотодиоддор менен чыңалуу бөлүштүргүчтү түзүү үчүн колдонулат. Анын кошумчалаган себеби, ал ИМ эмитенттерин PWM сигналы менен күйгүзүп, өчүрүп тургандыктан, мында IR эмитенттери дароо күйгүзүлгөндө фотодиоддордон кичине чыңалуу түшүп кеткен. Бул фото диоддор объекттен IR нурун албаган учурда да каршылыкты өзгөрттү, анткени IR эмитенттери фотодиоддор менен бирдей 5V энергия булагын бөлүштү. IR эмитенттери күйгүзүлүп жана өчүрүлгөндө, чыңалуунун төмөндөшү болбогонун текшерүү үчүн конденсатор колдонулган. Мен башында дал ушул стратегияны жасоону пландап жаткам, бирок аны сынап көрүү үчүн убактым түгөнгөндүктөн, анын ордуна IR эмитенттерин ар дайым күйгүзүп койгом. Мен муну келечекте өзгөрткүм келет, бирок мен кодду жана схеманы кайра иштеп чыкканга чейин, азыр ПКБ ар дайым IR жарыктары үчүн иштелип чыккан жана мен баары бир конденсаторлорду сактап калдым. Эгер сиз бул ПХБ дизайнын колдонуп жатсаңыз, конденсатордун кереги жок болушу керек, бирок мен IR эмитенттерин модуляциялоого жана өчүрүүгө мүмкүндүк бере турган сменалык реестрге кошумча киргизүүнү кабыл алган ПХБнын башка версиясын киргизейин деп жатам. Бул электр энергиясын керектөөнү бир топ үнөмдөйт.

Сиз ардуинодо тестирлөө үчүн прототипти орнотуу үчүн тиркелген анимацияланган диаграммаларды текшере аласыз. Электрондук түзүлүштөрдүн орнотулушун жана багытын чагылдырган ар бир схема боюнча дагы деталдуу түстүү схема бар. Тиркелген ПХБ схемасында бизде 4 жалпы схема, IR эмитенттерин күйгүзүү үчүн колдонулган 2 схема жана фотодиоддордон окуу үчүн 2 схема бар. Алар PCB 2 тобуна багытталган, алар 1 IR эмитент схемасы жана 1 фотодиоддук схемадан турган топ менен бири -бирине жакын, ошондуктан 8 түйүндүн 2 мамычасын бир ПХБга киргизүүгө болот. Биз ошондой эле эки схеманы ромашка менен бириктиребиз, андыктан ардуинонун үч казыгы эки нөөмөт регистрин башкара алат, жана 3 кошумча казык тактадагы эки мультиплексорду башкара алат. Кошумча ПКБга чынжыр салуу үчүн кошумча чыгуунун аталышы бар.

Бул жерде мен прототиптөө үчүн ээрчиген бир нече ресурстар:

  • https://lastminuteengineers.com/74hc595-shift-regi…
  • https://techtutorialsx.com/2016/02/08/using-a-uln2…
  • https://tok.hakynda.com/article/detail/144/cd4051be…

3 -кадам: Түйүнгө ширетүүчү зымдар

Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар
Түйүнгө ширетүүчү зымдар

Эми сиз схеманын кантип түзүлгөнүн түшүнүп, алдыга жылып, зымдарды ар бир түйүнгө ээрчиңиз. Мен фотодиоддорду параллель (сары жана боз зымдар) жана ир эмитенттерин сериялап (кызгылт сары зым) ширеттим. Мен андан кийин 5В кубат булагына туташтырыла турган фотодиоддорго узунураак сары зымды жана pcbдин фотодиод киришине тиркелген көк зымды коштум. Мен IR эмитент схемасына узун кызыл зымды 5В электр булагына жана ПКБнын IR эмитентине туташтыра турган кара зымга туташтырдым. Мен чындыгында зымдарды бир аз кыска убакыттын ичинде бүтүрдүм, ошондуктан аягында ар бир мамычанын 5 түйүнүн гана туташтыра алдым (7 ордуна). Мен муну кийинчерээк оңдоону пландап жатам.

4 -кадам: ПХБнын компоненттерин ширетип, тактага тиркеңиз

ПХБнын компоненттерин ширетип, тактага тиркеңиз
ПХБнын компоненттерин ширетип, тактага тиркеңиз
ПХБнын компоненттерин ширетип, тактага тиркеңиз
ПХБнын компоненттерин ширетип, тактага тиркеңиз
ПХБнын компоненттерин ширетип, тактага тиркеңиз
ПХБнын компоненттерин ширетип, тактага тиркеңиз

Эскертүү: Тиркелген сүрөттөгү ПХБ - бул мен киргизген жана чыгарбаган биринчи версия, ошондой эле ар бир ички схема үчүн ромашка чынжыры. Жаңы ПХБ дизайны бул катаны оңдойт.

Бул жерде сиз компоненттерди ПХБга ширетүү үчүн ПХБнын схемасын ээрчишиңиз керек, андан кийин бул бүткөндөн кийин ПХБны тактага туташтырыңыз. Мен 5V электр сигналын тиркөө үчүн тышкы схемаларды колдондум, аны бардык сары жана кызыл зымдарга тараттым. Артка кылчайып карасам, мага мындай узун кызыл жана сары зымдар кереги жок болчу жана түйүндөрдү бири -бирине туташтырып койсо болмок (аларды жалпы тышкы схемага туташтыруунун ордуна). Бул чынында эле тактанын артындагы башаламандыкты азайтат.

Менде ws2812b леддеринин 8 катары жана 12 мамычасы болгондуктан, мен 7 катар жана 11 түйүн түйүнү менен бүткөм (бардыгы 77 түйүн). Идея, ПХБнын бир жагын түйүндөрдүн бир колоннасы үчүн, экинчи жагын экинчи колонна үчүн колдонуу. Ошентип, менде 11 мамыча болгондуктан, мен 6 ПХБга муктаж болчумун (акыркы компонентке бир гана топ керек). Мен зымдарды өтө кыска кылгандыктан, 55 түйүндү, 11 мамычаны жана 5 катарды гана туташтыра алдым. Сүрөттө көрүп турасыз, мен ката кетирип, чийки зымдарды тактага кошуп койгом, эгер зымдар жетишерлик жука болсо жакшы болмок, бирок менин учурда алар өтө калың болчу. Бул менин ар бир IR эмитентинин кириши жана фотодиоддун кириши үчүн зымдын учтары бири -бирине абдан жакын болгонун билдирет, андыктан бардык зымдардын кысылышынан көптөгөн мүчүлүштүктөрдү оңдоо иштери жүрдү. Келечекте мен кыска нерселерди болтурбоо жана нерселерди тазалоо үчүн тактайдагы зымдарга ПХБны туташтыруу үчүн туташтыргычтарды колдоном.

Arduino 8 сменалык регистрлерге жана мультиплексорлорго чейин гана ромашкаларды туташтыра алгандыктан, мен эки башка чынжырды түздүм, бири биринчи 8 тилкени, экинчиси калган 3 мамычаны камтыйт. Андан кийин мен ар бир чынжырды 2 гана мультиплексорго ээ болгон башка PCBге тиркеп койдум, ошондо мен ошол эки мультиплексордун ар бир мультиплексор маалымат сигналдарынын чынжырын arduinoго окуй алам. Бул эки мультиплексор да ромашка чынжырлуу болгон. Бул ардуинодо жалпы 16 чыгаруу сигналы жана 2 аналогдук кирүү болгонун билдирет: ws2812b леддерди көзөмөлдөө үчүн 1 чыгуу сигналы, сменалык регистрлердин биринчи чынжыры үчүн 3 чыгуу сигналы, мультиплексорлордун биринчи чынжыры үчүн 3 чыгуу сигналы, Экинчи сменалык регистрлер үчүн 3 чыгуу сигналдары, экинчи мультиплексорлор тизмеги үчүн 3 чыгуу сигналдары, ар бир ПХБ маалымат сигналын бириктирген 2 мультиплексорлор үчүн 3 чыгуу сигналдары жана акырында 2 агрегаттык мультиплексорлордун ар бир маалымат сигналы үчүн 2 аналогдук кириш.

5 -кадам: Кодексти карап чыгуу

Эскертүү: Төмөндөгү интерактивдүү коддон тышкары, мен ws2812b leds үчүн анимацияларды чыгаруу үчүн үчүнчү жактын китепканасын колдондум. Сиз муну бул жерден таба аласыз:

Мен колдонгон кодду бул жерден таба аласыз:

Үстүнкү жагында мен ПХБнын ар бир бөлүгүнө туташа турган arduino казыктарын аныктайм. Орнотуу ыкмасында мен мультиплексорлор үчүн чыгуучу казыктарды койдум, IR эмитенттерин күйгүзөм, ар бир фотодиод үчүн тышкы жарыктын окулушун көзөмөлдөгөн baseVal массивин орнотом жана ws2812b леддерине жаза турган FastLEDди баштайм. Укурук ыкмасында, биз ws2812b тилкесинде болууга дайындалган леддердин тизмесин баштапкы абалга келтиребиз. Андан кийин биз мультиплексор чынжырларындагы фотодиоддордун маанилерин окуйбуз жана түйүндөгү фотодиоддон окуу чөйрөдө жарык көрсөткүчтөрүнүн базалык маанисинен белгилүү бир чектен ашып кетсе, күйгүзүлүүгө тийиш ws2812b леддерин коебуз. Андан кийин, эгерде түйүндө кандайдыр бир өзгөрүү болушу керек болсо, анда диоддорду көрсөтөбүз. Болбосо, ишти ылдамдатуу үчүн бир нерсе өзгөрмөйүнчө цикл уланат.

Кодду жакшыртса болмок, мен муну карап жатам, бирок столго объект коюлгандан кийин жарык күйгүзүлгөндөн 1-2 секундга кечигүү болот. Негизги маселе FastLED столдогу 96 ледди көрсөтүү үчүн бир аз убакыт талап кылынат деп ишенем жана код столдон 77 кирүүнү окуп, окушу керек. Мен бул кодду 8 лед менен сынап көрдүм жана аны дээрлик заматта таптым, бирок бул код менен иштей турган жана дээрлик заматта боло турган, ошондой эле кодду жакшыртуучу светодиоддордун таттуу жерин карап жатам.

6 -кадам: Arduino күйгүзүңүз

Arduino күйгүзүңүз!
Arduino күйгүзүңүз!
Arduino күйгүзүңүз!
Arduino күйгүзүңүз!
Arduino күйгүзүңүз!
Arduino күйгүзүңүз!

Эми ардуинону күйгүзүү жана стол функциясын көрүү жетиштүү! Жогоруда айтылган анимациялар китепканасын колдонуп, ws2812b жетектеген анимацияларды койсоңуз болот, же кофе столунун кодун коюп, анын ар бир бөлүмдө күйүп турганын көрө аласыз. Ар кандай суроолорго же пикирлерге комментарий берүүдөн тартынбаңыз, мен сизге өз убагында кайрылууга аракет кылам. Ура!

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