Taula de continguts:
- Pas 1: peces i eines
- Pas 2: Preparar la corbata
- Pas 3: adjuntar els NeoPixels
- Pas 4: connectar el Circuit Playground Express
- Pas 5: alimentació del CPX
- Pas 6: Configuració del Circuit Playground Express
- Pas 7: Codificació del Circuit Playground Express
- Pas 8: botonar la corbata
Vídeo: El Holi-Tie: 8 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Per gwfongMonkey Patching Segueix més de l'autor:
Quant a: Només un noi que vol fer coses interessants Més sobre gwfong »
Es tracta del Holi-Tie, una corbata festiva dissenyada per portar-se durant les vacances. Basat en l’ampli-Tie de Becky Stern que utilitza una placa Flora, el Holi-Tie utilitza un microcontrolador Circuit Python Express (CPX) per conduir les animacions NeoPixel i la música. Un botó canvia entre 2 animacions NeoPixel diferents. Les pastilles tàctils capacitives canvien els colors NeoPixel i les velocitats d’animació. L'altre botó canvia entre animacions LED i música. El micròfon de bord s’utilitza per mesurar el soroll ambiental per a l’animació del comptador VU. I l’altaveu CPX emet melodies de xips de vacances.
Tot es codifica mitjançant el llenguatge de programació Python que s’executa a sobre del sistema CircuitPython. Funciona amb una bateria LiPo de 3,7 V, 500 mAH que es va modificar per tenir un interruptor d’encesa / apagada.
Hi ha dos videoclips que mostren el Holi-Tie:
- Completat Holi-Tie
- Dins del Holi-Tie
Pas 1: peces i eines
Parts
- Circuit Playground Express
- 15x Neopíxels de flora
- Filferro imant
- Cinta adhesiva de ganxo i bucle
- Bateria lipo de 500 mAH amb connector JST
- Llaç Candy Cane
- Mini interruptor lliscant, SPDT
- Tubs termoretractables
A l’hora d’obtenir les peces, seria aconsellable comprar extres. Tenia un total de 20 NeoPixels, un dels quals estava trencat des del principi i un altre que vaig arruïnar. La corbata de Candy Cane era tan barata que en vaig comprar una segona per si de cas la vaig arruïnar.
Eines
- Pistola de cola calenta
- Estació de soldadura
- Talladors de filferro
- Ganivet petit
- Multímetre
- Ordinador
- Encenedor o pistola de calor
- Fil i agulla
Pas 2: Preparar la corbata
L’objectiu principal és aconseguir accés al nucli de la corbata interior i delimitar les línies que indiquen on s’haurien de col·locar els LED.
Pas 1: lligueu la corbata a la seva posició
Serà difícil empatar l’empat quan l’electrònica estigui al seu lloc. Lligueu la corbata de manera que quedi bé i el nus sigui força ferm i no es desfaci. A continuació, estireu amb cura l'extrem petit de la corbata per obrir el forat i aconseguir que la corbata sobre el cap. Aquesta és la posició en què es treballarà l’empat.
Hi ha tot tipus de nusos diferents. Només conec el que vaig aprendre de petit, el Windsor. No importa quin nus s’utilitzi.
Pas 2: obriu la part posterior de la corbata
Obriu les costures d’un costat del llaç i del logotip i després baixeu pel centre de la corbata. Vés amb compte perquè s’ha de cosir de nou al final.
Pas 3: Dibuixeu línies on s’haurien de col·locar els LED
Perquè els LED apareguin a les seccions de ratlles blanques de la corbata, és més fàcil trobar la línia central de cada secció de ratlles blanques a la part posterior del nucli de la corbata i, a continuació, assignar-la a la part frontal de la corbata. Comproveu i comproveu que la línia central sigui 1) al centre i 2) paral·lela amb la franja. Serà possible afinar les posicions del LED si estan una mica apagades. Però el millor és aconseguir-ho tan a prop d’exactes en lloc de més tard.
Proveu el centre de les línies col·locant LEDs sobre les línies i col·locant el teixit de ratlles a la part superior. Ajusta on sigui necessari.
Pas 3: adjuntar els NeoPixels
Bàsicament, estem fabricant la nostra pròpia tira LED. Simplement muntem els LED al nucli de la corbata i els connectem entre ells.
Pas 1: adheriu els NeoPixels al nucli de la corbata
Col·loqueu una mica de cola calenta a la part posterior del NeoPixel i col·loqueu-la a les línies centrals. Per a les seccions amb 3 NeoPixels, alineeu verticalment el NeoPixel central i enganxeu-los primer. Això farà que sigui més fàcil col·locar el NeoPixel esquerre i dret en relació amb el centre, sobretot donat que l’amplada de la corbata augmenta de dalt a baix.
Assegureu-vos d’orientar tots els NeoPixels en la mateixa direcció, anant de baix a esquerra a dalt a la dreta. Si això no és correcte, la tira no funcionarà.
Una nota sobre la cola calenta. N’hi haurà prou per acabar el projecte. Quant a si durarà els propers anys, només cal veure-ho.
Pas 3: soldeu els NeoPixels entre si
Com que vaig decidir soldar els NeoPixels junts en lloc d’utilitzar fils conductors, el forat dels coixinets NeoPixel funciona en contra nostra. Només cal trobar un bon lloc al coixinet per soldar el cable. No intenteu omplir el forat amb soldadura, però si passa, estarà bé.
El cable imant té una fina capa d’aïllament al voltant d’un nucli de coure. Amb un ganivet, rasqueu l’aïllament just als extrems on es soldaran. El millor és raspar tota la circumferència del fil.
Pas 4: proveu la connectivitat
Utilitzeu un multímetre per provar la connectivitat de:
- Connexions positives. Hi hauria d’haver connectivitat de la punta a la cua. Assegureu-vos que la connectivitat de prova dels coixinets i no del cable.
- Connexions a terra. Feu la mateixa prova però amb els coixinets de terra.
- Cada línia de dades. D’un bloc de dades al següent, verifiqueu que hi hagi connectivitat.
Pas 4: connectar el Circuit Playground Express
El Circuit Playground Express (CPX) és el cor del sistema. Adafruit disposa de nombrosos tutorials per a aquest controlador. Més endavant, en aquest instructiu, destacaré algunes de les funcions de la MCU.
Pas 1: soldeu el CPX a la punta inferior NeoPixel
Talla les longituds adequades del cable imant per a la potència, la terra i les dades. Feu-los passar pel teixit del nucli de la corbata de manera que toquin els coixinets d'alimentació, de terra i de dades NeoPixel. Soldeu-los cap avall assegurant-vos que els cables existents als coixinets continuen fent una bona connectivitat.
A continuació, gireu el nucli d'empat i col·loqueu el CPX a la posició desitjada. Introduïu el cable d'alimentació al coixinet VOUT, el cable de terra a qualsevol coixinet de terra i el cable de dades a qualsevol coixinet d'E / S que no sigui A0. El codi que he escrit utilitza A3.
Proveu la connectivitat.
Pas 2: lligueu el CPX
Amb un fil i una agulla, trieu quatre coixinets equidistants i cosiu-los al nucli de la corbata.
Pas 5: alimentació del CPX
El CPX no té un interruptor d’encès / apagat. Això vol dir que en el moment que la bateria estigui endollada, la corbata s’encendrà. Això també significa que l’única manera d’apagar-la és desconnectant la bateria, que és una molèstia important. Una solució senzilla és posar un interruptor d’apagat / apagat a la bateria.
Pas 1: talleu el tercer passador de l'interruptor
No cal un dels passadors no centrals. Talleu-lo al mateix nivell que el cos de l’interruptor.
Pas 2: soldeu l'interruptor en línia amb un cable de la bateria
Talleu el cable de terra de la bateria en algun lloc del centre. Feu lliscar un tros de tub retràctil per cada fil de terra. Soldeu un cable de terra a un dels pins i l’altre cable de terra a l’altre pin. Assegureu-vos que no es toquin o que la soldadura toqui el cos metàl·lic.
Verifiqueu que no estiguin connectats mitjançant un multímetre. Feu lliscar el tub sobre les connexions soldades i reduïu-lo. Afegiu una mica de cinta elèctrica a qualsevol part que pugui fallar a causa de la fatiga de flexió.
Pas 3: comproveu que la bateria funcioni
En aquest moment, la bateria es pot connectar al CPX. Si tot va bé, el commutador hauria de poder activar i apagar el CPX.
Pas 4: muntar la bateria
Poseu una mica de ganxo adhesiu i cinta adhesiva a la part posterior de la bateria i al nucli de la corbata. Això el mantindrà al seu lloc si l’empat no es manipula massa.
Pas 6: Configuració del Circuit Playground Express
No entraré en detalls sobre com configurar el CPX. Adafruit fa això i després alguns. Proporcionaré alguns consells sobre problemes que he trobat amb força freqüència.
CPX es congela
Probablement a causa de problemes de memòria en temps d'execució, el CPX es congelaria amb força freqüència. La solució ràpida és esborrar i tornar a parpellejar. Cerqueu "Old Way" en aquestes instruccions. Bàsicament, es tracta d'un parell de botons, un arrossegar i deixar anar per esborrar i, a continuació, arrossegar i deixar anar per tornar a parpellejar.
Advertiment: això esborra tot. Es perdrà tot el codi del CPX.
Desar canvis a CPX pot causar problemes
Vaig descobrir que de vegades després de desar un fitxer al CPX, el temps d'execució de Python es trobaria en un mal estat. La solució va ser reiniciar el temps d'execució de Python prement el botó de reinici. Premeu-lo només una vegada. En prémer-lo dues vegades, s'iniciarà el procés de re-flaix.
Estalviar directament a CPX és arriscat
A causa de la possibilitat que el CPX s'hagi de tornar a parpellejar, es corre el risc de perdre tot el seu codi. Després d’haver perdut el codi dues vegades, vaig arribar a un simple flux de treball. Desaria el meu codi al disc dur local. Quan estigués a punt per provar-se al CPX, simplement el copiaria executant un simple script de desplegament.
Pas 7: Codificació del Circuit Playground Express
En aquest moment, el CPX i el NeoPixels són pràcticament complets. No cal fer cap altre treball mecànic o elèctric amb ells. La resta és tot un programari.
El codi es pot trobar al meu compte de github. El codi central Python hauria de funcionar sense cap canvi per a tots els sistemes operatius. No instal·leu les biblioteques externes d'Adafruit CircuitPython. No s’utilitzen.
Aquí teniu un resum d’alt nivell del que passa al codi.
Què aporta què?
- Botó A: recorre les animacions LED
- Botó B: recorre les cançons
- Teclat tàctil capacitiu A1: canvia els colors de les animacions LED
- Teclat tàctil capacitiu A6: canvia la velocitat de les animacions LED
Existeixen 3 animacions, però només 2 estan en vigor
code.py
importació de pixelsoff
#import vumeter import escales import twinkle … led_animations = [pixelsoff. PixelsOff (píxels), # vumeter. VuMeter (píxels, 100, 400) escales. Escales (píxels), twinkle. Twinkle (píxels)]
He portat el codi d’estil del comptador Ampli-Tie VU. Utilitza el micròfon CPX per captar so i il·luminar els NeoPixels en funció de l’amplitud del so. Tot i això, volia més animacions. A causa de les limitacions de memòria d'execució, vaig haver de triar quines animacions volia. Així, per defecte, els altres dos, Stairs i Twinkle, s’executaran sense haver de fer canvis de codi. Per executar l'animació del mesurador de VU, cal comentar una o ambdues animacions i no comentar-la.
Gestor de música i codificació fora de línia
frosty_the_snowman.py
importeu notes musicals com a mn
# Frosty the Snowman # Walter E. Rollins cançó = [(mn. G4, mn. HLF), (mn. E4, mn. DTQ), (mn. F4, mn. ETH), (mn. G4, mn. QTR), (mn. C5, mn. HLF), …
convert_to_binary.py
cançons = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] per a la cançó de les cançons: data = song [0] file = song [1] with open (file, "wb") com bin_file: per a l'entrada de dades: print ("writing:" + str (entry)) nota = entrada [0] dur = entrada [1] bin_file.write (struct.pack ("<HH", nota, dur))
Volia música de vacances. El CPX admet WAV i tons. Els fitxers WAV van resultar ser massa grans en termes de mida de fitxer i memòria d’execució. Utilitzar estructures de dades Python per mantenir els tons i la seva durada també va resultar utilitzar massa memòria d’execució. Així que vaig modificar el codi Holi-Tie per llegir un fitxer binari comprimit que contenia només les dades de cançons necessàries en un format binari comprimit. He escrit un guió que llegeix una cançó en una estructura de dades Python i l’escriu al format binari. Tenir la cançó codificada com a dades binàries en un fitxer fa que la cançó sigui alhora petita i dinàmica. Un cop acabada la reproducció de la cançó, s’allibera la memòria.
És trivial afegir més cançons. Per obtenir més informació, consulteu README.md en cançons.
El botó A anima els NeoPixels, B reprodueix música, però no simultàniament
code.py
def button_a_pressed ():
if music.is_playing (): # Atura la música si reprodueix music.stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Executa animació sense operació next_led_animation (0) if music.is_playing (): # Toggle música activada o desactivada music.stop () else: music.play ()
Fins i tot amb el sistema de gestió de música més eficient en memòria, no vaig poder contenir 2 animacions en memòria d'execució mentre tocava 1 d'elles i també tocava una cançó al mateix temps. Com que ja vaig optar per no tenir mesurador de VU a la memòria d’execució, no volia reduir el nombre d’animacions a només 1. Així que vaig escriure el codi perquè l’animació estigués reproduint o la música estigués reproduint, però no tots dos. Una altra opció era reduir el nombre de NeoPixels, però això perdria part de la frescor de l'animació.
Python Code Funkiness
Tot i que sóc un veterà desenvolupador de programari, mai havia escrit Python. Després de comprendre-ho i mirar-me d’aplicar bones pràctiques de codificació com l’encapsulació i la modularització, vaig descobrir ràpidament que feia servir massa memòria d’execució. Per tant, hi ha una mica de codi que no és SEC. També vaig haver d’utilitzar algunes tècniques de MicroPython com const () per reduir encara més els problemes de memòria del temps d’execució.
Mòduls compilats
compilar
#! / bin / bash
compilador = ~ / development / circuitpython / mpy-cross-3.x-windows.exe cançons cd python3./convert_to_binary.py cd.. per f en *.py; fer si
Al principi del projecte, vaig seguir els consells d’Adafruit i vaig emmagatzemar totes les biblioteques d’Adafruit CircuitPython en flash. Això, però, va deixar poc espai per al meu projecte. Per poder obtenir el meu codi al CPX, vaig començar a compilar els mòduls i a col·locar-los a la MCU. Resulta que el Holi-Tie no necessita cap de les biblioteques externes. Les biblioteques existents a la UF2 eren suficients per a aquest projecte. Executar fitxers *.mpy és una mica més eficaç, de manera que vaig continuar el procés de desplegament dels mòduls compilats.
Com és evident a l’escript de compilació anterior, estic treballant en una màquina Windows però utilitzo utilitats Unix com bash i python3. Utilitzo Cygwin per aconseguir-ho. Aquest script es pot traduir fàcilment a DOS batch i a una implementació nativa de Windows Python3.
Pas 8: botonar la corbata
L’últim pas és tornar a col·locar el nucli de la corbata, tornar a muntar la corbata i cosir-la de nou. Assegureu-vos de poder fer accessible el CPX. La necessitareu en canviar la bateria o fer canvis de codi.
Recomanat:
Llum (s) LED amb bateria amb càrrega solar: 11 passos (amb imatges)
Llums LED amb bateria amb càrrega solar: la meva dona ensenya a la gent a fer sabó, la majoria de les seves classes eren al vespre i aquí a l’hivern es fa fosc cap a les 4:30 de la tarda, alguns dels seus alumnes tenien problemes per trobar el nostre casa. Teníem un rètol frontal però fins i tot amb un lligam al carrer
Porta imatges amb altaveu incorporat: 7 passos (amb imatges)
Suport d'imatges amb altaveu incorporat: aquí teniu un gran projecte per dur a terme durant el cap de setmana, si voleu que us poseu un altaveu que pugui contenir imatges / postals o fins i tot la vostra llista de tasques. Com a part de la construcció, utilitzarem un Raspberry Pi Zero W com a centre del projecte i un
Reconeixement d'imatges amb plaques K210 i Arduino IDE / Micropython: 6 passos (amb imatges)
Reconeixement d’imatges amb plaques K210 i Arduino IDE / Micropython: ja vaig escriure un article sobre com executar demostracions d’OpenMV a Sipeed Maix Bit i també vaig fer un vídeo de demostració de detecció d’objectes amb aquesta placa. Una de les moltes preguntes que la gent ha formulat és: com puc reconèixer un objecte que la xarxa neuronal no és tr
Gesture Hawk: robot controlat amb gestos manuals mitjançant la interfície basada en el processament d’imatges: 13 passos (amb imatges)
Gesture Hawk: robot controlat amb gestos manuals mitjançant interfície basada en el processament d’imatges: Gesture Hawk es va mostrar a TechEvince 4.0 com una interfície simple màquina basada en el processament d’imatges. La seva utilitat rau en el fet que no es requereixen cap sensor addicional ni un dispositiu portàtil, excepte un guant, per controlar el cotxe robòtic que funciona amb diferents
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge