Sisukord:
- Samm: osad ja tööriistad
- 2. samm: lipsu ettevalmistamine
- Samm: NeoPikslite kinnitamine
- Samm 4: Circuit Playground Expressi kinnitamine
- Samm: CPX -i toide
- 6. samm: Circuit Playground Expressi seadistamine
- Samm 7: Circuit Playground Expressi kodeerimine
- 8. samm: lipsu nööpimine
Video: Holi-tie: 8 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Monkey PatchingFollow autori lisateavet:
Teave: lihtsalt mees, kes soovib teha lahedaid asju Lisateave gwfongi kohta »
See on pidulik lips Holi-Tie, mis on mõeldud pühade ajal kandmiseks. Becky Sterni Ampli-Tie põhjal, mis kasutab Flora tahvlit, kasutab Holi-Tie NeoPixeli animatsioonide ja muusika juhtimiseks Circuit Python Express (CPX) mikrokontrollerit. Nupp vahetab kahe erineva NeoPixeli animatsiooni vahel. Mahutavad puutepadjad muudavad NeoPixeli värve ja animatsiooni kiirust. Teine nupp vahetab LED -animatsiooni ja muusika vahel. Rongisisest mikrofoni kasutatakse sõidukiüksuse mõõturi animatsiooni ümbritseva müra mõõtmiseks. Ja CPX kõlar väljastab puhkuse kiipide lugusid.
Kõik on kodeeritud Pythoni programmeerimiskeele abil, mis töötab CircuitPython süsteemi peal. Selle toiteallikaks on 3,7 V, 500 mAh LiPo aku, mis on muudetud sisse- ja väljalülitamiseks.
Holi-Tie on näidatud kahes videoklipis:
- Valmis Holi-Tie
- Holi-Tie sees
Samm: osad ja tööriistad
Osad
- Circuit Playground Express
- 15x Flora neopikslid
- Magnettraat
- Kleepuv konks ja silmuslint
- 500 mAh lipoaku koos JST -pistikuga
- Candy Cane lips
- Miniliuglüliti, SPDT
- Kuumakahandavad torud
Osade hankimisel oleks mõistlik juurde osta. Mul oli kokku 20 NeoPikslit, millest üks oli algusest peale katki ja teine rikkus. Candy Cane lips oli nii odav, et ostsin teise igaks juhuks, kui esimese ära rikkusin.
Tööriistad
- Kuum liimipüstol
- Jootmisjaam
- Traadilõikurid
- Väike nuga
- Multimeeter
- Arvuti
- Kergem või soojuspüstol
- Niit ja nõel
2. samm: lipsu ettevalmistamine
Peamine eesmärk on pääseda sisse sisemise sideme südamikule ja piiritleda jooned, mis näitavad, kuhu LED -id tuleks paigutada.
Samm: siduge lips oma kohale
Kui elektroonika on paigas, on lipsu raske siduda. Nii et siduge lips nii, et see näeks hea välja ja sõlm oleks üsna kindel ega läheks lahti. Seejärel tõmmake lipsu väikest otsa ettevaatlikult, et avada auk, et lips üle pea saada. See on positsioon, kus lipsuga tööd tehakse.
Lipsusõlmi on igasuguseid. Ma tean ainult seda, mida õppisin lapsena, Windsorit. Pole tähtis, millist sõlme kasutatakse.
2. samm: avage lipsu tagakülg
Rebige lipsu silmuse ja logo ühel küljel õmblused lahti ja seejärel lipsu keskelt alla. Olge ettevaatlik, sest see tuleb lõpus tagasi õmmelda.
Samm: joonistage jooned, kuhu LED -id tuleks paigutada
Selleks, et LED -id ilmuksid lipsu valgete ribade sektsioonidesse, on lihtsam leida iga valge triibulõigu keskjoon lipsusüdamiku tagaküljelt ja seejärel kaardistada see lipsusüdamiku esiküljele. Kontrollige ja kontrollige uuesti, kas keskjoon on 1) keskel ja 2) triibuga paralleelne. LED -asendite peenhäälestamine on võimalik, kui need on pisut välja lülitatud. Kuid kõige parem on saada see võimalikult lähedale kohe, mitte hiljem.
Testige joonte tsentreeritust, asetades joontele valgusdioodid ja asetades triibukanga peale. Vajadusel reguleerige.
Samm: NeoPikslite kinnitamine
Põhimõtteliselt valmistame oma LED -riba. Me lihtsalt paigaldame valgusdioodid sideme südamikule ja ühendame need seejärel üksteisega.
Samm: kleepige NeoPikslid lipsu südamikule
Asetage kuuma liimi tups NeoPixeli tagaküljele ja asetage see keskjoontele. Kolme NeoPiksliga lõikude puhul joondage vertikaalselt keskne NeoPixel ja liimige need kõigepealt alla. See hõlbustab vasaku ja parema NeoPixeli paigutamist keskpunkti suhtes, eriti arvestades, et lipsu laius suureneb ülevalt alla.
Suunake kindlasti kõik NeoPikslid samas suunas, liikudes alt vasakult paremale. Kui see pole õige, siis riba ei tööta.
Märkus kuuma liimi kohta. Piisab projekti lõpuleviimisest. Kas see kestab veel aastaid, peab lihtsalt nägema.
Samm: jootke NeoPikslid üksteise külge
Kuna otsustasin juhtiva niidi asemel NeoPixeleid kokku joota, töötab NeoPixeli padjandite auk natuke meie vastu. Leidke lihtsalt padjalt hea koht traadi jootmiseks. Ärge proovige auku joodisega täita, kuid kui see juhtub, on kõik korras.
Magnettraadil on vasksüdamiku ümber õhuke isolatsioonikiht. Kraapige noaga isolatsioon maha just nende otstest, kus need joodetakse. Parim on kraapida kogu traadi ümbermõõt.
4. samm: kontrollige ühenduvust
Kasutage multimeetrit, et testida järgmist:
- Positiivsed ühendused. Ühendus peaks olema otsast sabani. Veenduge, et testühendused oleksid padjadel, mitte juhtmel.
- Maaühendused. Tehke sama katse, kuid maapindadega.
- Iga andmerida. Kontrollige ühelt andmeplokilt teisele, kas ühendus on olemas.
Samm 4: Circuit Playground Expressi kinnitamine
Circuit Playground Express (CPX) on süsteemi süda. Adafruitil on selle kontrolleri jaoks palju õpetusi. Hiljem selles juhendis toon välja mõned MCU funktsioonid.
1. samm: jootke CPX alumise otsaga NeoPixel
Lõika magnetjuhtme pikkused toite, maanduse ja andmete jaoks sobivaks. Lükake need läbi lipsu südamiku kanga nii, et need puudutaksid NeoPixeli toite-, maandus- ja andmepadjakesi. Jootke need maha, veendudes, et patjade olemasolevad juhtmed loovad endiselt hea ühenduse.
Seejärel keerake lipsusüdamik ümber ja asetage CPX soovitud asendisse. Viige toitejuhe VOUT -padjale, maandusjuhe mistahes maandusplaadile ja andmesidejuhtmele mis tahes muu sisend-/väljundplokk peale A0. Minu kirjutatud kood kasutab A3.
Testige ühenduvust.
2. samm: siduge CPX kinni
Valige niidi ja nõela abil suvalised neli võrdse kaugusega padja ja õmblege need lipsu südamikule.
Samm: CPX -i toide
CPX -l pole sisse/välja lülitit. See tähendab, et aku sisselülitamisel lülitub lips sisse. See tähendab ka seda, et ainus viis selle väljalülitamiseks on aku lahti ühendamine, mis on suur probleem. Lihtne lahendus on aku sisse/välja lülitamine.
Samm: katkestage lüliti kolmas tihvt
Ühte tsentrivälist tihvti pole vaja. Katkestage see lüliti korpusega samal tasemel.
2. samm: jootke lüliti akujuhtme reas
Katkestage aku maandusjuhe kuskil keskel. Libistage termokahaneva toru tükk igale maandusjuhtmele. Jootke üks maandusjuhe ühe tihvti külge ja teine maandusjuhe teise tihvti külge. Veenduge, et need ei puudutaks üksteist või jootet metallkeha.
Veenduge, et need pole multimeetriga ühendatud. Lükake toru üle joodetud ühenduste ja kahandage seda. Lisage natuke elektrilinti igale osale, mis võib painutusväsimuse tõttu ebaõnnestuda.
Samm: kontrollige, kas aku töötab
Sel hetkel saab aku CPX -i ühendada. Kui kõik läks hästi, peaks lüliti saama CPX -i sisse ja välja lülitada.
Samm: paigaldage aku
Asetage natuke kleepuvat konksu ja silmuslinti aku tagaküljele ja sideme südamikule. See hoiab seda paigal, kui lipsu ei käsitata liiga palju.
6. samm: Circuit Playground Expressi seadistamine
Ma ei hakka CPX -i seadistamise üksikasjadesse laskuma. Adafruit teeb seda ja siis mõned. Annan mõned näpunäited probleemide kohta, millega ma üsna sageli kokku puutusin.
CPX külmub
Tõenäoliselt jooksuaja mälu probleemide tõttu külmub CPX üsna sageli. Kiire lahendus on kustutamine ja uuesti vilkumine. Otsige nendest juhistest sõna „Vana tee”. Põhimõtteliselt on see paar nupuvajutust, kustutamiseks lohistamine ja seejärel uuesti vilkumiseks lohistamine.
Hoiatus: see kustutab kõik. Kogu CPX -i kood läheb kaduma.
CPX -i muudatuste salvestamine võib põhjustada probleeme
Avastasin, et mõnikord on pärast faili salvestamist CPX -i pythoni käitusaeg halvas seisus. Paranduseks oli taaskäivitada püütoni käitusaeg, vajutades lähtestamisnuppu. Vajutage seda ainult üks kord. Kui vajutate seda kaks korda, käivitub uuesti välgutamise protsess.
Otse CPX -i salvestamine on riskantne
Võimaluse tõttu, et CPX tuleb uuesti vilkuda, on oht kaotada kogu nende kood. Olles oma koodi kaks korda kaotanud, tulin välja lihtsa töövooga. Salvestaksin oma koodi kohalikule kõvakettale. Kui see oli CPX -is testimiseks valmis, kopeeriksin selle lihtsalt, käivitades lihtsa juurutamisskripti.
Samm 7: Circuit Playground Expressi kodeerimine
Siinkohal on CPX ja NeoPixels üsna valmis. Nendega ei pea tegema muid mehaanilisi ega elektrilisi töid. Ülejäänud on kõik tarkvara.
Koodi leiate minu githubi kontolt. Põhiline python -kood peaks töötama kõigi operatsioonisüsteemide jaoks ilma muudatusteta. Ärge installige väliseid Adafruit CircuitPythoni teeke. Neid ei kasutata.
Siin on kõrgel tasemel kokkuvõte koodis toimuvast.
Milline sisend teeb mida?
- Nupp A: liigub läbi LED -animatsioonide
- Nupp B: liigub lugude vahel
- Mahtuvuslik puuteplaat A1: muudab LED -animatsioonide värve
- Mahtuvuslik puuteplaat A6: muudab LED -animatsioonide kiirust
Olemas on 3 animatsiooni, kuid ainult 2 toimivad
code.py
pikslivälja importimine
#import vumeter import trepid import twinkle… led_animations = [pixelsoff. PixelsOff (pikslid), # vumeter. VuMeter (pikslid, 100, 400) trepid. Trepid (pikslit), vilkumine. Twinkle (pikslid)]
Porteerisin Ampli-Tie VU arvesti stiilikoodi. See kasutab CPX -mikrofoni heli vastuvõtmiseks ja NeoPixelite valgustamiseks vastavalt heli amplituudile. Siiski tahtsin rohkem animatsioone. Käitusaja mälu piirangute tõttu pidin valima, milliseid animatsioone ma soovin. Nii et vaikimisi töötavad ülejäänud kaks, Trepid ja Twinkle, ilma koodi muutmata. Sõidukiüksuse mõõturi animatsiooni käivitamiseks tuleb üks või mõlemad animatsioonid kommenteerida ja sõidukiüksuse mõõtur kommenteerimata jätta.
Muusikahaldur ja võrguühenduseta kodeerimine
frosty_the_snowman.py
importige muusikalisi märkmeid kui mn
# Frosty the Snowman # Walter E. Rollinsi laul = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…
convert_to_binary.py
laulud = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] laulu jaoks lauludes: data = song [0] file = song [1] with open (file, "wb") bin_failina: andmete sisestamiseks: print ("kirjutamine:" + str (kirje)) märkus = kirje [0] dur = kirje [1] bin_file.write (strukt.pack ("<HH", märkus, dur))
Tahtsin pühade muusikat. CPX toetab nii WAV -i kui ka toone. WAV -failid osutusid faili suuruse ja käitusmälu poolest liiga suureks. Python andmestruktuuride kasutamine toonide hoidmiseks ja nende kestus osutus samuti liiga palju käitusmälu kasutavaks. Nii muutsin Holi-Tie koodi, et lugeda kokkusurutud binaarfaili, mis sisaldas ainult vajalikke lauluandmeid kokkusurutud binaarses vormingus. Kirjutasin skripti, mis loeb pitoni andmestruktuuris hoitava laulu ja kirjutab selle binaarsesse vormingusse. Kui lugu on failis kodeeritud kahendandmetena, muutub lugu nii väikeseks kui ka dünaamiliseks. Kui lugu on mängitud, vabastatakse mälu.
Laulude lisamine on tühine. Üksikasjalikuma teabe saamiseks lugege lugudes README.md.
Nupp A animeerib NeoPiksleid, B esitab muusikat, kuid mitte samaaegselt
code.py
def button_a_pressed ():
if music.is_playing (): # Peata muusika muusika esitamisel. stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Käivita animeeritud animatsioon next_led_animation (0) if music.is_playing (): # Toggle muusika muusika sisse või välja. stop () else: music.play ()
Isegi mälusäästlikuma muusikahaldussüsteemi puhul ei suutnud ma käitusmälus hoida 2 animatsiooni, mängides neist üht ja mängida ka laulu korraga. Kuna ma juba valisin, et VU -mõõturit ei kasutataks üldse tööaja mälus, ei tahtnud ma vähendada animatsioonide arvu vaid 1 -ni. Nii et kirjutasin koodi nii, et animatsioon mängib või muusika mängib, kuid mitte mõlemad. Teine võimalus oli vähendada NeoPixelite arvu, kuid see kaotaks osa animatsiooni jahedusest.
Pythoni koodi funktsionaalsus
Kuigi ma olen veteran -tarkvaraarendaja, polnud ma kunagi Pythoni kirjutanud. Kui olin asja selgeks saanud ja häid kodeerimistavasid, nagu kapseldamine ja modulaarne, rakendama hakkasin, avastasin kiiresti, et kasutan liiga palju käitusmälu. Seega on üsna palju mitte-KUIVA koodi. Ma pidin kasutama ka mõnda MicroPythoni tehnikat, näiteks const (), et veelgi vähendada tööaja mälu probleeme.
Koostatud moodulid
koostama
#!/bin/bash
kompilaator = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd laulud python3./convert_to_binary.py cd.. f jaoks *.py; tee, kui
Projekti alguses järgisin Adafruit'i nõuandeid ja salvestasin kõik Adafruit CircuitPythoni teegid välklampi. See jättis aga minu projekti jaoks vähe ruumi. Oma koodi CPX -ile jõudmiseks hakkasin mooduleid koostama ja MCU -sse paigutama. Selgub, et Holi-Tie ei vaja ühtegi välist raamatukogu. Selle projekti jaoks piisas UF2 olemasolevatest raamatukogudest. *. Mpy failide käitamine on natuke tõhusam, nii et jätkasin kompileeritud moodulite juurutamise protsessi.
Nagu ülaltoodud kompileerimisskriptist ilmneb, töötan Windowsi masinaga, kuid kasutan selliseid Unixi utiliite nagu bash ja python3. Selle saavutamiseks kasutan Cygwini. Seda skripti saab hõlpsasti tõlkida DOS -i partii ja Windowsi native Python3 juurutamiseks.
8. samm: lipsu nööpimine
Viimane samm on lipsusüdamiku tagasi panemine, lipsu kokkupanek ja õmblemine. Kindlasti saate muuta CPX -i juurdepääsetavaks. Seda vajate aku vahetamisel või koodi muutmisel.
Soovitan:
DIY 37 LED Arduino ruleti mäng: 3 sammu (piltidega)
DIY 37 Leds Arduino rulett Mäng: Rulett on kasiinomäng, mis on nime saanud prantsuse sõna järgi, mis tähendab väikest ratast
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Polt - DIY juhtmeta laadimise öökell (6 sammu): 6 sammu (piltidega)
Bolt - DIY juhtmeta laadimise öökell (6 sammu): Induktiivsed laadimised (tuntud ka kui juhtmeta laadimine või juhtmeta laadimine) on traadita jõuülekande tüüp. See kasutab kaasaskantavatele seadmetele elektrit pakkumiseks elektromagnetilist induktsiooni. Kõige tavalisem rakendus on Qi traadita laadimisst
Arvuti demonteerimine lihtsate sammude ja piltidega: 13 sammu (piltidega)
Arvuti demonteerimine lihtsate sammude ja piltidega: see on juhis arvuti demonteerimiseks. Enamik põhikomponente on modulaarsed ja kergesti eemaldatavad. Siiski on oluline, et oleksite selles osas organiseeritud. See aitab vältida osade kaotamist ja ka kokkupanekut