Sadržaj:

Holi-Tie: 8 koraka (sa slikama)
Holi-Tie: 8 koraka (sa slikama)

Video: Holi-Tie: 8 koraka (sa slikama)

Video: Holi-Tie: 8 koraka (sa slikama)
Video: ✌🧶🎉КРАСИВАЯ ШАЛЬ КРЮЧКОМ "ВЕЕРОЧКИ" (вязание крючком для начинающих) / Crochet shawl for beginners 2024, Studeni
Anonim
Image
Image

Autor gwfongMonkey PatchingFollow Više od autora:

Osvjetljavajuća rampa za pse
Osvjetljavajuća rampa za pse
Skulptura od čeličnog srca i stopljenog stakla
Skulptura od čeličnog srca i stopljenog stakla
Skulptura od čeličnog srca i stopljenog stakla
Skulptura od čeličnog srca i stopljenog stakla
Bakrena žica i lemljeni stakleni leptir
Bakrena žica i lemljeni stakleni leptir
Bakrena žica i lemljeni stakleni leptir
Bakrena žica i lemljeni stakleni leptir

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

Priprema kravate
Priprema kravate
Priprema kravate
Priprema kravate
Priprema kravate
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

Priključivanje NeoPixela
Priključivanje NeoPixela
Priključivanje NeoPixela
Priključivanje NeoPixela
Priključivanje NeoPixela
Priključivanje NeoPixela
Priključivanje NeoPixela
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:

  1. Pozitivne veze. Mora postojati povezanost od vrha do repa. Provjerite povezivanje na jastučićima, a ne na žici.
  2. Priključci uzemljenja. Izvršite isti test, ali s podlogama za uzemljenje.
  3. Svaka linija podataka. Od jedne podatkovne ploče do druge provjerite postoji li povezanost.

Korak 4: Priključivanje Circuit Playground Expressa

Priključivanje Circuit Playground Express
Priključivanje Circuit Playground Express

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

Napajanje CPX -a
Napajanje CPX -a
Napajanje CPX -a
Napajanje CPX -a
Napajanje CPX -a
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

Zakopčavanje kravate
Zakopčavanje kravate
Zakopčavanje kravate
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: