Sadržaj:
- Korak 1: Dijelovi i alati
- Korak 2: Priprema kravate
- Korak 3: Priključivanje NeoPixela
- Korak 4: Priključivanje Circuit Playground Express -a
- Korak 5: Napajanje CPX -a
- Korak 6: Postavljanje Circuit Playground Express -a
- Korak 7: Kodiranje Circuit Playground Express -a
- Korak 8: Zakopčavanje kravate
Video: Holi-Tie: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Autor gwfongMonkey PatchingFollow Više od autora:
O: Samo momak koji želi napraviti cool stvari Više o gwfong »
Ovo je Holi-Tie, svečana kravata dizajnirana za nošenje tokom praznika. Labavo zasnovan na Ampli-Tie Becky Stern koja koristi Flora ploču, Holi-Tie koristi mikrokontroler Circuit Python Express (CPX) za pokretanje NeoPixel animacija i muzike. Gumb se mijenja između 2 različite NeoPixel animacije. Kapacitivni dodirni jastučići mijenjaju NeoPixel boje i brzinu animacije. Drugo dugme mijenja LED animacije i muziku. Ugrađeni mikrofon koristi se za mjerenje ambijentalne buke za animaciju VU mjerača. CPX zvučnik emituje melodije prazničnih čipova.
Sve je kodirano pomoću programskog jezika Python koji radi na sistemu CircuitPython. Napaja se 3,7V, 500mAH LiPo baterijom koja je modificirana tako da ima prekidač za uključivanje/isključivanje.
Postoje dva video isječka koji prikazuju Holi-Tie:
- Završena Holi-Tie
- Unutar Holi-Tie
Korak 1: Dijelovi i alati
Delovi
- Circuit Playground Express
- 15x Flora Neopiksela
- Magnetna žica
- Ljepljiva traka sa kukom i omčom
- Lipo baterija od 500mAH sa JST konektorom
- Candy Cane kravata
- Mini klizni prekidač, SPDT
- Termoskupljajuće cijevi
Prilikom nabave dijelova bilo bi pametno kupiti dodatke. Imao sam ukupno 20 NeoPixela, od kojih je jedan bio pokvaren od početka, a jedan sam uništio. Kravata Candy Cane bila je toliko jeftina da sam kupio drugu za slučaj da sam prvu uništio.
Alati
- Pištolj za vruće ljepilo
- Lemna stanica
- Rezači žice
- Mali nož
- Multimetar
- Computer
- Upaljač ili toplotni pištolj
- Konac i igla
Korak 2: Priprema kravate
Glavni cilj je pristupiti unutrašnjoj jezgri vezice i razgraničiti linije koje pokazuju gdje LED diode trebaju biti pozicionirane.
Korak 1: Vežite kravatu na mjesto
Biće teško vezati kravatu kada je elektronika na svom mjestu. Zato zavežite kravatu tako da izgleda dobro i da je čvor prilično čvrst i da se neće rasplesti. Zatim pažljivo povucite mali kraj kravate kako biste otvorili rupu kako biste kravatu prebacili preko glave. Ovo je pozicija na kojoj će se izjednačiti.
Postoje sve vrste različitih čvorova za kravate. Znam samo onaj koji sam naučio kao dijete, Windsor. Ne bi trebalo biti važno koji čvor se koristi.
Korak 2: Otvorite stražnju stranu kravate
Otvorite šavove s jedne strane petlje za kravatu i logotipa, a zatim niz sredinu kravate. Budite oprezni jer se na kraju mora ponovno sašiti.
Korak 3: Nacrtajte linije na koje LED diode trebaju biti postavljene
Da bi se LED diode pojavile u dijelovima kravate s bijelim prugama, lakše je pronaći središnju liniju za svaki dio bijele pruge na stražnjoj strani jezgre kravate, a zatim to preslikati na prednju stranu jezgre kravate. Provjerite i dvaput provjerite je li središnja linija 1) u sredini i 2) paralelna s prugom. Fino podešavanje LED položaja bit će moguće ako su malo isključeni. Ali najbolje je to približiti sada, a ne kasnije.
Testirajte centriranje linija postavljanjem LED dioda na linije i polaganjem prugaste tkanine na vrh. Podesite gde je potrebno.
Korak 3: Priključivanje NeoPixela
U osnovi, pravimo vlastitu LED traku. Jednostavno montiramo LED diode na jezgru kravate i zatim ih povezujemo jedna s drugom.
Korak 1: Zalijepite NeoPixels na jezgru kravate
Stavite mrvicu vrućeg ljepila na stražnju stranu NeoPixela i postavite ga na središnje linije. Za presjeke s 3 NeoPixela, okomito poravnajte središnji NeoPixel i prvo ih zalijepite. To će olakšati pozicioniranje lijevog i desnog NeoPixela u odnosu na središte, posebno s obzirom na to da se širina kravate povećava odozgo prema dolje.
Orijentirajte sve NeoPixele u istom smjeru, idući odozdo slijeva prema gore desno. Ako to nije točno, traka neće raditi.
Napomena o vrućem ljepilu. Bit će dovoljno da se projekt dovrši. Što se tiče toga da li će to trajati godinama koje dolaze, ostaje samo vidjeti.
Korak 3: Lemite NeoPixele jedan na drugi
Budući da sam odlučio lemiti NeoPixels zajedno umjesto provodnog konca, rupa na NeoPixel jastučićima djeluje pomalo protiv nas. Samo pronađite dobro mjesto na podlozi za lemljenje žice. Ne pokušavajte popuniti rupu lemom, ali ako se to dogodi, bit će u redu.
Magnetna žica ima tanki sloj izolacije oko bakrene jezgre. Nožem sastružite izolaciju samo na krajevima na kojima će biti lemljeni. Najbolje je strugati cijeli opseg žice.
Korak 4: Testirajte povezanost
Pomoću multimetra provjerite povezanost:
- Pozitivne veze. Mora postojati povezanost od vrha do repa. Pobrinite se da testirate povezanost jastučića, a ne žice.
- Uzemljenje. Izvršite isti test, ali s podlogama za uzemljenje.
- Svaka linija podataka. Od jedne do druge podatkovne ploče provjerite postoji li povezanost.
Korak 4: Priključivanje Circuit Playground Express -a
Circuit Playground Express (CPX) je srce sistema. Adafruit ima brojne vodiče za ovaj kontroler. Kasnije u ovom uputstvu istaknut ću nekoliko MCU funkcija.
Korak 1: Lemite CPX na donji vrh NeoPixel -a
Odrežite odgovarajuću duljinu magnetske žice za napajanje, masu i podatke. Gurnite ih kroz tkaninu jezgre kravate tako da dodiruju NeoPixel napajanje, tlo i podatkovne jastučiće. Spajati ih pazeći da postojeće žice na jastučićima i dalje ostvaruju dobru povezanost.
Zatim okrenite jezgru kravate i postavite CPX u željeni položaj. Uključite žicu za napajanje na VOUT jastučić, žicu za uzemljenje na bilo koju podlogu za uzemljenje, a žicu za podatke na bilo koju U/I podlogu osim A0. Kod koji sam napisao koristi A3.
Testirajte povezanost.
Korak 2: Vezajte CPX
Koristeći konac i iglu, odaberite bilo koja četiri jednako udaljena jastučića i prišite ih na jezgru kravate.
Korak 5: Napajanje CPX -a
CPX nema prekidač za uključivanje/isključivanje. To znači da će se kravata uključiti čim se baterija uključi. To također znači da je jedini način isključivanja isključenjem baterije, što je velika muka. Jednostavno rješenje je staviti prekidač za isključivanje/isključivanje na bateriju.
Korak 1: Odrežite 3. iglu na prekidaču
Jedan od necentričnih pinova nije potreban. Odsecite ga u ravni sa telom prekidača.
Korak 2: Lemite prekidač u liniji za baterijski vodič
Prerežite žicu za uzemljenje baterije negdje u sredini. Gurnite komad termoskupljajuće cijevi na svaku od žica za uzemljenje. Lemite jednu žicu za uzemljenje na jedan od pinova, a drugu žicu za uzemljenje na drugu iglu. Pazite da se ne dodiruju ili da lem dodiruje metalno tijelo.
Provjerite da nisu povezani pomoću multimetra. Gurnite cijev preko lemljenih spojeva i skupite je. Dodajte malo električne trake na bilo koji dio koji može otkazati zbog zamora od savijanja.
Korak 3: Provjerite radi li baterija
U ovom trenutku, baterija se može uključiti u CPX. Ako je sve prošlo dobro, prekidač bi trebao moći uključiti i isključiti CPX.
Korak 4: Postavite bateriju
Stavite malo ljepljive kuke i trake na stražnju stranu baterije i na jezgru kravate. Ovo će ostati na mjestu ako se kravata ne rukuje previše.
Korak 6: Postavljanje Circuit Playground Express -a
Neću ulaziti u detalje o tome kako postaviti CPX. Adafruit to radi, a zatim nešto. Dat ću nekoliko savjeta za probleme s kojima sam se često susretao.
CPX se zamrzava
Vjerovatno zbog problema s memorijom tokom rada, CPX bi se često zamrzavao. Brzo rješenje je brisanje i ponovno bljeskanje. Potražite "Old Way" u ovim uputama. U osnovi, to je nekoliko pritisaka tipki, povlačenje i ispuštanje za brisanje, a zatim povlačenje i ispuštanje za ponovno bljeskanje.
Upozorenje: Ovo briše sve. Sav kôd na CPX -u će biti izgubljen.
Spremanje promjena u CPX može uzrokovati probleme
Otkrio sam da bi ponekad nakon spremanja datoteke na CPX python vrijeme izvođenja bilo u lošem stanju. Popravka je ponovno pokrenula vrijeme izvođenja pythona pritiskom na gumb za resetiranje. Pritisnite samo jednom. Ako ga pritisnete dvaput, pokrenut će se postupak ponovnog bljeskanja.
Rizično je spremanje izravno na CPX
Zbog mogućnosti da CPX mora biti ponovno bljesak, postoji rizik da izgube sav njihov kôd. Nakon što sam dvaput izgubio kôd, smislio sam jednostavan tijek rada. Svoj kôd bih spremio na lokalni tvrdi disk. Kada je bio spreman za testiranje na CPX -u, jednostavno bih ga kopirao pokretanjem jednostavne implementacijske skripte.
Korak 7: Kodiranje Circuit Playground Express -a
U ovom trenutku, CPX i NeoPixels su prilično kompletni. S njima nije potrebno raditi nikakve druge mehaničke ili električne radove. Ostalo je sav softver.
Kôd se može pronaći na mom github računu. Osnovni Python kod trebao bi raditi bez ikakvih promjena za sve operativne sisteme. Nemojte instalirati vanjske Adafruit CircuitPython biblioteke. Ne koriste se.
Evo sažetka na visokom nivou onog što se dešava u kodu.
Šta unosi šta?
- Dugme A: Kretanje kroz LED animacije
- Dugme B: Kretanje kroz pesme
- Kapacitivna dodirna ploča A1: Mijenja boje za LED animacije
- Kapacitivna dodirna ploča A6: Mijenja brzinu LED animacija
3 animacije postoje, ali samo 2 su na snazi
code.py
import pixelsoff
#import vumeter uvoz stepenice uvoz twinkle… led_animations = [pixelsoff. PixelsOff (pikseli), # vumeter. VuMeter (pikseli, 100, 400) stepenice. Stepenice (pikseli), twinkle. Twinkle (pikseli)]
Portirao sam kôd stila Ampli-Tie VU mjerača. Koristi CPX mikrofon za hvatanje zvuka i osvjetljavanje NeoPixela na osnovu amplitude zvuka. Međutim, želio sam više animacija. Zbog ograničenja memorije u vrijeme izvođenja morao sam izabrati koje animacije želim. Tako će se prema zadanim postavkama ostale dvije, Stepenice i Twinkle, pokretati bez potrebe za promjenom koda. Da biste pokrenuli animaciju VU mjerača, jednu ili obje druge animacije morate komentirati, a VU mjerač ukloniti.
Upravitelj muzike i kodiranje van mreže
frosty_the_snowman.py
uvoz muzičkih_nota kao mn
# Frosty the Snowman # Walter E. Rollins pjesma = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…
convert_to_binary.py
pjesme = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] za pjesmu u pjesmama: data = song [0] file = song [1] sa otvorenim (file, "wb") kao bin_file: za unos u podatke: print ("pisanje:" + str (unos)) note = entry [0] dur = entry [1] bin_file.write (struct.pack ("<HH", note, dur))
Htela sam muziku za praznike. CPX podržava i WAV i tonove. Pokazalo se da su WAV datoteke prevelike u pogledu veličine datoteke i memorije za vrijeme izvođenja. Korištenje python struktura podataka za zadržavanje tonova i njihovo trajanje također je pokazalo da koristi previše memorije za vrijeme izvođenja. Tako sam izmijenio kod Holi-Tie tako da čita komprimiranu binarnu datoteku koja je sadržavala samo potrebne podatke o pjesmi u komprimiranom binarnom formatu. Napisao sam skriptu koja čita pjesmu koja se nalazi u python strukturi podataka i zapisuje je u binarni format. Ako je pjesma kodirana kao binarni podatak u datoteci, pjesma je i mala i dinamična. Nakon što se pjesma završi, memorija se oslobađa.
Trivijalno je dodati još pjesama. Za detalje pogledajte README.md u pjesmama.
Dugme A animira neopiksele, B reprodukuje muziku, ali ne istovremeno
code.py
def button_a_pressed ():
if music.is_playing (): # Zaustavi muziku ako pušta muziku.stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Pokreni animaciju bez opiranja next_led_animation (0) if music.is_playing (): # Uključi / isključi muzika uključena ili isključena music.stop () else: music.play ()
Čak i sa memorijski efikasnijim sistemom za upravljanje muzikom, nisam mogao držati u memoriji tokom izvođenja 2 animacije, dok sam reproducirao 1 od njih i istovremeno svirati pjesmu. Budući da sam već odlučio da VU mjerač uopće ne bude u memoriji za vrijeme izvođenja, nisam želio smanjiti broj animacija na samo 1. Zato sam napisao kod tako da se animacija reproducira ili muzika svira, ali ne oboje. Druga je mogućnost bila smanjiti broj NeoPixela, ali bi to izgubilo malo svježine animacije.
Funkcionalnost Python koda
Iako sam veteran programer softvera, nikada nisam pisao Python. Nakon što sam se snašao i počeo primjenjivati dobre prakse kodiranja, poput enkapsulacije i modularizacije, brzo sam otkrio da koristim previše memorije za vrijeme izvođenja. Dakle, postoji dosta koda koji nije DRY. Takođe sam morao da koristim neke MicroPython tehnike kao što je const () da bih dodatno smanjio probleme sa memorijom tokom izvođenja.
Sastavljeni moduli
kompajlirati
#!/bin/bash
kompajler = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd pjesme python3./convert_to_binary.py cd.. za f u *.py; uradi ako
Rano u projektu slijedio sam Adafruit -ove savjete i pohranio sve Adafruit CircuitPython biblioteke na flash. Ovo je, međutim, ostavilo malo prostora za moj projekat. Da bih mogao prenijeti svoj kod na CPX, počeo sam sastavljati module i stavljati ih na MCU. Ispostavilo se da Holi-Tie ne treba nikakvu vanjsku biblioteku. Postojeće biblioteke u UF2 bile su dovoljne za ovaj projekt. Pokretanje *.mpy datoteka je malo efikasnije pa sam nastavio proces implementacije prevedenih modula.
Kao što je evidentno u gore navedenoj kompajliranoj skripti, radim na Windows mašini, ali koristim Unix pomoćne programe kao što su bash i python3. Koristim Cygwin da to postignem. Ova skripta se lako može prevesti u DOS paket i Windows izvornu Python3 implementaciju.
Korak 8: Zakopčavanje kravate
Posljednji korak je vratiti jezgru kravate na mjesto, sastaviti kravatu i sašiti je. Budite sigurni da možete učiniti CPX pristupačnim. Trebat će vam prilikom zamjene baterije ili promjene koda.
Preporučuje se:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) sa Rpi-imagerom i slikama: 7 koraka (sa slikama)
Kako: Instaliranje Raspberry PI 4 Headless (VNC) s Rpi-imagerom i slikama: Planiram koristiti ovaj Rapsberry PI u hrpi zabavnih projekata na svom blogu. Slobodno provjerite. Htio sam se vratiti korištenju svog Raspberry PI -a, ali nisam imao tipkovnicu ili miš na novoj lokaciji. Prošlo je dosta vremena od postavljanja maline
Kako napraviti brojač koraka?: 3 koraka (sa slikama)
Kako napraviti brojač koraka?: Nekada sam se dobro snašao u mnogim sportovima: hodanje, trčanje, vožnja bicikla, igranje badmintona itd. Volim jahanje da bih brzo putovao. Pa, pogledaj moj trbušni trbuh … Pa, u svakom slučaju, odlučujem ponovo početi vježbati. Koju opremu treba pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekat će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kada se Micro: Bit protrese, broju ćemo dodati 2 i prikazati ga na ekranu
Atari Punk konzola s bebom Sekvencer za 8 koraka: 7 koraka (sa slikama)
Atari Punk konzola sa Baby Step Sequencer-om: Ova srednja verzija je sve-u-jednom Atari Punk Console i Baby 8 Step Sequencer koju možete glodati na stolnoj PCB glodalici Bantam Tools. Sastoji se od dvije ploče: jedna je ploča korisničkog sučelja (UI), a druga je pomoćna bo
Kako rastaviti računar jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računar jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računar. Većina osnovnih komponenti je modularna i lako se uklanja. Međutim, važno je da se oko toga organizirate. To će vam pomoći da izbjegnete gubitak dijelova, a također i prilikom ponovnog sastavljanja