Isi kandungan:

LED POVstick Dengan Tenaga Rendah Bluetooth: 10 Langkah (dengan Gambar)
LED POVstick Dengan Tenaga Rendah Bluetooth: 10 Langkah (dengan Gambar)

Video: LED POVstick Dengan Tenaga Rendah Bluetooth: 10 Langkah (dengan Gambar)

Video: LED POVstick Dengan Tenaga Rendah Bluetooth: 10 Langkah (dengan Gambar)
Video: Orang kesetrum 2024, November
Anonim
LED POVstick Dengan Tenaga Rendah Bluetooth
LED POVstick Dengan Tenaga Rendah Bluetooth

Petunjuk ini menunjukkan kepada anda cara membina tongkat penulis cahaya dengan LED RGB yang dapat dikawal melalui BLE dari telefon anda!

Sekarang musim gelap bermula dan anda perlu mengambil gambar pendedahan yang panjang: Dengan tongkat ini anda boleh menuliskan tandatangan anda ke dalam gambar, atau petikan motivasi, atau pernyataan cinta, kod QR, alamat web, atau banyak lagi perkara lain …

Ia merangkumi beberapa topik pembangunan:

  • membina perkakasan
  • memprogramkan chipset Cypress BLE dengan C
  • buat aplikasi anda sendiri untuk mengawalnya.

Langkah 1: Perkakasan untuk BLE-LED-Stick

Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick
Perkakasan untuk BLE-LED-Stick

Untuk tongkat, anda memerlukan perkara berikut:

  • Modul Cypress BLE (CY8C4247LQI-BL583)
  • Jalur LED RGB-WS2812b (64LED dari jalur 144Led per meter)
  • bateri Li-Ion dengan pemegang yang sesuai (18650)
  • butang tekan
  • sehelai papan roti

Perkakasan tongkat itu sendiri agak mudah.

Modul Cypress BLE dipasang pada sepotong papan roti dan LED, butang dan bekalan kuasa hanya disambungkan ke papan roti ini.

Segala-galanya dipasang, dilekatkan atau dilekatkan pada sekeping kecil jalur kayu, yang mana sebahagiannya dimasukkan ke dalam tiub poliakril yang jelas. Tetapi ini bukan satu kemestian. Saya mahu memasangkan semuanya ke dalam tiub, tetapi saya tidak menemui modul BLE dan bateri yang cukup besar, berbanding LED. Untuk pukulan pertama, anda tidak memerlukan tiub akril.

Langkah 2: Pemasangan Elektronik

Pemasangan Elektronik
Pemasangan Elektronik
Pemasangan Elektronik
Pemasangan Elektronik

Langkah ini menunjukkan kepada anda bagaimana modul BLE dipasang dan pin mana yang digunakan untuk tujuan tersebut.

Seperti di beberapa Instructables saya, saya menggunakan Cypress BLE Development Kit. Panduan Mula Pantas CY8CKIT-042-BLE

Sekiranya anda ingin mengendalikan modul itu sendiri, yang perlu anda sambungkan hanyalah sumber kuasa dan pin terpakai.

Untuk projek kami, kami hanya menggunakan pin 3.5 untuk menggerakkan LED-Strip. Tetapi sudah tentu anda boleh mengubahnya dengan Pencipta PSoC.

Seperti yang anda lihat dalam gambar PCB, saya menambahkan pinhead di semua sudut cip tetapi saya melewatkan pin VREF.

Dengan cara ini modul dipasang dengan betul dan mustahil untuk salah menghubungkan modul.

Langkah 3: Bagaimana Menjana Fon?

Bagaimana Menjana Fon?
Bagaimana Menjana Fon?

Saya rasa ini adalah salah satu masalah paling menarik yang saya selesaikan semasa projek ini.

Sudah tentu seseorang boleh merancang fon baru dan menulisnya dalam pelbagai, tetapi itu sangat berkesan!

Jadi apa yang saya buat?

Saya tahu bahawa saya memerlukan beberapa jenis penukaran ASCII ke hex-bitmap. Dan saya bernasib baik, kerana saya bukan yang pertama menghadapi masalah ini!:-)

Perisian "GLCD Font Generator" melakukan perkara yang betul:

Kerana saya ingin memaksimalkan penggunaan LED stick, saya mengimport fon dalam ukuran yang agak besar (~ 32 piksel). Sekiranya anda hanya menggunakan huruf besar, anda tidak perlu peduli dengan penambah, yang akan meningkatkan saiz fon yang kelihatan beberapa piksel lagi. Tetapi saya memilih untuk menggunakan huruf besar dan huruf kecil. (https://en.wikipedia.org/wiki/Ascender_%28typography%29)

Sebaik sahaja anda mengimport fon ke penjana fon GLCD, anda boleh memilih untuk mengeksportnya dalam format yang berbeza.

Saya cuba mengeksportnya terus ke tajuk yang bagus, tetapi tidak sempurna. Eksport yang dihasilkan adalah susunan seluar pendek (16bit) dengan nilai byte-hex untuk lajur untuk setiap watak watak 128-ascii pertama. Tidak cukup dengan apa yang saya mahukan atau perlukan …

Oleh itu, saya mengimport array ke dalam lembaran kerja calc pejabat terbuka. Kemudian saya membuang "0x" pada tiga dari empat nilai dan menggabungkannya menjadi satu nilai panjang 32bit. Saya juga membetulkan kesudahan bait individu yang salah.

Susunan yang dihasilkan adalah susunan N * M nilai 32bit. M adalah watak masing-masing dan N adalah lajur yang membentuk paparan huruf ini. Dalam draf pertama ini semua watak mempunyai jumlah lajur yang sama, itu bermaksud semua huruf sama lebar, seperti pada huruf Courier yang terkenal. Watak kecil seperti "i" atau "t" kelihatan seperti mereka hilang di ruang angkasa.

Oleh itu, saya menambahkan parameter baru di awal setiap watak untuk memberitahu, berapa banyak lajur yang dimiliki oleh watak ini atau seberapa luas watak ini. Ini menjimatkan memori dan menjadikan teks kelihatan lebih baik!

Langkah 4: Perisian Kawalan BLE

Perisian BLE Control
Perisian BLE Control

Prinsip perisian BLE sangat mudah:

  • Pada mulanya ia tidak melakukan apa-apa.
  • Melalui BLE anda boleh mengatur animasi atau teks yang berbeza untuk dipaparkan.
  • Sebaik sahaja anda menekan butang, lajur individu animasi atau teks akan dipaparkan.
  • Setelah teks dipaparkan, ia terus menunggu lagi.

Cukup import projek cypress ke Pencipta PSoC anda dan ubahsuai jika anda mahu.

PSoC-4 tidak mempunyai banyak RAM dan flash untuk dapat menyimpan gambar RGB lengkap dari fon. Oleh itu, saya memerlukan kaedah untuk menghasilkan kandungan LED secara dinamik dari teks. Itu cukup mudah, setakat ini tidak ada yang istimewa. Dari teks dengan banyak huruf, algoritma mengambil satu huruf dan mengubahnya menjadi susunan bitmap hitam-putih. Kemudian mengambil setiap lajur peta satu huruf ini dan bukannya putih, ia menulis warna RGB semasa ke array LED. Dengan cara ini anda dapat menghasilkan teks satu warna atau dengan fungsi tambahan menukar warna setelah setiap lajur, setiap huruf atau bahkan setelah setiap piksel.

"Huruf" boleh disimpan dalam pemboleh ubah bait tunggal sementara bitmap hitam dan putih perlu disimpan dalam beberapa jenis larik.

Struktur data adalah seperti berikut:

Rentetan: newtext = "Hello";

Font: aksara uint32 = {FirstCharacter_ColumnCount, FirstCharacter_FirstColumn, FirstCharacter_SecondColumn,… SecondCharacter_ColumnCount, SecondCharacter_FirstColumn, …… LastCharacter_ColumnCount,… LastCharacter_LastColumn}; LastColumn}; LastColumn}; Warna: uint32 rgbcolor = 0xHHBBGGRR; // Kecerahan, Biru, Hijau, Merah masing-masing sebagai nilai 8bit

Untuk menukar rentetan untuk paparan, kami melakukan perkara berikut:

getCharacter (): H (8bit)

getColumn (int i): kolum (32bit) (saya bermula dengan lajur pertama, berjalan ke yang terakhir.) jika (bit di lajur adalah 1) LED di Jalur diatur ke warna. LED-Strip Array masing-masing 64 LED dengan warna 32bit!

Dan jika ruangan ini dipaparkan, kita teruskan dengan yang berikutnya.

Ini semudah ini.

Langkah 5: Ujian Pertama

Ujian Pertama
Ujian Pertama
Ujian Pertama
Ujian Pertama
Ujian Pertama
Ujian Pertama

Setelah perisian berjalan, kami sudah bersedia untuk ujian pertama.

Cara termudah untuk menguji fungsi tertanam adalah dengan aplikasi ujian tenaga rendah Bluetooth. Seperti Aplikasi Nordic atau Cypress.

Nordic: nRF Connect untuk Mudah Alih

Cypress: CySmart

Mulakan Pov-Stick dan perhatikan bagaimana rentetan demo akan dipaparkan. Setelah ini selesai, inilah masanya untuk memulakan aplikasi. Cari peranti Povstick dan klik sambung.

Setelah sambungan dibuat, aplikasi akan menemui semua perkhidmatan dan ciri yang ditentukan secara automatik.

Cari perkhidmatan pertama (harus bermula dengan 0000ccce…). Klik padanya untuk membukanya dan memaparkan ciri pertama (bermula dengan 0000ccc1). Kemudian tekan butang tulis (atau muat naik) dan tuliskan 01 untuk ciri ini.

Setelah anda tekan send, POVstick akan memulakan animasi Color-Knight-rider aka Larson Scanner dengan perubahan warna.

Tahniah anda telah menghantar nilai pertama anda melalui BLE!

Langkah 6: Pilih Animasi

Pilih Animasi
Pilih Animasi
Pilih Animasi
Pilih Animasi
Pilih Animasi
Pilih Animasi
Pilih Animasi
Pilih Animasi

Dalam perisian kami menentukan enum "e_Animation" dengan nilai berikut:

typedef enum {Knightrider = 0, ColorKnightRider, Rainbowswirl, Valueswirl, WS_CandyCane, WS_CandyCane_2, WS_CandyCane_3, WS_Twinkle, WS_Icicle, WS_ColorWheel, RGB_Control, Animasi_Animasi, Animasi_Animasi, Animasi_Animasi, Animasi_Animasi, Animasi_Amasi

Ini adalah nilai yang sah untuk ciri ccc1. Sekiranya anda ingin melihat CandyCane-Animation, anda harus menuliskan angka 4, 5 atau 6 untuk ciri ini. Mereka berbeza warna.

Dua animasi khas ialah RGB_Control dan TextAnimation. Sekiranya anda memilih untuk mengaktifkannya, tongkat itu jelas tidak akan menunjukkan apa-apa pada mulanya. Tetapi ia memberi anda pilihan tambahan untuk mengawal tongkat dengan perkhidmatan lain.

Langkah 7: Kawalan RGB

Kawalan RGB
Kawalan RGB
Kawalan RGB
Kawalan RGB
Kawalan RGB
Kawalan RGB
Kawalan RGB
Kawalan RGB

RGB-Control dapat diuji dengan mudah dengan Aplikasi CySmart kerana saya menggunakan UUID yang sama untuk ciri ini seperti dalam Cypress Demo.

Mulakan aplikasi CySmart dan sambungkan ke Povstick. Mula-mula anda harus menulis "0x0A" dengan ciri ccc1.

0x0A adalah nilai hex untuk 10, yang merupakan animasi RGB-Control di enum.

Kemudian anda boleh beralih ke Panel Kawalan RGB-LED di Aplikasi CySmart. Mungkin anda perlu memulakan semula aplikasi untuk sampai ke skrin ini. Kemudian anda boleh mengawal warna semua LED dengan rajah RGB ini.

Sudah tentu anda juga dapat menuliskan nilai-nilai secara langsung ke dalam ciri.

Langkah 8: Perkhidmatan Teks_Animasi dan Perkhidmatan Penyimpanan Berterusan

Perkhidmatan Teks_Animasi dan Penyimpanan Tetap
Perkhidmatan Teks_Animasi dan Penyimpanan Tetap

Perkhidmatan ini tidak begitu mudah untuk diuji.

Secara teknikal anda juga boleh menggunakan aplikasi nordic untuk ini, tetapi anda perlu mengetahui nilai apa yang hendak ditulis dengan ciri mana.

Oleh itu, jika anda ingin menguji ini, anda harus melihat projek PSoC, ciri yang mempunyai UUID mana.

Yang penting ialah ciri "Set-Speed". Dengan ciri ini anda dapat mengawal seberapa pantas animasi.

Dengan ciri "Set_Animation" dari PersistentStorageService, anda dapat mengawal fon dan warna rentetan teks. Nilai yang sah ditentukan dalam "povanimation.h", dua fon "mono" dan "serif" dan berwarna tunggal dan berwarna pelangi. Nilai 0 dan 1 memaparkan teks dengan warna tetap, dapat dikawal melalui ciri RGB_Control. Nilai 2 dan 3 mengubah warna untuk setiap lajur dan memberikan tali pelangi yang bagus.

"Write_Text_Service" adalah jenis yang berbeza. Anda boleh menulis rentetan baru ke peranti dengan menulis watak individu dengan ciri "Set_Character". Pada setiap tulisan, anda akan mendapat pemberitahuan kembali mengenai panjang rentetan semasa.

Untuk memulakan rentetan baru, tulis "true" ke "Clear_String".

Ini bukan pelaksanaan terbaik, tetapi berfungsi untuk rentetan hingga 250 aksara tanpa mengubah ukuran MTU.

Paparan rentetan baru dengan permulaan apabila butang pada Povstick ditekan.

Langkah 9: Mulakan Aplikasi Android

Ini adalah langkah penting, tetapi jauh di luar ruang lingkup arahan ini. Maaf untuk itu!

Mungkin saya boleh memuat naik aplikasi ujian saya ke play store, tetapi belum selesai atau dilepaskan.

Langkah 10: Tulis Mesej dalam Gambar

Tulis Mesej dalam Gambar
Tulis Mesej dalam Gambar
Tulis Mesej dalam Gambar
Tulis Mesej dalam Gambar
Tulis Mesej dalam Gambar
Tulis Mesej dalam Gambar

Inilah sebabnya saya membina povstick ini: Untuk menulis mesej dalam gambar.

Anda memerlukan tripod, kamera dengan fungsi pendedahan panjang dan beberapa lokasi yang baik.

Sediakan kamera dan atur masa pendedahan kepada 10 saat untuk ujian pertama.

Cetuskan pelepasan dan mulailah membaca gambar, memulakan paparan teks pada tongkat.

Et Voila ada kami!

Dengan kombinasi LED-brightness, aperture dan waktu pendedahan yang tepat, anda boleh mengambil gambar pada waktu subuh.

Ketiga gambar dalam langkah ini menunjukkan spektrum kemungkinan yang lengkap.

Pada yang pertama, LED terlalu terang dan menghasilkan cahaya ajaib. Tetapi itulah sebabnya pantulan di tanah dapat dilihat dan latar belakangnya agak bagus.

Gambar kedua didedahkan untuk LED, tetapi latar belakangnya menjadi hitam.

Dan yang ketiga menunjukkan LED yang agak redup sejurus matahari terbenam. LED terang seperti gambar lain, tetapi lingkungannya sangat terang sehingga saya harus menggunakan bukaan rendah dan ISO rendah sehingga LED kelihatan agak gelap.

Jadikannya Peraduan Glow 2018
Jadikannya Peraduan Glow 2018
Jadikannya Peraduan Glow 2018
Jadikannya Peraduan Glow 2018

Hadiah Kedua dalam Peraduan Make it Glow 2018

Disyorkan: