Sadržaj:
- Korak 1: Dijelovi i alati
- Korak 2: Priprema kravate
- Korak 3: Priključivanje NeoPixela
- Korak 4: Priključivanje Circuit Playground Expressa
- Korak 5: Napajanje CPX -a
- Korak 6: Postavljanje Circuit Playground Expressa
- Korak 7: Kodiranje Circuit Playground Expressa
- Korak 8: Zakopčavanje kravate
Video: Holi-Tie: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:36
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 tijekom blagdana. Labavo temeljen na Ampli-Tie Becky Stern koja koristi Flora ploču, Holi-Tie koristi mikrokontroler Circuit Python Express (CPX) za pokretanje NeoPixel animacija i glazbe. Gumb se mijenja između 2 različite animacije NeoPixel. Kapacitivni dodirni jastučići mijenjaju NeoPixel boje i brzinu animacije. Drugi gumb mijenja LED animacije i glazbu. Ugrađeni mikrofon koristi se za mjerenje ambijentalne buke za animaciju VU mjerača. CPX zvučnik emitira blagdanske melodije.
Sve je kodirano pomoću programskog jezika Python koji radi na vrhu sustava CircuitPython. Napaja se LiPo baterijom od 3,7 V, 500 mAH koja je modificirana tako da ima prekidač za uključivanje/isključivanje.
Postoje dva video isječka koji prikazuju Holi-Tie:
- Dovršena Holi-Tie
- Unutar Holi-Tie
Korak 1: Dijelovi i alati
Dijelovi
- Circuit Playground Express
- 15x Flora neopiksela
- Magnetna žica
- Ljepljiva traka s kukom i omčom
- Lipo baterija od 500mAH s JST priključkom
- Kravata od bombona
- 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 kupila drugu za slučaj da sam prvu pokvarila.
Alati
- Pištolj za vruće ljepilo
- Stanica za lemljenje
- Rezači žice
- Mali nož
- Multimetar
- Računalo
- Upaljač ili toplinski pištolj
- Konac i igla
Korak 2: Priprema kravate
Glavni cilj je pristupiti unutarnjoj jezgri vezice i razgraničiti linije koje pokazuju gdje LED diode trebaju biti pozicionirane.
Korak 1: Zavežite kravatu na mjesto
Bit će teško vezati kravatu kad je elektronika na mjestu. Zato zavežite kravatu tako da izgleda dobro i da je čvor prilično čvrst i da se neće raspetljati. Zatim pažljivo povucite mali kraj kravate kako biste otvorili rupu kako bi kravata prešla preko glave. Ovo je položaj na kojem ć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 gdje LED diode trebaju biti postavljene
Kako 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. No, najbolje je to približiti sada, a ne kasnije.
Testirajte centriranje linija postavljanjem LED dioda na linije i polaganjem prugaste tkanine na vrh. Prilagodite gdje je potrebno.
Korak 3: Priključivanje NeoPixela
U osnovi, izrađujemo vlastitu LED traku. Jednostavno montiramo LED diode na jezgru vezice 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 crte. 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, slijedeći donji lijevi u gornji desni ugao. 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 hoće li to trajati godinama koje dolaze, treba samo vidjeti.
Korak 3: Lemite NeoPixele jedan na drugi
Budući da sam odlučio lemiti NeoPixels zajedno umjesto da koristim vodljivi konac, rupa u 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 gdje će biti lemljeni. Najbolje je strugati cijeli opseg žice.
Korak 4: Testirajte povezivost
Pomoću multimetra provjerite povezanost:
- Pozitivne veze. Mora postojati povezanost od vrha do repa. Provjerite povezivanje na jastučićima, a ne na žici.
- Priključci uzemljenja. Izvršite isti test, ali s podlogama za uzemljenje.
- Svaka linija podataka. Od jedne podatkovne ploče do druge provjerite postoji li povezanost.
Korak 4: Priključivanje Circuit Playground Expressa
Circuit Playground Express (CPX) srce je sustava. Adafruit ima brojne vodiče za ovaj kontroler. Kasnije u ovom uputstvu istaknut ću nekoliko značajki MCU -a.
Korak 1: Lemite CPX na donji dio NeoPixela
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 u trenutku kad je baterija priključena. To također znači da je jedini način isključivanja isključivanje 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. Odrežite ga u ravnini s tijelom prekidača.
Korak 2: Lemite prekidač u liniji na baterijski kabel
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 jesu li 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 umora od savijanja.
Korak 3: Provjerite radi li baterija
U ovom se trenutku baterija može priključiti na 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 trake s kukom i omčom na stražnju stranu baterije i na jezgru kravate. Tako će ostati na mjestu ako se s kravatom ne rukuje previše.
Korak 6: Postavljanje Circuit Playground Expressa
Neću ulaziti u detalje o postavljanju CPX -a. Adafruit to čini, a zatim nešto. Dat ću nekoliko savjeta za probleme s kojima sam se često susretao.
CPX se zamrzava
Vjerojatno zbog problema s memorijom tijekom rada, CPX bi se često smrzavao. Brzo rješenje je brisanje i ponovno bljeskanje. Potražite "Old Way" u ovim uputama. U osnovi, to je nekoliko pritisaka gumba, povlačenje i ispuštanje za brisanje, a zatim povlačenje i ispuštanje za ponovno bljeskanje.
Upozorenje: Time se briše sve. Sav kôd na CPX -u bit će 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. Popravak je ponovno pokrenuo vrijeme izvođenja pythona pritiskom na gumb za resetiranje. Pritisnite samo jednom. Dvaput pritisnuti započet će 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, došao sam do jednostavnog tijeka rada. Spremio bih svoj kôd na lokalni tvrdi disk. Kad je bio spreman za testiranje na CPX -u, jednostavno bih ga kopirao pokretanjem jednostavne implementacijske skripte.
Korak 7: Kodiranje Circuit Playground Expressa
U ovom trenutku, CPX i NeoPixels su prilično kompletni. S njima ne morate raditi nikakve druge mehaničke ili električne radove. Ostalo je sve softver.
Kôd se može pronaći na mom github računu. Jezgra python koda trebala bi raditi bez ikakvih promjena za sve operacijske sustave. Nemojte instalirati vanjske biblioteke Adafruit CircuitPython. Ne koriste se.
Ovdje je sažetak na visokoj razini onoga što se događa u kodu.
Koji unos služi čemu?
- Gumb A: Kruženje kroz LED animacije
- Gumb B: Prolazi kroz pjesme
- 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 import stepenice import twinkle… led_animations = [pixelsoff. PixelsOff (pikseli), # vumeter. VuMeter (pikseli, 100, 400) stepenice. Stepenice (pikseli), svjetlucanje. Twinkle (pikseli)]
Prenio sam kôd stila Ampli-Tie VU mjerača. Koristi CPX mikrofon za hvatanje zvuka i osvjetljavanje NeoPixela na temelju amplitude zvuka. Međutim, želio sam više animacija. Zbog ograničenja memorije u vrijeme izvođenja morao sam odabrati animacije koje želim. Tako će se prema zadanim postavkama ostale dvije, Stepenice i Twinkle, izvoditi bez potrebe za promjenom koda. Da biste pokrenuli animaciju VU mjerača, jednu ili obje druge animacije morate komentirati, a VU mjerač komentirati.
Upravitelj glazbe i kodiranje izvan mreže
frosty_the_snowman.py
uvesti glazbene_note 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] s otvorenim (file, "wb") kao bin_file: za unos u podatke: print ("write:" + str (entry)) note = entry [0] dur = entry [1] bin_file.write (struct.pack ("<HH", note, dur))
Htio sam blagdansku glazbu. 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. Pokazalo se da je upotreba python struktura podataka za zadržavanje tonova i njihovo trajanje koristilo previše memorije za vrijeme izvođenja. Tako sam izmijenio kod Holi-Tie za čitanje komprimirane binarne datoteke 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.
Gumb A animira neopiksele, B reproducira glazbu, ali ne istodobno
code.py
def button_a_pressed (): def gumb_a_pressed ():
if music.is_playing (): # Zaustavi glazbu ako pušta glazbu.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 (): # Prebaci glazba uključena ili isključena music.stop () else: music.play ()
Čak i s memorijski učinkovitijim sustavom za upravljanje glazbom, nisam mogao držati u memoriji za vrijeme 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 glazba svira, ali ne oba. Druga je mogućnost bila smanjiti broj NeoPixela, ali bi to izgubilo malo hladnoće animacije.
Funkcionalnost Python koda
Iako sam veteran programer softvera, nikada nisam napisao 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 ne-DRY koda. Također sam morao koristiti neke MicroPython tehnike, kao što je const () za dodatno smanjenje problema s memorijom tijekom izvođenja.
Sastavljeni moduli
sastaviti
#!/bin/bash
kompajler = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd pjesme python3./convert_to_binary.py cd.. za f u *.py; učiniti ako
Rano u projektu slijedio sam Adafruitov savjet i pohranio sve biblioteke Adafruit CircuitPython na flash. To je, međutim, ostavilo malo prostora za moj projekt. Kako bih svoj kod mogao prenijeti na CPX, počeo sam sastavljati module i stavljati ih na MCU. Ispostavilo se da Holi-Tie ne treba nikakvu vanjsku knjižnicu. Postojeće knjižnice u UF2 bile su dovoljne za ovaj projekt. Pokretanje *.mpy datoteka je malo učinkovitije pa sam nastavio proces implementacije prevedenih modula.
Kao što je vidljivo iz gore navedene kompajlirajuće skripte, radim na Windows stroju, ali koristim Unix pomoćne programe kao što su bash i python3. Koristim Cygwin da to postignem. Ova se skripta može lako prevesti u DOS paket i Windows izvornu Python3 implementaciju.
Korak 8: Zakopčavanje kravate
Posljednji korak je vratiti jezgru kravate na mjesto, ponovno sastaviti kravatu i sašiti je. Budite sigurni da ćete CPX učiniti pristupačnim. Trebat će vam prilikom zamjene baterije ili promjene koda.
Preporučeni:
Kako: Instaliranje Raspberry PI 4 bez glave (VNC) s 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 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 ponovno početi vježbati. Koju opremu trebam pripremiti?
Brojač koraka - Mikro: Bit: 12 koraka (sa slikama)
Brojač koraka - Micro: Bit: Ovaj projekt će biti brojač koraka. Za mjerenje koraka koristit ćemo senzor akcelerometra koji je ugrađen u Micro: Bit. Svaki put kad se Micro: Bit protrese, zbroju ćemo dodati 2 i prikazati ga na ekranu
Atari Punk konzola s bebom Sekvencer za 8 koraka: 7 koraka (sa slikama)
Atari Punk konzola s Baby 8 Step Sequencer-om: Ova srednja verzija je sve-u-jednom Atari Punk Console i Baby 8 Step Sequencer koje možete glodati na stolnom 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čunalo jednostavnim koracima i slikama: 13 koraka (sa slikama)
Kako rastaviti računalo jednostavnim koracima i slikama: Ovo uputstvo o tome kako rastaviti računalo. 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 spriječite gubitak dijelova, a također i prilikom ponovnog sastavljanja