INHOUDSOPGAWE:
- Stap 1: Versamel materiaal
- Stap 2: Maak stroombane
- Stap 3: Ontwerp die handskoen
- Stap 4: Soldeer
- Stap 5: Kodering
- Stap 6: Veranderinge
Video: Ritmehand: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Hierdie cyberglove gaan oor die regte skuif op die regte oomblik.
Die ligte gaan van u arm (elmboog) na u hand, en as die ligte by u kom, moet u met u vingers op die mini -fotosel druk.
As u op die regte oomblik met u hand op die mini -fotosel druk, word die LED's groen. Indien nie, word die LED's rooi.
Stap 1: Versamel materiaal
- 'N Handskoen
- Stof om die handskoen langer te maak
- WS2812B LED strook
- Drade
- Arduino
- Mini fotosel
Stap 2: Maak stroombane
Koppel eers die ledstrook aan die arduino. U kan dit doen deur die +5v aan die 5v op die arduino te koppel. Die Din moet gekoppel wees aan A0 op die arduino en die GND moet aan die GND op die arduino gekoppel word.
U moet ook die mini -fotosel aan die arduino koppel deur aan te sluit op die 5v -draad vanaf die ledstrook en vanaf dieselfde bron wat met 'n draad verbind word met PIN 6 op die arduino. Die ander kant van die mini -fotosel moet vanaf die LED -strook aan die GND -draad gekoppel word
Stap 3: Ontwerp die handskoen
Die handskoen moet die regte grootte hê om by die LED -stroke te pas. Die LED's moet in lyn gebring word om aangenamer te maak.
Vir hierdie speletjie moet u u arm gebruik en u wil vrylik kan beweeg. Dit kan besef word deur die arduino op die handskoen te sit. Ek het klittenband as 'n sluiting gebruik om die arduino aan die handskoen te plak. Om meer stabiliteit te verseker, kan u 'n tou om die handskoen en om die arduino sit.
Die mini -fotosel is in die handskoen vasgewerk sodat dit op sy plek bly.
Uiteindelik moet u die drade verberg om dit beter te laat lyk. Dit kan gedoen word met stof wat bo -op die drade vasgewerk word.
Stap 4: Soldeer
Nou kan u die verbindingsdrade uit die kring veilig maak deur te soldeer.
Stap 5: Kodering
// 'n Basiese daaglikse NeoPixel -strook -toetsprogram.
// BESTE PRAKTYKE VAN NEOPIXEL vir die betroubaarste werking: // - Voeg 1000 uF KAPASITEER by tussen die + en - verbindings van NeoPixel strip. // - MINIMALE BEDRADINGSLENGTE tussen mikrokontrollerbord en eerste pixel. //-Die DATA-IN van NeoPixel-strook moet deur 'n weerstand van 300-500 ohm gaan. // - VERMY om NeoPixels aan te sluit op 'n LIVE CIRCUIT. As u moet, moet ALTYD // eers GROUND (-) koppel, dan +, dan data. //-By die gebruik van 'n 3.3V-mikrobeheerder met 'n 5V-aangedrewe NeoPixel-strook, // word 'n LOGIESE VLAKKONVERTER op die datalyn sterk aanbeveel. // (dit kan goed werk op u werkbank, maar dit kan misluk in die veld)
#include #ifdef _AVR_ #include // Vereis vir 16 MHz Adafruit Trinket #endif
// Watter pen op die Arduino is aan die NeoPixels gekoppel? // Op 'n snuistery of Gemma stel ons voor dat u dit verander na 1: #define LED_PIN 6
// Hoeveel NeoPixels is aan die Arduino gekoppel? #definieer LED_COUNT 60
// Verklaar ons NeoPixel -strookvoorwerp: Adafruit_NeoPixel -strook (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Wit kleur, vir standaard bool clickCorrect = false; // Argument 1 = Aantal pixels in NeoPixel -strook // Argument 2 = Arduino -speldnommer (die meeste is geldig) // Argument 3 = Pixel -tipe vlae, voeg by indien nodig: // NEO_KHZ800 800 KHz bitstroom (die meeste NeoPixel -produkte w/ WS2812 LED's) // NEO_KHZ400 400 KHz (klassieke 'v1' (nie v2) FLORA -pixels, WS2811 -bestuurders) // NEO_GRB Pixels is bedraad vir GRB -bitstroom (die meeste NeoPixel -produkte) // NEO_RGB Pixels is bedraad vir RGB -bitstroom (v1 FLORA -pixels, nie v2) // NEO_RGBW Pixels word bedraad vir RGBW -bitstroom (NeoPixel RGBW -produkte)
// setup () funksie-loop een keer by die aanvang --------------------------------
void setup () {// Hierdie reëls is spesifiek ter ondersteuning van die Adafruit Trinket 5V 16 MHz. // Enige ander bord, u kan hierdie deel verwyder (maar sonder om dit te laat): #as gedefinieer (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // EINDE van Trinket-spesifieke kode.
pinMode (A0, INVOER); strip.begin (); // INITIALISEER NeoPixel -strookvoorwerp (VEREIST) strip.show (); // Skakel alle pixels so gou as moontlik strip.setBrightness (10) af; // Stel BRIGHTNESS op ongeveer 1/5 (maksimum = 255)}
// loop () funksie-loop herhaaldelik solank die bord aan is ---------------
leemte -lus () {clickedCorrectly = theaterChaseOne (kleur); as (reg geklik) {color = strip. Color (0, 255, 0); } anders {color = strip. Color (255, 0, 0); }}
// Sommige van ons eie funksies vir die skep van geanimeerde effekte -----------------
// Teater-markiestyl-agtige ligte. Gee 'n kleur in (32-biswaarde, // a la strook. Kleur (r, g, b) soos hierbo genoem), en 'n vertragingstyd (in ms) // tussen rame. bool theaterChaseOne (uint32_t color) {bool correct = false; bool clickedWrong = false; vir (int indeks = 0; indeks 800) {// waarde ligsensor as (indeks <16) {// 2 LED's voor einde, kan u op color = strip. Color (255, 0, 0) klik; // rooi kleur leds clickedWrong = true; // verkeerd geklik dan word LED's rooi} anders as (! clickedWrong) {// indien nie verkeerd nie kleur = strip. Color (0, 255, 0); // groen kleur leds korrek = waar; // reg geklik dan word LEDs groen}} strip.clear (); strip.setPixelColor (17 - indeks, kleur); // eerste ry ledligte strip.setPixelColor (18 + indeks, kleur); // tweede ry ledligte strip.setPixelColor (53 - indeks, kleur); // derde ry ledligte strip.show (); vertraging (300); } korrek terugstuur; }
Stap 6: Veranderinge
Ek het 'n paar veranderinge aangebring. Eerstens het ek die arduino weggesteek sodat dit gemakliker sou wees om die "Rythm hand" te gebruik, en tweedens het ek die kode 'n bietjie verander. Ek het die kode verander sodat die kleur groen word en die LED's vinniger beweeg as u op die regte oomblik druk. Deur dit te doen, word die LED Swill 10% vinniger as voorheen. Dit maak die spel interessanter
Dit is hoe die kode nou is:
// 'n Basiese daaglikse NeoPixel -strook -toetsprogram. // BESTE PRAKTYKE VAN NEOPIXEL vir die betroubaarste werking: // - Voeg 1000 uF KAPASITEUR by tussen die + en - verbindings van NeoPixel strook. // - MINIMALE BEDRADINGSLENGTE tussen mikrokontrollerbord en eerste pixel. //-Die DATA-IN van NeoPixel-strook moet deur 'n weerstand van 300-500 ohm gaan. // - VERMIJD dat jy NeoPixels verbind op 'n LIVE CIRCUIT. As u moet, moet u ALTYD // eers GROUND (-) koppel, dan +, dan data. //-By die gebruik van 'n 3.3V-mikrobeheerder met 'n 5V-aangedrewe NeoPixel-strook, // word 'n LOGIESE VLAKKONVERTER op die datalyn sterk aanbeveel. // (dit kan goed werk op u werkbank, maar dit kan misluk in die veld) #include #ifdef _AVR_ #include // Vereis vir 16 MHz Adafruit Trinket #endif // Watter pen op die Arduino is aan die NeoPixels gekoppel? // Op 'n snuistery of Gemma stel ons voor dat u dit verander na 1: #define LED_PIN 6 // Hoeveel NeoPixels is aan die Arduino gekoppel? #define LED_COUNT 60 // Declare our NeoPixel strip object: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Wit kleur, by verstek bool clickCorrect = false; int indeks = 0; int interval = 300; int resultaat = 0; ongetekende lang vorigeMs = millis (); // Argument 1 = Aantal pixels in NeoPixel -strook // Argument 2 = Arduino -speldnommer (die meeste is geldig) // Argument 3 = Pixel -tipe vlae, voeg by indien nodig: // NEO_KHZ800 800 KHz bitstroom (die meeste NeoPixel -produkte w/ WS2812 LED's) // NEO_KHZ400 400 KHz (klassieke 'v1' (nie v2) FLORA -pixels, WS2811 -bestuurders) // NEO_GRB Pixels is bedraad vir GRB -bitstroom (die meeste NeoPixel -produkte) // NEO_RGB Pixels is bedraad vir RGB -bitstroom (v1 FLORA -pixels, nie v2) // NEO_RGBW Pixels word bedraad vir RGBW-bitstroom (NeoPixel RGBW-produkte) // setup () -funksie-loop een keer by die aanvang -------------------- ------------ leemte-opstelling () {// Hierdie reëls is spesifiek ter ondersteuning van die Adafruit Trinket 5V 16 MHz. // Enige ander bord, u kan hierdie deel verwyder (maar sonder om dit te laat): #as gedefinieer (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // EINDE van Trinket-spesifieke kode. Serial.begin (9600); terwyl (! Serial) {; // wag totdat die seriële poort verbind is. Benodig slegs vir inheemse USB -poort} pinMode (A0, INPUT); strip.begin (); // INITIALISEER NeoPixel -strookvoorwerp (VEREIST) strip.show (); // Skakel alle pixels so gou as moontlik strip.setBrightness (10) uit; // Stel BRIGHTNESS op ongeveer 1/5 (maksimum = 255)} // lus () -funksie-loop herhaaldelik solank die bord aan is --------------- leemte lus () {ongetekende lang stroomMs = millis (); // Kry die huidige tyd int waarde = analogRead (A0); // Lees die huidige ligsensor as (waarde> 900 && resultaat == 0) {// As die sensor ingedruk word en daar nog geen resultaat aangeteken is nie, aktiveer die resultaatopname as (indeks = interval) {// Kontroleer of die huidige lus oorskry die interval previousMs = currentMs; // Stel die nuwe interval op die huidige tyd + intervalindeks + = 1; // Stel die LED's nog 'n stap verder in die lus as (indeks> 17) {// Trigger end of lus hantering indeks = 0; if (resultaat == 2) {// Op 'n korrekte resultaatinterval = (int) max ((interval * 0,95), 50); // Versnel met 10%, af na 50ms interval/ color = strip. Color (0, 255, 0); // Stel die leds op groen} anders as (resultaat == 1) {// Op 'n verkeerde resultaatinterval = 300; // Herstel die interval kleur = strip. Color (255, 0, 0); // Stel die leds op rooi} anders {// Op geen resultaat vasgevang kleur = strook. Kleur (255, 0, 0); // Stel die LED's op rooi} result = 0; // Stel die resultaat vir die volgende lus} theaterChaseOne (kleur, indeks) terug; // Verlig die LED's om te vertoon. }} // Ons eie funksies vir die skep van geanimeerde effekte ----------------- // Teater-markiestyl-jaagligte. Gee 'n kleur in (32-biswaarde, // a la strook. Kleur (r, g, b) soos hierbo genoem), en 'n vertragingstyd (in ms) // tussen rame. void theaterChaseOne (uint32_t color, int index) {strip.clear (); strip.setPixelColor (17 - indeks, kleur); // eerste ry ledligte strip.setPixelColor (18 + indeks, kleur); // tweede ry ledligte strip.setPixelColor (53 - indeks, kleur); // derde ry ledligte strip.show (); }
Aanbeveel:
Spelontwerp in vyf stappe: 5 stappe
Spelontwerp in fliek in 5 stappe: Flick is 'n baie eenvoudige manier om 'n speletjie te maak, veral iets soos 'n legkaart, visuele roman of avontuurlike spel
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: 3 stappe
Gesigsopsporing op Raspberry Pi 4B in 3 stappe: in hierdie instruksies gaan ons gesigsopsporing uitvoer op Raspberry Pi 4 met Shunya O/S met behulp van die Shunyaface-biblioteek. Shunyaface is 'n biblioteek vir gesigherkenning/opsporing. Die projek het ten doel om die vinnigste opsporing en herkenningssnelheid te bereik met
DIY Vanity Mirror in eenvoudige stappe (met LED -strookligte): 4 stappe
DIY Vanity Mirror in eenvoudige stappe (met behulp van LED Strip Lights): In hierdie pos het ek 'n DIY Vanity Mirror gemaak met behulp van die LED strips. Dit is regtig cool, en u moet dit ook probeer
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): 6 stappe
Arduino Halloween Edition - Zombies pop -out skerm (stappe met foto's): wil u u vriende skrik en 'n skreeu geraas maak tydens Halloween? Of wil u net 'n goeie grap maak? Hierdie pop-up skerm van Zombies kan dit doen! In hierdie instruksies sal ek u leer hoe u maklik Zombies kan spring deur Arduino te gebruik. Die HC-SR0
Speel Doom op u iPod in 5 maklike stappe !: 5 stappe
Speel Doom op u iPod in 5 maklike stappe !: 'n Stap-vir-stap gids oor hoe u Rockbox op u iPod kan dubbellaai om Doom en tientalle ander speletjies te speel. Dit is iets baie maklik om te doen, maar baie mense staan nog steeds verbaas as hulle sien hoe ek op my iPod doom speel en deurmekaar raak met die instruksies