Spisu treści:

Lekka kurtka pokazowa, która reaguje na muzykę: 7 kroków (ze zdjęciami)
Lekka kurtka pokazowa, która reaguje na muzykę: 7 kroków (ze zdjęciami)

Wideo: Lekka kurtka pokazowa, która reaguje na muzykę: 7 kroków (ze zdjęciami)

Wideo: Lekka kurtka pokazowa, która reaguje na muzykę: 7 kroków (ze zdjęciami)
Wideo: Ups. 2024, Lipiec
Anonim
Lekka kurtka pokazowa, która reaguje na muzykę
Lekka kurtka pokazowa, która reaguje na muzykę

Ten samouczek powstał jako część mojego ostatniego roku projektu na moim dyplomie z technologii muzycznej i elektroniki stosowanej na Uniwersytecie w Yorku. Skierowany jest do muzyków zainteresowanych elektroniką. Gotowym produktem będzie matryca LED z tyłu kurtki, która może stworzyć pokaz świetlny zgodny z muzyką. Zostanie to zrobione poprzez analizę wejść audio za pomocą Pure Data i Arduino. Kurtka będzie miała dwa ustawienia, którymi będzie można sterować za pomocą przełącznika. Jedno ustawienie będzie sterować diodami LED zgodnie z amplitudą muzyki, a drugie spowoduje, że diody LED będą migać pojedynczo i zmieniać kolor zgodnie z tonacją.

Jak to będzie działać?

To urządzenie będzie składać się z dwóch oddzielnych obwodów. Jeden będzie oparty na Arduino Mega podłączonym bezpośrednio do komputera. Drugi obwód będzie oparty na LilyPad Arduino i będzie całkowicie zamknięty w osłonie i zasilany baterią 9V. Oba te obwody będą komunikować się ze sobą bezprzewodowo za pomocą modułów XBee. Sygnały audio będą odbierane przez wbudowany mikrofon komputera i analizowane w Pure Data w celu uzyskania danych o amplitudzie i częstotliwości. Informacje te zostaną przesłane do Arduino Mega za pomocą obwodu wejściowego MIDI, a następnie zostaną przesłane do LilyPad za pomocą XBees. LilyPad określi, jak zareagują diody LED na kurtce.

Czego będziesz potrzebować

Dla mega obwodu

  • Arduino Mega 2560
  • XBee Explorer regulowany
  • Antena śledząca XBee 1mW - seria 1
  • Prototypowa tarcza dla Mega
  • USB typu A do B
  • Kabel USB do MIDI
  • Gniazdo MIDI
  • Rezystor 1x220Ω
  • Rezystor 1x270Ω
  • 1xdioda 1N4148
  • 1 x transoptor 6N138

Do obwodu LilyPad

  • Płyta główna LilyPad Arduino 328
  • LilyPad XBee Breakout Board
  • Antena śledząca XBee 1mW - seria 1
  • LilyPad FTDI Basic Breakout Board
  • 72 x LilyPad LED (dostępna gama wszystkich kolorów, w tym biały, niebieski, czerwony, żółty, zielony, różowy i fioletowy)
  • Przełącznik suwakowy LilyPad
  • Kabel USB 2.0 A-męski na Mini-B
  • Bateria 9V
  • Zacisk na baterię 9V

Inne

  • Kurtka
  • Komputer z zainstalowanymi Pure Data i Arduino IDE
  • Sprzęt Drut
  • Sprzęt lutowniczy
  • Nożyce do drutu
  • Narzędzia do ściągania izolacji
  • Igła z dużym oczkiem
  • Wątek
  • Wątek przewodzący
  • Nożyce
  • Taśma miernicza
  • Klej do tkanin lub przezroczysty lakier do paznokci
  • Kreda lub biały eyeliner
  • Tkanina na podszewkę lub starą koszulkę
  • Rzep
  • Wiertarka (ewentualnie)
  • Standardowa dioda LED (do testowania)
  • Deska do krojenia chleba (do testowania)
  • Kolejny rezystor 220Ω (do testowania)
  • Multimetr (do testowania)

Koszt tego projektu będzie w dużej mierze zależał od tego, ile powyższego sprzętu już posiadasz. Jednak prawdopodobnie będzie to około 150–200 GBP.

Szybka uwaga - deski LilyPad są przeznaczone do przyszycia bezpośrednio do tekstyliów, dlatego przylutowanie zacisku baterii 9V do jednego może powodować problemy. Połączenie może być delikatne i łatwe do zerwania. Możesz otrzymać specjalnie zaprojektowane płytki LilyPad na baterie AAA lub LiPo, których możesz użyć. Jednak nadal zdecydowałem się iść drogą 9 V, ponieważ ich żywotność baterii jest większa niż w przypadku akumulatorów AAA, a moja uczelnia ma ograniczenia dotyczące używania akumulatorów LiPo.

Krok 1: Tworzenie obwodu wejściowego MIDI

Tworzenie obwodu wejściowego MIDI
Tworzenie obwodu wejściowego MIDI
Tworzenie obwodu wejściowego MIDI
Tworzenie obwodu wejściowego MIDI
Tworzenie obwodu wejściowego MIDI
Tworzenie obwodu wejściowego MIDI

Przede wszystkim rozważmy obwód wejściowy MIDI. Będzie to musiało być skonstruowane na płytce prototypowej, która zostanie umieszczona w Arduino Mega. Będzie on używany do wysyłania komunikatów MIDI z patcha Pure Data do Mega przez jego pin „COMMUNICATION RX0”. Zobacz powyżej schemat obwodu i zdjęcie. W zależności od twojej płytki prototypowej, twój układ może się nieco różnić, ale zdecydowałem się umieścić gniazdo MIDI w lewym dolnym rogu. W tym przypadku może być konieczne użycie wiertła, aby powiększyć otwory w osłonie, aby pasowały do gniazda. Czerwone przewody na zdjęciu są podłączone do 5V, brązowe są podłączone do masy, czarny przewód jest podłączony do pinu 3 w 6N138, niebieski przewód jest podłączony do pinu 2 w 6N138 a żółte przewody są podłączone do RX0 Szpilka. Po prawej stronie płytki prototypowej pozostaje miejsce, aby później było miejsce na XBee. Przerwy prawdopodobnie będą musiały być wykonane w torach na planszy. W tym przykładzie musiały być wykonane między pinami w 6N138.

Testowanie obwodu wejściowego MIDI

Aby przetestować obwód, prześlij poniższy kod do Arduino Mega za pomocą kabla USB typu A do B. Upewnij się, że osłona nie jest włożona, gdy to robisz, ponieważ kod nie może zostać załadowany, jeśli coś jest podłączone do pinów RX lub TX. Ponadto kod zawiera bibliotekę MIDI.h, którą możesz potrzebować pobrać, dostępną pod poniższym linkiem.

MIDI.h

Następnie włóż ekran do mega i podłącz go do innego portu USB w komputerze za pomocą kabla MIDI do USB. Koniec MIDI, którego będziesz musiał użyć, będzie oznaczony jako „out”. Stwórz prosty obwód na płytce stykowej łączącej pin 2 z rezystorem 220 Ω, a następnie podłączając go do anody standardowej diody LED. Podłącz katodę diod LED do uziemienia.

Następnie utwórz prostą łatkę Pure Data z komunikatem [60 100] i [0 0] połączonymi z obiektem notatek przez jego lewy wlot. Upewnij się, że ta poprawka jest podłączona do obwodu wejściowego MIDI, otwierając ustawienia MIDI i zmieniając urządzenie wyjściowe. Jeśli nie jest to dostępne, upewnij się, że podłączyłeś obwód MIDI do komputera przed otwarciem Pure Data. Teraz, jeśli twój obwód jest poprawny, dioda LED powinna świecić po naciśnięciu komunikatu [60 100] i powinna zgasnąć po naciśnięciu komunikatu [0 0].

Krok 2: Projektowanie matrycy LED

Projektowanie matrycy LED
Projektowanie matrycy LED
Projektowanie matrycy LED
Projektowanie matrycy LED
Projektowanie matrycy LED
Projektowanie matrycy LED

Następnie należy wziąć pod uwagę matrycę LED z tyłu kurtki. Będzie on bezpośrednio podłączony do głównej płyty LilyPad. Normalnie, aby sterować diodami LED za pomocą mikrokontrolera, każdy z nich byłby przypisany do własnych indywidualnych pinów. Jednak z tylko jednym Arduino LilyPad byłoby to bardzo ograniczające. W sumie LilyPad ma 12 pinów cyfrowych i 6 pinów analogowych, a więc potencjalnie 18 pinów wyjściowych. Ponieważ jednak jeden z tych kołków będzie później używany do sterowania przełącznikiem suwakowym, pozostanie tylko 17.

W tej sytuacji można zastosować technikę zwaną multipleksowaniem, aby zmaksymalizować potencjał pinów kontrolnych LilyPad. Wykorzystuje to dwa fakty:

  • Diody LED są diodami i umożliwiają przepływ prądu tylko w jednym kierunku.
  • Ludzkie oczy i mózg przetwarzają obrazy znacznie wolniej niż światło może podróżować, więc jeśli diody LED migają wystarczająco szybko, nie zauważymy. Jest to koncepcja znana jako „trwałość wizji”.

Dzięki tej technice liczba diod LED, które można kontrolować, wynosi (n/2) x (n-(n/2)) gdzie n jest liczbą dostępnych pinów sterujących. Dlatego przy dostępnych 17 pinach powinno być możliwe sterowanie 72 diodami w matrycy 9x8.

Schemat rozmieszczenia diod LED w matrycy 9x8 można zobaczyć powyżej, wraz z propozycjami pinów, do których należy podłączyć każdy rząd i kolumnę. Należy pamiętać, że wiersze i kolumny nie mogą się stykać. Ponadto nie są wymagane żadne rezystory, ponieważ każda dioda LED ma własną wbudowaną rezystancję 100 Ω.

Przed przystąpieniem do szycia należy zaplanować układ obwodu na kurtce. Dobrym miejscem na rozpoczęcie jest zaznaczenie na osłonie miejsca, w którym mają się znaleźć diody LED za pomocą małych kropek, za pomocą taśmy mierniczej, aby upewnić się, że są one równomiernie rozmieszczone. W przypadku czarnej skórzanej kurtki bardzo dobrze sprawdza się biały eyeliner i można go łatwo zetrzeć, jeśli popełni się błąd. Jednak inne media, takie jak kreda, mogą również działać w zależności od materiału i koloru kurtki. Powyżej widać rozmieszczenie kolorów LED, które wykorzystałem, które będą działać z podanym później kodem. Możesz użyć innego układu, chociaż trzeba to zmienić w kodzie.

Następną rzeczą do przemyślenia jest to, gdzie trafią LilyPad, LilyPad XBee i zasilacz. W przypadku kurtki, której użyłem, najbardziej sensowne i dyskretne miejsce wydawało mi się z tyłu kurtki, na dole i na wewnętrznej podszewce. Dzieje się tak, ponieważ jest mało prawdopodobne, aby został on uderzony przez ramiona użytkownika i ma łatwy dostęp do matrycy LED. Ponadto, ponieważ kurtka, której używałem, była luźna na dole, nadal była wygodna.

Krok 3: Szycie matrycy LED

Szycie matrycy LED
Szycie matrycy LED
Szycie matrycy LED
Szycie matrycy LED
Szycie matrycy LED
Szycie matrycy LED

W tym momencie możesz rozpocząć szycie. Praca z gwintem przewodzącym może być trudna, więc oto kilka przydatnych wskazówek:

  • Wklejenie elementu na miejsce za pomocą kleju do tkanin znacznie ułatwi szycie.
  • Różne rodzaje ściegów będą miały różne właściwości estetyczne i funkcjonalne, dlatego warto przyjrzeć się im przed rozpoczęciem pracy. Jednak podstawowy ścieg do biegania powinien wystarczyć do tego projektu.
  • Węzły mają tendencję do luzowania się dość łatwo dzięki przewodzącej nici, ponieważ jest „bardziej sprężysta” niż zwykle. Rozwiązaniem tego problemu jest użycie niewielkiej ilości bezbarwnego lakieru do paznokci lub kleju do tkanin, aby je uszczelnić. Pozwól im wyschnąć przed odcięciem ogonów.
  • Tworząc połączenia z elementami obwodu lub łącząc ze sobą dwie linie przewodzącej nici, dobrym pomysłem jest ich wielokrotne przeszycie, aby zapewnić dobre połączenie mechaniczne i elektryczne.
  • Upewnij się, że twoja igła jest ostra i ma duże oko. Przejście przez kurtkę może być trudne, a przewodząca nić jest grubsza niż zwykle.
  • Uważaj na luźne włosy na nitce. Mogą one powodować zwarcie w obwodzie, jeśli dotkną innych linii szycia. Jeśli stanie się to poważnym problemem, po przeprowadzeniu testów wszystkie linie można uszczelnić przezroczystym lakierem do paznokci lub klejem do tkanin i wszystko działa poprawnie.

Dobrym miejscem do rozpoczęcia szycia są rzędy. Aby uczynić je tak prostymi, jak to możliwe, możesz narysować delikatne linie do przyszycia za pomocą linijki. Po ich zszyciu przejdź na kolumny. Należy zachować szczególną ostrożność za każdym razem, gdy dojdzie do rzędu, ponieważ ważne jest, aby się nie krzyżowały. Można to osiągnąć, tworząc ścieg do kolumny po wewnętrznej stronie kurtki dla tego złącza, jak widać na powyższym zdjęciu. Po wypełnieniu wszystkich wierszy i kolumn można użyć miernika uniwersalnego, aby sprawdzić, czy nie ma szortów.

Gdy będziesz zadowolony, zacznij szyć diody LED do kolumny po prawej stronie kurtki. Upewnij się, że każda anoda jest podłączona do własnego rzędu, a każda katoda jest podłączona do kolumny po lewej stronie. Następnie umieść LilyPad Arduino na miejscu za pomocą kleju do tkanin mniej więcej poniżej tej kolumny, upewniając się, że styki płytki zaciskowej FTDI są skierowane w dół. Przyszyj szpilkę 11 LilyPad do rzędu 1, szpilkę 12 do rzędu 2 i tak dalej, aż szpilka A5 zostanie przyszyta do rzędu 9. Następnie przyszyj szpilkę 10 do skrajnej prawej kolumny. Aby przetestować tę pierwszą kolumnę, możesz użyć poniższego kodu. Prześlij kod i zasil LilyPad, podłączając go do komputera za pomocą płytki zaciskowej FTDI i kabla USB 2.0 A-męski na Mini-B.

Jeśli właściwy port nie jest dostępny po podłączeniu LilyPad, może być konieczne zainstalowanie sterownika FTDI dostępnego z poniższego łącza.

Instalacja sterownika FTDI

Gdy zaświeci się pierwsza kolumna diod LED, nadszedł czas, aby przyszyć resztę do kurtki. Jest to dość czasochłonny proces, dlatego najlepiej jest rozłożyć go na kilka dni. Upewnij się, że testujesz każdą kolumnę w miarę postępów. Możesz to zrobić, dostosowując powyższy kod, aby pin kolumny, którą chcesz przetestować, był zadeklarowany jako wyjście w konfiguracji, a następnie został ustawiony na LOW w pętli. Upewnij się, że pozostałe kołki kolumny są ustawione na WYSOKIE, ponieważ zapewni to ich wyłączenie.

Krok 4: Dodawanie przełącznika

Dodawanie przełącznika
Dodawanie przełącznika

Następnie możesz dodać przełącznik, który posłuży do zmiany ustawień na kurtce. Musi być wszyty po wewnętrznej stronie kurtki pod płytką LilyPad Arduino. Za pomocą przewodzącego gwintu końcówkę oznaczoną jako „off” należy podłączyć do masy, a końcówkę oznaczoną jako „on” podłączyć do pinu 2.

Możesz przetestować przełącznik, korzystając z poniższego kodu. Jest to bardzo proste i włącza dolną prawą diodę LED, jeśli przełącznik jest otwarty i wyłącza ją, jeśli przełącznik jest zamknięty.

Krok 5: Tworzenie bezprzewodowego urządzenia

Tworzenie bezprzewodowego urządzenia
Tworzenie bezprzewodowego urządzenia
Tworzenie bezprzewodowego urządzenia
Tworzenie bezprzewodowego urządzenia
Tworzenie bezprzewodowego urządzenia
Tworzenie bezprzewodowego urządzenia

Przygotowanie LilyPad XBee i XBee Explorer

Przygotuj LilyPad XBee do konfiguracji, przylutowując go do 6-pinowego męskiego złącza kątowego. Pozwoli to później na podłączenie go do komputera za pomocą płytki LilyPad FTDI Basic Breakout i kabla USB Mini. Przylutuj również zacisk baterii 9V do LilyPad XBee, czerwonym przewodem do styku „+”, a czarnym przewodem do styku „-”.

Podłącz płytkę Explorer do prototypowej osłony Arduino Mega. 5V i uziemienie na płycie Explorer będą wymagały podłączenia do 5V i uziemienia na Mega, pin wyjściowy w Explorerze będzie wymagał podłączenia do RX1 na Mega, a wejście na Explorerze będzie wymagało podłączenia do TX1 na Mega.

Konfiguracja XBees

Następnie należy skonfigurować XBees. Przede wszystkim musisz zainstalować oprogramowanie CoolTerm za darmo, które jest dostępne pod poniższym linkiem.

Oprogramowanie CoolTerm

Upewnij się, że w jakiś sposób rozróżniasz te dwie XBee, ponieważ ważne jest, aby ich nie pomylić.

Najpierw skonfiguruj XBee dla komputera. Włóż go do płytki LilyPad XBee Breakout i podłącz do komputera za pomocą podstawowej płytki breakout FTDI i kabla USB Mini. Otwórz CoolTerm i w opcjach wybierz odpowiedni port szeregowy. Jeśli go nie widzisz, spróbuj nacisnąć „Ponownie zeskanuj porty szeregowe”. Następnie upewnij się, że szybkość transmisji jest ustawiona na 9600, włącz lokalne echo i ustaw emulację klucza na CR. CoolTerm można teraz podłączyć do XBee.

Wpisz „+++” w głównym oknie, aby przełączyć XBee w tryb poleceń. Nie naciskaj powrotu. Umożliwi to skonfigurowanie go za pomocą poleceń AT. Jeśli to się udało, po bardzo krótkiej przerwie powinien pojawić się komunikat „OK”. Jeśli opóźnienie przekracza 30 sekund do następnej linii, tryb poleceń zostanie wyłączony i będzie trzeba to powtórzyć. Aby ustawić PAN ID, MY ID, Destination ID i zapisać zmiany, należy wprowadzić wiele poleceń AT. Return musi zostać uderzony po każdym z tych poleceń i można je zobaczyć w powyższej tabeli. Po wykonaniu tych czynności dla komputera XBee należy go odłączyć i ten sam proces należy przeprowadzić dla płaszcza XBee.

Możesz sprawdzić nowe ustawienia XBee, wpisując każde polecenie AT bez wartości na końcu. Na przykład, jeśli wpiszesz „ATID” i naciśniesz Enter, „1234” powinno zostać powtórzone.

Testowanie XBees

W tym momencie przyszyj LilyPad XBee do kurtki obok LilyPad Arduino. Następujące połączenia należy wykonać z przewodzącym gwintem:

  • 3,3 V na LilyPad XBee do „+” na LilyPad
  • Uziemić na LilyPad XBee do Uziemienia na LilyPad
  • RX na LilyPad XBee do TX na LilyPad
  • TX na LilyPad XBee do RX na LilyPad

Teraz urządzenie można przetestować, aby upewnić się, że XBees działały poprawnie. Poniższy kod o nazwie „Wireless_Test_Mega” należy przesłać do Arduino Mega, a jego głównym celem jest odbieranie komunikatów MIDI z prostej łatki Pure Data utworzonej wcześniej i przesyłanie różnych wartości za pośrednictwem XBee. Jeśli odebrana zostanie nuta MIDI o wysokości 60, zostanie przesłany komunikat „a”. Alternatywnie, jeśli zostanie odebrany komunikat informacyjny, zostanie przesłane „b”.

Oprócz tego do LilyPad należy przesłać poniższy kod o nazwie „Wireless_Test_LilyPad”. Odbiera wiadomości z Mega przez XBees i odpowiednio kontroluje dolną prawą diodę LED. Jeśli komunikat „a” zostanie odebrany, co oznacza, że nuta MIDI o wysokości 60 została odebrana przez Mega, dioda LED włączy się. Z drugiej strony, jeśli „a” nie zostanie odebrane, dioda LED zgaśnie.

Po przesłaniu kodu do obu płyt upewnij się, że osłona została ponownie włożona do Mega i jest podłączona do komputera za pomocą obu kabli. Włóż XBee komputera do płyty Explorer. Następnie upewnij się, że FTDI Breakout Board jest odłączona od kurtki i włóż kurtkę XBee do LilyPad XBee. Podłącz baterię 9V i spróbuj nacisnąć różne komunikaty w Pure Data. Prawa dolna dioda LED na kurtce powinna się włączać i wyłączać.

Krok 6: Ostatnie poprawki

Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki
Ostatnie poprawki

Kod i czysta łatka danych

Gdy będziesz zadowolony, że kurtka działa bezprzewodowo, prześlij poniższy szkic „MegaCode” do Arduino Mega, a szkic „LilyPadCode” do LilyPad. Otwórz łatkę Pure Data, upewniając się, że DSP jest włączone, a wejście audio jest ustawione na wbudowany mikrofon komputera. Spróbuj odtworzyć muzykę i przesuń przełącznik. Może być konieczne nieznaczne dostosowanie progów w Pure Data w zależności od tego, jak bardzo lub mało diody LED reagują na dźwięk.

Dodawanie nowej podszewki

Wreszcie, aby kurtka była bardziej estetyczna i wygodniejsza w noszeniu, do wnętrza kurtki można dodać kolejną podszewkę, aby zakryć szycie i elementy. Należy to zrobić za pomocą rzepów, aby umożliwić łatwy dostęp do obwodu w przypadku konieczności wprowadzenia jakichkolwiek zmian.

Najpierw przyszyj paski „pętelkowe” (bardziej miękka część) do kurtki po wewnętrznej stronie, wzdłuż góry i dołu po obu stronach. Dobrym pomysłem jest pozostawienie dna wolnego, ponieważ pozwoli to na dostanie się powietrza do elementów. Następnie wytnij kawałek materiału tego samego rozmiaru i przyszyj do niego „haczykowe” paski rzepu wzdłuż górnej i dolnej części po obu stronach. Ponadto, po tej samej stronie co rzep i w najdogodniejszym miejscu, przyszyj kieszeń, w której zmieści się bateria. Przykłady na zdjęciach powyżej.

Krok 7: Gotowe

Twoja bezprzewodowa kurtka Light Show Jacket powinna być teraz kompletna i skutecznie reagować na dźwięk! Jedno ustawienie powinno stworzyć efekt przypominający pasek amplitudy, a drugie powinno mieć indywidualne diody LED migające w rytm muzyki w zależności od wysokości dźwięku. Zobacz powyżej przykłady wideo. Jeśli się zastanawiałeś, kolor i tonacja są powiązane za pośrednictwem Zakonu Różokrzyżowców, który opiera się na samej intonacji. Mam nadzieję, że podobał Ci się ten projekt!

Zalecana: