Turinys:

„Holi-Tie“: 8 žingsniai (su nuotraukomis)
„Holi-Tie“: 8 žingsniai (su nuotraukomis)

Video: „Holi-Tie“: 8 žingsniai (su nuotraukomis)

Video: „Holi-Tie“: 8 žingsniai (su nuotraukomis)
Video: Как на айфоне включить вспышку при звонке? 2024, Liepa
Anonim
Image
Image

Beždžionių pataisymasSekite daugiau autoriaus:

Šviečianti šuns rampa
Šviečianti šuns rampa
Plieninės širdies ir lydyto stiklo skulptūra
Plieninės širdies ir lydyto stiklo skulptūra
Plieninės širdies ir lydyto stiklo skulptūra
Plieninės širdies ir lydyto stiklo skulptūra
Varinė viela ir lydytas stiklo drugelis
Varinė viela ir lydytas stiklo drugelis
Varinė viela ir lydytas stiklo drugelis
Varinė viela ir lydytas stiklo drugelis

Apie: Tiesiog vaikinas, norintis sukurti įdomių dalykų Daugiau apie gwfong »

Tai šventinis kaklaraištis „Holi-Tie“, skirtas dėvėti per šventes. „Holi-Tie“, pagrįstas Becky Stern „Ampli-Tie“, kuriame naudojama „Flora“plokštė, naudoja „Circuit Python Express“(CPX) mikrovaldiklį, kad sukurtų „NeoPixel“animaciją ir muziką. Mygtukas keičia 2 skirtingas „NeoPixel“animacijas. Talpios jutiklinės pagalvėlės keičia „NeoPixel“spalvas ir animacijos greitį. Kitas mygtukas keičia LED animaciją ir muziką. Borto mikrofonas naudojamas aplinkos triukšmui matuoti, kai naudojama VU skaitiklio animacija. O CPX garsiakalbis išleidžia atostogų mikroschemas.

Viskas koduojama naudojant „Python“programavimo kalbą, veikiančią „CircuitPython“sistemoje. Jį maitina 3,7 V, 500 mAh LiPo baterija, kuri buvo modifikuota taip, kad būtų įjungimo/išjungimo jungiklis.

Yra du vaizdo įrašai, rodantys „Holi-Tie“:

  • Užbaigtas „Holi-Tie“
  • „Holi-Tie“viduje

1 žingsnis: dalys ir įrankiai

Dalys

  • „Circuit Playground Express“
  • 15x „Flora“neopikseliai
  • Magnetinė viela
  • Lipni kabliuko ir kilpos juosta
  • 500mAH lipo baterija su JST jungtimi
  • „Candy Cane“kaklaraištis
  • Mini slankiklis, SPDT
  • Termiškai susitraukiantis vamzdis

Perkant dalis, būtų protinga pirkti priedus. Iš viso turėjau 20 „NeoPikselių“, iš kurių vienas buvo sugadintas nuo pat pradžių, o kitas - sugadintas. „Candy Cane“kaklaraištis buvo toks pigus, kad nusipirkau antrą tik tuo atveju, jei sugadinčiau pirmąjį.

Įrankiai

  • Karštas klijų pistoletas
  • Litavimo stotis
  • Vielos pjaustytuvai
  • Mažas peilis
  • Multimetras
  • Kompiuteris
  • Lengvesnis arba šilumos pistoletas
  • Siūlai ir adata

2 žingsnis: kaklaraiščio paruošimas

Kaklaraiščio ruošimas
Kaklaraiščio ruošimas
Kaklaraiščio ruošimas
Kaklaraiščio ruošimas
Kaklaraiščio ruošimas
Kaklaraiščio ruošimas

Pagrindinis tikslas yra gauti prieigą prie vidinio kaklaraiščio šerdies ir nubrėžti linijas, nurodančias, kur turėtų būti išdėstyti šviesos diodai.

1 žingsnis: suriškite kaklaraištį į vietą

Sunku surišti kaklaraištį, kai yra elektronika. Taigi suriškite kaklaraištį taip, kad jis gerai atrodytų, o mazgas būtų gana tvirtas ir neišsiskleistų. Tada atsargiai traukite mažą kaklaraiščio galą, kad atidarytumėte skylę, kad kaklaraištis būtų virš galvos. Tai yra pozicija, kurioje bus dirbamas kaklaraištis.

Yra įvairių kaklaraiščių mazgų. Žinau tik tą, kurį išmokau vaikystėje, Vindzoro. Neturėtų būti svarbu, koks mazgas naudojamas.

2 žingsnis: atidarykite kaklaraiščio nugarą

Nuplėškite siūles vienoje kaklaraiščio kilpos pusėje ir logotipą, tada nuleiskite kaklaraiščio centrą. Būkite atsargūs, nes pabaigoje jį reikia siūti atgal.

3 žingsnis: Nubrėžkite linijas, kur turėtų būti dedami šviesos diodai

Kad šviesos diodai būtų rodomi kaklaraiščio baltų juostų skyriuose, lengviau rasti kiekvienos baltos juostos sekcijos vidurio liniją kaklaraiščio šerdies gale ir tada susieti ją su kaklaraiščio šerdies priekiu. Patikrinkite ir dar kartą patikrinkite, ar centrinė linija yra 1) centre ir 2) lygiagreti su juostele. Tiksliai sureguliuoti šviesos diodų pozicijas bus galima, jei jos bus šiek tiek išjungtos. Tačiau geriausia tai padaryti kuo arčiau dabar, o ne vėliau.

Patikrinkite linijų centravimą, uždėdami šviesos diodus ant linijų ir uždėdami juostelės audinį ant viršaus. Koreguokite ten, kur reikia.

3 žingsnis: pritvirtinkite „NeoPixels“

NeoPikselių prijungimas
NeoPikselių prijungimas
NeoPikselių prijungimas
NeoPikselių prijungimas
NeoPikselių prijungimas
NeoPikselių prijungimas
NeoPikselių prijungimas
NeoPikselių prijungimas

Iš esmės mes gaminame savo LED juostelę. Mes tiesiog montuojame šviesos diodus ant kaklaraiščio šerdies ir tada sujungiame juos vienas su kitu.

1 žingsnis: priklijuokite „NeoPixels“prie kaklaraiščio šerdies

Uždėkite karšto klijų šlakelį ant „NeoPixel“užpakalinės dalies ir padėkite ant centrinių linijų. Sekcijose, kuriose yra 3 „NeoPixels“, vertikaliai sulygiuokite „NeoPixel“centrą ir pirmiausia juos klijuokite. Tai palengvins kairiojo ir dešiniojo „NeoPixel“išdėstymą centro atžvilgiu, ypač atsižvelgiant į tai, kad kaklaraiščio plotis didėja iš viršaus į apačią.

Būtinai nukreipkite visus „NeoPixels“ta pačia kryptimi, eidami iš apačios į kairę į viršutinę dešinę. Jei tai neteisinga, juostelė neveiks.

Pastaba apie karštus klijus. Užteks užbaigti projektą. Kalbant apie tai, ar tai tęsis daugelį metų, reikia tik pamatyti.

3 žingsnis: lituokite „NeoPixels“tarpusavyje

Kadangi nusprendžiau „NeoPixels“lituoti kartu, o ne naudoti laidų sriegį, „NeoPixel“pagalvėlių skylė šiek tiek veikia prieš mus. Tiesiog suraskite gerą vietą ant trinkelės, kur prilituosite laidą. Nebandykite užpildyti skylės lydmetaliu, bet jei taip atsitiks, viskas bus gerai.

Magnetinė viela turi ploną izoliacijos sluoksnį aplink vario šerdį. Peiliu nubraukite izoliaciją tik galuose, kur jie bus lituojami. Geriausia nubraukti visą vielos perimetrą.

4 veiksmas: patikrinkite ryšį

Naudokite multimetrą, kad patikrintumėte ryšį:

  1. Teigiami ryšiai. Turi būti ryšys nuo galo iki uodegos. Įsitikinkite, kad bandymo jungtys yra ant trinkelių, o ne prie laido.
  2. Įžeminimo jungtys. Atlikite tą patį bandymą, bet su įžeminimo pagalvėlėmis.
  3. Kiekviena duomenų eilutė. Nuo vieno duomenų bloko prie kito patikrinkite, ar yra ryšys.

4 žingsnis: „Circuit Playground Express“prijungimas

„Circuit Playground Express“prijungimas
„Circuit Playground Express“prijungimas

„Circuit Playground Express“(CPX) yra sistemos esmė. „Adafruit“turi daugybę šio valdiklio vadovėlių. Vėliau šioje pamokoje pabrėšiu keletą MCU funkcijų.

1 žingsnis: lituokite CPX prie apatinio NeoPixel antgalio

Iškirpkite tinkamo ilgio magneto laidą, skirtą galiai, įžeminimui ir duomenims. Stumkite juos per kaklaraiščio šerdies audinį taip, kad jie liestų „NeoPixel“maitinimo, žemės ir duomenų bloknotus. Lituokite juos, įsitikindami, kad esami trinkelių laidai vis dar gerai jungiasi.

Tada apverskite kaklaraiščio šerdį ir padėkite CPX norimoje padėtyje. Maitinimo laidą perkelkite į VOUT bloką, įžeminimo laidą į bet kurį įžeminimo bloką, o duomenų laidą į bet kurį įvesties/išvesties bloką, išskyrus A0. Mano parašytas kodas naudoja A3.

Išbandykite ryšį.

2 žingsnis: suriškite CPX

Naudodami siūlą ir adatą, pasirinkite bet kokias keturias vienodo atstumo pagalvėles ir siūkite jas ant kaklaraiščio šerdies.

5 žingsnis: įjunkite CPX

Maitinimas CPX
Maitinimas CPX
Maitinimas CPX
Maitinimas CPX
Maitinimas CPX
Maitinimas CPX

CPX neturi įjungimo/išjungimo jungiklio. Tai reiškia, kad akimirksniu prijungus akumuliatorių, kaklaraištis įsijungs. Tai taip pat reiškia, kad vienintelis būdas jį išjungti yra atjungti akumuliatorių, o tai yra didelis vargas. Paprastas sprendimas yra uždėti/išjungti akumuliatoriaus jungiklį.

1 žingsnis: Nupjaukite 3 jungiklio kaištį

Vieno iš ne centre esančių kaiščių nereikia. Nupjaukite jį kartu su jungiklio korpusu.

2 žingsnis: lituokite jungiklį į akumuliatoriaus laidą

Nupjaukite akumuliatoriaus įžeminimo laidą kažkur per vidurį. Pastumkite termiškai susitraukiančio vamzdžio gabalėlį ant kiekvieno įžeminimo laido. Lituokite vieną įžeminimo laidą prie vieno kaiščio, o kitą įžeminimo laidą prie kito kaiščio. Įsitikinkite, kad jie neliečia vienas kito arba lydmetalis neliečia metalinio korpuso.

Naudodami multimetrą patikrinkite, ar jie nėra prijungti. Stumkite vamzdelius per lituotas jungtis ir sutraukite. Prie bet kurios dalies, kuri gali sugesti dėl lenkimo nuovargio, pridėkite šiek tiek elektros juostos.

3 veiksmas: patikrinkite, ar baterija veikia

Šiuo metu akumuliatorių galima prijungti prie CPX. Jei viskas klostėsi gerai, jungiklis turėtų galėti įjungti ir išjungti CPX.

4 žingsnis: įdėkite bateriją

Uždėkite šiek tiek lipnios kabliuko ir kilpos juostos ant galinės akumuliatoriaus pusės ir užrišimo šerdies. Tai išlaikys vietą, jei kaklaraištis nebus per daug tvarkomas.

6 veiksmas: „Circuit Playground Express“nustatymas

Aš nesileisiu į detales, kaip nustatyti CPX. „Adafruit“tai daro, o vėliau ir kai kurie. Pateiksiu keletą patarimų problemoms, su kuriomis susidūriau gana dažnai.

CPX užšąla

Tikriausiai dėl veikimo laiko atminties problemų CPX užšaldytų gana dažnai. Greitas sprendimas yra ištrinti ir vėl mirksėti. Šioje instrukcijoje ieškokite „Old Way“. Iš esmės tai yra keli mygtukų paspaudimai, vilkimas ir nuleidimas, kad ištrintumėte, tada vilkite ir numeskite, kad vėl mirksėtumėte.

Įspėjimas: tai ištrina viską. Visas CPX kodas bus prarastas.

Išsaugojus CPX pakeitimus gali kilti problemų

Atradau, kad kartais išsaugojus failą CPX, „python“vykdymo laikas būtų prastos būklės. Pataisymas buvo iš naujo paleisti „python“vykdymo laiką paspaudus atstatymo mygtuką. Paspauskite jį tik vieną kartą. Paspaudus du kartus, bus paleistas pakartotinis blykstės procesas.

Tiesiogiai taupyti CPX yra rizikinga

Dėl galimybės, kad CPX turi būti atnaujintas, rizikuojama prarasti visą jų kodą. Du kartus praradęs kodą, sugalvojau paprastą darbo eigą. Aš išsaugočiau savo kodą vietiniame standžiajame diske. Kai jis buvo paruoštas išbandyti naudojant CPX, aš tiesiog jį nukopijavau paleisdamas paprastą diegimo scenarijų.

7 žingsnis: „Circuit Playground Express“kodavimas

Šiuo metu CPX ir „NeoPixels“yra beveik baigti. Jokių kitų mechaninių ar elektrinių darbų su jais atlikti nereikia. Visa kita yra programinė įranga.

Kodą rasite mano „github“paskyroje. Pagrindinis „Python“kodas turėtų veikti be jokių pakeitimų visose operacinėse sistemose. Neįdiekite išorinių „Adafruit CircuitPython“bibliotekų. Jie nenaudojami.

Čia yra aukšto lygio santrauka apie tai, kas vyksta kode.

Kokia įvestis ką daro?

  • Mygtukas A: Perjungia LED animacijas
  • Mygtukas B: Peržiūrėkite dainas
  • Talpinis jutiklinis kilimėlis A1: keičia LED animacijos spalvas
  • Talpus jutiklinis kilimėlis A6: keičia LED animacijos greitį

Yra 3 animacijos, bet veikia tik 2

kodas.py

importuoti pikselius

#import vumeter importuoti laiptus importuoti žvilgesį … led_animations = [pixelsoff. PixelsOff (pikselių), # vumeter. VuMeter (pikselių, 100, 400) laiptų. Laiptai (pikselių), tviskėjimas. Twinkle (taškų)]

Aš perkėliau „Ampli-Tie“VU skaitiklio stiliaus kodą. Jis naudoja CPX mikrofoną garsui priimti ir apšviesti „NeoPixels“pagal garso amplitudę. Tačiau norėjau daugiau animacijos. Dėl veikimo laiko atminties apribojimų turėjau pasirinkti, kokios animacijos norėčiau. Taigi pagal numatytuosius nustatymus kiti du, „Laiptai“ir „Twinkle“, veiks nekeisdami kodo. Norint paleisti TPB skaitiklio animaciją, reikia komentuoti vieną ar abi animacijas ir nekomentuoti TPB skaitiklio.

Muzikos tvarkyklė ir neprisijungęs kodavimas

frosty_the_snowman.py

importuoti music_notes kaip mn

# Šaltas sniego senis # Walterio E. Rollinso daina = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…

convert_to_binary.py

dainos = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] dainai dainose: data = song [0] file = song [1] with open (file, "wb") kaip bin_file: duomenims įvesti: print ("writing:" + str (entry)) note = entry [0] dur = entry [1] bin_file.write (structure.pack ("<HH", note, dur))

Norėjau šventinės muzikos. CPX palaiko ir WAV, ir tonus. WAV failai pasirodė per dideli failo dydžio ir vykdymo laiko atminties atžvilgiu. Naudojant „python“duomenų struktūras tonams laikyti ir jų trukmei taip pat paaiškėjo, kad naudojama per daug vykdymo laiko atminties. Taigi pakeičiau „Holi-Tie“kodą, kad perskaityčiau suspaustą dvejetainį failą, kuriame buvo tik būtini dainos duomenys suspaustu dvejetainiu formatu. Aš parašiau scenarijų, kuris skaito dainą, laikomą python duomenų struktūroje, ir išrašo ją dvejetainiu formatu. Jei daina yra užkoduota kaip dvejetainiai duomenys faile, daina tampa maža ir dinamiška. Kai daina paleidžiama, atmintis atlaisvinama.

Įdomu pridėti daugiau dainų. Norėdami gauti daugiau informacijos, skaitykite dainos README.md.

Mygtukas A animuoja „NeoPixels“, B leidžia muziką, bet ne vienu metu

kodas.py

def button_a_pressed ():

if music.is_playing (): # Sustabdykite muziką, jei grojate muziką. stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Vykdyti animaciją be operacijų next_led_animation (0) if music.is_playing (): # Toggle muzika įjungti arba išjungti muziką. stop () else: music.play ()

Net ir naudojant efektyvesnę atmintį muzikos valdymo sistemą, aš negalėjau išlaikyti 2 veikimo laiko atminties animacijų, kai grojau 1 iš jų, ir taip pat paleisti dainą vienu metu. Kadangi aš jau pasirinkau, kad VU matuoklio veikimo laiko atmintyje apskritai nebūtų, nenorėjau sumažinti animacijų skaičiaus iki 1. Taigi parašiau kodą, kad animacija būtų paleista arba muzika būtų grojama, bet ne tiek. Kitas variantas buvo sumažinti „NeoPixels“skaičių, tačiau tai prarastų animacijos vėsumą.

„Python Code Funkiness“

Nors esu programinės įrangos kūrėjas veteranas, niekada nebuvau rašęs „Python“. Po to, kai supratau ir pažvelgiau į tai, kaip pritaikiau gerą kodavimo praktiką, pvz., Kapsuliavimą ir moduliavimą, greitai sužinojau, kad naudoju per daug veikimo laiko atminties. Taigi yra nemažai ne sauso kodo. Aš taip pat turėjau naudoti kai kuriuos „MicroPython“metodus, tokius kaip const (), kad dar labiau sumažintų veikimo laiko atminties problemas.

Sudaryti moduliai

sudaryti

#!/bin/bash

kompiliatorius = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd dainos python3./convert_to_binary.py cd.. f f *.py; daryk, jei

Projekto pradžioje laikiausi „Adafruit“patarimų ir visas „Adafruit CircuitPython“bibliotekas išsaugojau blykstėje. Tačiau tai paliko mažai vietos mano projektui. Kad galėčiau gauti savo kodą į CPX, pradėjau rinkti modulius ir įdėti juos į MCU. Pasirodo, kad „Holi-Tie“nereikia jokių išorinių bibliotekų. Šiam projektui pakako esamų UF2 bibliotekų. *. Mpy failų paleidimas yra šiek tiek efektyvesnis, todėl išlaikiau kompiliuotų modulių diegimo procesą.

Kaip matyti iš aukščiau esančio kompiliavimo scenarijaus, aš dirbu su „Windows“kompiuteriu, bet naudoju „Unix“paslaugas, tokias kaip „bash“ir „python3“. Tam naudoju Cygwin. Šį scenarijų galima lengvai išversti į DOS paketą ir „Windows“vietinį „Python3“diegimą.

8 žingsnis: kaklaraiščio užsegimas

Kaklaraiščio sagtis
Kaklaraiščio sagtis
Kaklaraiščio sagtis
Kaklaraiščio sagtis

Paskutinis žingsnis - vėl uždėti kaklaraiščio šerdį į vietą, surinkti kaklaraištį ir vėl susiūti. Įsitikinkite, kad turite galimybę pasiekti CPX. Jums to prireiks keičiant bateriją arba keičiant kodą.

Rekomenduojamas: