Isi kandungan:
- Langkah 1: Perkakasan untuk BLE-LED-Stick
- Langkah 2: Pemasangan Elektronik
- Langkah 3: Bagaimana Menjana Fon?
- Langkah 4: Perisian Kawalan BLE
- Langkah 5: Ujian Pertama
- Langkah 6: Pilih Animasi
- Langkah 7: Kawalan RGB
- Langkah 8: Perkhidmatan Teks_Animasi dan Perkhidmatan Penyimpanan Berterusan
- Langkah 9: Mulakan Aplikasi Android
- Langkah 10: Tulis Mesej dalam Gambar
Video: LED POVstick Dengan Tenaga Rendah Bluetooth: 10 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
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
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
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?
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
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
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
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
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 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
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.
Hadiah Kedua dalam Peraduan Make it Glow 2018
Disyorkan:
Sistem Pemantauan dan Pengagihan Tenaga Jauh dari Loji Tenaga Suria: 10 Langkah
Sistem Pemantauan dan Pengagihan Tenaga Jauh dari Loji Tenaga Tenaga Suria: Tujuan projek ini adalah untuk memantau dan mengagihkan kuasa dalam sistem kuasa (sistem tenaga suria). Reka bentuk sistem ini dijelaskan secara abstrak seperti berikut. Sistem ini mengandungi pelbagai grid dengan kira-kira 2 panel suria di
LEIDS - Sensor Pintu IOT Tenaga Rendah: 8 Langkah (dengan Gambar)
LEIDS - Sensor Pintu IOT Tenaga Rendah: Apa itu LEIDS? LEIDS adalah sensor IOT yang berpusat di sekitar ESP8266. Sensor ini menggunakan papan ini, litar selak lembut, suis reed, dan beberapa magnet untuk membuat sensor pintu yang akan menghantar amaran kepada anda apabila pintu anda terbuka dan
Cara Menjalankan Jam Bateri dengan Tenaga Suria: 15 Langkah (dengan Gambar)
Cara Menjalankan Jam Baterai dengan Tenaga Suria: Sumbangan ini menyusul dari yang sebelumnya pada tahun 2016, (lihat di sini,) tetapi dalam jangka masa yang sama ada pengembangan komponen yang menjadikan pekerjaan lebih mudah dan prestasi meningkat. Teknik yang ditunjukkan di sini akan membolehkan
Jambatan WiFi Mudah ke BLE (Tenaga Rendah Bluetooth): 9 Langkah (dengan Gambar)
Jambatan WiFi Mudah ke BLE (Tenaga Rendah Bluetooth): Kemas kini 4 Disember 2017 - sketsa Feather nRF52 yang disemak semula dan petua debug. Menambah gambar jambatan yang dipasang di dalam kotak. Projek sederhana ini menyediakan akses WiFi ke mana-mana modul Bluetooth Low Energy (BLE) yang menerapkan UART Nordic dengan TX Notify. Yang
Radio Tenaga Suria Tenaga Percuma: 4 Langkah (dengan Gambar)
Radio Tenaga Suria Tenaga Percuma: Radio tenaga suria tenaga percuma di https://www.youtube.com/watch?v=XtP7g… adalah projek mudah untuk menukar bateri lama yang dikendalikan radio dalam radio berkuasa solar yang anda boleh panggil tenaga percuma kerana tidak menggunakan bateri dan ia beroperasi ketika matahari