Mundarija:

Simsiz akselerometr boshqariladigan Rgb-LED: 4 qadam
Simsiz akselerometr boshqariladigan Rgb-LED: 4 qadam

Video: Simsiz akselerometr boshqariladigan Rgb-LED: 4 qadam

Video: Simsiz akselerometr boshqariladigan Rgb-LED: 4 qadam
Video: 🔴 Planshet Lenovo Xiaoxin Pad 2022 - YANGI MAHSULOTLARNI BAFTALI SHARX 2024, Iyul
Anonim
Simsiz akselerometr boshqariladigan Rgb-LED
Simsiz akselerometr boshqariladigan Rgb-LED
Simsiz akselerometr boshqariladigan Rgb-LED
Simsiz akselerometr boshqariladigan Rgb-LED

MEMS (mikroelektromekanik tizimlar) akselerometrlar uyali telefonlar va kameralarda qiyshiq sensorlar sifatida keng qo'llaniladi. Oddiy akselerometrlar ham ic-chip, ham arzon ishlab chiqaruvchi pcb-platalar sifatida mavjud.

Simsiz chiplar ham arzon va yig'ilgan sxemalarda mavjud, bortda antenna tarmog'i va ajratuvchi qopqoq bor. Simsiz kartani ham, akselerometrni ham ketma-ket interfeys orqali mikrokontrollerga ulang va sizda nintendo-wii funktsiyali simsiz boshqaruv moslamasi mavjud. Keyin bir xil turdagi simsiz chip va pwm boshqariladigan rgb-LEDli qabul qilgichni yarating, voila, sizda simsiz, tilt bilan boshqariladigan rangli xona chaqmoqlari bor. Transmitter panelini non paneli yuqoriga qaragan holda saqlang va LED sovuq ko'k, faqat ko'k chiroq faol. Keyin transmitterni bir tomonga burang va siz uni qaysi tomonga burishingizga qarab qizil yoki yashil rangda aralashtirasiz. 90 gradusgacha egilib turing, shunda siz qizil va ko'k yoki yashil va ko'k ranglarning barcha aralashmalaridan o'tib, faqat qizil yoki yashil 90 daraja egilishda faol bo'lasiz. Bir oz x va y yo'nalishda egilib turing, shunda siz barcha ranglarning aralashmasini olasiz. Har tomonlama 45 gradusda yorug'lik qizil, yashil va ko'k, boshqacha aytganda, oq nurning teng aralashmasidir. Ishlatiladigan qismlar internet-xobbi elektron do'konlarida mavjud. Ba'zi rasmlardan aniqlanishi kerak.

1 -qadam: akselerometr bilan uzatuvchi

Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi
Akselerometr bilan uzatuvchi

Transmitter Atmel avr168 mikrokontrolleriga asoslangan. 168-ga ega bo'lgan qulay qizil taxta-bu voltaj regulyatori va qayta o'rnatish davri bo'lgan arduino-taxta. Akselerometr avrga i2c shinasi bilan ulangan, simsiz karta esa SPI apparati (Serial periferik interfeys) bilan ulangan.

Non paneli to'liq simsiz, uning ostiga 4, 8V akkumulyator o'rnatilgan. Simsiz karta va arduino wee 9 V gacha qabul qiladi va bortli chiziqli kuchlanish regulyatoriga ega, lekin akselerometrga regulyatsiya qilingan relsdan 3, 3V kerak.

2-qadam: RGB-LEDli qabul qilgich

RGB-LED bilan qabul qiluvchi
RGB-LED bilan qabul qiluvchi
RGB-LED bilan qabul qiluvchi
RGB-LED bilan qabul qiluvchi
RGB-LED bilan qabul qiluvchi
RGB-LED bilan qabul qiluvchi

Qabul qilgich kelebek nomli avr169 demoboardga asoslangan. Kengash ushbu loyihada ishlatilmagan juda ko'p xususiyatlarga ega. Simsiz uzatuvchi PortB ga ulangan va pwm boshqariladigan LED PortD ga ulangan. Quvvat provayder sarlavhasida ta'minlanadi, 4,5 V etarli. Simsiz karta kirish -chiqish pinidagi 5V ga bardosh bera oladi, lekin bort regulyatori tomonidan ta'minlanadigan 3.3V quvvatga muhtoj.

O'zgartirilgan rf-transversiver uchun sarlavha kabeli haqiqatan ham qulaydir va simsiz kartani kelebek ustidagi quvvat va apparat spi-boshqaruvchisi bilan bog'laydi. Shiftbright-bu 4 baytli buyruqni qabul qiladigan, so'ngra chiqish pimlariga mahkamlangan, puls kengligi modulyatsiyasini boshqaruvchi rgb boshqaruvchi. Haqiqatan ham ketma -ket ulanish. Ko'pgina buyruq so'zlarini o'zgartiring va birinchi siljish romashka zanjirining oxirgi ulangan LEDida bo'ladi.

3-qadam: C-dasturlash

Kod C da yozilgan, chunki men arduino -ga asoslangan "osonroq" ishlov berish tilini o'rganishga ahamiyat bermadim. O'qish tajribasi uchun SPI va rf tranceiver interfeysini o'zim yozdim, lekin avrfreaks.net saytidan i2c assembler kodini oldim. Shiftbright interfeysi C-kodda bitbanged. Men duch kelgan muammolardan biri, akselerometrning chiqishidagi kichik irradik o'zgarishlar edi, bu esa LEDning miltillashiga olib keldi. Men buni past o'tish filtri bilan hal qildim. Accelerometer-qiymatlari bo'yicha harakatlanuvchi o'rtacha og'irlik. Rf-tranziver apparati crc va ack-ni avtomatik qayta uzatishni qo'llab-quvvatlaydi, lekin bu loyiha uchun LEDlarni real vaqtda, uzluksiz yangilash muhimroq edi. Akselerometr qiymatiga ega bo'lgan har bir paket buzilgan paketlar tashlanmaguncha, qabul qiluvchiga buzilmagan holda kelishi shart emas. Ko'rinishidan 20 metr masofada yo'qolgan RF paketlari bilan hech qanday muammo yo'q edi. Biroq, uzoqda joylashgan aloqa beqaror bo'lib qoldi va LEDlar doimiy ravishda yangilanmadi. Soxta koddagi transmitterning asosiy aylanishi: initialize (); while (true) {Values = abs (x, y, z akselerometr qiymatlarini () oling)); RF_send (qiymatlar); kechikish (20ms);} Psevdo-koddagi qabul qiluvchining asosiy tsikli: initialize (); while (true) {newValues = blocking_receiveRF ()); rgbValues = rgbValues + 0,2*(newValues-rgbValues); shiftbrigth ga rgbValues yozing;}

4 -qadam: Natija

Natija
Natija
Natija
Natija
Natija
Natija
Natija
Natija

Boshqaruv qanchalik silliq va aniq amalga oshirilganiga hayron bo'ldim. Sizda haqiqatan ham rangning barmoq uchi aniqligi bor. Pwm-LED-kontroller har bir rang uchun 10 bitli aniqlikka ega, bu esa millionlab mumkin bo'lgan ranglarni yaratadi. Afsuski, akselerometr faqat 8 bitli piksellar soniga ega, bu nazariy ranglar sonini minglabgacha kamaytiradi. Ammo rang o'zgarishi qadamini sezish hali ham mumkin emas. Qabul qilgichni IKEA-chiroqqa qo'ydim va pastda har xil rangdagi rasmni oldim. Video ham bor, lekin dahshatli sifat)

Tavsiya: