Мазмуну:

Интерактивдүү чөйрө жарыгы: 8 кадам
Интерактивдүү чөйрө жарыгы: 8 кадам

Video: Интерактивдүү чөйрө жарыгы: 8 кадам

Video: Интерактивдүү чөйрө жарыгы: 8 кадам
Video: Ачык сабак жагымдуу маанай 2024, Июль
Anonim
Интерактивдүү чөйрө жарыгы
Интерактивдүү чөйрө жарыгы
Интерактивдүү чөйрө жарыгы
Интерактивдүү чөйрө жарыгы
Интерактивдүү чөйрө жарыгы
Интерактивдүү чөйрө жарыгы

Бул менин биринчи насаатым! Сураныч, мен туура англисче жаза албай кыйналып жатам. Мени оңдоодон тартынба! Мен бул долбоорду 'Жаркырай берсин' сынагы башталгандан кийин эле баштадым. Мен дагы көп нерселерди жасап, каалаганымды бүтүрсөм дейм. Бирок мектеп менен жумуштун ортосунда мен каалагандай көп убакыт калган жок. Ошентсе да, мен бул жерде тажрыйбаларымдын отчетун көрсөтмө катары калтырам, андыктан ким болбосун менин кылганымды жасап, жасай алат. Бул көрсөтмө жетекчилик катары кызмат кылуу жана бул карама -каршылыкты кантип жасоону үйрөтүү үчүн арналган эмес. Бул электрониканы жаңы баштагандар үчүн колдонмо эмес. Бул мен ишке ашыргым келген бир идеяны жана максатты бөлүшүү сыяктуу. Эгерде сиз электроникада башталгыч/толугу менен сабатсыз болсоңуз жана ушул сыяктуу нерселерди жасоону кааласаңыз, кечирим сурайм! Бирок биз ар дайым сизге жардам берүүгө аракет кыла алабыз. Акыркы кадамды караңыз. Биз буга чейин көптөгөн жарык долбоорлорун көрдүк. Алардын көпчүлүгү RGB светодиоддорун колдонушат: - Бөлмөнү бир түс менен жарыктандыруу үчүн, маанайыңызга ылайыктуу атмосфера түзүү үчүн - ТВ/Монитордун түсүнөн же аудиодон жарык эффекттерин түзүү. Instructables.com сайтында бир нече эле бар Тектештер: DIY Ambient Light SystemsLight Bar Ambient Lighting Өзүңүздүн чөйрөңүздүн түстүү жарык берүү тилкелерин куруңуз Бул конкурсту шылтоо катары колдонуп, мен бир аздан бери оюма келген долбоорду баштадым. Мен ар дайым ушул чөйрө жарыктарына окшош нерсени жасап, бөлмөмдүн дубалдарын RGB светодиоддору менен толтургум келет. Бирок, алдыга бир кадам таштап, алардын бардыгын жана алардын ар бирин башкарууга болот. Бул долбоор хоббичилер жана электрондук шылуундар үчүн ачык булактан турган электроникалык комплектке алып келет деп үмүттөнөбүз, бул аппараттык/программалык камсыздоону бузууга жана сенсордук интеграцияга мүмкүндүк берет. Бул жерде мен жасаган нерселердин кичинекей көрүнүшү:

1 -кадам: Идеяны изилдөө

Мен бөлмөмдүн дубалдарын RGB светодиоддору менен толтургум келет, ар бир LEDдин түсүн жана жарыктыгын көзөмөлдөйм. Мен микроконтроллерди колдонуунун оңойлугу жана ийкемдүүлүгү үчүн колдоном. Тилекке каршы, мен микроконтроллерлерде жеткиликтүү болгон бир нече төөнөгүчтөр менен жүздөгөн светодиоддорду башкара албайм. Ошентип, көптөгөн LED диоддорун көзөмөлдөө кыйын болмок. Ошентип, мен бардык диоддорду бир нече кичинекей тилкелерге бөлүп, ар бир тилке үчүн микроконтроллерди колдоно алам деп чечтим. Анан мен микроконтроллерлердин байланыш мүмкүнчүлүктөрүн алардын ортосундагы маалыматты бөлүшүү үчүн колдонмокмун. Бул маалымат светодиоддордун түсү жана жарыктыгы, түстөрдүн үлгүлөрү/ырааттуулугу жана сезүү маалыматы болушу мүмкүн. Ар бир тилке үчүн мен 16 RGB LEDди колдонууну чечтим. Бул өтө чоң да, кичине да тилкени пайда кылат. Ошентип, мен ар бир бар үчүн чыгымдарды кыскартуу менен ресурстардын алгылыктуу санын колдонуп жатам. Ошентсе да, 16 RGB LEDлери микроконтроллер үчүн 48 LED (3*16 = 48) болуп саналат. Чыгымдарды эске алуу менен мен колдонууну чечтим мен колдоно турган эң арзан микроконтроллер. Бул микроконтроллерде 48 LED үчүн жетишсиз болгон 20 I/O төөнөгүчтөрү гана болот дегенди билдирет, мен charlieplexing же кандайдыр бир убакыт бөлүүчү дискти колдонууну каалабайм, анткени долбоордун максаты бөлмөнү жарыктандырат. Мен ойлогон альтернатива кандайдыр бир иштебеген нөөмөт регистрин колдонуп жатат! Калыбына келтирүү:- Чөйрөнүн интерактивдүү жарыгы- Башкарылуучу светодиоддордун стандарттуу тилкесин жасоо- Бөлмөнү толтуруу үчүн бир нече тилкени туташтыруу мүмкүнчүлүгү- Колдонуучунун адаптациясына/конфигурациясына жана сезүү интеграциясына уруксат берүү

2 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык

Мурунку кадамда айтылгандай, мен бир бөлмөнү жарыктандыруу үчүн бир нече тилкелерди жасагым келет. Бул нарк маселесин эске салат. Мен ар бир тилкени мүмкүн болушунча экономикалык жактан үнөмдүү кылууга аракет кылам. Мен колдонгон микроконтроллер AVR ATtiny2313 болчу. Булар арзаныраак жана менде бир аз жатып калды. ATtiny2313 дагы бир универсалдуу сериялык интерфейске жана бир USART интерфейсине ээ, алар кийинки кадамдарда жакшы колдонулат. Менде үч MCP23016 - I2C 16bit I/O порт экспантери бар эле, туура сан! Мен 16 светодиоддун бир түсүн көзөмөлдөө үчүн ар бир порт экспантерин колдондум. Светодиоддор … Тилекке каршы, мен тапкан эң арзан болчу. Алар 48 кызыл, жашыл жана көк ~ 10000mcd 5mm, 20 градустук бурчта. Бул азырынча маанилүү эмес, анткени бул бир гана прототип. Бул чындыкка карабастан, натыйжа абдан жакшы! Мен 8 МГцте микроконтроллерди иштетип жатам. I2C шинасы 400 кГцте иштейт. LED которуштуруу жыштыгы болжол менен 400 Гц. Ошентип, эгерде мен 48 чыракты чегине жеткирбестен айдай алсам, кийинчерээк көбүрөөк орунга ээ болом!

3 -кадам: Ассамблея

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Райондун дизайнын иштеп чыккандан кийин, мен аны прототиптештирүү үчүн бир нече нан тактасына курдум. Бир нече сааттан кийин зымдарды кесип, схеманы чогулткандан кийин, мен мындай жыйынтыкка келдим: 48 LED жана тонна зым менен бир алп нан!

4 -кадам: Башкаруу?

Control?
Control?

Бул проекттин эң татаал бөлүгү. Мен бир башкаруу алгоритмин үлгүлөрдү/ырааттуулукту иштетүү үчүн, ошондой эле ар бир LEDдин жарыктыгын жана түсүн көзөмөлдөө үчүн жетиштүү кылгым келди. (1 байт = 8 бит). Түскө IC кабарчысынын дареги жазылган бир байт, "жазу" командасы менен 1 байт жана 16 байт (LED) мааниси менен 2 байт. IC светодиоддорго "чөгүп кетүү" катары туташкан, башкача айтканда, пиндин бир логикалык мааниси 0. LEDди күйгүзөт. Эми кыйын бөлүгү, 48 LED үчүн PWM көзөмөлүн кантип жасоо керек? Келгиле, бир LED үчүн PWMди үйрөнөлү! PWM @ Wikipedia түшүндүрдү. Эгер мен LEDдин жарыктыгын 50%кааласам, менин PWM мааниси 50%. Бул LED бир убакта, өчүрүү менен бирдей убакытта болушу керек дегенди билдирет. Келгиле, 1 секунд убактысын алалы. 50% PWM бул 1 секундада иштөө убактысы 0,5 секунд жана өчүрүү убактысы 0,5 секунд дегенди билдирет. PWM 80%? 0,2 секунд өчүк, 0,8 секунд күйүк! Санариптик дүйнөдө: 10 сааттык циклдин ичинде, 50% 5 цикл үчүн LED күйүп турат, жана дагы 5 цикл үчүн LED өчөт дегенди билдирет. 20%? 2 цикл күйүк, 8 цикл өчүк. 45%? Ооба, биз чындап эле 45%ала албайбыз… Мезгил циклде болгондуктан жана бизде 10 гана цикл бар, биз PWMди 10%га гана бөлө алабыз. Бул пиндин эволюциясы 50%болушу керек: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Же ал тургай 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Программалоодо биз массивди күйгүзүү жана өчүрүү ыраатын түзө алабыз. Ар бир цикл үчүн биз индекстин маанисин циклге чыгарабыз. Мен азырынча мааниси бар беле? Эгерде биз LED0 50%жана LED1 20%кылгыбыз келсе, биз эки массивди кошо алабыз.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LED1 пинди башкаруу үчүн: 2, 2, 0, 0, 0, 0, 0, 0, 0, 0; LED0до жыйынтык +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Порт экспантер ICдеги бул сандардын ырааттуулугун чыгаруу, биз LED0ду 50% жарыктыкта жана LED1ди 20% менен алмакпыз !! 2 LED үчүн жөнөкөй, туурабы? Эми биз муну 16 LED үчүн, ар бир түс үчүн жасашыбыз керек! Бул массивдердин ар бири үчүн бизде ар бир түстүн жарыктыгынын айкалышы бар (16 светодиод) Түстөрдүн башка айкалышын каалаган сайын, биз бул массивди алмаштырышыбыз керек.

5 -кадам: Оңой кылуу

Оңой кылуу!
Оңой кылуу!
Оңой кылуу!
Оңой кылуу!

Мурунку кадам жөнөкөй ырааттуулукту түзүү үчүн өтө көп жумуш … Ошентип, мен программа түзүүнү чечтим, анда биз ар бир LEDдин түстөрүн ырааттуулуктун бир баскычында айтып, кадамдын үч массивин алабыз. Мен бул программаны LabViewде убакыттын тардыгына байланыштуу жасадым.

6 -кадам: Биринчи эксперименттер

Биринчи эксперименттер
Биринчи эксперименттер

Микроконтроллерге бир нече кадам жүктөлүп, биз мындай нерсеге ээ болобуз: Видеолордун сапатынын начардыгы үчүн кечирим сурайм! Мен ырааттуулуктун максималдуу санын 8ге чейин аныктадым жана PWMди 20% секирүү менен чектедим. Бул чечим мен колдонгон көзөмөлдүн түрүнө жана ATtiny2313 канчалык EEPROMга негизделгенине байланыштуу. Бул эксперименттерде мен кандай эффекттерди жасоого болорун көрүүгө аракет кылдым. Мен жыйынтыкка ыраазы экенимди айтышым керек!

7-кадам: Реалдуу убакыт көзөмөлү

Реалдуу убакыт көзөмөлү
Реалдуу убакыт көзөмөлү
Реалдуу убакыт көзөмөлү
Реалдуу убакыт көзөмөлү
Реалдуу убакыт көзөмөлү
Реалдуу убакыт көзөмөлү

Мурунку кадамдарда айтылгандай, мен бөлмөмдөгү светодиоддорду башкарган бардык микроконтроллерлер менен баарлашкым келет. Ошентип, мен ATtiny2313те жеткиликтүү USART интерфейсин колдонуп, аны компьютериме туташтырдым. Мен ошондой эле LED тилкесин көзөмөлдөө үчүн LabView программасын түздүм. Бул программада мен микроконтроллерге ырааттуулукту, ар бир LEDдин түсүн жана ырааттуулуктун кадамдарынын ортосундагы убакытты айта алам. Кийинки видеодо мен Мен кантип LEDдин түсүн өзгөртүп, ырааттуулукту аныктай алаарымды көрсөтөм.

8 -кадам: Жыйынтыктар

Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар

Мен долбоорумдун бул биринчи ыкмасында ийгиликтүү болдум деп ойлойм. Мен аз ресурстар жана чектөөлөр менен 16 RGB LEDди башкара алам. Ар бир LEDди өзүнчө көзөмөлдөп, каалаган ырааттуулукту түзсө болот.

Келечектеги иш:

Эгерде мен адамдардан оң пикирлерди алсам, мен бул идеяны андан ары өркүндөтүп, басылган райондук такталар жана монтаждоо көрсөтмөлөрү менен толук DIY Электроника комплектин жасай алам.

Кийинки версиям үчүн мен: -Микроконтроллерди ADC менен бирөөнө алмаштырам -MCP23016ды сериалдын башка түрүнө параллелдик түрдө алмаштырам, ал LEDден көбүрөөк ток кетире алат -Микроконтроллер менен баарлашуу үчүн ачык булак программасын жаса жана LED диоддорун башкаруу -бир нече микроконтроллердин ортосундагы байланышты өнүктүрүү.

Сизде кандайдыр бир сунуш же суроо барбы? Же комментарий калтырыңыз!

Let It Glowдо финалист!

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