Obsah:
- Krok 1: Diely a nástroje
- Krok 2: Príprava kravaty
- Krok 3: Pripojenie NeoPixelov
- Krok 4: Pripojenie Circuit Playground Express
- Krok 5: Napájanie CPX
- Krok 6: Nastavenie Circuit Playground Express
- Krok 7: Kódovanie expresu na obvodovom ihrisku
- Krok 8: Zapnutie kravaty
Video: Holi-Tie: 8 krokov (s obrázkami)
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:59
Opice Patching Nasledovať viac od autora:
O: Len chlap, ktorý chce robiť skvelé veci Viac o gwfong »
Toto je Holi-Tie, slávnostná kravata navrhnutá na nosenie cez prázdniny. Holi-Tie, voľne založený na zosilňovači Ampli-Tie od Becky Stern, ktorý používa dosku Flora, používa na ovládanie animácií a hudby NeoPixel mikrokontrolér Circuit Python Express (CPX). Tlačidlo prepína medzi dvoma rôznymi animáciami NeoPixel. Kapacitné dotykové podložky menia farby NeoPixelu a rýchlosť animácie. Druhé tlačidlo prepína medzi LED animáciami a hudbou. Vstavaný mikrofón sa používa na meranie okolitého hluku pre animáciu merača VU. A reproduktor CPX produkuje prázdninové čipové melódie.
Všetko je kódované pomocou programovacieho jazyka Python, ktorý beží na vrchole systému CircuitPython. Napájaný je batériou LiPo 3,7 V, 500 mAh, ktorá bola upravená tak, aby mala vypínač.
Existujú dva videoklipy, ktoré ukazujú Holi-Tie:
- Dokončené Holi-Tie
- Vo vnútri Holi-Tie
Krok 1: Diely a nástroje
Časti
- Okruhové ihrisko Express
- 15x Neopixely flóry
- Magnetický drôt
- Lepiaca páska na suchý zips
- Lipo batéria 500mAH s konektorom JST
- Kravata Candy Cane
- Mini posuvný spínač, SPDT
- Teplom zmrštiteľné hadičky
Pri získavaní dielov by bolo múdre kupovať doplnky. Mal som celkom 20 NeoPixelov, z ktorých jeden bol od začiatku pokazený a jeden som zničil. Kravata Candy Cane bola taká lacná, že som si kúpil druhú pre prípad, že by som prvú pokazil.
Nástroje
- Horúca lepiaca pištoľ
- Spájkovacia stanica
- Strihač káblov
- Malý nôž
- Multimetr
- Počítač
- Zapaľovač alebo teplovzdušná pištoľ
- Niť a ihla
Krok 2: Príprava kravaty
Hlavným cieľom je získať prístup k vnútornému upínaciemu jadru a vymedziť čiary označujúce, kde by mali byť diódy LED umiestnené.
Krok 1: Zaviažte kravatu na miesto
Keď je elektronika na mieste, bude ťažké uviazať kravatu. Kravatu si uviažte tak, aby vyzerala dobre a uzol bol dostatočne pevný a nerozmotával sa. Potom opatrne potiahnite malý koniec kravaty, aby sa otvoril otvor, aby sa kravata dostala cez hlavu. Toto je pozícia, na ktorej sa bude pracovať s kravatou.
Existujú všetky druhy rôznych viazacích uzlov. Poznám iba ten, ktorý som sa naučil ako dieťa, Windsor. Nezáleží na tom, ktorý uzol sa použije.
Krok 2: Otvorte zadnú časť kravaty
Rozopnite švy na jednej strane pútka na viazanie a loga a potom nadol v strede kravaty. Buďte opatrní, pretože na konci musí byť zošitý.
Krok 3: Nakreslite čiary, kde by mali byť umiestnené diódy LED
Aby sa diódy LED objavili v častiach bielych prúžkov kravaty, je jednoduchšie nájsť stredovú čiaru pre každú časť bieleho prúžku na zadnej strane jadra kravaty a potom to namapovať na prednú časť jadra kravaty. Skontrolujte a dvakrát skontrolujte, či je stredová čiara 1) v strede a 2) rovnobežná s pruhom. Jemné doladenie pozícií LED bude možné, ak budú trochu mimo. Najlepšie je však dostať ho čo najpresnejšie teraz, ako neskôr.
Vystredenosť čiar vyskúšajte umiestnením diód LED na čiary a položením pruhovej látky na vrch. Upravte podľa potreby.
Krok 3: Pripojenie NeoPixelov
V zásade vyrábame vlastný LED pás. LED diódy jednoducho namontujeme na viazacie jadro a potom ich navzájom spojíme.
Krok 1: Prilepte NeoPixely k viazaciemu jadru
Na zadnú stranu NeoPixelu položte kúsok horúceho lepidla a umiestnite ho na stredové čiary. Pri sekciách s 3 NeoPixelmi zvisle zarovnajte stredný NeoPixel a najskôr ich prilepte. To uľahčí umiestnenie ľavého a pravého NeoPixelu vzhľadom na stred, najmä vzhľadom na to, že šírka kravaty sa zvyšuje zhora nadol.
Uistite sa, že orientujete všetky NeoPixely rovnakým smerom, od ľavého dolného rohu do pravého horného rohu. Ak to nie je správne, prúžok nebude fungovať.
Poznámka o horúcom lepidle. Na dokončenie projektu bude stačiť. Čo sa týka toho, či to vydrží aj ďalšie roky, to musí človek vidieť.
Krok 3: Pripojte k sebe navzájom NeoPixely
Pretože som sa rozhodol spájkovať NeoPixely dohromady namiesto použitia vodivého závitu, otvor v podložkách NeoPixel funguje proti nám v niečom. Na podložke jednoducho nájdite dobré miesto na spájkovanie drôtu. Nepokúšajte sa vyplniť dieru spájkou, ale ak sa to stane, bude to v poriadku.
Magnetický drôt má tenkú vrstvu izolácie okolo medeného jadra. Nôž zoškrabte izoláciu tesne na koncoch, kde budú spájkované. Najlepšie je zoškrabať celý obvod drôtu.
Krok 4: Otestujte pripojenie
Pomocou multimetra otestujte konektivitu:
- Pozitívne spojenia. Malo by existovať prepojenie od špičky k chvostu. Uistite sa, že testovacie pripojenie je na podložkách, a nie na kábli.
- Pozemné spojenia. Vykonajte rovnaký test, ale s podložkami.
- Každý dátový riadok. Z jedného dátového bloku na druhý overte, či existuje pripojenie.
Krok 4: Pripojenie Circuit Playground Express
Circuit Playground Express (CPX) je srdcom systému. Adafruit má pre tento ovládač množstvo návodov. Neskôr v tomto návode poukážem na niekoľko funkcií MCU.
Krok 1: Spájkujte CPX so spodným hrotom NeoPixel
Odrežte zodpovedajúcu dĺžku magnetického vodiča pre napájanie, uzemnenie a údaje. Pretlačte ich cez tkaninu spojovacieho jadra tak, aby sa dotýkali napájacieho, uzemňovacieho a dátového bloku NeoPixel. Spájkujte ich a uistite sa, že existujúce vodiče na doštičkách stále poskytujú dobré pripojenie.
Potom otočte upínacie jadro a umiestnite CPX do požadovanej polohy. Napájací vodič privedte na podložku VOUT, uzemňovací vodič na ľubovoľnú uzemňovaciu podložku a dátový vodič na ľubovoľnú vstupno -výstupnú podložku inú ako A0. Kód, ktorý som napísal, používa A3.
Otestujte konektivitu.
Krok 2: Upevnite CPX
Niťou a ihlou vyberte všetky štyri rovnako vzdialené podložky a prišite ich na viazacie jadro.
Krok 5: Napájanie CPX
CPX nemá vypínač. To znamená, že v okamihu, keď je batéria zapojená, sa kravata zapne. To tiež znamená, že jediný spôsob, ako ho vypnúť, je odpojenie batérie, čo je veľký problém. Jednoduchým riešením je prepnúť vypínač na batériu.
Krok 1: Odrežte 3. kolík na vypínači
Jeden z necentrických kolíkov nie je potrebný. Odrežte ho v jednej rovine s telom spínača.
Krok 2: Spájajte spínač v kábli s káblom
Odrežte uzemňovací vodič batérie niekde v strede. Na každý uzemňovací vodič nasuňte kus zmršťovacej trubice. Pripojte jeden uzemňovací vodič k jednému z kolíkov a druhý uzemňovací vodič k druhému kolíku. Dbajte na to, aby sa navzájom nedotýkali alebo aby sa spájka dotýkala kovového tela.
Overte, či nie sú pripojené pomocou multimetra. Nasuňte hadičku na spájkované spoje a stiahnite ju. Pridajte časť elektrickej pásky do akejkoľvek časti, ktorá môže zlyhať kvôli únave z ohybu.
Krok 3: Skontrolujte, či batéria funguje
V tomto okamihu je možné batériu zapojiť do CPX. Ak všetko pôjde dobre, prepínač by mal byť schopný zapnúť a vypnúť CPX.
Krok 4: Namontujte batériu
Na zadnú stranu batérie a na viazacie jadro dajte kúsok lepiacej pásky na suchý zips. To udrží na svojom mieste, ak s kravatou nebudete príliš ručne manipulovať.
Krok 6: Nastavenie Circuit Playground Express
Nebudem sa podrobne zaoberať nastavením CPX. To robí Adafruit a potom niektorí. Poskytnem niekoľko tipov na problémy, s ktorými sa stretávam pomerne často.
CPX zamrzne
Pravdepodobne kvôli problémom s pamäťou za behu by CPX dosť často zamrzol. Rýchlou opravou je vymazať a znova blikať. V týchto pokynoch hľadajte „starý spôsob“. V zásade ide o niekoľko stlačení tlačidiel, vymazanie potiahnutím a potom opätovným bliknutím potiahnutím a pustením.
Varovanie: Toto vymaže všetko. Stratí sa všetok kód v CPX.
Uloženie zmien do CPX môže spôsobiť problémy
Zistil som, že niekedy po uložení súboru do CPX bude runtime pythonu v zlom stave. Opravou bolo reštartovanie modulu runtime pythonu stlačením tlačidla reset. Stlačte ho iba raz. Dvojitým stlačením spustíte postup opakovaného záblesku.
Ukladanie priamo na CPX je riskantné
Vzhľadom na možnosť, že CPX musí byť znova aktualizovaný, riskuje stratu celého kódu. Potom, čo som dvakrát stratil kód, som prišiel na jednoduchý pracovný postup. Uložil by som svoj kód na lokálny pevný disk. Keď bol pripravený na testovanie na CPX, jednoducho by som ho skopíroval spustením jednoduchého skriptu nasadenia.
Krok 7: Kódovanie expresu na obvodovom ihrisku
V tomto bode sú CPX a NeoPixels do značnej miery úplné. Nie je potrebné s nimi vykonávať žiadne ďalšie mechanické alebo elektrické práce. Ostatné je všetok softvér.
Kód nájdete na mojom účte github. Jadrový kód pythonu by mal fungovať bez akýchkoľvek zmien pre všetky operačné systémy. Neinštalujte externé knižnice Adafruit CircuitPython. Nie sú používané.
Tu je súhrn na vysokej úrovni o tom, čo sa deje v kóde.
Aký vstup má čo?
- Tlačidlo A: Cykluje LED animáciami
- Tlačidlo B: Cyklus skladbami
- Kapacitný dotykový panel A1: Mení farby pre LED diódy
- Kapacitný dotykový panel A6: Mení rýchlosť animácií LED
Existujú 3 animácie, ale iba 2 sú účinné
code.py
importovať pixely
#import vumeter import schody import twinkle… led_animations = [pixelsoff. PixelsOff (pixely), # vumeter. VuMeter (pixely, 100, 400) schody. Schody (pixely), trblietky. Twink (pixely)]
Preniesol som kód štýlu merača Ampli-Tie VU. Na zachytenie zvuku a osvetlenie NeoPixelov na základe amplitúdy zvuku používa mikrofón CPX. Chcel som však viac animácií. Vzhľadom na obmedzenia pamäte za behu som si musel vybrať, ktoré animácie chcem. V predvolenom nastavení sa teda ostatné dve, Schody a Twinkle, spustia bez toho, aby ste museli vykonávať zmeny kódu. Na spustenie animácie merača VU je potrebné jednu alebo obe ostatné animácie komentovať a merač VU odkomentovať.
Správca hudby a offline kódovanie
frosty_the_snowman.py
import music_notes as 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
piesne = [(jingle_bells.song, "jingle_bells.bin"), (frosty_the_snowman.song, "frosty_the_snowman.bin")] pre pieseň v skladbách: data = song [0] file = song [1] s otvoreným súborom (súbor, "wb") ako bin_subor: pre vstup do údajov: print ("zápis:" + str (záznam)) poznámka = záznam [0] dur = záznam [1] bin_file.write (struct.pack ("<HH", poznámka, dur))
Chcel som prázdninovú hudbu. CPX podporuje WAV aj tóny. Súbory WAV sa ukázali byť príliš veľké z hľadiska veľkosti súboru a pamäte runtime. Ukázalo sa, že používanie dátových štruktúr pythonu na uchovanie tónov a ich trvanie používa príliš veľa runtime pamäte. Upravil som teda kód Holi-Tie tak, aby čítal komprimovaný binárny súbor, ktorý obsahoval iba potrebné údaje o skladbe v komprimovanom binárnom formáte. Napísal som skript, ktorý číta skladbu uloženú v dátovej štruktúre pythonu a napíše ju do binárneho formátu. Ak je pieseň v súbore zakódovaná ako binárne údaje, skladba je malá aj dynamická. Akonáhle je skladba dokončená, pamäť sa uvoľní.
Je triviálne pridávať ďalšie piesne. Podrobnosti nájdete v piesni README.md.
Tlačidlo A animuje NeoPixely, B prehráva hudbu, ale nie súčasne
code.py
def button_a_pressed ():
if music.is_playing (): # Stop music if playing music.stop () next_led_animation () def button_b_pressed (): if active_led_animation! = 0: # Run no-op animation next_led_animation (0) if music.is_playing (): # Toggle hudba zapnutá alebo vypnutá music.stop () else: music.play ()
Dokonca aj s pamäťovo efektívnejším systémom správy hudby som nebol schopný udržať v runtime pamäti 2 animácie, pričom som prehral 1 z nich a tiež prehral pieseň všetky súčasne. Pretože som sa už rozhodol, že nebudem mať VU meter v runtime pamäti vôbec, nechcel som znížiť počet animácií iba na 1. Napísal som teda kód tak, aby sa buď hrala animácia alebo sa hrala hudba, ale nie obaja. Ďalšou možnosťou bolo znížiť počet NeoPixelov, ale tým by sa stratila časť pohody animácie.
Funkčnosť kódu Python
Napriek tomu, že som skúsený vývojár softvéru, nikdy som nepísal Python. Potom, čo som sa v tom zorientoval a začal som používať osvedčené postupy kódovania, ako je enkapsulácia a modularizácia, som rýchlo zistil, že používam príliš veľa runtime pamäte. Existuje teda značná časť kódu, ktorý nie je suchý. Na ďalšie zníženie problémov s pamäťou za behu som tiež musel použiť niektoré techniky MicroPythonu, ako napríklad const ().
Zostavené moduly
zostaviť
#!/bin/bash
kompilátor = ~/development/circuitpython/mpy-cross-3.x-windows.exe cd piesne python3./convert_to_binary.py cd.. pre f v *.py; urobiť, ak
Na začiatku projektu som sa riadil radami spoločnosti Adafruit a bleskovo som uložil všetky knižnice Adafruit CircuitPython. To však ponechalo malý priestor pre môj projekt. Aby som mohol dostať svoj kód do CPX, začal som zostavovať moduly a umiestňovať ich do MCU. Ukazuje sa, že Holi-Tie nepotrebuje žiadnu z externých knižníc. Existujúce knižnice v UF2 boli na tento projekt dostatočné. Spustenie súborov *.mpy je o niečo efektívnejšie, takže som ponechal proces nasadenia kompilovaných modulov.
Ako je zrejmé z vyššie uvedeného kompilačného skriptu, pracujem na počítači so systémom Windows, ale používam nástroje Unix, ako napríklad bash a python3. Na tento účel používam Cygwin. Tento skript je možné jednoducho preložiť do dávky DOS a natívnej implementácie systému Python3 v systéme Windows.
Krok 8: Zapnutie kravaty
Posledným krokom je vloženie jadra viazačky späť na miesto, opätovná montáž kravaty a zošitie. Uistite sa, že budete môcť sprístupniť CPX. Budete to potrebovať pri výmene batérie alebo pri zmenách kódu.
Odporúča:
Ako: Inštalácia Raspberry PI 4 bezhlavého (VNC) s obrazovým procesorom Rpi a obrázkami: 7 krokov (s obrázkami)
Ako na to: Inštalácia Raspberry PI 4 bez hlavy (VNC) s obrázkom Rpi a obrázkami: Plánujem použiť tento nástroj Rapsberry PI v mnohých zábavných projektoch späť na mojom blogu. Neváhajte sa na to pozrieť. Chcel som sa vrátiť k používaniu svojho Raspberry PI, ale na novom mieste som nemal klávesnicu ani myš. Chvíľu to bolo, odkedy som nastavil Raspberry
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Prenosná reklama sa stane lacným už za 10 krokov !!: 13 krokov (s obrázkami)
Prenosná inzercia na znamení lacné za pouhých 10 krokov !!: Vyrobte si svoj vlastný, lacný a prenosný reklamný nápis. S týmto znakom môžete zobraziť svoju správu alebo logo kdekoľvek komukoľvek z celého mesta. Tento pokyn je reakciou na/zlepšenie/zmenu: https://www.instructables.com/id/Low-Cost-Illuminated-