Isi kandungan:
- Langkah 1: Bahagian dan Alat
- Langkah 2: Menyiapkan Ikatan
- Langkah 3: Melampirkan NeoPixels
- Langkah 4: Melampirkan Circuit Playground Express
- Langkah 5: Menghidupkan CPX
- Langkah 6: Menyiapkan Circuit Playground Express
- Langkah 7: Mengekodkan Circuit Playground Express
- Langkah 8: Mengikat Ikatan
Video: The Holi-Tie: 8 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:10
Oleh gwfongMonkey PatchingFollow More oleh pengarang:
Tentang: Hanya seorang lelaki yang ingin membuat perkara menarik Lebih banyak mengenai gwfong »
Ini adalah Holi-Tie, tali leher perayaan yang dirancang untuk dipakai semasa cuti. Secara longgar berdasarkan Ampli-Tie oleh Becky Stern yang menggunakan papan Flora, Holi-Tie menggunakan mikrokontroler Circuit Python Express (CPX) untuk menggerakkan animasi dan muzik NeoPixel. Butang berubah antara 2 animasi NeoPixel yang berbeza. Pad sentuh kapasitif mengubah warna NeoPixel dan kelajuan animasi. Butang lain berubah antara animasi LED dan muzik. Mikrofon on-board digunakan untuk mengukur kebisingan ambien untuk animasi meter VU. Dan pembesar suara CPX menghasilkan lagu cip percutian.
Semuanya dikodkan menggunakan bahasa pengaturcaraan Python yang berjalan di atas sistem CircuitPython. Ia dikuasakan oleh bateri LiPo 3.7V, 500mAH yang diubah suai untuk menghidupkan / mematikan suis.
Terdapat dua klip video yang menunjukkan Holi-Tie:
- Selesai Holi-Tie
- Di dalam Holi-Tie
Langkah 1: Bahagian dan Alat
Bahagian
- Circuit Playground Express
- 15x Flora Neopixels
- Kawat magnet
- Pita cangkuk dan gelung pelekat
- Bateri lipo 500mAH dengan penyambung JST
- Tali gula-gula
- Suis slaid mini, SPDT
- Tiub mengecilkan haba
Semasa mengambil bahagian, lebih baik membeli tambahan. Saya mempunyai sejumlah 20 NeoPixels, salah satunya rosak sejak awal dan satu yang saya hancurkan. Tali Candy Cane sangat murah sehingga saya membeli yang kedua sekiranya saya merosakkan yang pertama.
Alat
- Pistol gam panas
- Stesen pematerian
- Pemotong wayar
- Pisau kecil
- Multimeter
- Komputer
- Pistol yang lebih ringan atau panas
- Benang dan jarum
Langkah 2: Menyiapkan Ikatan
Matlamat utama adalah untuk mendapatkan akses ke inti tali dalaman dan garis tanda yang menunjukkan di mana LED harus diletakkan.
Langkah 1: Ikat tali leher ke kedudukannya
Sukar untuk mengikat tali apabila elektronik berada di tempatnya. Oleh itu, ikatlah tali leher sehingga kelihatan baik dan simpulnya cukup tegas dan tidak akan terurai. Kemudian tarik hujung tali leher dengan hati-hati untuk membuka lubang untuk mendapatkan tali leher di atas kepala. Ini adalah kedudukan yang akan diusahakan.
Terdapat pelbagai jenis tali leher yang berbeza. Saya hanya tahu yang saya pelajari semasa kecil, Windsor. Tidak semestinya simpulan mana yang digunakan.
Langkah 2: Buka bahagian belakang tali leher
Buka jahitan pada satu sisi gelung tali leher dan logo dan kemudian ke bahagian bawah tali leher. Berhati-hatilah kerana ia mesti dijahit pada akhir.
Langkah 3: Lukis garis di mana LED harus diletakkan
Untuk menjadikan LED muncul di bahagian jalur putih tali leher, lebih mudah untuk mencari garis tengah bagi setiap bahagian jalur putih di bahagian belakang inti tali leher dan kemudian memetakannya ke bahagian depan inti tali leher. Periksa dan periksa semula bahawa garis tengah adalah 1) di tengah dan 2) selari dengan jalur. Penalaan kedudukan LED dengan lebih baik akan dapat dilakukan sekiranya mereka berada sedikit. Tetapi yang terbaik adalah mendapatkannya sedekat mungkin daripada kemudian.
Uji pusat garis dengan meletakkan LED pada garis dan meletakkan kain jalur di atas. Sesuaikan di mana diperlukan.
Langkah 3: Melampirkan NeoPixels
Pada dasarnya, kami membuat jalur LED kami sendiri. Kami hanya memasang LED ke tali leher dan kemudian menghubungkannya antara satu sama lain.
Langkah 1: Lekatkan NeoPixels pada teras tali leher
Letakkan sebatan gam panas di bahagian belakang NeoPixel letakkan di garis tengah. Untuk bahagian dengan 3 NeoPixels, sejajarkan NeoPixel tengah secara menegak dan gam terlebih dahulu. Ini akan memudahkan meletakkan NeoPixel kiri dan kanan berhubung dengan pusat terutama kerana lebar tali leher meningkat dari atas ke bawah.
Pastikan untuk mengarahkan semua NeoPixels ke arah yang sama, dari kiri bawah ke kanan atas. Sekiranya ini tidak betul, jalur tidak akan berfungsi.
Catatan mengenai gam panas. Ia cukup untuk menyelesaikan projek ini. Mengenai sama ada ia akan berlangsung selama bertahun-tahun yang akan datang, seseorang hanya perlu melihat.
Langkah 3: Selitkan NeoPixels antara satu sama lain
Kerana saya memutuskan untuk menyatukan NeoPixels bersama-sama daripada menggunakan benang konduktif, lubang pada pad NeoPixel berfungsi sedikit demi sedikit terhadap kami. Cukup cari tempat yang baik di pad untuk memateri wayar. Jangan cuba mengisi lubang dengan pateri, tetapi jika ia berlaku, tidak mengapa.
Kawat magnet mempunyai lapisan penebat nipis di sekitar teras tembaga. Dengan pisau, potong penebat tepat di hujung di mana ia akan disolder. Lebih baik mengikis seluruh lilitan wayar.
Langkah 4: Uji kesambungan
Gunakan multimeter untuk menguji kesambungan:
- Hubungan positif. Harus ada hubungan dari hujung ke ekor. Pastikan kesambungan ujian pada pad dan bukan wayar.
- Sambungan darat. Lakukan ujian yang sama tetapi dengan pelekap tanah.
- Setiap baris data. Dari satu pad data ke yang berikutnya, sahkan bahawa ada kesambungan.
Langkah 4: Melampirkan Circuit Playground Express
Circuit Playground Express (CPX) adalah nadi sistem. Adafruit mempunyai banyak tutorial untuk pengawal ini. Kemudian dalam arahan ini, saya akan mengetengahkan beberapa ciri MCU.
Langkah 1: Selesaikan CPX ke hujung bawah NeoPixel
Potong panjang wayar magnet yang sesuai untuk daya, arde, dan data. Torong mereka melalui kain inti tali leher sehingga menyentuh daya, tanah, dan pad data NeoPixel. Selesaikannya dengan memastikan wayar yang ada di pad masih membuat sambungan yang baik.
Seterusnya putar teras pengikat dan letakkan CPX pada posisi keinginan. Masukkan wayar kuasa ke pad VOUT, wayar ground ke pad ground mana pun, dan wayar data ke pad I / O selain A0. Kod yang saya tulis menggunakan A3.
Uji kesambungan.
Langkah 2: Ikat CPX
Dengan menggunakan utas dan jarum, pilih empat pad yang sama jaraknya dan jahitnya ke inti tali leher.
Langkah 5: Menghidupkan CPX
CPX tidak mempunyai suis hidup / mati. Ini bermaksud bahawa semasa bateri dipasang, tali leher akan menyala. Ini juga bermaksud bahawa satu-satunya cara untuk mematikannya adalah dengan mencabut bateri, yang merupakan masalah besar. Penyelesaian mudah adalah dengan memasang suis mati / mati pada bateri.
Langkah 1: Potong pin ke-3 pada suis
Salah satu pin bukan pusat tidak diperlukan. Potong siram dengan badan suis.
Langkah 2: Selesaikan suis sejajar dengan bateri
Potong wayar arde bateri di suatu tempat di tengah. Luncurkan sekeping tiub pengecutan haba pada setiap wayar tanah. Pateri satu wayar ground ke salah satu pin dan wayar ground yang lain ke pin yang lain. Pastikan bahawa mereka tidak saling bersentuhan atau pateri menyentuh badan logam.
Sahkan bahawa tidak bersambung menggunakan multimeter. Geser tiub ke atas sambungan yang dipateri dan mengecilkannya. Tambahkan sedikit pita elektrik ke bahagian yang mungkin gagal kerana keletihan lenturan.
Langkah 3: Sahkan bateri berfungsi
Pada ketika ini, bateri boleh dipasang ke CPX. Sekiranya semuanya berjalan lancar, suis harus dapat menghidupkan dan mematikan CPX.
Langkah 4: Pasang bateri
Letakkan sedikit cangkuk pelekat dan pita gelung di bahagian belakang bateri dan pada tali leher. Ini akan tetap berlaku jika tali leher tidak terlalu banyak dikendalikan.
Langkah 6: Menyiapkan Circuit Playground Express
Saya tidak akan menjelaskan secara terperinci mengenai cara menetapkan CPX. Adafruit melakukan itu dan kemudian beberapa. Saya akan memberikan beberapa petua untuk masalah yang sering saya hadapi.
CPX Membeku
Mungkin kerana masalah memori masa berjalan, CPX akan kerap membeku. Pembaikan cepat adalah dengan memadam dan menyala semula. Cari "Jalan Lama" dalam arahan ini. Pada dasarnya, ia adalah beberapa penekanan butang, seret dan lepas untuk dihapus, dan kemudian seret dan lepas untuk menyala semula.
Amaran: Ini akan menghapus segalanya. Semua kod pada CPX akan hilang.
Menyimpan Perubahan pada CPX Boleh Menyebabkan Masalah
Saya dapati bahawa kadang-kadang setelah menyimpan fail ke CPX, masa berjalan python akan berada dalam keadaan buruk. Pembetulannya adalah memulakan semula waktu python dengan menekan butang reset. Tekan sekali sahaja. Menekannya dua kali akan memulakan proses kilat semula.
Menyimpan Secara Langsung Ke CPX Berisiko
Oleh kerana kemungkinan CPX mesti dimatikan semula, seseorang berisiko kehilangan semua kod mereka. Setelah kehilangan kod saya dua kali, saya membuat aliran kerja yang mudah. Saya akan menyimpan kod saya ke cakera keras tempatan. Apabila sudah siap untuk diuji pada CPX, saya hanya akan menyalinnya dengan menjalankan skrip menyebarkan yang sederhana.
Langkah 7: Mengekodkan Circuit Playground Express
Pada ketika ini, CPX dan NeoPixels hampir lengkap. Tidak ada kerja mekanikal atau elektrik lain yang perlu dilakukan bersama mereka. Selebihnya adalah semua perisian.
Kodnya boleh didapati di akaun github saya. Kod python teras harus berfungsi tanpa perubahan untuk semua sistem operasi. Jangan pasang perpustakaan Adafruit CircuitPython luaran. Mereka tidak digunakan.
Berikut adalah ringkasan tahap tinggi mengenai apa yang berlaku dalam kod tersebut.
Apa Input Adakah Apa?
- Butang A: Menghidupkan animasi LED
- Butang B: Mengitar lagu
- Capacitive Touch Pad A1: Menukar warna untuk animasi LED
- Capacitive Touch Pad A6: Mengubah kelajuan animasi LED
3 Animasi Ada Tetapi Hanya 2 Yang Berkesan
kod.py
import pixelsoff
#import vumeter import tangga import twinkle… led_animations = [pixelsoff. PixelsOff (pixels), # vumeter. VuMeter (pixels, 100, 400) tangga. Stairs (pixels), twinkle. Twinkle (pixels)]
Saya memindahkan kod gaya meter Ampli-Tie VU. Ia menggunakan mikrofon CPX untuk mengambil suara dan menerangi NeoPixels berdasarkan amplitud suara. Namun, saya mahukan lebih banyak animasi. Oleh kerana kekangan memori runtime saya terpaksa memilih animasi yang saya mahukan. Jadi secara lalai dua yang lain, Stairs dan Twinkle, akan berjalan tanpa perlu membuat perubahan kod. Untuk menjalankan animasi meter VU, satu atau kedua-dua animasi lain harus dikomentari dan meter VU tidak dikomentari.
Pengurus Muzik dan Pengekodan Luar Talian
frosty_the_snowman.py
import nota_ muzik sebagai mn
# Lagu Frosty the Snowman # Walter E. Rollins = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…
convert_to_binary.py
lagu = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] untuk lagu dalam lagu: data = lagu [0] file = lagu [1] dengan terbuka (file, "wb") sebagai bin_file: untuk kemasukan dalam data: cetak ("menulis:" + str (entri)) note = entri [0] dur = entri [1] bin_file.write (struct.pack ("<HH", note, dur))
Saya mahukan muzik percutian. CPX menyokong kedua-dua nada dan nada WAV. Fail WAV ternyata terlalu besar dari segi saiz fail dan memori runtime. Menggunakan struktur data python untuk menahan nada dan tempohnya juga ternyata terlalu banyak menggunakan memori runtime. Oleh itu, saya mengubah suai kod Holi-Tie untuk membaca fail binari termampat yang hanya mengandungi data lagu yang diperlukan dalam format binari termampat. Saya menulis skrip yang membaca lagu yang dipegang dalam struktur data python dan menulisnya ke format binari. Memiliki lagu dikodkan sebagai data binari dalam fail menjadikan lagu itu kecil dan dinamis. Setelah lagu dimainkan, memori akan dilepaskan.
Adalah remeh untuk menambahkan lebih banyak lagu. Untuk perincian, lihat README.md dalam lagu.
Butang A Animasi NeoPixels, B Memainkan Muzik, Tetapi Tidak Serentak
kod.py
butang def_a_tekan ():
if music.is_playing (): # Hentikan muzik jika bermain music.stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Jalankan animasi no-op next_led_animation (0) if music.is_playing (): # Toggle muzik hidup atau mati music.stop () lain-lain: music.play ()
Walaupun dengan sistem pengurusan muzik yang lebih cekap memori, saya tidak dapat menahan animasi memori runtime 2, sambil memainkan 1 daripadanya dan juga memainkan lagu pada masa yang sama. Kerana saya telah memilih untuk tidak mempunyai meter VU dalam memori runtime sama sekali, saya tidak mahu mengurangkan jumlah animasi menjadi hanya 1. Oleh itu, saya menulis kodnya supaya animasi dimainkan atau muzik dimainkan tetapi tidak kedua-duanya. Pilihan lain adalah mengurangkan bilangan NeoPixels tetapi ini akan mengurangkan kesegaran animasi.
Kod Python Funkiness
Walaupun saya seorang pembangun perisian veteran, saya tidak pernah menulis Python. Setelah saya mengetahuinya dan menatap amalan pengkodan yang baik seperti enkapsulasi dan modularisasi, saya dengan cepat mengetahui bahawa saya menggunakan terlalu banyak memori runtime. Oleh itu, terdapat sedikit kod bukan KERING. Saya juga terpaksa menggunakan beberapa teknik MicroPython seperti const () untuk mengurangkan masalah ingatan masa berjalan.
Modul yang disusun
menyusun
#! / bin / bash
penyusun = ~ / development / circuitpython / mpy-cross-3.x-windows.exe cd songs python3./convert_to_binary.py cd.. for f in *.py; lakukan sekiranya
Pada awal projek, saya mengikuti nasihat Adafruit dan menyimpan semua perpustakaan Adafruit CircuitPython dengan cepat. Walau bagaimanapun, ini meninggalkan sedikit ruang untuk projek saya. Untuk mendapatkan kod saya ke CPX, saya mula menyusun modul dan meletakkannya ke MCU. Ternyata Holi-Tie tidak memerlukan perpustakaan luaran. Perpustakaan yang ada di UF2 mencukupi untuk projek ini. Menjalankan fail *.mpy sedikit lebih berkesan jadi saya meneruskan proses penggunaan modul yang disusun.
Seperti yang ditunjukkan dalam skrip kompilasi di atas, saya sedang mengusahakan mesin Windows tetapi menggunakan utiliti Unix seperti bash dan python3. Saya menggunakan Cygwin untuk mencapainya. Skrip ini dapat diterjemahkan dengan mudah ke kumpulan DOS dan pelaksanaan Python3 asli Windows.
Langkah 8: Mengikat Ikatan
Langkah terakhir adalah meletakkan kembali tali leher di tempatnya, memasang kembali tali leher, dan menjahitnya kembali. Pastikan CPX dapat diakses. Anda memerlukannya semasa mengganti bateri atau membuat perubahan kod.
Disyorkan:
Pemegang gambar dengan pembesar suara terbina dalam: 7 Langkah (dengan gambar)
Pemegang Gambar Dengan Pembesar Suara Built-In: Berikut adalah projek yang hebat untuk dilaksanakan pada hujung minggu, jika anda ingin menjadikan anda pembesar suara yang boleh menyimpan gambar / kad pos atau bahkan senarai tugas anda. Sebagai sebahagian daripada pembangunan, kami akan menggunakan Raspberry Pi Zero W sebagai nadi projek, dan
Cara: Memasang Raspberry PI 4 Tanpa Kepala (VNC) Dengan Imej dan Gambar Rpi: 7 Langkah (dengan Gambar)
Howto: Memasang Raspberry PI 4 Headless (VNC) Dengan Imej dan Gambar Rpi: Saya merancang untuk menggunakan Rapsberry PI ini dalam sekumpulan projek yang menyeronokkan di blog saya. Jangan ragu untuk melihatnya. Saya ingin kembali menggunakan Raspberry PI saya tetapi saya tidak mempunyai Papan Kekunci atau Tetikus di lokasi baru saya. Sudah lama saya menyediakan Raspberry
Lancarkan Tayangan Tayangan Gambar Percutian Anda Dengan Sentuhan Sihir!: 9 Langkah (dengan Gambar)
Lancarkan Tayangan Tayangan Gambar Percutian Anda Dengan Sentuhan Sihir!: Selama bertahun-tahun, saya telah membiasakan diri untuk mengambil patung kecil dengan saya semasa dalam perjalanan: Saya sering membeli artoy kosong (seperti gambar dalam gambar) dan cat ia sesuai dengan bendera dan tema negara yang saya lawati (dalam kes ini, Sisilia). T
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: 13 Langkah (dengan Gambar)
Cara Membongkar Komputer Dengan Langkah dan Gambar yang Mudah: Ini arahan mengenai cara membongkar PC. Sebilangan besar komponen asas adalah modular dan mudah dikeluarkan. Walau bagaimanapun, adalah penting untuk anda mengaturnya. Ini akan membantu mengelakkan anda kehilangan bahagian, dan juga dalam membuat pemasangan semula
Cara Pixellate Gambar - Dengan Mudah: 3 Langkah (dengan Gambar)
Cara Pixellate Gambar - Mudah: Yang cepat ini adalah teknik untuk menggunakan penapisan piksel untuk mengekalkan anonim, martabat dan lain-lain pada gambar digital. Anda hanya memerlukan penyunting gambar sederhana seperti MS Paint, saya menggunakan MS Paint. Untuk alternatif, lihat ini Boleh diajar