Satura rādītājs:
- 1. darbība: detaļas un rīki
- 2. solis: kaklasaites sagatavošana
- 3. solis: NeoPikseļu pievienošana
- 4. darbība. Circuit Playground Express piestiprināšana
- 5. darbība. CPX barošana
- 6. darbība: Circuit Playground Express iestatīšana
- 7. darbība. Circuit Playground Express kodēšana
- 8. solis: kaklasaites piespraušana
Video: Holi-Tie: 8 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
Pērtiķu lāpīšanaSeko vairāk autoram:
Par: Vienkārši puisis, kurš vēlas radīt foršas lietas Vairāk par gwfong »
Šī ir svētku kaklasaite Holi-Tie, kas paredzēta valkāšanai svētku laikā. Holi-Tie, kura pamatā ir Becky Stern Ampli-Tie, kurā tiek izmantota Flora plāksne, izmanto Circuit Python Express (CPX) mikrokontrolleri, lai vadītu NeoPixel animācijas un mūziku. Poga mainās starp divām dažādām NeoPixel animācijām. Kapacitatīvie skārienpaliktņi maina NeoPixel krāsas un animācijas ātrumu. Otra poga pārslēdzas starp LED animācijām un mūziku. Borta mikrofons tiek izmantots apkārtējā trokšņa mērīšanai transportlīdzekļa bloka skaitītāja animācijai. Un CPX skaļrunis izvada svētku mikroshēmas.
Viss tiek kodēts, izmantojot Python programmēšanas valodu, kas darbojas virs CircuitPython sistēmas. To darbina 3.7V, 500mAH LiPo akumulators, kas tika pārveidots, lai tam būtu ieslēgšanas/izslēgšanas slēdzis.
Ir divi videoklipi, kas parāda Holi-Tie:
- Pabeigts Holi-Tie
- Holi-Tie iekšpusē
1. darbība: detaļas un rīki
Daļas
- Circuit Playground Express
- 15x Flora neopikseļi
- Magnēta vads
- Līmējoša āķa un cilpas lente
- 500mAH lipo akumulators ar JST savienotāju
- Candy Cane kaklasaite
- Mini slīdnis, SPDT
- Termiski saraušanās caurule
Iegādājoties detaļas, būtu prātīgi iegādāties papildiespējas. Man kopumā bija 20 NeoPikseļi, no kuriem viens bija salauzts no sākuma un viens - es sabojāju. Kaklasaite Candy Cane bija tik lēta, ka es nopirku otru, tikai gadījumā, ja es sabojāju pirmo.
Rīki
- Karstās līmes pistole
- Lodēšanas stacija
- Stiepļu griezēji
- Mazs nazis
- Multimetrs
- Dators
- Šķiltavas vai siltuma lielgabals
- Diegi un adata
2. solis: kaklasaites sagatavošana
Galvenais mērķis ir piekļūt iekšējam kaklasaites kodolam un norobežot līnijas, kas norāda, kur gaismas diodēm jābūt novietotām.
1. solis: sasiet kaklasaiti vietā
Kaklasaiti būs grūti sasiet, kad elektronika ir savās vietās. Tāpēc sasieniet kaklasaiti tā, lai tā izskatās labi un mezgls ir diezgan stingrs un neizšķīst. Pēc tam uzmanīgi pavelciet kaklasaites mazo galu, lai atvērtu caurumu, lai kaklasaite būtu virs galvas. Šī ir pozīcija, pie kuras kaklasaite tiks strādāta.
Ir dažādi kaklasaites mezgli. Es zinu tikai to vienu, ko iemācījos bērnībā - Vindzoru. Tam nevajadzētu nozīmēt, kurš mezgls tiek izmantots.
2. solis: atveriet kaklasaites aizmuguri
Izgrieziet šuves kaklasaites cilpas vienā pusē un logotipu un pēc tam lejup pa kaklasaites centru. Esiet piesardzīgs, jo beigās tas ir jāšuj atpakaļ.
3. solis: uzzīmējiet līnijas, kur jānovieto gaismas diodes
Lai gaismas diodes parādītos kaklasaites balto svītru sekcijās, ir vieglāk atrast katras baltās svītras sadaļas centra līniju kaklasaites aizmugurē un pēc tam kartēt to kaklasaites serdes priekšpusē. Pārbaudiet un vēlreiz pārbaudiet, vai centra līnija ir 1) centrā un 2) paralēla svītrai. LED pozīciju precizēšana būs iespējama, ja tās būs nedaudz izslēgtas. Bet vislabāk to iegūt pēc iespējas tuvāk tagad, nevis vēlāk.
Pārbaudiet līniju centrējumu, novietojot gaismas diodes uz līnijām un uzliekot svītru audumu uz augšu. Pielāgojiet, kur nepieciešams.
3. solis: NeoPikseļu pievienošana
Būtībā mēs izgatavojam savu LED sloksni. Mēs vienkārši uzstādām gaismas diodes uz kaklasaites serdes un pēc tam savienojam tās savā starpā.
1. solis: pielīmējiet NeoPixels pie kaklasaites kodola
NeoPixel aizmugurē ielieciet karstu līmi. Novietojiet to uz centrālajām līnijām. Sekcijām ar 3 NeoPixels vertikāli izlīdziniet NeoPixel centru un vispirms pielīmējiet tās. Tas atvieglos kreisā un labā NeoPixel novietošanu attiecībā pret centru, jo īpaši ņemot vērā to, ka kaklasaites platums palielinās no augšas uz leju.
Noteikti orientējiet visus NeoPikseļus vienā virzienā, pārejot no apakšas pa kreisi uz augšējo labo pusi. Ja tas nav pareizi, sloksne nedarbosies.
Piezīme par karstu līmi. Pietiks, lai projekts tiktu pabeigts. Attiecībā uz to, vai tas ilgs vairākus gadus, ir tikai jāredz.
3. solis: lodējiet NeoPikseļus savā starpā
Tā kā es nolēmu NeoPixels lodēt kopā, nevis izmantot vadošu vītni, caurums NeoPixel spilventiņos nedaudz darbojas pret mums. Vienkārši atrodiet uz spilventiņa labu vietu, kur pielodēt vadu. Nemēģiniet aizpildīt caurumu ar lodmetālu, bet, ja tas notiks, viss būs kārtībā.
Magnēta vadam ir plāns izolācijas slānis ap vara serdi. Ar nazi nokasiet izolāciju tieši to galos, kur tie tiks pielodēti. Vislabāk ir nokasīt visu stieples apkārtmēru.
4. darbība. Pārbaudiet savienojamību
Izmantojiet multimetru, lai pārbaudītu savienojumu:
- Pozitīvi savienojumi. Ir jābūt savienojamībai no gala līdz astei. Pārliecinieties, vai testa savienojums ir uz spilventiņiem, nevis vadam.
- Zemes savienojumi. Veiciet to pašu pārbaudi, bet ar zemes spilventiņiem.
- Katra datu līnija. No viena datu spilventiņa uz otru pārbaudiet, vai ir savienojamība.
4. darbība. Circuit Playground Express piestiprināšana
Circuit Playground Express (CPX) ir sistēmas sirds. Adafruit ir daudz pamācību šim kontrolierim. Vēlāk šajā pamācībā es izcelšu dažas MCU funkcijas.
1. solis: pielodējiet CPX pie NeoPixel apakšējā gala
Izgrieziet atbilstošu magnēta stieples garumu jaudai, zemei un datiem. Izvelciet tos cauri kaklasaites kodola audumam, lai tie pieskartos NeoPixel jaudai, zemei un datu paliktņiem. Lodējiet tos, pārliecinoties, ka esošie vadi uz spilventiņiem joprojām nodrošina labu savienojumu.
Pēc tam apgrieziet kaklasaites serdi un novietojiet CPX vēlamajā stāvoklī. Padevējiet barošanas vadu VOUT spilventiņam, zemējuma vadu jebkuram zemējuma spilventiņam un datu vadu jebkuram I/O spilventiņam, izņemot A0. Manis rakstītais kods izmanto A3.
Pārbaudiet savienojamību.
2. darbība. Piesaistiet CPX
Izmantojot diegu un adatu, izvēlieties visus četrus vienādā attālumā esošos spilventiņus un šujiet tos uz kaklasaites serdes.
5. darbība. CPX barošana
CPX nav ieslēgšanas/izslēgšanas slēdža. Tas nozīmē, ka brīdī, kad akumulators ir pievienots, kaklasaite ieslēgsies. Tas nozīmē arī to, ka vienīgais veids, kā to izslēgt, ir atvienot akumulatoru, kas rada lielas problēmas. Vienkāršs risinājums ir akumulatora izslēgšanas/izslēgšanas slēdzis.
1. darbība: nogrieziet slēdža trešo tapu
Viena no tapām, kas nav centrā, nav nepieciešama. Nogrieziet to vienā līmenī ar slēdža korpusu.
2. solis: lodējiet slēdzi rindā ar akumulatora vadu
Izgrieziet akumulatora zemējuma vadu kaut kur vidū. Uzbīdiet termiski saraušanās caurules gabalu uz katra zemējuma vada. Lodējiet vienu zemējuma vadu pie vienas tapas un otru zemējuma vadu pie citas tapas. Pārliecinieties, ka tie nepieskaras viens otram, vai lodēšana nepieskaras metāla korpusam.
Pārbaudiet, vai tie nav savienoti, izmantojot multimetru. Pārbīdiet cauruli pār lodētiem savienojumiem un saraujiet to. Pievienojiet nedaudz elektriskās lentes jebkurai daļai, kas var neizdoties lieces noguruma dēļ.
3. darbība: pārbaudiet, vai akumulators darbojas
Šajā brīdī akumulatoru var pievienot CPX. Ja viss noritēja labi, slēdzim vajadzētu būt iespējai ieslēgt un izslēgt CPX.
4. solis: uzstādiet akumulatoru
Uzlieciet nedaudz līmes āķa un cilpas lentes akumulatora aizmugurē un uz saites serdes. Tas saglabās to vietā, ja kaklasaite netiek pārāk apstrādāta.
6. darbība: Circuit Playground Express iestatīšana
Es neiedziļināšos sīkāk, kā iestatīt CPX. Adafruit to dara un tad daži. Es sniegšu dažus padomus problēmām, ar kurām es saskāros diezgan bieži.
CPX sasalst
Iespējams, ka darbības laika atmiņas problēmu dēļ CPX iesaldēsies diezgan bieži. Ātrais risinājums ir dzēst un atkārtoti mirgot. Šajos norādījumos meklējiet “Old Way”. Būtībā tas ir pāris pogu nospiešanas, velciet un nometiet, lai izdzēstu, un pēc tam velciet un nometiet, lai atkal mirgot.
Brīdinājums: tas izdzēš visu. Viss CPX kods tiks zaudēts.
Saglabājot izmaiņas CPX, var rasties problēmas
Es atklāju, ka dažreiz pēc faila saglabāšanas CPX python izpildlaiks būtu sliktā stāvoklī. Labojums bija restartēt python izpildlaiku, nospiežot atiestatīšanas pogu. Nospiediet to tikai vienu reizi. Nospiežot to divreiz, sāksies atkārtotas zibspuldzes process.
Tieša saglabāšana CPX ir riskanta
Tā kā pastāv iespēja, ka CPX ir jāatspoguļo atkārtoti, pastāv risks zaudēt visu kodu. Divreiz pazaudējis savu kodu, es izdomāju vienkāršu darbplūsmu. Es saglabātu savu kodu lokālajā cietajā diskā. Kad tas bija gatavs testēšanai CPX, es to vienkārši nokopēju, palaižot vienkāršu izvietošanas skriptu.
7. darbība. Circuit Playground Express kodēšana
Šajā brīdī CPX un NeoPixels ir gandrīz pabeigti. Ar tiem nav jāveic citi mehāniski vai elektriski darbi. Viss pārējais ir programmatūra.
Kods ir atrodams manā github kontā. Python kodam vajadzētu darboties bez izmaiņām visās operētājsistēmās. Neinstalējiet ārējās Adafruit CircuitPython bibliotēkas. Tie netiek izmantoti.
Šeit ir augsta līmeņa kopsavilkums par to, kas notiek kodā.
Kāda ieeja ko dara?
- Poga A: Pārvietojas pa LED animācijām
- Poga B: Ritiniet dziesmas
- Kapacitatīvs skārienpaliktnis A1: maina LED animāciju krāsas
- Kapacitatīvs skārienpaliktnis A6: maina LED animāciju ātrumu
Pastāv 3 animācijas, bet ir spēkā tikai 2
code.py
importēt pikseļus
#import vumeter importēt kāpnes importēt mirgošanu … led_animations = [pixelsoff. PixelsOff (pikseļi), # vumeter. VuMeter (pikseļi, 100, 400) kāpnes. Kāpnes (pikseļi), mirdzums. Mirgošana (pikseļi)]
Es pārnesu Ampli-Tie VU skaitītāja stila kodu. Tas izmanto CPX mikrofonu, lai uztvertu skaņu un iedegtu NeoPixels, pamatojoties uz skaņas amplitūdu. Tomēr es gribēju vairāk animāciju. Runtime atmiņas ierobežojumu dēļ man bija jāizvēlas, kuras animācijas es vēlos. Tātad pēc noklusējuma pārējās divas - kāpnes un mirgošana - darbosies, neveicot koda izmaiņas. Lai palaistu transportlīdzekļa bloka skaitītāja animāciju, viena vai abas citas animācijas ir jākomentē un transportlīdzekļa bloka skaitītājs nekomentē.
Mūzikas pārvaldnieks un bezsaistes kodēšana
frosty_the_snowman.py
importēt music_notes kā mn
# Frosty the Snowman # Walter E. Rollins song = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF),…
convert_to_binary.py
dziesmas = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] dziesmai dziesmās: data = song [0] file = song [1] with open (file, "wb") kā bin_file: datu ievadīšanai: print ("rakstīšana:" + str (ieraksts)) piezīme = ieraksts [0] dur = ieraksts [1] bin_file.write (strukt.pack ("<HH", piezīme, dur))
Es gribēju svētku mūziku. CPX atbalsta gan WAV, gan toņus. WAV faili faila lieluma un izpildlaika atmiņas ziņā izrādījās pārāk lieli. Izmantojot python datu struktūras, lai saglabātu toņus un to ilgumu, izrādījās, ka tiek izmantots pārāk daudz izpildlaika atmiņas. Tāpēc es mainīju Holi-Tie kodu, lai izlasītu saspiestu bināro failu, kurā bija tikai nepieciešamie dziesmas dati saspiestā binārā formātā. Es uzrakstīju skriptu, kas nolasa pitona datu struktūrā glabātu dziesmu un izraksta to binārā formātā. Ja dziesma tiek kodēta kā bināri dati failā, dziesma kļūst gan maza, gan dinamiska. Kad dziesma ir atskaņota, atmiņa tiek atbrīvota.
Ir mazsvarīgi pievienot vairāk dziesmu. Sīkāku informāciju skatiet dziesmās README.md.
Poga A animē NeoPikseļus, B atskaņo mūziku, bet ne vienlaicīgi
code.py
def button_a_pressed ():
if music.is_playing (): # Apturiet mūziku, ja tiek atskaņota mūzika. stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Palaist animāciju bez opcijām next_led_animation (0), ja mūzika.is_playing (): # Pārslēgt mūzika mūzikas ieslēgšana vai izslēgšana. stop () cits: music.play ()
Pat ar atmiņas ziņā efektīvāku mūzikas pārvaldības sistēmu es nevarēju izpildlaika atmiņā saglabāt 2 animācijas, atskaņojot 1 no tām, kā arī atskaņot dziesmu vienlaikus. Tā kā es jau izvēlējos, lai VU mērītājs vispār nebūtu izpildlaika atmiņā, es negribēju samazināt animāciju skaitu līdz vienai. Tāpēc es uzrakstīju kodu tā, lai vai nu animācija tiek atskaņota, vai mūzika tiek atskaņota, bet ne gan. Vēl viena iespēja bija samazināt NeoPikseļu skaitu, taču tas zaudētu daļu animācijas vēsuma.
Python koda funkcionalitāte
Lai gan esmu programmatūras izstrādātājs veterāns, es nekad nebiju rakstījis Python. Pēc tam, kad es to sapratu un skatījos, piemērojot labu kodēšanas praksi, piemēram, iekapsulēšanu un modulāciju, es ātri atklāju, ka izmantoju pārāk daudz izpildlaika atmiņas. Tātad ir diezgan daudz ne-DRY koda. Man bija arī jāizmanto dažas MicroPython metodes, piemēram, const (), lai vēl vairāk samazinātu darbības laika atmiņas problēmas.
Apkopoti moduļi
sastādīt
#!/bin/bash
kompilators = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd dziesmas python3./convert_to_binary.py cd.. f failam *.py; darīt, ja
Projekta sākumā es sekoju Adafruit padomam un visas Adafruit CircuitPython bibliotēkas saglabāju zibspuldzē. Tomēr tas atstāja maz vietas manam projektam. Lai varētu ievietot savu kodu CPX, es sāku apkopot moduļus un ievietot tos MCU. Izrādās, ka Holi-Tie nav nepieciešama neviena ārējā bibliotēka. Šim projektam pietika ar UF2 esošajām bibliotēkām. *. Mpy failu palaišana ir nedaudz efektīvāka, tāpēc es turpināju apkopoto moduļu izvietošanas procesu.
Kā redzams iepriekš apkopotajā skriptā, es strādāju ar Windows mašīnu, bet izmantoju Unix utilītas, piemēram, bash un python3. Es izmantoju Cygwin, lai to paveiktu. Šo skriptu var viegli tulkot DOS partijā un Windows vietējā Python3 ieviešanā.
8. solis: kaklasaites piespraušana
Pēdējais solis ir salikt kaklasaites serdi atpakaļ, salikt kaklasaiti un atkal uzšūt. Pārliecinieties, ka varat padarīt CPX pieejamu. Tas būs nepieciešams, nomainot akumulatoru vai mainot kodu.
Ieteicams:
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar RPI attēlu un attēliem: 7 soļi (ar attēliem)
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar Rpi-imager un Pictures: Es plānoju izmantot šo Rapsberry PI daudzos jautros projektos savā emuārā. Jūtieties brīvi to pārbaudīt. Es gribēju atkal izmantot savu aveņu PI, bet manā jaunajā vietā nebija tastatūras vai peles. Pagāja laiks, kopš es izveidoju aveņu
Arduino Halloween Edition - zombiju uznirstošais ekrāns (soļi ar attēliem): 6 soļi
Arduino Helovīna izdevums - zombiju uznirstošais ekrāns (soļi ar attēliem): Vai vēlaties Helovīnā nobiedēt savus draugus un radīt kliedzošu troksni? Vai arī vienkārši gribi uztaisīt labu palaidnību? Šis zombiju uznirstošais ekrāns to var izdarīt! Šajā pamācībā es iemācīšu jums, kā viegli izveidot izlecošus zombijus, izmantojot Arduino. HC-SR0
Skrūve - DIY bezvadu uzlādes nakts pulkstenis (6 soļi): 6 soļi (ar attēliem)
Bolt - DIY bezvadu uzlādes nakts pulkstenis (6 soļi): Induktīvās uzlādes (pazīstamas arī kā bezvadu uzlāde vai bezvadu uzlāde) ir bezvadu enerģijas pārneses veids. Tas izmanto elektromagnētisko indukciju, lai nodrošinātu elektroenerģiju pārnēsājamām ierīcēm. Visizplatītākā lietojumprogramma ir Qi bezvadu uzlādes st
Ciclop 3D skeneris Mans ceļš soli pa solim: 16 soļi (ar attēliem)
Ciclop 3d skeneris mans ceļš soli pa solim: Sveiki, es sapratīšu slaveno Ciclop 3D skeneri. Visi soļi, kas ir labi izskaidroti sākotnējā projektā, nav pieejami. Vispirms veicu dažus labojumus, lai vienkāršotu procesu Es izdrukāju pamatni un atkārtoti pārveidoju PCB, bet turpiniet
Kamera atvieglotiem laika intervāla attēliem: 22 soļi (ar attēliem)
Kamera atvieglotiem laika intervāla attēliem: es pārbaudīju vienu no citām instrukcijām par laika nobīdes filmu veidošanu. Viņš diezgan labi aptvēra filmas daļu. Viņš pastāstīja par bezmaksas programmatūru, kuru varat lejupielādēt, lai izveidotu filmas. Es sev teicu: domāju, ka redzēšu, vai varu