Obsah:
- Krok 1: Zbierajte materiály
- Krok 2: Vytvorenie obvodov
- Krok 3: Navrhovanie rukavice
- Krok 4: Spájkovanie
- Krok 5: Kódovanie
- Krok 6: Zmeny
Video: Rytmus rúk: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Táto cyberglove je o tom, správny krok v správny okamih.
Svetlá prechádzajú z vašej ruky (lakťa) do vašej ruky, a keď sa vám svetlá dostanú do ruky, musíte pritlačiť prsty na mini fotobunku.
Ak v správnom momente stlačíte ruku na mini fotobunku, diódy sa rozsvietia na zeleno. Ak tomu tak nie je, LED začervená.
Krok 1: Zbierajte materiály
- Rukavica
- Fabric, aby rukavice dlhšie
- LED pás WS2812B
- Drôty
- Arduino
- Mini fotosell
Krok 2: Vytvorenie obvodov
Najprv pripojte LED pás k arduinu. Môžete to urobiť pripojením +5v k 5v na arduino. Din musí byť pripojený k A0 na arduino a GND musí byť pripojený k GND na arduino.
Mini fotobunku musíte tiež pripojiť k arduinu pripojením k 5V vodiču z LED diódy a z rovnakého zdroja pomocou drôtu na PIN 6 na arduine. Druhá strana mini fotobunky musí byť pripojená k vodiču GND z LED pásky
Krok 3: Navrhovanie rukavice
Rukavice musia mať správnu veľkosť, aby sa zmestili prúžky viedli. LED diódy musia byť zarovnané, aby bol príjemnejší na pohľad.
Pri tejto hre musíte použiť ruku a chcete, aby ste sa mohli voľne pohybovať. To možno dosiahnuť tým, že Arduino na rukavicu. Na pripevnenie arduina k rukavici som použil suchý zips ako zapínanie. Potom, aby ste dosiahli väčšiu stabilitu, môžete okolo rukavice a okolo arduina položiť lano.
Mini fotobunka bola všitá dovnútra rukavice, takže zostane na svojom mieste.
V neposlednom rade budete musieť skryť drôty, aby to vyzeralo lepšie. To sa dá dosiahnuť látkou, ktorá bude prišitá na vrch drôtov.
Krok 4: Spájkovanie
Teraz môžete spájacie vodiče z obvodu zaistiť spájkovaním.
Krok 5: Kódovanie
// Základný každodenný testovací program pásikov NeoPixel.
// NAJLEPŠIE POSTUPY NEOPIXELU pre najspoľahlivejšiu prevádzku: // - Pridajte 1000 uF KAPACITORU medzi spoje + a - na páse NeoPixel. // - MINIMALIZUJTE DĹŽKU zapojenia medzi doskou mikrokontroléra a prvým pixelom. //-DATA-IN prúžku NeoPixelu by mal prechádzať cez 300-500 OHM odpor. // - VYHNITE SA prepojeniu NeoPixelov na ŽIVOM OBVODE. Ak musíte, VŽDY // najskôr pripojte GROUND (-), potom +, potom dáta. //-Pri použití 3,3 V mikrokontroléra s 5V napájaným pásikom NeoPixel // LOGIC-LEVEL CONVERTER na dátovom vedení DOPORUČUJEME. // (Ich preskočenie môže na vašom pracovnom stole fungovať dobre, ale v poli môže zlyhať)
#include #ifdef _AVR_ #include // Vyžadované pre 16 MHz Adafruit Trinket #endif
// Ktorý pin na Arduine je pripojený k NeoPixels? // Na cetke alebo Gemme navrhujeme zmeniť toto na 1: #define LED_PIN 6
// Koľko NeoPixels sú pripojené k Arduino? #define LED_COUNT 60
// Deklarujte náš objekt pásu NeoPixel: pás Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t farba = pásik. Farba (127, 127, 127); // Biela farba, predvolene bool clickedCorrectly = false; // Argument 1 = počet pixelov v páse NeoPixel // Argument 2 = počet pinov Arduino (väčšina z nich je platná) // Argument 3 = vlajky typu pixelov, sčítajte podľa potreby: // NEO_KHZ800 800 KHz bitstream (väčšina produktov NeoPixel w/ LED WS2812) // NEO_KHZ400 400 KHz (klasické „v1“(nie v2) pixely FLORA, ovládače WS2811) // Pixely NEO_GRB sú zapojené pre bitový tok GRB (väčšina produktov NeoPixel) // Pixely NEO_RGB sú zapojené pre bitový tok RGB (v1 pixelov FLORA, nie v2) // NEO_RGBW Pixely sú zapojené pre bitový tok RGBW (produkty NeoPixel RGBW)
// funkcia setup () - prebieha raz pri štarte --------------------------------
void setup () {// Tieto linky sú konkrétne na podporu Adafruit Trinket 5V 16 MHz. // Akúkoľvek inú dosku môžete odstrániť, ale nie je na škodu ju ponechať: #if defined (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END of Trinket-špecifický kód.
pinMode (A0, INPUT); strip.begin (); // INICIALIZUJTE objekt objektu NeoPixel (POVINNÝ) strip.show (); // VYPNITE všetky pixely ASAP strip.setBrightness (10); // Nastavte BRIGHTNESS na približne 1/5 (max = 255)}
// funkcia loop ()-beží opakovane, pokiaľ je doska zapnutá ---------------
void loop () {clickedCorrectly = TheaterChaseOne (farba); if (clickedSprávne) {color = strip. Color (0, 255, 0); } else {color = strip. Color (255, 0, 0); }}
// Niektoré naše vlastné funkcie na vytváranie animovaných efektov -----------------
// Divadlo-stan v štýle naháňa svetla. Prejdite farbou (32-bitová hodnota, // pásik la. Farba (r, g, b), ako je uvedené vyššie), a čas oneskorenia (v ms) // medzi snímkami. bool TheaterChaseOne (farba uint32_t) {bool correct = false; BOOL clickedWrong = false; pre (int index = 0; index 800) {// hodnota svetelného senzora if (index <16) {// 2 LED pred koncom, potom môžete kliknúť na color = strip. Color (255, 0, 0); // červená LED dióda klikla Nesprávne = true; // klikli zle, potom diódy sčervenali} else if (! clickedWrong) {// ak nie zle color = strip. Color (0, 255, 0); // farba zelená LED diódy korigovať = true; // klikli ste správne, potom sa LED diódy zazelenajú}} strip.clear (); strip.setPixelColor (17 - index, farba); // prvý riadok LED svetiel strip.setPixelColor (18 + index, farba); // druhý riadok LED svetiel strip.setPixelColor (53 - index, farba); // tretia rada led svetiel strip.show (); oneskorenie (300); } Vráti správne; }
Krok 6: Zmeny
Urobil som nejaké zmeny. Za prvé som arduino schoval, takže by bolo pohodlnejšie používať „ruku Rythma“a za druhé som trochu zmenil kód. Zmenil som kód tak, aby keď v správnom momente stlačíte, farba sa zmení na zelenú a LED diódy sa pohybujú rýchlejšie. Tým LED pomyje stala pred 10% rýchlejší ako. Vďaka tomu je hra zaujímavejšia
Takto vyzerá kód teraz:
// Základné každodenné NeoPixel testovací prúžok programu. // NAJLEPŠIE POSTUPY NEOPIXELU pre najspoľahlivejšiu prevádzku: // - Pridajte 1000 uF KAPACITORA medzi spoje + a - na páse NeoPixel. // - MINIMALIZUJTE DĹŽKU zapojenia medzi doskou mikrokontroléra a prvým pixelom. //-DATA-IN prúžku NeoPixelu by mal prechádzať cez 300-500 OHM odpor. // - VYHNITE SA prepojeniu NeoPixelov na ŽIVOM OBVODE. Ak musíte, VŽDY // najskôr pripojte GROUND (-), potom +, potom dáta. //-Pri použití 3,3 V mikrokontroléra s 5V napájaným pásikom NeoPixel // LOGIC-LEVEL CONVERTER na dátovom vedení DOPORUČUJEME. // (Ich preskočenie môže na vašom pracovnom stole fungovať dobre, ale v teréne môže zlyhať) #include #ifdef _AVR_ #include // Vyžadované pre 16 MHz Adafruit Trinket #endif // Ktorý pin na Arduine je pripojený k NeoPixels? // Na Trinket alebo Gemma navrhujeme zmeniť toto na 1: #define LED_PIN 6 // Koľko NeoPixelov je pripojených k Arduinu? #define LED_COUNT 60 // Deklarujte náš objekt pásu NeoPixel: pás Adafruit_NeoPixel (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t farba = pásik. Farba (127, 127, 127); // Biela farba, predvolene bool clickedCorrectly = false; int index = 0; int interval = 300; int výsledok = 0; unsigned long previousMs = Millis (); // Argument 1 = počet pixelov v páse NeoPixel // Argument 2 = počet pinov Arduino (väčšina z nich je platná) // Argument 3 = vlajky typu pixelov, sčítajte podľa potreby: // NEO_KHZ800 800 KHz bitstream (väčšina produktov NeoPixel w/ LED WS2812) // NEO_KHZ400 400 KHz (klasické „v1“(nie v2) pixely FLORA, ovládače WS2811) // Pixely NEO_GRB sú zapojené pre bitový tok GRB (väčšina produktov NeoPixel) // Pixely NEO_RGB sú zapojené pre bitový tok RGB (v1 pixelov FLORA, nie v2) // NEO_RGBW Pixely sú zapojené pre bitový tok RGBW (produkty NeoPixel RGBW) // funkcia setup ()-spustí sa raz pri štarte -------------------- ------------ void setup () {// Tieto riadky sú určené špeciálne na podporu Adafruit Trinket 5V 16 MHz. // Akúkoľvek inú dosku môžete odstrániť, ale nie je na škodu ju ponechať: #if defined (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END kódu špecifického pre Trinket. Serial.begin (9600); while (! Serial) {; // počkajte na pripojenie sériového portu. Potrebné iba pre natívny port USB} pinMode (A0, INPUT); strip.begin (); // INICIALIZUJTE objekt objektu NeoPixel (POVINNÝ) strip.show (); // VYPNITE všetky pixely ASAP strip.setBrightness (10); // Nastavte BRIGHTNESS na asi 1/5 (max = 255)} // funkcia loop ()-beží opakovane, pokiaľ je doska zapnutá --------------- void loop () {unsigned long currentMs = millis (); // Získanie aktuálnej hodnoty času int = analogRead (A0); // Čítanie aktuálneho svetelného senzora if (hodnota> 900 && result == 0) {// Ak je senzor stlačený a zatiaľ nebol zaznamenaný žiadny výsledok, spustite zachytenie výsledku if (index = interval) {// Skontrolujte, či je aktuálny slučka presahuje interval previousMs = currentMs; // nastaviť nový interval na aktuálny čas + intervale indexu + = 1; // Nastavte diódy v slučke o krok ďalej, ak (index> 17) {// Spustí koniec spracovania slučky index = 0; if (result == 2) {// Na správnom výsledku interval = = (int) max ((interval * 0,95), 50); // Zrýchlenie o 10%, interval až 50 ms/ farba = pásik. Farba (0, 255, 0); // Nastavte diódy na zelené} else if (result == 1) {// Na nesprávnom výsledku = 300; // Reset intervalu color = strip. Color (255, 0, 0); // Nastavte diódy na červené} else {// Žiadny výsledok zachytená farba = pás. Color (255, 0, 0); // Nastaviť LED diódy na červené} result = 0; // Resetovanie výsledku pre ďalšiu slučku} TheaterChaseOne (farba, index); // rozsvieti LED pre indikáciu. }} // Niektoré vlastné funkcie na vytváranie animovaných efektov ----------------- // Prenasledujúce svetlá v štýle divadla. Prejdite farbou (32-bitová hodnota, // a la pásik. Farba (r, g, b) ako je uvedené vyššie) a čas oneskorenia (v ms) // medzi snímkami. neplatné divadloChaseOne (uint32_t farba, int index) {strip.clear (); strip.setPixelColor (17 - index, farba); // prvý riadok LED svetiel strip.setPixelColor (18 + index, farba); // druhý riadok LED svetiel strip.setPixelColor (53 - index, farba); // tretia rada led svetiel strip.show (); }
Odporúča:
Automatický hlásič umývania rúk: 5 krokov
Automatický hlásič umývania rúk: Je to stroj, ktorý môže niekoho upozorniť, keď prejde dverami. Cieľom je pripomenúť niekomu, aby si po návrate domov umyl ruky. V prednej časti škatule je ultrazvukový senzor snímajúci niekoho, kto vojde
DIY bezkontaktný dávkovač dezinfekcie rúk bez Arduina alebo mikrokontroléra: 17 krokov (s obrázkami)
DIY bezkontaktný dávkovač dezinfekcie rúk bez Arduina alebo mikrokontroléra: Ako všetci vieme, vypuknutie ochorenia COVID-19 zasiahlo svet a zmenilo náš životný štýl. V tomto stave sú alkohol a dezinfekčné prostriedky na ruky životne dôležité tekutiny, musia sa však používať správne. Dotýkanie sa nádob s alkoholom alebo dezinfekčných prostriedkov na ruky infikovanými rukami
Bojujte proti koronavírusu: Časovač jednoduchého umývania rúk: 8 krokov (s obrázkami)
Boj s koronavírusom: Jednoduchý časovač umývania rúk: So súčasnou pandémiou vo svete sa situácia zdá byť strašidelná. Vírus Corona môže byť kdekoľvek. Pokiaľ vieme, jeden by mohol prenášať vírus niekoľko dní bez toho, aby dokonca vykazoval akékoľvek príznaky. Skutočne strašidelné. Ale hej, nebojte sa.
Labky na umývanie - Mačka sa stretáva s projektom umývania rúk Covid: 5 krokov (s obrázkami)
Paws to Wash - Mačka sa stretáva s projektom umývania rúk Covid: Keďže sa všetci doma dištancujeme, Paws to Wash je DIY projekt, ktorý prevedie rodičov a deti procesom budovania roztomilého časovača spätnej väzby s mávajúcou mačkou, aby podporil zdravé návyky umývania rúk. V čase Covid-19 si umývanie rúk
Nástroj na výučbu umývania rúk: 11 krokov
Nástroj na výučbu umývania rúk: Tento projekt som urobil pre vysokoškolský kurz. Cieľom výrobku je posilniť u detí dobré návyky pri umývaní rúk. Zakaždým, keď sa umývadlo zapne, obvodové ihrisko sa aktivuje a potom, ak sa vydá mydlo, obvodové ihrisko zaznamená