Obsah:

Holi-Tie: 8 krokov (s obrázkami)
Holi-Tie: 8 krokov (s obrázkami)

Video: Holi-Tie: 8 krokov (s obrázkami)

Video: Holi-Tie: 8 krokov (s obrázkami)
Video: 8 урок "Как делиться Евангелием" - Торбен Сондергаард. 2024, Júl
Anonim
Image
Image

Opice Patching Nasledovať viac od autora:

Osvetľujúca psia rampa
Osvetľujúca psia rampa
Socha z oceľového srdca a taveného skla
Socha z oceľového srdca a taveného skla
Socha z oceľového srdca a taveného skla
Socha z oceľového srdca a taveného skla
Medený drôt a sklenený motýľ
Medený drôt a sklenený motýľ
Medený drôt a sklenený motýľ
Medený drôt a sklenený motýľ

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

Príprava kravaty
Príprava kravaty
Príprava kravaty
Príprava kravaty
Príprava kravaty
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

Pripojenie NeoPixelov
Pripojenie NeoPixelov
Pripojenie NeoPixelov
Pripojenie NeoPixelov
Pripojenie NeoPixelov
Pripojenie NeoPixelov
Pripojenie NeoPixelov
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:

  1. 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.
  2. Pozemné spojenia. Vykonajte rovnaký test, ale s podložkami.
  3. Každý dátový riadok. Z jedného dátového bloku na druhý overte, či existuje pripojenie.

Krok 4: Pripojenie Circuit Playground Express

Pripojenie expresu na obvodovom ihrisku
Pripojenie expresu na obvodovom ihrisku

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

Napájanie CPX
Napájanie CPX
Napájanie CPX
Napájanie CPX
Napájanie CPX
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

Zapínanie kravaty
Zapínanie kravaty
Zapínanie kravaty
Zapínanie 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: