Sisällysluettelo:

Holi-Tie: 8 vaihetta (kuvilla)
Holi-Tie: 8 vaihetta (kuvilla)

Video: Holi-Tie: 8 vaihetta (kuvilla)

Video: Holi-Tie: 8 vaihetta (kuvilla)
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Marraskuu
Anonim
Image
Image

Seuraa lisää tekijältä:

Valaiseva koiraramppi
Valaiseva koiraramppi
Terässydän ja sulatettu lasiveistos
Terässydän ja sulatettu lasiveistos
Terässydän ja sulatettu lasiveistos
Terässydän ja sulatettu lasiveistos
Kuparilanka ja sulatettu lasiperhonen
Kuparilanka ja sulatettu lasiperhonen
Kuparilanka ja sulatettu lasiperhonen
Kuparilanka ja sulatettu lasiperhonen

Tietoja: Vain kaveri, joka haluaa tehdä hienoja asioita Lisää gwfongista »

Tämä on Holi-Tie, juhlaside, joka on suunniteltu käytettäväksi lomien aikana. Becky Sternin Flora-levyä käyttävän Ampli-Tie-pohjaisen Holi-Tie käyttää Circuit Python Express (CPX) -mikro-ohjainta NeoPixel-animaatioiden ja musiikin ohjaamiseen. Painike vaihtaa kahden eri NeoPixel -animaation välillä. Kapasitiiviset kosketuslevyt muuttavat NeoPixel -värejä ja animaationopeuksia. Toinen painike vaihtaa LED -animaatioiden ja musiikin välillä. Sisäänrakennettua mikrofonia käytetään mittaamaan ympäristön kohinaa ajoneuvoyksikön mittarin animaatiossa. Ja CPX -kaiutin tuottaa loma -sävelmiä.

Kaikki koodataan käyttäen CircuitPython -järjestelmän päällä olevaa Python -ohjelmointikieltä. Se saa virtansa 3,7 V: n 500 mAh: n LiPo -akusta, joka on muutettu siten, että siinä on virtakytkin.

Holi-Tie näkyy kahdella videoleikkeellä:

  • Holi-Tie valmis
  • Holi-Tie sisällä

Vaihe 1: Osat ja työkalut

Osat

  • Circuit Playground Express
  • 15x Flora -neopikselit
  • Magneettilanka
  • Liima koukku ja silmukka teippi
  • 500 mAh: n lipoakku JST -liittimellä
  • Candy Cane solmio
  • Mini liukukytkin, SPDT
  • Lämpökutistuva letku

Osia hankittaessa olisi järkevää ostaa lisäosia. Minulla oli yhteensä 20 NeoPixeliä, joista yksi oli rikki alusta alkaen ja toinen pilalla. Candy Cane -solmio oli niin halpa, että ostin toisen, jos pilaan ensimmäisen.

Työkalut

  • Kuuma liimapistooli
  • Juotosasema
  • Lankaleikkurit
  • Pieni veitsi
  • Yleismittari
  • Tietokone
  • Sytytin tai lämpöpistooli
  • Lanka ja neula

Vaihe 2: Tie valmistelu

Tie valmistelu
Tie valmistelu
Tie valmistelu
Tie valmistelu
Tie valmistelu
Tie valmistelu

Päätavoitteena on päästä käsiksi sisäiseen solmun ytimeen ja rajata linjat, jotka osoittavat, mihin LEDit tulisi sijoittaa.

Vaihe 1: Sido solmio paikalleen

Solmion sitominen on vaikeaa, kun elektroniikka on paikallaan. Joten sitoa solmio niin, että se näyttää hyvältä ja solmu on melko luja eikä aukea. Vedä sitten solmion pientä päätä varovasti avataksesi reiän päästäksesi solmion pään päälle. Tässä asennossa solmua käsitellään.

Erilaisia solmupisteitä on kaikenlaisia. Tiedän vain sen, jonka opin lapsena, Windsorin. Ei pitäisi olla väliä mitä solmua käytetään.

Vaihe 2: Avaa solmion takaosa

Revi saumat solmion silmukan ja logon toiselta puolelta ja sitten alas solmion keskeltä. Ole varovainen, koska se on ommeltava loppuun.

Vaihe 3: Piirrä viivat, joihin LED -valot tulisi sijoittaa

Jotta LEDit näkyvät solmion valkoisissa raitaosissa, on helpompi löytää jokaisen valkoisen raitaosan keskilinja solmion ytimen takaa ja yhdistää se solmion ytimen etuosaan. Tarkista ja tarkista, että keskilinja on 1) keskellä ja 2) yhdensuuntainen raidan kanssa. LED -sijaintien hienosäätö on mahdollista, jos ne ovat hieman pois päältä. Mutta on parasta saada se mahdollisimman lähelle nyt kuin myöhemmin.

Testaa linjojen keskitys asettamalla LEDit linjoille ja asettamalla raidakangas päälle. Säädä tarvittaessa.

Vaihe 3: NeoPixelien kiinnittäminen

NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen
NeoPixelien kiinnittäminen

Periaatteessa teemme oman LED -nauhan. Asennamme LEDit yksinkertaisesti solmun ytimeen ja liitämme ne sitten toisiinsa.

Vaihe 1: Kiinnitä NeoPixelit solmun ytimeen

Levitä kuumaa liimaa NeoPixelin takaosaan ja aseta se keskilinjoille. Jos kohdat sisältävät kolme NeoPixeliä, kohdista NeoPixelin keskikohta pystysuoraan ja liimaa ne ensin. Tämä helpottaa vasemman ja oikean NeoPixelin sijoittamista suhteessa keskikohtaan erityisesti ottaen huomioon, että solmion leveys kasvaa ylhäältä alas.

Muista suunnata kaikki NeoPixelit samaan suuntaan, siirtymällä alhaalta vasemmalle oikealle. Jos tämä ei ole oikein, nauha ei toimi.

Huomautus kuumasta liimasta. Riittää, että hanke saadaan päätökseen. Mitä tulee kestämään tulevina vuosina, on vain nähtävä.

Vaihe 3: Juottaa NeoPikselit toisiinsa

Koska päätin juottaa NeoPixelit yhteen johtavan langan käyttämisen sijaan, NeoPixel -tyynyjen reikä toimii hieman meitä vastaan. Löydä vain hyvä paikka tyynystä juottaaksesi lanka. Älä yritä täyttää reikää juotoksella, mutta jos se tapahtuu, se on kunnossa.

Magneettilangassa on ohut eristekerros kuparisydämen ympärillä. Raaputa eriste veitsellä vain niiden päistä, joissa ne juotetaan. On parasta raaputtaa langan koko kehä.

Vaihe 4: Testaa yhteys

Testaa seuraavien yhteyksien yleismittari:

  1. Positiiviset yhteydet. Yhteyden tulee olla kärjestä häneen. Varmista, että testiliitännät ovat tyynyissä eikä johdossa.
  2. Maadoitusliitännät. Suorita sama testi, mutta maadoituslevyillä.
  3. Jokainen tietorivi. Tarkista tietovälineestä toiseen, että yhteys on olemassa.

Vaihe 4: Circuit Playground Expressin kiinnittäminen

Circuit Playground Expressin kiinnittäminen
Circuit Playground Expressin kiinnittäminen

Circuit Playground Express (CPX) on järjestelmän sydän. Adafruit tarjoaa lukuisia opetusohjelmia tälle ohjaimelle. Myöhemmin tässä ohjeessa korostan muutamia MCU -ominaisuuksia.

Vaihe 1: Juotos CPX alempaan kärkeen NeoPixel

Katkaise magneettikaapelin pituudet teholle, maalle ja tiedoille. Työnnä ne solmukankaan läpi niin, että ne koskettavat NeoPixel -virtaa, maata ja datatyynyjä. Juottaa ne alas varmistaen, että tyynyjen nykyiset johdot muodostavat edelleen hyvät yhteydet.

Käännä seuraavaksi solmun ydin ympäri ja aseta CPX haluttuun asentoon. Syötä virtajohto VOUT -tyynyyn, maadoitusjohto mihin tahansa maadoituspatjaan ja datajohto mihin tahansa muuhun I/O -tyynyyn kuin A0. Kirjoittamani koodi käyttää A3.

Testaa yhteys.

Vaihe 2: Kiinnitä CPX

Valitse langalla ja neulalla kaikki neljä yhtä kaukana olevaa tyynyä ja ompele ne solmuun.

Vaihe 5: Käynnistä CPX

Virta CPX: lle
Virta CPX: lle
Virta CPX: lle
Virta CPX: lle
Virta CPX: lle
Virta CPX: lle

CPX: ssä ei ole virtakytkintä. Tämä tarkoittaa, että heti kun akku kytketään pistorasiaan, solmio kytkeytyy päälle. Tämä tarkoittaa myös sitä, että ainoa tapa sammuttaa se on irrottaa akku pistorasiasta, mikä on suuri vaiva. Yksinkertainen ratkaisu on asettaa virrankatkaisija akkuun.

Vaihe 1: Katkaise kytkimen kolmas nasta

Yhtä ei-keskimmäistä nastaa ei tarvita. Katkaise se samalla tasolla kytkimen rungon kanssa.

Vaihe 2: Juotos kytkin akun johtimeen

Katkaise akun maadoitusjohto jossain keskellä. Liu'uta pala kutisteputkea jokaisen maadoitusjohtimen päälle. Juotos yksi maadoitusjohto toiseen nastaan ja toinen maadoitusjohto toiseen nastaan. Varmista, että ne eivät kosketa toisiaan tai juote koskettaa metallirunkoa.

Varmista, että niitä ei ole kytketty yleismittarilla. Liu'uta letku juotettujen liitosten päälle ja kutista se. Lisää hieman sähköteippiä mihin tahansa osaan, joka voi epäonnistua taivutusväsymyksen vuoksi.

Vaihe 3: Varmista, että akku toimii

Tässä vaiheessa akku voidaan kytkeä CPX -laitteeseen. Jos kaikki meni hyvin, kytkimen pitäisi pystyä kytkemään päälle ja pois päältä.

Vaihe 4: Asenna akku

Laita hieman liimakoukkua ja silmukkateippiä akun takapuolelle ja solmun ytimeen. Tämä pitää sen paikallaan, jos solmua ei käsitellä liikaa.

Vaihe 6: Circuit Playground Expressin käyttöönotto

En mene yksityiskohtiin CPX: n asettamisesta. Adafruit tekee sen ja sitten jotkut. Annan muutamia vinkkejä ongelmiin, joihin törmäsin melko usein.

CPX jäätyy

Luultavasti ajonaikaisten muistiongelmien vuoksi CPX jäätyy melko usein. Nopea korjaus on poistaa ja salama uudelleen. Etsi "Old Way" näistä ohjeista. Pohjimmiltaan se on pari painikkeen painallusta, pyyhkäiseminen vetämällä ja pudottamalla ja sitten uudelleen vetämällä ja pudottamalla.

Varoitus: Tämä poistaa kaiken. Kaikki CPX -koodit menetetään.

CPX -muutosten tallentaminen voi aiheuttaa ongelmia

Huomasin, että joskus tiedoston tallentamisen jälkeen CPX: ään python -ajonaika olisi huonossa tilassa. Korjaus käynnisti python -ajon uudelleen käynnistämällä nollauspainikkeen. Paina sitä vain kerran. Painamalla sitä kahdesti käynnistyy uudelleen salama.

Suoraan tallentaminen CPX: ään on riskialtista

Koska on mahdollista, että CPX on vilkuttava uudelleen, on olemassa riski, että kaikki koodit menetetään. Kun olin kadottanut koodini kahdesti, keksin yksinkertaisen työnkulun. Tallentaisin koodini paikalliselle kiintolevylle. Kun se oli valmis testattavaksi CPX: llä, kopioisin sen yksinkertaisesti suorittamalla yksinkertaisen käyttöönottoskriptin.

Vaihe 7: Circuit Playground Expressin koodaus

Tässä vaiheessa CPX ja NeoPixels ovat melko valmiita. Niiden kanssa ei tarvitse tehdä muita mekaanisia tai sähköisiä töitä. Loput ovat kaikki ohjelmistoja.

Koodi löytyy github -tililtäni. Python -ydinkoodin pitäisi toimia ilman muutoksia kaikissa käyttöjärjestelmissä. Älä asenna ulkoisia Adafruit CircuitPython -kirjastoja. Niitä ei käytetä.

Tässä on korkeatasoinen yhteenveto siitä, mitä koodissa tapahtuu.

Mikä tulo tekee mitä?

  • Painike A: Selaa LED -animaatioita
  • Painike B: Selaa kappaleita
  • Kapasitiivinen kosketuslevy A1: muuttaa LED -animaatioiden värejä
  • Kapasitiivinen kosketuslevy A6: Muuttaa LED -animaatioiden nopeutta

3 animaatiota on olemassa, mutta vain 2 on voimassa

code.py

tuoda pikseliä pois

#import vumeter tuoda portaat tuoda twinkle… led_animations = [pixelsoff. PixelsOff (pikseliä), # vumeter. VuMeter (pikseliä, 100, 400) portaat. Portaat (pikseliä), twinkle. Twinkle (pikseliä)]

Portoin Ampli-Tie VU -mittarin tyylikoodin. Se käyttää CPX -mikrofonia äänen ottamiseen ja NeoPixelien sytyttämiseen äänen amplitudin perusteella. Halusin kuitenkin enemmän animaatioita. Ajonaikaisten muistin rajoitusten vuoksi minun piti valita haluamani animaatiot. Joten oletuksena kaksi muuta, Portaat ja Twinkle, toimivat ilman muutoksia koodiin. Jotta ajoneuvoyksikön mittarin animaatio voitaisiin suorittaa, yksi tai molemmat muut animaatiot on kommentoitava ja ajoneuvoyksikön mittari on poistettava.

Music Manager ja offline-koodaus

frosty_the_snowman.py

tuo music_notes nimellä mn

# Frosty the Snowman # Walter E. Rolinsin laulu = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…

convert_to_binary.py

kappaleet = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] kappaleiden kappaleissa: data = song [0] file = song [1] with open (file, "wb") kuten bin_file: tietojen syöttämiseen: print ("writing:" + str (entry)) note = entry [0] dur = entry [1] bin_file.write (structure.pack ("<HH", note, dur))

Halusin juhlamusiikkia. CPX tukee sekä WAV: ta että ääniä. WAV -tiedostot osoittautuivat liian suuriksi tiedostokoon ja ajonaikaisen muistin suhteen. Python -tietorakenteiden käyttäminen äänien pitämiseen ja niiden kesto osoitti myös käyttävänsä liikaa ajonaikaista muistia. Joten muokkasin Holi-Tie-koodia lukemaan pakatun binaaritiedoston, joka sisälsi vain tarvittavat kappaletiedot pakatussa binäärimuodossa. Kirjoitin käsikirjoituksen, joka lukee kappaleen, jota pidetään python -tietorakenteessa, ja kirjoittaa sen binäärimuodossa. Kappaleen koodaaminen binääridatana tiedostoon tekee kappaleesta sekä pienen että dynaamisen. Kun kappale on toistettu, muisti vapautuu.

On vähäpätöistä lisätä lisää kappaleita. Lisätietoja on kappaleiden README.md -kappaleessa.

A -painike animoi NeoPikselit, B toistaa musiikkia, mutta ei samanaikaisesti

code.py

def button_a_pressed ():

if music.is_playing (): # Pysäytä musiikki, jos toistat musiikkia. stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Suorita ei-op-animaatio next_led_animation (0) if music.is_playing (): # Toggle musiikki päälle tai pois musiikista. stop () else: music.play ()

Jopa muistitehokkaammalla musiikinhallintajärjestelmällä en pystynyt pitämään ajonaikaisessa muistissa 2 animaatiota toistettaessa yhtä niistä ja toistamaan myös kappaleen samanaikaisesti. Koska olen jo valinnut, ettei VU -mittaria ole ajonaikaisessa muistissa, en halunnut vähentää animaatioiden määrää vain yhteen. Joten kirjoitin koodin niin, että joko animaatio toistetaan tai musiikki toistetaan, mutta ei molemmat. Toinen vaihtoehto oli vähentää NeoPikselien määrää, mutta se menettäisi osan animaation viileydestä.

Python Code Funkiness

Vaikka olen veteraani ohjelmistokehittäjä, en ollut koskaan kirjoittanut Pythonia. Kun sain sen kiinni ja tuijotin hyvien koodauskäytäntöjen, kuten koteloinnin ja modulaarisuuden, soveltamista, huomasin nopeasti, että käytin liikaa ajonaikaista muistia. Joten on melko vähän ei-DRY-koodia. Jouduin myös käyttämään joitain MicroPython -tekniikoita, kuten const (), vähentämään edelleen ajonaikaisia muistiongelmia.

Kootut moduulit

koota

#!/bin/bash

kääntäjä = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd-kappaleet python3./convert_to_binary.py cd.. f: lle *.py; tee jos

Projektin alkuvaiheessa noudatin Adafruitin neuvoja ja tallensin kaikki Adafruit CircuitPython -kirjastot salamaan. Tämä jätti kuitenkin vähän tilaa projektilleni. Saadakseni koodini CPX: ään aloitin moduulien kokoamisen ja sijoittamisen MCU: hon. On käynyt ilmi, että Holi-Tie ei tarvitse mitään ulkoisia kirjastoja. UF2: n olemassa olevat kirjastot riittivät tähän projektiin. *. Mpy -tiedostojen suorittaminen on hieman tehokkaampaa, joten jatkoin käännettyjen moduulien käyttöönottoa.

Kuten yllä olevasta käännösskriptistä ilmenee, työskentelen Windows -koneella, mutta käytän Unix -apuohjelmia, kuten bash ja python3. Käytän Cygwinia tämän saavuttamiseksi. Tämä komentosarja voidaan helposti kääntää DOS -eräksi ja Windows -natiiviksi Python3 -toteutukseksi.

Vaihe 8: Solmion solmiminen

Solmion solmiminen
Solmion solmiminen
Solmion solmiminen
Solmion solmiminen

Viimeinen vaihe on laittaa solmion ydin takaisin paikalleen, koota solmio ja ompele se takaisin. Varmista, että voit tehdä CPX: n esteettömäksi. Tarvitset sitä, kun vaihdat akkua tai teet koodimuutoksia.

Suositeltava: