Arduino Lilypad Interaktywny szalik do pasji: 7 kroków (ze zdjęciami)

Arduino Lilypad Interaktywny szalik do pasji: 7 kroków (ze zdjęciami)

Spisu treści:

Anonim

To był mój pierwszy raz z Arduino Lilypad. Chciałem wypróbować coś, co przez jakiś czas zajmowało się miękkimi obwodami. Ten projekt jest tym, co wymyśliłem. Koncepcja opiera się na moim przyjacielu Ethanie Dicks z wyłaniającego się projektu rzeźby owiec Fusefactory.org.

The Lilypad Interactive Szalik do pasji działa tak:

Szalik numer jeden noszony przez kogoś idącego samotnie rozjaśni się kolorem Niebieski dla samotnego. Kiedy noszący szalik numer dwa łączy się z numerem jeden, dwie chusty będą się wyczuwać, a następnie zapalać Czerwony dla miłości.

Przyszłe plany dotyku pojemności: co pozwoli na kolory Pulsuje na pasję jeśli jeden użytkownik dotyka inni noszą szalik.

Poniżej znajduje się film, dzięki któremu możesz zobaczyć, jak to działa. Proszę zauważyć, że jest to praca w toku, teraz mam tylko elektronikę osadzoną w jednym szaliku. Nadal pracuję nad ich udoskonalaniem. Proszę wypełnić, aby podzielić się swoimi pomysłami!

Kieszonkowe dzieci:

Krok 1: Materiały

Oto lista elementów potrzebnych do ukończenia tego projektu. W przypadku elementów Lilypad kupiłem wszystko od FunGizmos.com. Będziesz potrzebował dwóch z nich, aby zrobić dwa szaliki.

Wskazówka dotycząca oszczędności: Jeśli chcesz zaoszczędzić pieniądze, możesz mieć jedną z chust tylko działającą jako emiter, która potrzebuje tylko nadajnika podczerwieni i baterii.

Części elektroniczne

1. Lilypad Arduino Board

2. Trójkolorowa dioda LED Lilypad

3. Uchwyt na monety

4. Bateria pastylkowa 3 V 20 mm

(lub możesz użyć dowolnej płyty zasilania i baterii dla Lilypad)

5. Nici przewodzące

6. Płyta przycisków Lilypad (opcjonalnie)

7. (x2) Nadajnik podczerwieni i detektor fototranzystorowy - dostępne w RadioShack

8. Rezystory 10Kohm i 56ohm

9. FTDI Basic Breakout Board (używana do programowania Lilypad)

Składniki szalika - Dla potrzeb tkanin poszedłem do mojego lokalnego sklepu z rękodziełem.

1. Użyłem dwóch różnych kolorowych szalików z polaru

2. Dwa różne nadruki na tkaninie (miałem 1 yd każdego)

3. Klej Heat'n Bond Ultra Hold Iron-On Adhesive

4. Farba do tkanin

5. Żelazne łaty (opcjonalnie)

Krok 2: Tworzenie wzoru

Dla moich szalików chciałem płomieni dla projektów. Użyłem starego folderu plików i wyciągnąłem na nim kształty płomienia, aby użyć go jako wzoru.

Kiedy już miałem kształty wzoru, użyłem kleju do tkaniny i wyprasowałem go na spodniej stronie tkaniny. Klej ma papier z jednej strony (chcesz tę stronę do góry).

Z klejem teraz na tkaninie, śledziłem mój płomień na stronie papieru, a następnie wycinałem kształt. Nie usuwaj jeszcze papieru! Trzymaj to tak długo, aż będziesz gotowy do prasowania na szalik.

Wskazówka: Prasuj klej przed cięciem kształtów wzoru tkaniny. Dzięki temu Twoja tkanina nie będzie się smażyć!

Krok 3: Elektronika do szycia

MakeZine ma naprawdę świetny samouczek wideo Becky Stern na temat rozpoczęcia pracy z Lilypad. Właśnie o tym wspomniałem, kiedy zacząłem z tym projektem.

Jak widać na pierwszym zdjęciu, miałem płytkę mocy zbyt blisko Lilypad. Później musiałem to przenieść, gdy zacząłem szyć ślady mojego obwodu.

Rzeczywisty obwód jest całkiem prosty. Podłącz dodatnią moc i masę z akumulatora do Lilypad. Następnie pin out są następujące:

int statusPin = 13; // wbudowana dioda LED stanu jest podłączona do cyfrowego pinu 13

int redPin = 11; // R płatek na module LED RGB podłączonym do cyfrowego pinu 11

int greenPin = 9; // G płatek na module LED RGB podłączonym do cyfrowego pinu 9

int bluePin = 10; // Płatek B na module LED RGB podłączonym do cyfrowego pinu 10

int sensorPin = 5; // Fototranzystor IR podłączony do styku cyfrowego 5

int irPin = 6; // Dioda IR połączona z cyfrowym pinem 6

UWAGA: pełny szkic Arduino znajduje się na końcu tego Instruktażu

WSKAZÓWKA: Możesz użyć niektórych swoich kawałków materiału, aby zatrzymać ślady obwodu. Ważne jest, aby nie krzyżowały się ani nie dotykały, aby nie stworzyć krótkiego.

WSKAZÓWKA: Jak widać, spód szalika będzie wyglądał trochę brzydko, a ślady po obwodzie biegną przez niego. Możesz to zakryć, szyjąc kolejny szalik (zostawiając otwór do zaprogramowania Lilypad) lub wycinając szalik z dodatkowej tkaniny, której użyłeś do kształtowania wzoru.

Krok 4: Nadajnik podczerwieni i fototranzystor

Nadajnik podczerwieni to taki, który jest zabarwiony na kolor, a fototranzystor (detektor) to ten z przezroczystym pakietem.

Musisz dodać kilka rezystorów do nadajnika i detektora. Użyłem rezystora 10Kohm (brązowy, czarny, pomarańczowy) na detektorze i rezystora 56ohm (zielonego, niebieskiego, czarnego) dla emitera.

Aby ukryć komponenty, ponieważ emiter i detektor będą na przodzie szalika, użyłem łatki do naprasowywania. Skręciłem przewody każdego z nadajników i detektorów, a następnie użyłem noża dokładnego i wyciąłem „X” szczelinę w każdym z oczu. Pozwoliło mi to przepchnąć emiter i detektor przez patch.

Połączenie: Każdy z nadajników i detektorów podłącza się od POWER do RESISTOR do LILYPAD PIN do IR LED do GROUND. Zapoznaj się ze schematem na tym etapie, aby uzyskać lepsze zrozumienie. Więcej informacji na temat rezystorów pull up przez Make Online.

UWAGA: Pełny schemat jest na końcu tego Instruktażu.

WSKAZÓWKA: Nie będziesz w stanie zobaczyć diod LED podświetlanych. Jeśli przeglądasz je za pomocą aparatu cyfrowego, będziesz mógł. W moim filmie zauważysz, że emiter się świeci.

Krok 5: Wzory do naprasowania

Po przygotowaniu się do prasowania wzorów. Ustaw żelazko na średnie ciepło bez pary. Oderwij papierowy podkład i ułóż swoje wzory tam, gdzie chcesz je umieścić na szaliku.

Upewniłem się, że mogę ukryć jakąkolwiek przewodzącą nitkę, która będzie widoczna.

W zależności od materiału szalika nie chcesz zbyt długo trzymać żelazka w jednym miejscu. Użyłem polaru, więc musiałem się szybko poruszać i szybko naciskać, aby nie stopić się i / lub nie spalić tkaniny.

Gdy wszystko zostało wyprasowane na szaliku, przeszedłem przez krawędzie za pomocą farby tkaninowej. Pomaga to w dwóch celach. Pomaga utrzymać tkaninę w bezpiecznym miejscu, a także dodaje odrobinę popu do kształtów.

WSKAZÓWKA: Pozostaw tkaninę do wyschnięcia przez noc w ciepłym miejscu. Pomoże to wyschnąć farbie. Jeśli miałbyś to w zimnym garażu lub czymś innym, farba pęknie.

UWAGA: Jeśli podoba Ci się szycie lub maszyna do szycia, możesz zszyć wzory. Nie jestem jeszcze na tym poziomie, więc to był dla mnie najłatwiejszy sposób.

Krok 6: Szkic Arduino

Do tego kroku dodałem oryginalny szkic rzeźby owiec Ethana Dicksa. Dodam zaktualizowany plik szkicu w późniejszym terminie, gdy sfinalizuję projekt. To przynajmniej pozwoli Ci zacząć od dwóch roboczych szalików.

/ * ++ Owca - Użyj kombinacji diod RGB i IR oraz fotosensora, aby naśladować reakcje reaktywne na tłum (wyłaniające się). Kod ten jest związany z Warsztatem Fabryki Bezpieczników „Wywołać rzeźbę z Arduino” http: // thefusefactory. org / 2009/09/03 / make-an-emergent-behavior-sculpture-with-the-arduino / The scultpture, czyli „sheep”, to artystyczny zestaw zestawu Lilypad Pro (baza Lilypad dołączona do zasilania Lilipad 5V)) z trójkolorową diodą LED zamontowaną na MCU 328V na płycie Lilypad. Protoboard duża Lilypad znajduje się pomiędzy zasilaczem a samą Lilypad, aby kierować zasilanie i utrzymywać rezystory i komponenty IR. Iluzja kwadratu jest uzupełniona diodami LED o mocy 1W i 2W przylutowanymi do „korpusu” zasilacza i wygiętymi jako nogi. Kod zależy od trwałej zmiennej zwanej „nastrojem” - gdy wynosi zero lub jest bliski zeru, owca jest „szczęśliwa”. Poniżej zera i owce są „samotne”; powyżej zera, a owce czują się zatłoczone lub wzburzone. Samotność jest reprezentowana przez niebieski, szczęście przez zielony, a poruszenie przez czerwony. Pomiędzy wyrażaniem „nastroju” (za pomocą PWM do cieniowania LED RGB) główna część kodu sprawdza impulsy podczerwieni od innych owiec i może emitować własne impulsy, aby „wywołać” inne owce. Dostosowując wewnętrzne zmienne, owce mogą być mniej lub bardziej wrażliwe na wezwania innych owiec. Wyłaniające się zachowanie pojawia się, gdy wiele owiec jest składanych i umieszczanych na stole, nawołujących się nawzajem. Rozbłysk impulsów podczerwieni może skłonić owce do bycia szczęśliwymi, a może nawet wzburzonymi. Niewiele impulsów i owca wykazują samotność. Sheep.pde - przekształć Arduino w wyłaniającą się rzeźbę praw autorskich Copyright (C) 2009, Ethan Dicks Ten program jest wolnym oprogramowaniem: możesz go rozpowszechniać i / lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU opublikowanej przez Wolne Oprogramowanie Foundation, albo wersja 3 licencji, albo (według twojego wyboru) dowolna późniejsza wersja. Ten program jest rozpowszechniany w nadziei, że będzie przydatny, ale BEZ ŻADNEJ GWARANCJI; bez nawet dorozumianej gwarancji PRZYDATNOŚCI HANDLOWEJ lub PRZYDATNOŚCI DO OKREŚLONEGO CELU. Więcej informacji można znaleźć w Powszechnej Licencji Publicznej GNU. Powinieneś otrzymać kopię GNU General Public License wraz z tym programem. Jeśli nie, zobacz.-- * // * ++ Inicjalizacja zmiennej - przed rozpoczęciem kodu umieść wszystkie parametry regulowane przez użytkownika na górze, aby były łatwe do dostosowania. - * /// Definicje wartości „nastroju” #define MOODMAX 80 #define MOODMIN (-1 * MOODMAX) #define LONELY (MOODMIN) #define HAPPY (0) #define CROWDED (MOODMAX) #define MSTEPS 5 #define BLEAT_VOLUME 1 // Globalne definicje przydziałów pinów (aby uprościć poszczególne wywołania funkcji) int statusPin = 13; // wbudowana dioda LED stanu jest podłączona do cyfrowego pin 13int redPin = 11; // R płatek na module LED RGB podłączonym do styku cyfrowego 11int greenPin = 9; // G płatek na module LED RGB podłączonym do styku cyfrowego 9int bluePin = 10; // B płatek na module LED RGB podłączonym do cyfrowego pinu 10int sensorPin = 5; // Fototranzystor IR podłączony do styku cyfrowego 5int irPin = 6; // LED IR podłączony do cyfrowego pin 6 // Rozpocznij spodziewając się, że będziesz szczęśliwy w nastroju = SZCZĘŚLIWY; // Śledź sens wejścia pinint eye = 0; // I pamiętaj, jak „głośno” jesteśmy „beczący” (miganie naszej diody IR) int bleat = BLEAT_VOLUME; / * ++ setup () - Środowisko Arduino wywoła kod w setup () tylko raz, zaraz po zresetowaniu tablicy. Umieść kod w tej funkcji, aby zainicjować piny I / O i takie - rzeczy, które muszą być wykonane tylko raz podczas uruchomienia. --*/unieważnićUstawiać() {// do debugowania Serial.begin (9600); Serial.println („Sheep v0.02”); // Przeważnie nasze piny I / O są wyjściami do diod LED pinMode (statusPin, OUTPUT); // ustawia statusPin na wyjściowy pinMode (redPin, OUTPUT); // ustawia redPin na pinMode wyjściowy (greenPin, OUTPUT); // ustawia greenPin na wyjściowy pinMode (bluePin, OUTPUT); // ustawia bluePin na wyjściowy pinMode (irPin, OUTPUT); // ustawia irPin na wyjście // Wyjątkiem jest fototranzystor IR pinMode (sensorPin, INPUT); // ustawia sensorPin jako wejściowy Serial.print ("Ustawienie IR 'bleat' to"); Serial.println (bleat); analogWrite (irPin, bleat); } / * ++ loop () - środowisko Arduino wywoła kod w tej pętli na zawsze. Umieść tutaj interesujące rzeczy, które mają działać bez końca po jednorazowym wywołaniu setup (). Jedynym wyjściem z tej pętli jest zresetowanie karty. --*/unieważnićpętla() // powtarzaj w kółko {// Ustaw naszą diodę RGB tak, aby odzwierciedlała nasz „nastrój”, która, miejmy nadzieję, zmieni się od czasu do czasu set_mood (nastrój); // Zwolnij, jak szybko reagujemy na inne „owcze” opóźnienie (100); // opóźnienie dla.1 sekundy // sensorPin ma rezystor pulsu 10K, więc * nie * światło zgłasza 1. Musimy // odwrócić logiczny sens szpilki, jeśli chcemy myśleć o świetle logicznie // jako 1 -is-on / 0-is-off eye = 1 - digitalRead (sensorPin); // ustaw oko na 1, jeśli „zobaczymy” jakiekolwiek światło IR // Za każdym razem zgłaszaj nasz obecny stan za pomocą pętli Serial.print („Nastrój jest”); Serial.print (nastrój); Serial.print („. Sensor is”); Serial.println (eye); // Jeśli zobaczymy impulsy od innej „owcy”, zwiększmy nastrój, ale nie miniemy MOODMAX jeśli (oko) {// ponieważ ludzie nie mogą „zobaczyć” światła podczerwonego, należy użyć diody statusu jako wskaźnika widocznego digitalWrite (statusPin, HIGH); // wykrywanie wejścia echa IR w nastroju diody LED stanu + = MSTEPS * 2; if (mood> MOODMAX) {mood = MOODMAX; }} // Jeśli nie widzimy żadnych impulsów podczerwieni, zmniejsz nastrój, ale nie poniżej MOODMIN else {//, ponieważ ludzie nie mogą "zobaczyć" światła podczerwonego, użyj diody LED statusu jako wskaźnika widocznego digitalWrite (statusPin, LOW); // echo wykrywanie wejścia IR w nastroju diody LED stanu - = 1; if (mood <MOODMIN) {mood = MOODMIN; }}} / * ++ set_mood - konwersja „nastroju” na schemat kolorów Nastrój zmienia się od pewnej liczby ujemnej do tej samej wartości jako liczba dodatnia (do tej pory -80 / + 80 i -100 / + 100 dają rozsądne wyniki). Proporcjonalnie kontinuum nastroju do odwzorowania kolorów przypomina: Nastrój -100 0 +100 Samotny -> Szczęśliwy -> CrowdedR 0 0 0 30 100G 0 30 100 70 0B 100 70 0 0 0 - * / void set_mood (int mood) {// Zacznij od wyłączenia każdego koloru - dostosuj w górę na podstawie „nastroju” unsignedchar redness = 0; unsignedchar greenness = 0; unsignedchar blueness = 0; #ifdef DEBUG Serial.print („Nastrój jest”); Serial.println (nastrój); #endif // blueness polega na tym, że nastrój jest mniej niż szczęśliwy, jeśli (nastrój <HAPPY) {blueness = abs (nastrój); greenness = MOODMAX + nastrój; } // zaczerwienienie polega na tym, że nastrój jest czymś więcej niż happy elseif (nastrój> SZCZĘŚLIWY) {zaczerwienienie = nastrój; greenness = MOODMAX - nastrój; } // greenness dotyczy otaczającego nastroju happy else {greenness = MOODMAX; } // Ustaw diodę LED tak, aby odzwierciedlała nasz obecny kolor nastroju (zaczerwienienie, zieleń, błękit); } / * ++ kolor (r, g, b) - ustaw trójkolorową diodę LED na żądaną wartość koloru Używa analogWrite (pin, wartość) do ustawienia wartości PWM dla każdego pojedynczego koloru diody LED Trójkolorowa dioda LED to wspólna urządzenie anodowe, więc aby zrobić światło, uziemiamy pożądany pin. Aby odwrócić kształt fali PWM, odejmujemy nasze pożądane natężenie od 255, tak że, na przykład, jeśli chcemy wyłączyć kolor czerwony, logicznie, przechodzimy wokół wartości zero, ale ustawiamy wartość PWM na 255, tak aby pin był napędzany wysoko 100% czasu.Aby uzyskać kolor czerwony do maksymalnej jasności, przechodzimy wokół wartości logicznej 255, ale ustawiamy wartość PWM na 0, ciągnąc tę ​​szpilkę nisko 100% czasu. * / Void color (unsignedchar red, unsignedchar green, unsignedchar blue) // funkcja generująca kolory {#ifdef DEBUG Serial.print ("color ("); Serial.print (red, HEX); Serial.print (blue, HEX); Serial.print (green, HEX); Serial. println (")"); #endif // odwraca sens wartości PWM podczas wywoływania analogWrite () dla każdego koloru analogWrite (redPin, 255-czerwony); analogWrite (bluePin, 255-niebieski); analogWrite (greenPin, 255-zielony); }

Krok 7: Schemat

Schemat jest dołączony do tego kroku jako plik Adobe PDF. To był oryginalny plik owiec, ale ustawiłem szaliki tą samą metodą.

Jeśli dodasz do tego pomysł, który mam nadzieję, że niektórzy … napiszą do mnie, chciałbym zobaczyć, co dodali inni.

- Think It - Build It - Share It -

www.ArduinoFun.com