Isi kandungan:

RGB LED Cube Dengan Aplikasi Bluetooth + AnimasiCreator: 14 Langkah (dengan Gambar)
RGB LED Cube Dengan Aplikasi Bluetooth + AnimasiCreator: 14 Langkah (dengan Gambar)

Video: RGB LED Cube Dengan Aplikasi Bluetooth + AnimasiCreator: 14 Langkah (dengan Gambar)

Video: RGB LED Cube Dengan Aplikasi Bluetooth + AnimasiCreator: 14 Langkah (dengan Gambar)
Video: Begini Detik-detik TV Analog Mulai Dimatikan | Onext Short 2024, November
Anonim
RGB LED Cube Dengan Aplikasi Bluetooth + AnimationCreator
RGB LED Cube Dengan Aplikasi Bluetooth + AnimationCreator

Ini adalah petunjuk mengenai cara membina Cube LED 6x6x6 RGB (Common Anodes) yang dikendalikan oleh Aplikasi Bluetooth menggunakan Arduino Nano. Keseluruhan binaan mudah disesuaikan dengan kiub 4x4x4 atau 8x8x8. Projek ini diilhamkan oleh GreatScott. Saya memutuskan untuk mencari binaan yang lebih canggih dengan menggunakan led yang lebih besar (8mm), dengan jarak yang lebih sedikit + menambahkan komunikasi Bluetooth yang menjadikan penambahan fungsi baru menjadi lebih mudah dan juga menambahkan kemampuan membina aplikasi untuk mengawal kubus. Ini juga membolehkan saya mis. kodkan Permainan Ular (video pameran ke-3 di akhir). Di atas semua itu saya menambahkan mod Audio Visualizer yang membolehkan kubus memvisualisasikan Input AUX mis. Muzik menggunakan MSGEQ7 (tunjukkan video di akhir). Selain itu, saya menulis aplikasi AnimationCreator di Java dengan UI yang mudah digunakan untuk membuat dan mengubah Animasi, supaya sesiapa sahaja dapat membuat animasi tersuai dengan cepat. Oleh itu, Aplikasi Sketch + Bluetooth menyediakan kerangka untuk konfigurasi LED Cube dan dengan Pencipta Animasi, anda tidak perlu risau untuk melaksanakan animasi tersuai.

Pautan ke Aplikasi Arduino Sketch and Bluetooth:

Sketsa RGBCube_Arduino (Github) + Pencipta Animasi.jar

Aplikasi Bluetooth Cubo (Github)

Senarai bahagian untuk Cube:

  • 216x RGB LED (Common Anode) (8mm) (AliExpress / Ebay) -> 6x6x6 = 216
  • Kabel Pita (1m 40Pin semestinya mencukupi) (AliExpress / Ebay / Amazon)
  • Header Wanita dan Lelaki (sekurang-kurangnya 4x40pin setiap satu) (AliExpress / Ebay / Amazon)
  • Kawat Tembaga / Kawat Perak 0.8mm (~ 25 Meter) (AliExpress / Ebay / Amazon)
  • Tiub Mengecut (AliExpress / Ebay / Amazon)

Senarai bahagian untuk Papan Kawalan:

  • Pemacu LED 7 x TLC5940 (Ebay / AliExpress)
  • 6 x IRF 9540 P-Channel MOSFET (Amazon / Ebay / AliExpress)
  • Kapasitor 8 x 10 uF (Amazon / Ebay / AliExpress)
  • Kapasitor 3 x 1000 uF (Amazon / Ebay / AliExpress)
  • 14x 2.2kOhm Resistor (Amazon / Ebay / AliExpress)
  • 1 x 1kOhm Resistor (Amazon / Ebay / AliExpress)
  • Soket IC 7 x 28pin (Amazon / Ebay / AliExpress)
  • 1 x Arduino Nano (Amazon / Ebay / AliExpress)
  • 1 x 1N4001 Diod (Mana-mana Diod biasa) (Amazon / Ebay / AliExpress)
  • Kapasitor 8 x 0.1uF (Ebay)
  • 1 x Pemasangan Jack DC DC (Amazon / Ebay / AliExpress)
  • 1 x Modul Bluetooth HC-05 (Amazon / Ebay / AliExpress)

Langkah 1: Teori

Teori
Teori

Sekiranya anda tidak berminat dengan teori mengenai multiplexing daripada melangkah ke Langkah 2 untuk permulaan binaan sebenar

Oleh kerana perkakasan dan perisian adalah bahagian yang besar dalam projek ini, mari kita lihat teori terlebih dahulu.

Otak kubus adalah Arduino Nano. Ini menyediakan I / O yang mencukupi untuk mengganggu Pemacu LED yang digunakan serta mewujudkan sambungan Bluetooth ke modul HC-05 dan perkakasan kawalan lain. Sekiranya anda melihat binaan LED Cube yang lain, anda akan tahu bahawa kebanyakan orang menggunakan register Shift sederhana untuk menyimpan nilai kecerahan warna LED individu. Binaan ini tidak menggunakan register Shift, tetapi dipanggil Pemacu LED "TLC5940". Seperti yang akan kita lihat kemudian ini akan menjimatkan banyak masa serta banyak perkakasan tambahan (misalnya perintang).

Fungsi asas mengendalikan kubus menggunakan multiplexing. Dalam kes ini, kita memfleksikan 6 lapisan kubus, yang bermaksud semua Anod (+) dari semua LED dalam satu lapisan disambungkan, sedangkan katod individu dari semua LED dalam Lajur yang sama dihubungkan ke bawah. Ini bermaksud bahawa jika anda ingin menyalakan LED pada kedudukan x = 1, y = 2, z = 3, warna: hijau anda perlu menyediakan 5V pada Anod Lapisan 3 dan sambungkan GND ke Katod Lajur yang sesuai dengan Pin Hijau x = 1, y = 2. Oleh itu, pada kenyataannya pada satu ketika, hanya satu lapisan Cube yang sebenarnya dihidupkan, tetapi seperti yang akan anda lihat nanti dalam Kod ini kita mematikan dan pada setiap Lapisan dengan begitu cepat, sehingga mata kita menganggap seluruh kubus itu dihidupkan.

Untuk mengawal perkara seperti kecerahan, animasi dan sebagainya, kami menggunakan modul Bluetooth HC-05 yang disambungkan ke Arduino Nano. Sangat mudah untuk menggunakan modul dengan Arduino kerana anda hanya memerlukan sambungan 4 Pin dan hanya dapat menghubungkan modul melalui Serial-Commuincation of the Arduino. Menjelang akhir arahan ini, anda akan mengetahui betapa mudahnya menulis Aplikasi Bluetooth anda sendiri untuk mengawal Cube.

CATATAN

Dalam skema papan Litar Arduino saya, anda juga dapat melihat skema kecil untuk mengaitkan proses input MSGEQ7 chipto Input Audio, ini sama sekali tidak diperlukan untuk kubus sebenar dan hanya fungsi tambahan yang saya tambahkan, oleh itu anda boleh mengabaikan Skema yang ditandakan dengan "MSGEQ7"

Langkah 2: Perkakasan: LED Cube Build

Perkakasan: LED Cube Build
Perkakasan: LED Cube Build
Perkakasan: LED Cube Build
Perkakasan: LED Cube Build
Perkakasan: LED Cube Build
Perkakasan: LED Cube Build

Oleh itu mari kita lihat bagaimana membina Cube itu sendiri, sebelum membincangkan rangkaian kawalan di sekitar Arduino Nano.

Senarai Bahagian untuk Pembinaan Cube:

  • LED 216x RGB (Anode Biasa) (AliExpress / Ebay) -> 6x6x6 = 216
  • Kabel Pita (1m 40Pin semestinya mencukupi) (AliExpress / Ebay / Amazon)
  • Header Wanita dan Lelaki (sekurang-kurangnya 4x40pin) (AliExpress / Ebay / Amazon)
  • Kawat Tembaga / Kawat Perak 0.8mm (~ 25 Meter) (AliExpress / Ebay / Amazon)
  • Tiub Mengecut (AliExpress / Ebay / Amazon)

Perkara pertama yang perlu dilakukan, dan sekarang saya membosankan tetapi perlu, kita harus menguji LED. Untuk melakukan itu, kami dengan mudah menyambungkan bekalan kuasa, misalnya blok bateri 9V dengan klip ke papan pemuka. Seperti yang anda lihat dalam gambar 3 Pin LED terpanjang adalah Anode (+) sehingga anda menyambungkan pin ini ke + 9V bateri. Sekarang sebelum menyambungkan GND ke warna individu Cathodes (Merah, Hijau, Biru) tambahkan perintang 220Ohm ke setiap katod untuk mengehadkan arus. Sekarang bersenang-senang menguji semua warna dari semua 216 LED.

Pada langkah seterusnya, kita akan menyiapkan LED yang diuji sehingga kita dapat memasangnya dengan mudah di lajur kemudian.

Langkah 3: Baris LED

Baris LED
Baris LED
Baris LED
Baris LED
Baris LED
Baris LED

Sebelum kita menyolder LED ke dalam barisan masing-masing, kita perlu membengkokkan dan memotong petunjuknya.

Seperti yang anda lihat pada gambar pertama, saya menggerudi lubang 8mm (untuk LED 8mm) ke dalam sekeping kayu dan menggerudi 3 gerudi yang sangat kecil di sebelah kiri lubang LED dan satu lagi di sebelah kanan lubang. Latih tubi ini merupakan penanda untuk membengkokkan plumbum dengan betul dan harus mempunyai jarak kira-kira 1cm dari tengah lubang untuk LED.

Teknik ini diilhamkan oleh Steve Manley, anda dapat melihat video dia melakukan ini dalam sedikit variasi di YouTube.

Sebelum anda memotong dan membengkokkan petunjuk di sekitar latihan seperti yang dilihat pada gambar 2 dan 3, pastikan bahawa orientasi petunjuk sesuai dengan gambar 1 (Biru di atas ke kiri, kemudian hijau, kemudian anod + ke kanan, dan merah kiri lagi). Lingkaran yang anda bengkokkan ke plumbum harus mempunyai diameter yang cukup besar agar sesuai dengan dawai tembaga kalengan (0.8mm). Langkah ini menjadikan solder LED di tempatnya lebih baik.

Setelah semua LED disiapkan, kami ingin memasangnya dalam baris 6 di mana Anodes (+) disambungkan:

  1. Bina jig kecil seperti pada gambar 6, gerudi 6 lubang (diameter 0.8mm) dengan jarak 2.5cm ke lubang seterusnya. Ini membolehkan kita memasukkan 6 LED sekaligus ke dalam jig
  2. Untuk menghubungkan anod, kami memerlukan sekeping dawai tembaga timah lurus dengan panjang ~ 16cm (dengan sedikit margin tambahan). Untuk mendapatkan wayar yang baik dan lurus, anda boleh memasang salah satu hujung wayar ke dalam seperti gerudi elektrik, pasangkan kira-kira 2m wayar pada satu masa di atas meja, kemudian pegang gerudi supaya wayar diregangkan dan diketatkan dan dihidupkan pada gerudi selama beberapa saat dengan meluruskan wayar dengan cepat. Anda kemudian boleh memotong wayar tepat di tempat anda mengikatnya. Anda juga boleh menggunakan dua tang dan mengetatkan kepingan dawai yang lebih kecil sekaligus, tetapi itu lebih membosankan
  3. Setelah anda mempunyai wayar sepanjang 16cm, anda mengarahkannya melalui lubang Anode (+) LED di jig dan menyisipkan pin Anode ke wayar (Gambar 7)

Untuk keseluruhan kubus, kita memerlukan 6x6 = 36 baris LED ini

Langkah 4: Pemasangan Lapisan

Perhimpunan Lapisan
Perhimpunan Lapisan
Perhimpunan Lapisan
Perhimpunan Lapisan
Perhimpunan Lapisan
Perhimpunan Lapisan

Seperti yang saya nyatakan sebelumnya, kita akan melipatgandakan lapisan kubus, tetapi untuk pemasangan lebih mudah untuk membina 6 Dinding LED 6x6 dan kemudian memasangnya di sebelah satu sama lain dan hanya menjalankan wayar tembaga timah tunggal yang menghubungkan anod baris dalam satu lapisan bersama.

Berhati-hatilah bahawa langkah ini memerlukan banyak masa dan kesabaran untuk melakukannya dengan betul, secara keseluruhan anda harus menyolder sekitar 1000 sendi pateri untuk membina jadi luangkan masa anda!

Untuk membina Dinding LED:

  1. Untuk jig: Kami memerlukan sekeping kayu dengan 6 garis berukir agar sesuai dengan 6 baris satu di atas yang lain untuk membina dinding. Anda dapat melihat jig itu sendiri dalam gambar 2 (jarak antara baris: 2.5cm)
  2. Anda memasukkan 6 baris LED ke dalam ukiran, dengan wayar Anode menghadap ke bawah ke garis ukiran, sehingga 3 Kod (R, G, B) menghadap ke atas
  3. Untuk menghubungkan katod yang berada di atas satu sama lain (lihat gambar 2) kita memerlukan lebih banyak wayar (jadi sekali lagi kita 6 Lajur x 3 Katod x 6 Dinding = 108 kepingan dawai kalengan seperti yang dijelaskan pada langkah terakhir (2.) (sama panjang juga))
  4. Luncurkan kepingan wayar dari bahagian bawah lajur melalui lubang katoda ke baris atas dan pateri wayar di tempat pada setiap LED

Anda melakukannya 6 kali untuk mendapatkan 6 Dinding LED.

Sekarang kita dapat memasang Tembok ke dalam kubus itu sendiri. Tetapi untuk memegang kubus, kita perlu membuat semacam landasan tanah. Untuk ini saya hanya menggunakan beberapa papan lapis nipis dan menggerudi lubang 0.8mm sedikit ke dalamnya, untuk memasang wayar yang tergantung dari Baris LED terendah (untuk semua 6 Dinding LED). Pengukuran untuk lubang LED tunggal didokumentasikan dalam Langkah 3 dan jarak antara setiap LED adalah 2.5cm.

Dengan lubang di tempatnya sekarang kita mengambil dinding pertama dan menggerakkannya ke lubang di sebelah kiri papan lapis. Baris LED di bahagian bawah harus duduk tepat di atas kayu, sehingga pada akhirnya semua Dinding sejajar sama.

Teruskan melakukan perkara yang sama dengan Dinding LED yang lain, tetapi ingat bahawa Anod Tembok selalu menghadapi arah yang sama. (dalam gambar 3 semua Anoda Tembok menghadap ke kiri)

Setelah seluruh kubus dipasang, kita perlu menyatukan Anod setiap lapisan bersama-sama. Untuk melakukan ini, kita mengambil satu lagi wayar lurus ~ 16cm dan meletakkannya di atas lapisan pertama, sehingga wayar menyentuh semua wayar Anode dari 6 dinding dalam satu lapisan. Perhatikan bahawa wayar baru tidak menyentuh katod mana-mana. Pateri wayar di tempatnya dan ulangi perkara yang sama untuk 5 lapisan yang tinggal.

Langkah 5: Pendawaian Cube

Papan Pemandu LED
Papan Pemandu LED
Papan Pemandu LED
Papan Pemandu LED
Papan Pemandu LED
Papan Pemandu LED

Bahagian untuk Papan Pemacu LED:

  • 7 x TLC5940
  • Kapasitor 6/7 x 10 uF
  • Kapasitor 2 x 1000 uF
  • Perintang 7x 2.2kOhm
  • Soket IC 7 x 28pin
  • Kapasitor 7 x 0.1uF
  • Kabel Pita

Melangkah ke litar kawalan, mari kita lihat pada papan Pemacu LED terlebih dahulu. Seperti yang telah disebutkan sebelumnya, kita memerlukan 7 TLC5940 yang dihubungkan ke Arduino Nano. Semua Chip TLC5940 dirantai daisy yang bermaksud bahawa semua Pin kawalan Pemacu saling berkaitan (mis. Pin BLANK dari TLC pertama disambungkan ke BLANK kedua, ketiga, keempat,… TLC) dan semuanya disambungkan ke Arduinowith wayar yang sama, kecuali Serial In yang pertama kali disambungkan dari Arduino Digital Pin ke TLC pertama, kemudian pin Serial Out dari TLC pertama ini disambungkan ke pin SIN dari TLC kedua dan seterusnya (lihat gambar 4)…

Jadi skema Papan TLC agak mudah seperti yang anda lihat dalam skema yang dilampirkan.

(JIKA ANDA INGIN MENGHADAPI JUMP DEWAN KE LANGKAH 8)

Saya juga melampirkan tangkapan skrin skema di frizz yang merangkumi label pin dan juga fail GIMP.xcf dengan lapisan untuk setiap sambungan Pin Pin yang dipisahkan.

Mulakan dengan menyolder semua soket IC di tempatnya, kemudian tambahkan Kapasitor 100nF ke setiap TLC, diikuti oleh resistor 2.2kOhm untuk IREFand GND dan Header 7 pin di sudut kanan atas.. Selepas itu anda boleh mengikuti fail.xcf dengan bermula dengan "lapisan SIN" dalam fail Gimp yang menunjukkan cara menyambungkan pin Serial IN / OUT Pemacu menggunakan Kabel Pita, kemudian mengaktifkan Lapisan CLK di GIMP dan sebagainya. Pastikan bahawa anda mempunyai sambungan + dan - Pin yang baik ke pin Header di sebelah kanan atas Skema yang lain harus jelas tetapi pastikan anda menambah Kapasitor 1000uF dan 10uF ke papan itu tidak begitu relevan di mana tepatnya anda meletakkan mereka.

Setelah papan ini selesai anda boleh beralih ke Arduino Board pada langkah seterusnya.

Langkah 7: Papan Kawalan Bluetooth Arduino +

Papan Kawalan Bluetooth Arduino +
Papan Kawalan Bluetooth Arduino +

Bahagian untuk Lembaga Kawalan:

  • 6 x IRF 9540 P-Channel MOSFET
  • Kapasitor 1 x 10 uF
  • Kapasitor 1 x 1000 uF
  • 7 x 2.2kOhm Perintang
  • Perintang 1 x 1kOhm
  • 2 x 14 Header pin wanita
  • 1 x Arduino Nano
  • 1 x 1N4001 Diod
  • 1 x 0.1uF Kapasitor
  • 1 x Pemasangan DC Jack DC
  • 1 x Modul Bluetooth HC-05
  • Soket Audio 1 x 3.5mm

Papan Kawalan Arduino terutama mengendalikan multiplexing sebagai penyediaan header pin pada papan Pemacu LED.

Memateri pada papan wangi:

  1. Letakkan dua kepala Pin wanita untuk berfungsi sebagai soket untuk Arduino di tengah papan.
  2. Letakkan 6 MOSFET berturut-turut di sebelah kanan Arduino (sebelah dengan Pin Analog) dan tambahkan perintang 2.2kOhm antara pin pertama dan terakhir masing-masing.
  3. Sekarang letakkan header 6 pin di hadapan MOSFET (tengah baris) dan sambungkan 6 pin DRAIN FET (pin tengah) ke tajuk dan pin GATE (pin kiri) FET ke pin Analog Arduino masing-masing..
  4. Seterusnya, solder header 7pin untuk sambungan LEDDriver di sisi lain Arduino, tinggalkan sedikit ruang untuk kabel dan solder semua sambungan dari Arduino ke header pin.
  5. Tambahkan beberapa kapasitor (1-2 1000uF, 1 10uF, 100nF di sebelah Arduino) untuk kemungkinan longkang semasa.
  6. Solder header 4 pin di sebelah sisi belakang Arduino untuk modul HC-05 dan buat 4 sambungan ke VCC, RX, TX, GND dan jangan lupa membuat pembahagi voltan dari RX Pin HC-05 dan Pin TX Arduino (lihat di sini)
  7. Letakkan Jack DC di mana-mana tepi papan dengan suis di sebelah dan sambungkan pin kanan suis ke + Pin Jack DC
  8. Akhirnya buat semua sambungan Daya yang diperlukan dari Pin GND Jack DC dan pin kanan suis (VCC) ke Arduino, MOSFET, Kapasitor dan HC-05 seperti yang dilihat dalam skema. Ingatlah untuk menambahkan Dioda yang hanya memberikan Kuasa dari pin suis VCC untuk mengalir ke pin Arduinos 5V, bukan sebaliknya. (Ini melindungi Arduino ketika memprogramkannya melalui sambungan USB)

Untuk sambungan kuasa, saya menggunakan DC Power Jack dengan suis sederhana, anda juga boleh menggunakan USB Connector jika anda mahu. Saya mengeluarkan penyambung kuasa ke papan litar kecil yang lain untuk dimasukkan ke dalam kotak kayu saya tetapi anda boleh meletakkannya secara langsung ke Arduino Board. Seperti yang disebutkan pada langkah pertama ada juga Litar Sambungan MSGEQ7 dalam skema tetapi abaikan saja jika anda tidak menggunakan MSGEQ7. (Untuk maklumat lebih lanjut mengenai fungsi MSGEQ7 klik di sini)

Jangan lupa membuat Kabel Pita 7Pin lain dengan Header pin lelaki di setiap hujungnya untuk menghubungkan papan Arduino dengan papan Pemandu

Langkah 8: Pilihan: Melekatkan Papan Litar

Pilihan: Melekatkan Papan Litar
Pilihan: Melekatkan Papan Litar
Pilihan: Melekatkan Papan Litar
Pilihan: Melekatkan Papan Litar
Pilihan: Melekatkan Papan Litar
Pilihan: Melekatkan Papan Litar

Oleh itu, jika anda tidak suka menyolder banyak kabel, anda juga boleh mendapatkan PCB yang diperlukan jika anda lebih suka.

Di Cube saya, papan Arduino dan papan penyambung Kuasa / Audio adalah papan yang terukir menggunakan fail skema / EAGLE yang dilampirkan. Kali pertama saya membuat kesilapan dalam skema jadi saya terpaksa membuat semula papan Pemacu LED seperti yang saya lakukan pada langkah terakhir. Tidak ada kelebihan besar untuk memotong papan daripada menggunakan perboard, jadi jangan ragu untuk memotong papan atau menyoldernya di papan wangi.

Pada.zip yang dilampirkan, anda boleh menemui fail BOARD dan juga fail SKEMATIK.

Perhatikan bahawa jejak lapisan atas (merah) semestinya jambatan wayar (kerana saya tidak dapat mengukir papan dua sisi di rumah). Jejak yang tidak dilancarkan menunjukkan hubungan yang akan dibuat melalui kabel untuk Pin Header wanita.

Skema ini merangkumi ciri MSGEQ7, yang dapat Anda hilangkan dengan menghapus bahagian skema yang bertanda "(MSGEQ7)" di tangkapan layar skema.pdf.

Langkah 9: Menyambungkan Kiub

Menyambungkan Kiub
Menyambungkan Kiub
Menyambungkan Kiub
Menyambungkan Kiub
Menyambungkan Kiub
Menyambungkan Kiub

Untuk menyambungkan semua bahagian Cube, mulakan dengan memasang kabel 7pin ke Arduino Board dan Driver Driver (pastikan orientasinya betul!). Sambungkan HC05 Modul seterusnya ke header 4 Pin dan sambungkan Power Board jika dipisahkan.

Untuk menyambungkan 7x16 Pin Header of Cube pastikan untuk memulakan dengan TLC pertama (yang pin SIN disambungkan ke Arduino secara langsung). Cari Kabel 16pin yang betul dari Cube dan sambungkan ke header pin TLC pertama (pastikan kabel untuk Cathode Nr.0 menyambung ke Pin TLC OUT0 pertama!). Teruskan dan sambungkan Kabel 16pin yang lain ke tajuk TLC yang sesuai mengikut urutan yang betul.

Akhir sekali, sambungkan Kabel 6Pin untuk Anodes dari Cube ke tajuk 6Pin di Papan Kawalan di sebelah MOSFET.

Untuk menyelesaikan Cube saya menambahkan dinding ke dalam kotak dengan beberapa papan lapis dengan cat hitam di atasnya dan melekatkannya.

Sekarang kita sudah selesai dengan semua perkakasan yang diperlukan untuk keseluruhan binaan!

Langkah 10: Perisian: Kitaran Multipleks

Perisian: Kitaran Multipleks
Perisian: Kitaran Multipleks

Sekarang secara teori, Arduino terus melakukan kitaran berikut:

  1. Sekiranya LayerDuration telah berlalu, muat Nilai untuk Layer berikutnya ke TLC, matikan Layer semasa, hidupkan Layer seterusnya, set semula LayerDuration, lakukan Nilai baru ke TLC
  2. Sekiranya FrameDuration telah berlalu, muat Frame baru Animasi semasa dengan menyimpan nilai untuk semua LED dan Warna ke dalam buffer ValueLed , set semula FrameDuration
  3. Sekiranya Data Bluetooth tersedia, balaslah mereka (Ubah Animasi, Kecerahan,…) (maklumat lanjut kemudian)

Seperti yang anda lihat, fokus utama kod adalah kepantasan. Adalah mustahak bahawa masa untuk menukar Lapisan adalah minimum.

Semakin cepat anda menghidupkan / mematikan Lapisan, semakin banyak "Bingkai" yang akan anda dapat. untuk Cube LED 6x6x6 RGB seperti ini saya dapati bahawa Tempoh Lapisan 1700 mikroSec. cukup baik untuk tetap berkedip minimum dan harus dibiarkan pada nilai ini. FrameDuration mengawal lebih banyak kelajuan Animasi sehingga dapat diubah untuk Animasi yang berbeza.

Pada langkah seterusnya kita akan melihat bagaimana kita sebenarnya dapat menulis Animasi kita sendiri.

Langkah 11: Animasi Tersuai

Animasi Tersuai
Animasi Tersuai
Animasi Tersuai
Animasi Tersuai

Untuk melaksanakan animasi kita harus menetapkan buffer ValueLed ke Nilai yang kita inginkan untuk Frame berikutnya setiap kali FrameDuration berlalu. Kami melakukannya dengan memanggil fungsi Makro "SETLED (x, y, z, COLOR, Brightness)"

x, y, z adalah koordinat LED yang ingin kita tetapkan dan WARNA (MERAH, HIJAU atau BIRU) adalah warna yang ingin kita tetapkan dan Kecerahan adalah Nilai sebenar untuk warna tertentu yang kita tetapkan.

Oleh itu, untuk melaksanakan Animasi yang hanya memaparkan warna Merah, Hijau dan Biru secara rawak di seluruh kubus, anda boleh melakukan ini:

batal randomLedsFull () {

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

Kaedah ini dipanggil setiap kali FrameDuration berlalu dan dipilih dari perintah case-case dalam gelung (). Sekiranya anda menulis animasi baru, anda boleh menambahkannya hanya dengan menambahkannya ke dalam kotak suis.

Langkah 12: Tambahan: AnimationCreator

Tambahan: AnimationCreator
Tambahan: AnimationCreator

Saya juga menulis AnimationCreator menggunakan JavaFX dan Java3D.

Ini menjadikan pembuatan dan penyuntingan Animasi tersuai sangat mudah dengan menyediakan UI yang mudah difahami.

Anda boleh membuat, mengedit, menamakan semula dan mengkonfigurasi semula Animasi untuk Kiub LED 4x4x4, 6x6x6 atau 8x8x8

Untuk membuat Animasi baru tekan File> New, di bawah "Cube" anda boleh memilih ukuran Cube, untuk menetapkan Warna LED pilih warna yang anda inginkan dengan Pemilih warna di sebelah kiri dan kemudian klik kiri LED yang anda inginkan warna itu untuk Bingkai itu. Untuk menambah hit Frame lain "Next" atau "+". Selebihnya UI Controls cukup jelas, kotak centang di sebelah Cubes Layers adalah untuk memeriksa Lapisan mana yang harus dipengaruhi oleh pergeseran dan "Keep Frame". Cubalah dan anda akan mengetahui semuanya dalam masa yang singkat.

Sebagai tambahan untuk mensimulasikan Animasi, anda boleh mengklik Butang "Lihat 3D" yang membuka tetingkap lain dengan Model Java3D Cube. Anda boleh memutar Kamera sambil menekan butang kiri tetikus (Tekan R untuk menetapkan semula Kamera). Untuk memainkan / menjeda Animasi tekan Kekunci P, untuk menetapkan semula tekan Animasi Q. Bidang Teks di bawah butang "Lihat 3D" mencatat arus FrameTime, ergo kelajuan animasi anda.

Apabila anda selesai dengan Animasi beri nama dan tekan File> Save As… dan simpan Animasi ke folder yang sama dengan Cubo_Control.ino Sketch.

Untuk memasukkan anda Animasi baru dalam Sketsa, buka Cubo_Control.ino dan tambahkan kod berikut di atas Sketsa:

#masuk "RGBit.h" // Ganti

Tatal ke bawah ke BTEvent () dan tambahkan pernyataan kes pada huruf kecil animasi

tukar (curAnim) {

… Kes 10: animasi = & ani_cubesmove [0] [0]; FRAME_TIME = ANI_CUBESMOVE_FRAMTIME; maxCount = ANI_CUBESMOVE_FRAMES; rehat; kes 11: // Animasi ANIMASI BARU ANDA = & ani_rgbit [0] [0]; FRAME_TIME = RGBIT_FRAMETIME; jumlah maksimum = ANI_RGBIT_FRAMES; rehat; }

Langkah 13: Aplikasi Bluetooth

Aplikasi Bluetooth
Aplikasi Bluetooth

Untuk benar-benar mengendalikan Cube, berkat Modul HC-05, cukup mudah untuk membuat aplikasi Bluetooth untuk menghubungkan Telefon anda ke Cube.

Pautan ke Aplikasi: Github

Aplikasi ini sumber terbuka, jadi jangan ragu untuk menambahkan Animasi / ciri tambahan sendiri.

  • Mulakan Aplikasi, ia meminta anda menghidupkan Bluetooth
  • Klik "Cari" dan senarai sambungan Bluetooth yang tersedia muncul. Kenalpasti Modul HC-05 dari Cube dan klik padanya.
  • Sekiranya terdapat kesalahan semasa cuba menyambung ke Cube, cuba pasangkan modul HC-05 dalam tetapan Bluetooth secara manual
  • Setelah disambungkan Aplikasi beralih ke Skrin Kawalan dan sambungan Bluetooth telah terjalin

Kawalan

  • Kelajuan & Kecerahan: Tukar nilai gelangsar untuk mempercepat / memperlahankan Animasi atau mengubah kecerahan
  • Animasi: Klik pada butang untuk mengubah Animasi, secara lalai Animasi melingkar (Bermula dari kiri atas butang sesuai dengan currAnim)
  • Teks Teks: Klik butang "Teks" yang memunculkan dialog untuk memasukkan beberapa teks yang akan digulir melalui kubus
  • Perintah: Anda boleh memasukkan perintah secara manual dengan Command TextField (lihat kaedah BTEvent () Cubo_Control.ino untuk sintaks)
  • Snake: Snake Game klasik (merah: epal, hijau: ular kepala, biru: sneak Tail) (Kawalan: 4 Tombol arah, Atas dan Bawah dipicu dengan memutar Telefon ke hadapan (Atas) atau ke belakang (Bawah))
  • Audio Visualizer: MSGEQ7 digunakan untuk memvisualisasikan 6 jalur audio dari AUX Jack (Butang untuk Animasi 7)

Langkah 14: Pameran

Disyorkan: