Mundarija:

Bluetooth ilovasi + Animatsiya yaratuvchisi bo'lgan RGB LED kubik: 14 qadam (rasmlar bilan)
Bluetooth ilovasi + Animatsiya yaratuvchisi bo'lgan RGB LED kubik: 14 qadam (rasmlar bilan)

Video: Bluetooth ilovasi + Animatsiya yaratuvchisi bo'lgan RGB LED kubik: 14 qadam (rasmlar bilan)

Video: Bluetooth ilovasi + Animatsiya yaratuvchisi bo'lgan RGB LED kubik: 14 qadam (rasmlar bilan)
Video: Telefonni koʻz bilan boshqarish 2024, Iyul
Anonim
Bluetooth ilovasi + AnimationCreator bilan RGB LED kub
Bluetooth ilovasi + AnimationCreator bilan RGB LED kub

Bu Arduino Nano yordamida Bluetooth ilovasi tomonidan boshqariladigan 6x6x6 RGB LED (umumiy anodlar) kubini yaratish bo'yicha ko'rsatma. Butun qurilish 4x4x4 yoki 8x8x8 kubga osongina moslashadi. Ushbu loyiha GreatScott -dan ilhomlangan. Men kichikroq masofali + Bluetooth aloqasini qo'shib, yangi funktsiyalarni qo'shishni ancha osonlashtiradigan, shuningdek, kubni boshqarish uchun dastur yaratish imkoniyatini qo'shadigan, katta LEDlar (8 mm) yordamida yanada murakkab qurilishga o'tishga qaror qildim. Bu menga, masalan, ruxsat beradi. ilon o'yinini kodlang (oxirida 3 -vitrinani ko'rsating). Buning ustiga men Audio Vizualizator rejimini qo'shdim, bu kubga AUX kirishini tasavvur qilish imkonini beradi. MSGEQ7 yordamida musiqa (oxirida videoni ko'rsating). Bundan tashqari, men Java -da AnimationCreator dasturini yozdim, u erda har bir kishi maxsus animatsiyalarni tezda yaratishi uchun animatsiyalarni yaratish va sozlash uchun UI -dan foydalanish oson. Shunday qilib, Sketch + Bluetooth ilovasi har qanday LED kubik konfiguratsiyasi uchun asos yaratadi va Animatsiya Yaratuvchisi yordamida siz maxsus animatsiyalarni amalga oshirishdan xavotirlanmaysiz.

Arduino Sketch va Bluetooth ilovalariga havolalar:

RGBCube_Arduino eskiz (Github)+Animatsiya yaratuvchisi.jar

Cubo Bluetooth ilovasi (Github)

Kub uchun qismlar ro'yxati:

  • 216x RGB LED (umumiy anod) (8 mm) (AliExpress / Ebay)-> 6x6x6 = 216
  • Ip kabeli (1m 40Pin etarli bo'lishi kerak) (AliExpress / Ebay / Amazon)
  • Ayol va erkak sarlavhalari (har biri kamida 4x40pin) (AliExpress / Ebay / Amazon)
  • Kalaylangan mis / kumush sim 0,8 mm (~ 25 metr) (AliExpress / Ebay / Amazon)
  • Qisqartiruvchi quvur (AliExpress / Ebay / Amazon)

Boshqarish paneli uchun ehtiyot qismlar ro'yxati:

  • 7 x TLC5940 LED drayveri (ebay / AliExpress)
  • 6 x IRF 9540 P-kanalli MOSFET (Amazon / Ebay / AliExpress)
  • 8 x 10 uF kondansatkichlari (Amazon / Ebay / AliExpress)
  • 3 x 1000 uF kondansatkichlari (Amazon / Ebay / AliExpress)
  • 14x 2.2kOhm rezistorlar (Amazon / Ebay / AliExpress)
  • 1 x 1kOhm qarshilik (Amazon / Ebay / AliExpress)
  • 7 x 28 pinli IC soketlari (Amazon / Ebay / AliExpress)
  • 1 x Arduino Nano (Amazon / Ebay / AliExpress)
  • 1 x 1N4001 diodi (har qanday oddiy diod) (Amazon / Ebay / AliExpress)
  • 8 x 0.1uF kondansatkichlari (ebay)
  • 1 x DC Jek PCB o'rnatish (Amazon / Ebay / AliExpress)
  • 1 x HC-05 Bluetooth moduli (Amazon / Ebay / AliExpress)

1 -qadam: nazariya

Nazariya
Nazariya

Agar siz multiplexing nazariyasi bilan qiziqmasangiz, haqiqiy qurilishning boshlanishi uchun 2 -bosqichga o'ting

Uskuna va dasturiy ta'minot bu loyihaning bir xil qismlari bo'lgani uchun, avval nazariyani ko'rib chiqaylik.

Kubning miyasi - Arduino Nano. U ishlatilgan LED drayverlari bilan o'zaro aloqada bo'lish, shuningdek HC-05 moduli va boshqa boshqaruv uskunalariga Bluetooth ulanishini o'rnatish uchun etarli kirish-chiqish imkoniyatini beradi. Agar siz boshqa LED Cube konstruktsiyalariga nazar tashlagan bo'lsangiz, ko'pchilik odamlar individual LEDlarning ranglarining yorqinligini saqlash uchun oddiy Shift registrlaridan foydalanganligini bilasiz. Ushbu tuzilish Shift registrlaridan foydalanmaydi, aksincha "TLC5940" LED drayverlari deb nomlanadi. Keyinchalik ko'rib turganimizdek, bu bizga ko'p vaqtni, shuningdek, qo'shimcha uskunalarni (masalan, rezistorlar) tejaydi.

Kubni boshqarishning asosiy funktsiyalari ko'paytirishdan foydalanadi. Bu holda biz kubning 6 qatlamini ko'paytiramiz, ya'ni qatlamdagi barcha LEDlarning barcha anodlari (+) ulangan, shu bilan birga bitta ustundagi barcha LEDlarning alohida katodlari pastki tomonga ulangan. Bu shuni anglatadiki, agar siz LEDni x = 1, y = 2, z = 3, color: green pozitsiyasida yoritmoqchi bo'lsangiz, siz 3 -qavat anodida 5V kuchlanishli bo'lishingiz va GNDni ustun katodiga ulashingiz kerak. Yashil pin x = 1, y = 2. Haqiqatan ham, bir vaqtning o'zida, kubning faqat bitta qatlami yoqilgan, lekin keyinroq ko'rib turganingizdek, biz alohida qatlamlarni juda tez o'chirib qo'yamiz va ko'zimiz butun kub yoqilgan deb o'ylaydi..

Yorqinlik, animatsiya va boshqalarni boshqarish uchun biz Arduino Nano-ga ulangan HC-05 Bluetooth modulidan foydalanamiz. Modulni Arduino bilan ishlatish juda oddiy, chunki sizga faqat 4 pinli ulanish kerak va siz Arduino-ning standart ketma-ket aloqasi orqali modul bilan bog'lanishingiz mumkin. Bu ko'rsatma oxirida siz kubni boshqarish uchun o'z Bluetooth ilovasini yozish qanchalik osonligini bilib olasiz.

ESLATMA

Mening Arduino elektron platamning sxemasida siz MSGEQ7 protsessorli audio kiritish interfeysi bilan ishlashning kichik sxemasini ham ko'rishingiz mumkin, bu haqiqiy kub uchun mutlaqo kerak emas va men qo'shgan qo'shimcha funktsiya, shuning uchun siz belgilangan sxemani e'tiborsiz qoldirishingiz mumkin. "MSGEQ7" bilan

2 -qadam: Uskuna: LED Cube Build

Uskuna: LED Cube Build
Uskuna: LED Cube Build
Uskuna: LED Cube Build
Uskuna: LED Cube Build
Uskuna: LED Cube Build
Uskuna: LED Cube Build

Keling, Arduino Nano atrofidagi boshqaruv sxemasi haqida gapirishdan oldin, kubni qanday qurishni ko'rib chiqaylik.

Kub qurilish qismlari ro'yxati:

  • 216x RGB LED (umumiy anod) (AliExpress / Ebay)-> 6x6x6 = 216
  • Ip kabeli (1m 40Pin etarli bo'lishi kerak) (AliExpress / Ebay / Amazon)
  • Ayol va erkak sarlavhalari (kamida 4x40pin) (AliExpress / Ebay / Amazon)
  • Kalaylangan mis / kumush sim 0,8 mm (~ 25 metr) (AliExpress / Ebay / Amazon)
  • Qisqartiruvchi quvur (AliExpress / Ebay / Amazon)

Birinchi narsa, va men hozir zerikarli, lekin biz LEDlarni sinab ko'rishimiz kerak. Buning uchun biz quvvat manbaini, masalan, qisqichli 9V akkumulyator blokirovkasini oddiy ulanamiz. 3 -rasmda ko'rib turganingizdek, LEDlarning eng uzun pimi - bu anod (+), shuning uchun siz bu pinni +9V batareyaga ulaysiz. Endi GND ni individual ranglarga ulashdan oldin, katodlar (qizil, yashil, ko'k) tokni cheklash uchun har bir katodga 220 Ohmli rezistor qo'shing. Endi 216 LEDning barcha ranglarini sinab ko'ring.

Keyingi bosqichda biz sinovdan o'tgan LEDlarni tayyorlaymiz, shunda biz ularni keyinchalik ustunlarga osongina yig'amiz.

3 -qadam: LED qatorlari

LED qatorlari
LED qatorlari
LED qatorlari
LED qatorlari
LED qatorlari
LED qatorlari

LEDlarni o'z qatorlariga lehimlashdan oldin biz simlarni egishimiz va kesishimiz kerak.

Birinchi rasmda ko'rib turganingizdek, men yog'och bo'lagiga 8 mm teshik (8 mm LED uchun) oddiy burg'ulash qildim va LED teshigining chap tomonida, teshikning o'ng tomonida 3 ta juda kichik burg'ulash qildim. Bu matkaplar simlarni to'g'ri burish uchun markerlar bo'lib, LED uchun teshikning o'rtasidan taxminan 1 sm masofada bo'lishi kerak.

Bu uslub Stiv Manlidan ilhomlangan, siz buni YouTube -da ozgina farq qilgan holda videoni topishingiz mumkin.

2 va 3 -rasmda ko'rsatilgandek, matkaplar atrofidagi tirgaklarni kesishdan va burishdan oldin, chiziqlarning yo'nalishi 1 -rasmga mos kelishiga ishonch hosil qiling (ko'k chapdan, keyin yashil, keyin anod + o'ngdan va yana qizil chapda). Qo'rg'oshinlarga egilgan aylananing diametri kalay mis simga (0,8 mm) to'g'ri keladigan darajada katta bo'lishi kerak. Ushbu qadam, LEDlarni o'z joyiga to'g'ri joylashtirishni osonlashtiradi.

Endi barcha LEDlar tayyor bo'lgach, biz ularni anodlar (+) ulangan 6 qatorga yig'moqchimiz:

  1. 6 -rasmda ko'rinib turganidek, kichik dastgoh yarating, keyingi teshikka 2,5 sm masofada 6 teshik (diametri 0,8 mm) burg'ulang. Bu bizga bir vaqtning o'zida 6 ta LEDni moslamaga joylashtirish imkonini beradi
  2. Anodlarni ulash uchun bizga ~ 16 sm uzunlikdagi to'g'ri kalaylangan mis simli bo'lak kerak bo'ladi (qo'shimcha chegara bilan). Simni yaxshi va to'g'ri olish uchun siz simning bir uchini, masalan, elektr matkapga o'rnatib, stolga bir vaqtning o'zida taxminan 2 m simni mahkamlang, so'ngra matkapni sim uzilib, mahkam tortib ushlab turing. bir necha soniya davomida simni juda tez to'g'rilaydi. Keyin simni bo'lakni mahkamlagan joydan kesishingiz mumkin. Siz bir vaqtning o'zida ikkita qisqichni ishlatishingiz va kichikroq bo'laklarni mahkamlashingiz mumkin, lekin bu ancha zerikarli
  3. Agar sizda 16 sm uzunlikdagi simlar bo'lsa, siz ularni dioddagi LEDlarning Anod (+) teshiklari orqali yo'naltirasiz va anod pinlarini simga lehimlaysiz (7 -rasm)

Butun kub uchun bizga 6x6 = 36 LED satr kerak bo'ladi

4 -qadam: qatlamlarni yig'ish

Qatlamlarni yig'ish
Qatlamlarni yig'ish
Qatlamlarni yig'ish
Qatlamlarni yig'ish
Qatlamlarni yig'ish
Qatlamlarni yig'ish

Yuqorida aytib o'tganimdek, biz kub qatlamlarini ko'paytiramiz, lekin yig'ish uchun 6x6 LEDli 6 ta devor qurish, keyin ularni bir -birining yoniga yig'ish va anodlarni bog'laydigan bitta kalaylangan mis simni ishlatish osonroq. satrlar bir qatlamda.

E'tibor bering, bu qadamni bajarish uchun ko'p vaqt va sabr -toqat talab qilinadi, jami qurilish uchun 1000 ga yaqin lehim bo'g'inlarini lehimlashingiz kerak bo'ladi, shuning uchun shoshmang!

LED devorini qurish uchun:

  1. Jig uchun: Bizga devor qurish uchun 6 qatorni ketma -ket joylashtirish uchun 6 ta o'yilgan chiziqli yog'och bo'lagi kerak. Jigarning o'zini 2 -rasmda ko'rishingiz mumkin (qatorlar orasidagi masofa: 2,5 sm)
  2. Siz 6 qatorli LEDni oymalarga, Anod simini pastga qaratib, o'yilgan chiziqqa joylashtirasiz, shunda 3 katod (R, G, B) yuqoriga qaraydi.
  3. Katodlarni bir -birining ustiga qo'yish uchun (2 -rasmga qarang) bizga yana bir nechta sim kerak bo'ladi (shuning uchun biz yana 6 ta ustun x 3 katod x 6 devor = oxirgi qadamda (2) tasvirlangan 108 kalaylangan tel bo'lagini (xuddi shu uzunlikda))
  4. Ustunning pastki qismidagi simlarni katodlarning teshiklaridan yuqori qatorga o'tkazing va simni har bir LEDda o'z joyiga lehimlang.

Siz 6 ta LED devorini olish uchun buni 6 marta bajarasiz.

Endi biz devorlarni haqiqiy kubga yig'ishimiz mumkin. Ammo kubni ushlab turish uchun biz qandaydir er usti samolyotini yasashimiz kerak. Buning uchun men ingichka kontrplakdan foydalandim va diametri 0,8 mm bo'lgan teshiklarni burdim, ular LEDlarning eng past qatorlariga osilgan simlarni o'rnatish uchun (6 ta LED devor uchun). Bitta LEDning teshiklari o'lchami 3 -bosqichda hujjatlashtirilgan va har bir LED orasidagi masofa 2,5 sm.

Teshiklar joyida, biz endi birinchi devorni olamiz va uni kontrplakning chap tomonidagi teshiklarga o'tkazamiz. Pastki qismdagi LED qatori yog'ochga to'g'ri o'tirishi kerak, natijada barcha devorlar bir xil bo'ladi.

Qolgan LED devorlari bilan ham xuddi shunday qilishni davom eting, lekin esda tutingki, devor anodlari har doim bir tomonga qaraydi. (3 -rasmda devorlarning barcha anodlari chap tomonda)

Butun kub joyiga qo'yilgach, biz har bir qatlamning anodlarini bir -biriga lehimlashimiz kerak. Buning uchun biz yana ~ 16 sm uzunlikdagi to'g'ri simni olamiz va uni birinchi qavatning ustiga qo'yamiz, shunda sim 6 ta devorning barcha anodli simlariga bir qatlamda tegadi. E'tibor bering, yangi sim katodlarning hech biriga tegmaydi. Telni joyiga lehimlang va qolgan 5 ta qatlam uchun xuddi shu narsani takrorlang.

5 -qadam: kubik kabellari

LED haydovchi paneli
LED haydovchi paneli
LED haydovchi paneli
LED haydovchi paneli
LED haydovchi paneli
LED haydovchi paneli

LED haydovchi paneli uchun qismlar:

  • 7 x TLC5940
  • 6/7 x 10 uF kondansatkichlari
  • 2 x 1000 UF kondansatkichlari
  • 7x 2.2kOm rezistorlar
  • 7 x 28 pinli IC soketlari
  • 7 x 0,1uF kondansatkichlari
  • Lenta kabeli

Boshqaruv sxemalariga o'tamiz, avval LED drayverlar kartasini ko'rib chiqaylik. Yuqorida aytib o'tilganidek, bizga Arduino Nano -ga ulangan 7 TLC5940 kerak. Barcha TLC5940 chiplari romashka bilan bog'langan, bu shuni anglatadiki, haydovchilarning barcha boshqaruv pimlari bir -biriga bog'langan (masalan, birinchi TLC -ning BLANK pinasi ikkinchi, uchinchi, to'rtinchi,… TLC -ning BLANK -ga ulangan) va ularning hammasi Arduinowith -ga ulangan. xuddi shu simlar, Arduino raqamli pinidan birinchi TLC ga ulangan ketma -ket kirishdan tashqari, keyin birinchi TLC ning ketma -ket chiqishi ikkinchi TLC ning SIN piniga ulanadi va hokazo (4 -rasmga qarang) …

Shunday qilib, TLC platasining sxemasi ilova qilingan sxemada ko'rib turganingizdek juda oddiy.

(8 -QADAMGA BOSHQARMAGA OCHISHNI XOXLAYSIZ)

Men, shuningdek, pinli yorliqlarni o'z ichiga olgan sxemaning skrinshotini biriktirdim, shuningdek, ajratilgan har bir nazorat pin ulanishi uchun qatlamli GIMP.xcf fayllari.

Barcha IC rozetkalarini lehimlashdan boshlang, so'ngra har bir TLCga 100nF kondansatkichlarini, so'ngra IREFand GND va 2,2kOhm rezistorni qo'shib, yuqori o'ng burchakda 7 pinli sarlavhani kiriting. Gimp faylidagi "SIN qatlami" dan boshlab, haydovchilarning ketma -ket IN/OUT pinlarini tasma kabellari yordamida qanday ulashni, keyin GIMP -da CLK qatlamini yoqishni va boshqalarni ko'rsatadi. + Va - pinlarning yuqori o'ng burchakdagi pin sarlavhasi bilan yaxshi aloqada ekanligingizga ishonch hosil qiling, sxemaning qolgan qismi o'z -o'zidan tushunarli bo'lishi kerak, lekin taxtaga etarli 1000uF va 10uF kondansatkichlarini qo'shganingizga ishonch hosil qiling, bu aniq emas. siz ularni joylashtirasiz.

Ushbu taxtani tugatgandan so'ng, keyingi bosqichda Arduino platasiga o'tishingiz mumkin.

7 -qadam: Arduino + Bluetooth boshqaruv paneli

Arduino + Bluetooth boshqaruv paneli
Arduino + Bluetooth boshqaruv paneli

Boshqaruv paneli uchun qismlar:

  • 6 x IRF 9540 P-kanalli MOSFET
  • 1 x 10 UF kondansatkichlari
  • 1 x 1000 uF kondansatkichlari
  • 7 x 2,2 kOhm rezistorlar
  • 1 x 1kOhm qarshilik
  • 2 x 14 ayol pinli sarlavha
  • 1 x Arduino Nano
  • 1 x 1N4001 diodi
  • 1 x 0,1uF kondansatkichlari
  • 1 x DC Jek PCB o'rnatish
  • 1 x HC-05 Bluetooth moduli
  • 1 x 3,5 mm audio raz'em

Arduino boshqaruv kengashi, asosan, LED drayveri platasining pin sarlavhasi bilan bir qatorda ko'paytirishni ham boshqaradi.

Perfort taxtasida lehim:

  1. Kengashning o'rtasiga Arduino rozetkasi vazifasini bajarishi uchun ikkita pinli pin sarlavhasini joylashtiring.
  2. 6 MOSFETni ketma -ket Arduino -ning o'ng tomoniga (analog pinli tomoni) bir -birining yoniga qo'ying va har birining birinchi va oxirgi pimi o'rtasida 2,2 kOhmlik rezistor qo'shing.
  3. Endi 6 pinli sarlavhani MOSFET -lar oldiga qo'ying (qator o'rtasi) va FET -larning 6 drenaj pinini (o'rta pin) sarlavhaga va FET -larning GATE pinlarini (chap pin) tegishli Arduino analog pinlariga ulang..
  4. Keyin, Arduino -ning boshqa tarafidagi LEDDriver ulanishi uchun 7pinli sarlavhani lehimlang, kabellar uchun joy qoldiring va Arduino -dan pin sarlavhasiga barcha ulanishlarni lehimlang.
  5. Mumkin bo'lgan oqim drenajlari uchun bir nechta kondansatörler qo'shing (Arduino yonida 1-2 1000uF, 1 10uF, 100nF).
  6. HC-05 moduli uchun Arduino-ning orqa tomonidagi 4-pinli sarlavhani lehimlang va VCC, RX, TX, GND-ga 4 ta ulanishni amalga oshiring va HC-05 va RX pinidan kuchlanish bo'luvchi bo'lishni unutmang. Arduino -ning TX -pinasi (bu yerga qarang)
  7. DC Jekni yonidagi kalit bilan taxtaning istalgan chetiga joylashtiring va kalitning o'ng pinini + shahar raz'emining + piniga ulang.
  8. Nihoyat, diagrammada ko'rinib turganidek, DC Jekning GND pinidan va kalitning o'ng pinidan Arduino, MOSFETs, Kondansatkichlar va HC-05 ga barcha kerakli quvvat ulanishlarini o'tkazing. Diodni qo'shishni unutmang, faqat kalitning VCC pinidan quvvat olganda, Arduinos 5V piniga tushadi, boshqa yo'l bilan emas. (Bu USB ulanishi orqali dasturlashda Arduino -ni himoya qiladi)

Quvvat aloqasi uchun men oddiy quvvat tugmachasi bo'lgan DC quvvat ulagichidan foydalanardim, agar xohlasangiz, USB ulagichidan ham foydalanishingiz mumkin, men yog'och korpusimga yaxshi joylashishi uchun quvvat ulagichini boshqa kichik elektron plataga topshirdim. Arduino taxtasida. Birinchi bosqichda aytib o'tilganidek, sxemada MSGEQ7 ulanish sxemasi ham mavjud, lekin agar siz MSGEQ7dan foydalanmasangiz, bunga e'tibor bermang. (MSGEQ7 funktsiyasi haqida ko'proq ma'lumot olish uchun bu erni bosing)

Arduino kartasini haydovchi paneli bilan ulash uchun har bir uchida erkak pinli 7 -pinli tasma kabelini yasashni unutmang

8 -qadam: Ixtiyoriy: O'chirish platalarini qirib tashlash

Majburiy emas: O'chirish platalarini qirib tashlash
Majburiy emas: O'chirish platalarini qirib tashlash
Majburiy emas: O'chirish platalarini qirib tashlash
Majburiy emas: O'chirish platalarini qirib tashlash
Majburiy emas: O'chirish platalarini qirib tashlash
Majburiy emas: O'chirish platalarini qirib tashlash

Agar siz ko'plab kabellarni lehimlashni yoqtirmasangiz, albatta, agar siz xohlasangiz, kerakli PCB -larni ham chizishingiz mumkin.

My Cube -da Arduino taxtasi va Quvvat/Ovoz ulagichi biriktirilgan sxematik/EAGLE fayllari yordamida o'yilgan taxtadir. Men birinchi marta sxemada xato qilganman, shuning uchun men oxirgi bosqichda bo'lgani kabi LED drayverini qayta ishlashga majbur bo'ldim. Taxtani taxtadan yasashning katta afzalliklari yo'q, shuning uchun taxtani qirib tashlash yoki perfboardga lehimlash mumkin.

Qo'shilgan.zip -da siz BOARD faylini ham, SCHEMATIC faylini ham topishingiz mumkin.

E'tibor bering, yuqori qavat izlari (qizil) simli ko'prik bo'lishi kerak (chunki men uyda ikki qirrali taxtalarni chizolmayman). Tugallanmagan izlar pin pinli ayollar uchun kabellar orqali ulanishni ko'rsatadi.

Sxema MSGEQ7 xususiyatini o'z ichiga oladi, uni.pdf sxemasining skrinshotida "(MSGEQ7)" deb belgilangan sxemaning bo'limini o'chirib tashlash mumkin.

9 -qadam: kubni ulash

Kubni ulash
Kubni ulash
Kubni ulash
Kubni ulash
Kubni ulash
Kubni ulash

Cube -ning barcha qismlarini ulash uchun Arduino kartasi va haydovchilar platasiga 7pinli kabelni ulashdan boshlang (yo'nalish to'g'ri ekanligiga ishonch hosil qiling!). Keyin HC05 modulini 4 pinli sarlavhaga ulang va ajratilgan bo'lsa, quvvat kartasini ulang.

7x16 pinli kub sarlavhalarini ulash uchun birinchi TLC (SIN pin Arduino -ga to'g'ridan -to'g'ri ulangan) bilan boshlanganligiga ishonch hosil qiling. Cube -dan to'g'ri 16 -pinli kabelni toping va uni birinchi TLC pin sarlavhasiga ulang (Katod Nr.0 uchun kabel birinchi TLC OUT0 piniga ulanganligiga ishonch hosil qiling!). Davom eting va boshqa 16 pinli kabellarni tegishli TLC sarlavhalariga to'g'ri tartibda ulang.

Oxir -oqibat, kubdan anodlar uchun 6Pin kabelini MOSFET yonidagi boshqaruv panelidagi 6Pin sarlavhasiga ulang.

Kubni tugatish uchun men korpusga qora bo'yoqli kontrplak bilan devor qo'shdim va yopishtirdim.

Endi biz butun qurilish uchun zarur bo'lgan barcha asbob -uskunalarni tayyorladik!

10 -qadam: dasturiy ta'minot: ko'paytirish tsikli

Dasturiy ta'minot: ko'paytirish tsikli
Dasturiy ta'minot: ko'paytirish tsikli

Endi nazariy jihatdan Arduino doimiy ravishda quyidagi tsiklni bajaradi:

  1. Agar LayerDuration o'tgan bo'lsa, TLC -larga keyingi Qatlam qiymatlarini yuklang, joriy Qatlamni o'chiring, Keyingi Qatlamni yoqing, LayerDuration -ni tiklang, yangi qiymatlarni TLC -larga kiriting.
  2. Agar FrameDuration o'tib ketgan bo'lsa, barcha LED va ranglarning qiymatlarini ValueLed buferiga saqlash orqali joriy animatsiyaning yangi kadrini yuklang, FrameDuration -ni qayta o'rnating.
  3. Agar Bluetooth ma'lumotlari mavjud bo'lsa, ularga javob bering (Animatsiyani o'zgartirish, Yorqinlikni o'zgartirish …) (qo'shimcha ma'lumot keyinroq)

Ko'rib turganingizdek, kodning asosiy yo'nalishi tezlikdir. Qatlamni o'zgartirish vaqti minimal bo'lishi muhim.

Qatlamlarni qanchalik tez yoqsangiz/o'chirsangiz, shuncha ko'p "ramkalar" olasiz. 6x6x6 RGB LED kubiklari uchun, men 1700 microSec qatlam davomiyligini aniqladim. minimal miltillashni davom ettirish uchun etarlicha yaxshi va bu qiymatda qoldirilishi kerak. FrameDuration animatsiya tezligini ko'proq nazorat qiladi, shuning uchun uni turli animatsiyalar uchun o'zgartirish mumkin.

Keyingi bosqichda biz o'z animatsiyalarimizni qanday yozishni ko'rib chiqamiz.

11 -qadam: Maxsus animatsiyalar

Maxsus animatsiyalar
Maxsus animatsiyalar
Maxsus animatsiyalar
Maxsus animatsiyalar

Animatsiyani amalga oshirish uchun, FrameDuration har o'tganda, ValueLed buferini keyingi Frame uchun kerakli qiymatlarga o'rnatishimiz kerak. Biz buni "SETLED (x, y, z, COLOR, Brightness)" so'l funktsiyasini chaqirish orqali qilamiz.

x, y, z - biz o'rnatmoqchi bo'lgan LEDning koordinatalari, COLOR (QIZIL, Yashil yoki KO'K) - biz belgilashni xohlagan rang va Yorqinlik - bu biz belgilagan rangning haqiqiy qiymati.

Masalan, butun kub bo'ylab tasodifiy ravishda qizil, yashil va ko'k ranglarni ko'rsatadigan animatsiyani amalga oshirish uchun siz shunchaki shunday qilishingiz mumkin:

void randomLedsFull () {

uchun (uint8_t j = 0; j <CUBE_SIZE; j ++) {uchun (uint8_t x = 0; x <CUBE_SIZE; x ++) {uchun (uint8_t y = 0; y <CUBE_SIZE; y ++) {uint8_t rand = random8 (3); SETLED (x, y, j, rand, maxBright); }}}}

Bu usul har safar FrameDuration o'tganda chaqiriladi va loop () dagi switch-case buyrug'idan tanlanadi. Agar siz yangi animatsiyalarni yozsangiz, ularni faqat kommutatorga qo'shib qo'shishingiz mumkin.

12 -qadam: Qo'shimcha: AnimationCreator

Qo'shimcha: Animatsiya yaratuvchisi
Qo'shimcha: Animatsiya yaratuvchisi

Men qo'shimcha ravishda JavaFX va Java3D yordamida AnimationCreator yozdim.

Oddiy foydalanuvchi interfeysini ta'minlab, maxsus animatsiyalarni yaratish va tahrir qilishni osonlashtiradi.

Siz 4x4x4, 6x6x6 yoki 8x8x8 LED kublar uchun animatsiyalarni yaratishingiz, tahrir qilishingiz, nomini o'zgartirishingiz va qayta sozlashingiz mumkin

Yangi animatsiya yaratish uchun "Fayl> Yangi" tugmachasini bosing, "Kub" ostida siz kub hajmini tanlashingiz mumkin, LED rangini belgilash uchun kerakli rangni tanlang, chapdagi Rang tanlagichi va kerakli LEDlarni chap tugmasini bosing. bu ramka uchun rang. Boshqa ramka qo'shish uchun "Keyingi" yoki "+" ni bosing. Qolgan foydalanuvchi interfeysini boshqarish elementlari o'z -o'zidan tushunarli, "Qatlamlar qobig'i" yonidagi katakchalar qaysi qatlamlarga siljish va "kadrni saqlash" ta'sir qilishi kerakligini belgilaydi. Buni sinab ko'ring va siz tezda hamma narsani bilib olasiz.

Animatsiyani simulyatsiya qilish uchun siz "3D ko'rish" tugmachasini bosishingiz mumkin, u boshqa oynani Java3D kub modeli bilan ochadi. Sichqonchaning chap tugmachasini bosib ushlab turganda kamerani aylantirishingiz mumkin (kamerani qayta o'rnatish uchun R tugmachasini bosing). Animatsiyani ijro etish/to'xtatib turish uchun P tugmachasini bosing, animatsiyani qayta tiklash uchun Q tugmasini bosing. FrameTime, animatsiyaning tezligi.

Animatsiyani tugatgandan so'ng, unga nom bering va Fayl> Saqlash … ni bosing va animatsiyani Cubo_Control.ino eskizidagi papkaga saqlang.

Sizni yangi animatsiyani eskizga qo'shish uchun Cubo_Control.inoni oching va eskizning ustiga quyidagi kodni qo'shing:

#"RGBit.h" ni qo'shing // O'zgartiring

Pastga BTEvent () ga o'ting va animatsiyalar almashinuvi holatiga bayonot qo'shing

almashtirish (curAnim) {

… 10 -holat: animatsiya = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; tanaffus; 11 -holat: // SIZNING YANGI ANIMASI animatsiyasi = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; maxCount = ANI_RGBIT_FRAMES; tanaffus; }

13 -qadam: Bluetooth ilovasi

Bluetooth ilovasi
Bluetooth ilovasi

Haqiqatan ham Cube-ni boshqarish uchun HC-05 moduli tufayli telefoningizni kubga ulash uchun Bluetooth ilovasini yaratish juda oson.

Ilovaga havola: Github

Ilova ochiq manba hisoblanadi, shuning uchun o'zingiz qo'shimcha animatsiyalar/xususiyatlarni qo'shishingiz mumkin.

  • Ilovani ishga tushiring, u Bluetooth -ni yoqishingizni so'raydi
  • "Qidirish" ni bosing va mavjud Bluetooth ulanishlari ro'yxati paydo bo'ladi. Kubdan HC-05 modulini aniqlang va ustiga bosing.
  • Agar Cube-ga ulanishda xato bo'lsa, Bluetooth sozlamalarida HC-05 modulini qo'lda ulashga harakat qiling.
  • Ulanishdan so'ng, dastur Boshqarish ekraniga o'tadi va Bluetooth aloqasi o'rnatiladi

Boshqaruv

  • Tezlik va yorqinlik: Animatsiyani tezlashtirish/sekinlashtirish yoki yorqinligini o'zgartirish uchun slayder qiymatlarini o'zgartiring
  • Animatsiyalar: Animatsiyani o'zgartirish uchun tugmani bosing, sukut bo'yicha animatsiyalar aylanmoqda (yuqori chapdan boshlab tugma CurrAnim -ga to'g'ri keladi).
  • Matnni aylantirish: "Matn" tugmachasini bosing, u kub bo'ylab aylanadigan matnni kiritish uchun dialog oynasini ochadi.
  • Buyruq: Siz buyruqlarni TextField buyrug'i bilan qo'lda kiritishingiz mumkin (sintaksis uchun Cubo_Control.inoning BTEvent () usulini ko'ring)
  • Ilon: klassik ilon o'yini (qizil: olma, yashil: ilon boshi, ko'k: dumini yashiringan) (Boshqaruvlar: 4 ta yo'nalish tugmasi, yuqoriga va pastga telefonni oldinga (yuqoriga) yoki orqaga (pastga) burish orqali ishga tushadi)
  • Audio Vizualizator: MSGEQ7 AUX Jekdan 6 ta audio tasmani vizualizatsiya qilish uchun ishlatiladi (Animatsiya 7 tugmasi)

14 -qadam: Ko'rgazma

Tavsiya: