Mündəricat:
- Addım 1: Fikri araşdırın
- Addım 2: Avadanlıq
- Addım 3: Montaj
- Addım 4: Nəzarət?
- Addım 5: Asanlaşdırın
- Addım 6: İlk Təcrübələr
- Addım 7: Real vaxt nəzarət
- Addım 8: Nəticələr
Video: İnteraktiv mühit işığı: 8 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Bu mənim ilk təlimatımdır! Düzgün İngilis dili yazmaqda çətinlik çəkdiyim zaman səbr edin. Məni düzəltməkdən çekinmeyin! Bu layihəyə 'Parılsın' yarışması başladıqdan dərhal sonra başladım. Kaş ki, çox şey edərdim və etmək istədiklərimi bitirərdim. Amma məktəblə iş arasında istədiyim qədər vaxtım qalmadı. Buna baxmayaraq, təcrübələrimin bir hesabatını təlimat olaraq buraxıram, buna görə hər kəs mənim etdiyimi edə bilər. Bu təlimat bir bələdçi olaraq xidmət etmək və bu ziddiyyətin necə ediləcəyini öyrətmək üçün nəzərdə tutulmamışdır. Elektronikaya yeni başlayanlar üçün bir bələdçi deyil. Arzu etmək istədiyim bir fikir və hədəfi paylaşmaq kimidir. Elektronikada bir başlanğıc/tamamilə cahilsinizsə və buna bənzər bir şey etmək istəyirsinizsə, üzr istəyirəm! Ancaq hər zaman sizə kömək etməyə çalışa bilərik. Son addıma baxın. Artıq çoxlu işıqlı layihələr gördük. Əksəriyyəti RGB LED -lərindən istifadə edir: - Otağı bir rənglə işıqlandırmaq, əhval -ruhiyyənizə uyğun atmosfer yaratmaq - TV/Monitor rəngindən və ya səsdən işıq effektləri yaratmaq. Instructables.com -da hətta bir neçəsi var. Əlaqədar: DIY Ambient Light SystemsLight Bar Ambient Lighting Öz mühit rəngli işıqlandırma çubuqlarınızı qurmaq Bu müsabiqəni bəhanə edərək bir müddətdir ağlımda olan bir layihəyə başladım. Həmişə bu mühit işıqlarına bənzər bir şey etmək və otağımdakı divarları RGB LEDləri ilə doldurmaq istəmişəm. Ancaq bir addım daha ataraq, hamısını və hər birini idarə oluna bilər. Bu layihə, inşallah, həvəskarlar və elektron tinkerlər üçün aparat/proqram hack və sensor inteqrasiyasına imkan verən açıq mənbəli elektronika dəsti ilə nəticələnəcək. Budur hazırladıqlarımın kiçik bir ön görünüşü:
Addım 1: Fikri araşdırın
Otağımdakı divarları hər bir LED üçün rəng və parlaqlığı idarə edən RGB LED -lərlə doldurmaq istəyirəm. İstifadənin rahatlığı və elastikliyi üçün bir mikro nəzarətçi istifadə edəcəm. Təəssüf ki, mikrokontrolörlərdə mövcud olan bir neçə pinlə yüzlərlə LED -i idarə edə bilmirəm. Bir çox LED -in idarə olunmasını kodlaşdırmaq belə çətin olardı və buna görə də bütün LED -ləri bir neçə kiçik çubuğa bölmək qərarına gəldim və hər bir çubuq üçün bir mikro nəzarətçi istifadə edə bildim. Ardından məlumat mübadiləsi üçün mikro nəzarətçilərin ünsiyyət imkanlarından istifadə edərdim. Bu məlumatlar LED -lərin rəngi və parlaqlığı, rənglərin nümunələri/ardıcıllığı və sensor məlumat ola bilər. Hər bir çubuq üçün 16 RGB LED istifadə etməyə qərar verdim. Bu nə çox böyük, nə də kiçik bir çubuğa səbəb olur. Bu yolla hər bir çubuq üçün xərcləri azaldaraq hər bir led üçün məqbul sayda resurs istifadə edirəm. Buna baxmayaraq, 16 RGB LED mikro nəzarətçinin 48 LED (3*16 = 48) olmasıdır. Xərcləri nəzərə alaraq istifadə etmək qərarına gəldim. istifadə edə biləcəyim ən ucuz mikro nəzarətçi. Bu o deməkdir ki, mikrokontrolörün 48 LED üçün kifayət qədər olmayan 20 -yə qədər giriş -çıxış pininə malik olacağı mən var. Layihənin məqsədi bir otağı işıqlandırdığı üçün charlieplexing və ya bir növ zaman ayırma sürücüsü istifadə etmək istəmirəm. Düşündüyüm alternativ bir növ kilidli qeyd qeydindən istifadə etməkdir! Davam edir:- Etmək və interaktiv mühit işığı- İdarə edilə bilən LED-lərdən standart bir çubuq düzəltmək- Bir otağı doldurmaq üçün bir neçə çubuğu birləşdirmək imkanı- İstifadəçinin uyğunlaşmasına/konfiqurasiyasına və sensor inteqrasiyasına icazə verin.
Addım 2: Avadanlıq
Əvvəlki addımda deyildiyi kimi, bir otağı işıqlandırmaq üçün bir neçə çubuq düzəltmək istəyirəm. Bu, xərc məsələsini ağla gətirir. Hər bir çubuğu mümkün olan ən qənaətcil şəkildə etməyə çalışacağam. İstifadə etdiyim mikro nəzarətçi AVR ATtiny2313 idi. Bunlar olduqca ucuzdur və ətrafımda bir neçə nəfər yatdı. ATtiny2313 eyni zamanda bir Universal Serial İnterfeysinə və bir USART interfeysinə malikdir ki, bu da aşağıdakı addımlarda yaxşı istifadə ediləcəkdir. Üç MCP23016 - I2C 16bit I/O port genişləndiricim də uzanmışdı, tam doğru say! 16 LED -in bir rəngini idarə etmək üçün hər bir port genişləndiricisini istifadə etdim. LEDlər … Təəssüf ki, tapa biləcəyim ən ucuzlar idi. 48 qırmızı, yaşıl və mavi ~ 10000mcd 5 mm, 20 dərəcə bucaqlıdır. Bunun hələlik heç bir əhəmiyyəti olmamalıdır, çünki bu yalnız bir prototipdir. Buna baxmayaraq nəticə olduqca gözəldir! Mikro nəzarətçini 8 MHz -də işləyirəm. I2C avtobusu 400 kHz tezliyə malikdir. LED keçid tezliyi təxminən 400 Hz -dir. Bu şəkildə, 48 LED -i həddinə çatdırmadan idarə edə bilsəm, daha sonra daha çox yer tutacağam!
Addım 3: Montaj
Dövrü tərtib etdikdən sonra, prototip etmək üçün bir neçə çörək taxtasında qurdum. Bir neçə saatlıq telləri kəsdikdən və dövrəni yığdıqdan sonra belə bir nəticə əldə etdim: 48 LED və ton telli bir nəhəng çörək taxtası!
Addım 4: Nəzarət?
Bu, layihənin ən çətin hissəsidir. Nümunələr/ardıcıllıqla işləmək və hər bir LED -in parlaqlığını və rəngini idarə etmək üçün kifayət qədər ümumi bir idarəetmə alqoritmi etmək istədim. LEDləri idarə etmək üçün MCP23016 -ya 4 bitlik bir çərçivə göndərməliyəm. (1 bayt = 8 bit). IC müxbirinin rəngi ünvanı olan bir bayt, "yaz" əmri ilə 1 bayt və 16 bit (LED) dəyəri olan 2 bayt. IC, LED -lərə "lavabo" olaraq bağlanır, yəni pindəki 0 məntiq dəyəri LED -i yandıracaq. İndi çətin bir hissə, 48 LED üçün PWM nəzarətini necə etmək olar? Bir LED üçün PWM öyrənək! PWM @ Wikipedia -ı izah etdi. LED -in parlaqlığını 50%istəsəm, PWM dəyərim 50%-dir. Bu o deməkdir ki, LED bir zaman kəsiyində sönmə vaxtı ilə eyni vaxtda olmalıdır. 1 saniyəlik bir dövr götürək. 50% PWM, bu 1 saniyədə açılma vaxtının 0,5 saniyə və sönmə müddətinin 0,5 saniyə olması deməkdir. PWM 80%? 0,2 saniyə, 0,8 saniyə açıq! Rəqəmsal dünyada: 10 saat dövrü ilə 50%, 5 dövr üçün LED -in yandırıldığı, başqa 5 dövr üçün isə LED -in söndüyü deməkdir. 20%? 2 dövrü açıq, 8 dövrü qapalı. 45%? Həqiqətən, 45%əldə edə bilmərik … Dövr dövrlərdə olduğu üçün və yalnız 10 dövrümüz olduğu üçün, PWM -ni yalnız 10%-lik addımlarla bölə bilərik. 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; Və ya hətta 1, 0, 1, 0, 1, 0, 1, 0, 1, 0; Proqramlaşdırmada bir sıra açma və söndürmə ardıcıllığını edə bilərik. Hər döngə üçün pinə çıxardığımız indeksin dəyəri dövrü idi. Mən indiyə qədər mənalı idimmi? LED0 50%və LED1 20%etmək istəyiriksə, hər iki dizini əlavə edə bilərik.: 1, 1, 1, 1, 1, 0, 0, 0, 0, 0; LED -i idarə etmək üçün: 1, 2, 0, 0, 0, 0, 0, 0, 0, 0; LED0 ilə nəticələnir +LED0: 3, 3, 1, 1, 1, 0, 0, 0, 0, 0; Liman genişləndiricisi IC -də bu ədəd ardıcıllığını çıxardıqda, LED0 -u 50% parlaqlıqla, LED1 -i isə 20% -lə əldə edərdik! 2 LED üçün sadədir, elə deyilmi? İndi bunu hər LED üçün 16 LED etmək məcburiyyətindəyik!
Addım 5: Asanlaşdırın
Əvvəlki addım sadə bir ardıcıllıq yaratmaq üçün çox işdir … Buna görə də hər bir LED -in rənglərini ardıcıllığın bir addımında izah etdiyimiz və addımın üç cərgəsini əldə etdiyimiz bir proqram hazırlamaq qərarına gəldim. Vaxt məhdudiyyəti səbəbindən bu proqramı LabView -də hazırladım.
Addım 6: İlk Təcrübələr
Mikro nəzarətçiyə bir neçə addım yükləyərək belə bir şey əldə edirik: Videoların keyfiyyətsiz olması üçün üzr istəyirik! Bir ardıcıllığın maksimum addım sayını 8 -ə təyin etdim və PWM -ni 20% sıçrayışla məhdudlaşdırdım. Bu qərar, istifadə etdiyim nəzarət növünə və ATtiny2313 -in nə qədər EEPROM -a malik olduğuna əsaslanır. Bu təcrübələrdə nə cür təsirlər edə biləcəyimi görməyə çalışdım. Nəticədən məmnun olduğumu söyləməliyəm!
Addım 7: Real vaxt nəzarət
Əvvəlki addımlarda qeyd edildiyi kimi, otağımdakı LED -ləri idarə edən bütün mikro nəzarətçilərlə ünsiyyət qurmaq istəyirəm. Beləliklə, ATtiny2313 -də mövcud USART interfeysindən istifadə etdim və kompüterimə qoşdum. LED barını idarə etmək üçün LabView -də də bir proqram hazırladım. Bu proqramda mikrokontrolöre ardıcıllığın nə qədər olduğunu, hər bir LED -in rəngini və bir ardıcıllığın addımları arasındakı vaxtı deyə bilərəm. Növbəti videoda LEDlərin rəngini necə dəyişə biləcəyimi və ardıcıllığı təyin edə biləcəyimi nümayiş etdirin.
Addım 8: Nəticələr
Layihəmin bu ilk yanaşmasında uğur qazandığımı düşünürəm. Az resurs və məhdudiyyətlərlə 16 RGB LED -i idarə edə bilirəm. İstənilən ardıcıllığı yaratmaqla hər bir LED -ə ayrıca nəzarət etmək mümkündür.
Gələcək işlər:
İnsanlardan müsbət rəy alsam, bu fikri daha da inkişaf etdirə və çap elektron lövhələri və montaj təlimatları ilə birlikdə tam bir DIY Elektronika Kiti hazırlaya bilərəm.
Növbəti versiyam üçün: -Mikro nəzarətçini ADC ilə birinə dəyişdirin -MCP23016 -ı LED -lərdən daha çox cərəyan edə biləcək başqa bir növ paralel olaraq dəyişdirin -Mikro nəzarətçi ilə ünsiyyət qurmaq üçün açıq mənbəli proqram yaradın və LED -ləri idarə edin -Bir neçə mikrokontrolör arasındakı əlaqəni inkişaf etdirin.
Hər hansı bir təklifiniz və ya sualınız varmı? Ya da şərh yaz!
Let It Glow -da finalçı!
Tövsiyə:
Xarici ekran üçün proqramlaşdırıla bilən mühit işığı: 4 addım
Xarici Ekran üçün Proqramlaşdırıla bilən Ətraf İşığı: Bu layihə, xarici monitorunuz və ya televizorunuz üçün mühit işığı qurmanıza kömək edir, veb brauzeri olan və marşrutlaşdırıcınıza bağlı olan hər hansı bir cihazdan aşağıdakıları idarə etməyə imkan verir. LED Rəngi DJ effekti verən yanıb -sönmə tezliyi
Batareyasız Günəş İşığı və ya Günəş İşığı Niyə olmasın ?: 3 addım
Batareyasız Günəş İşığı və ya Günəş İşığı … Niyə olmasın ?: Xoş gəldiniz. İngilis gün işığı üçün üzr istəyirəm? Günəş? Niyə? Gündüz bir az qaranlıq bir otağım var və istifadə edərkən işıqları yandırmalıyam. Günəş işığını gecə-gündüz quraşdırın (1 otaq): (Çilidə)-Günəş paneli 20w: 42 ABŞ dolları -Batareya: 15 ABŞ dolları-Günəş ödəniş əks
SpotLight İnteraktiv Gecə İşığı: 4 addım
SpotLight İnteraktiv Gecə İşığı: SpotLight, Arduino tərəfindən dəstəklənən sevimli bir pug əsaslı forma faktoru götürən interaktiv bir gecə işığıdır. İşığın üç interaktiv xüsusiyyəti var: 1) İşıqları yandırmaq və söndürmək üçün SpotLight -ın arxasına sikkə daxil edin
Səmimi Video İşığı/ Əl Fotoşəkili İşığı: 7 Addım (Şəkillərlə)
Səmimi Video İşığı/ Əl Fotoşəkili İşığı: Nə düşündüyünü bilirəm. By " intim " Çətin işıq vəziyyətlərində yaxınlaşan işıqlandırmanı nəzərdə tuturdum-mütləq " intim vəziyyətlər " üçün deyil. (Bununla birlikdə, bunun üçün də istifadə edilə bilər …) New York City videoqrafı olaraq-və ya
Kompüteriniz üçün bir mühit işığı necə etmək olar: 6 addım
Kompüteriniz üçün Ətraf Mühit İşıqını Necə Yaratmaq olar: bu, kompüterinizə ətraf işıqlandırması verəcək sadə, asan bir layihədir. Bu, əlbəttə ki, kompüterlərinizin üzünün həm çıxarıla bilən, həm də havalandırılmış olmasını tələb edir, beləliklə işığın görünməsini təmin edir