Innehållsförteckning:
- Steg 1: Samla material
- Steg 2: Gör kretsar
- Steg 3: Designa handsken
- Steg 4: Lödning
- Steg 5: Kodning
- Steg 6: Ändringar
Video: Rytmhand: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
Denna cyberglove handlar om att göra rätt drag i rätt ögonblick.
Ljusen går från din arm (armbåge) till din hand och när lamporna kommer till din hand måste du trycka fingrarna på minifotocellen.
Om du trycker på handen på minifotocellen i rätt ögonblick blir lysdioderna gröna. Om inte blir lysdioderna röda.
Steg 1: Samla material
- En handske
- Tyg för att göra handsken längre
- WS2812B LED -remsa
- Trådar
- Arduino
- Mini fotosell
Steg 2: Gör kretsar
Anslut först ledremsan till arduinoen. Du kan göra det genom att ansluta +5v till 5v på arduino. Din måste vara ansluten till A0 på arduino och GND måste anslutas till GND på arduino.
Du måste också ansluta minifotocellen till arduino genom att ansluta till 5v -kabeln från ledremsan och från samma källa som ansluter med en kabel till PIN 6 på arduino. Den andra sidan från minifotocellen måste anslutas till GND -kabeln från ledremsan
Steg 3: Designa handsken
Handsken måste ha rätt storlek för att passa LED -remsorna. Lysdioderna måste justeras för att bli roligare att titta på.
För det här spelet måste du använda din arm och du vill kunna röra dig fritt. Detta kan förverkligas genom att sätta arduino på handsken. Jag använde kardborre som ett fästelement för att fästa arduino på handsken. För att skapa mer stabilitet kan du sätta ett rep runt handsken och runt arduinoen.
Minifotocellen har sys inuti handsken så att den håller sig på plats.
Slutligen måste du dölja trådarna för att det ska se bättre ut. Det kan göras med tyg som sys ovanpå trådarna.
Steg 4: Lödning
Nu kan du göra anslutningskablarna från kretsen säkra genom lödning.
Steg 5: Kodning
// Ett grundläggande vardagligt NeoPixel -testprogram.
// NEOPIXEL BÄSTA PRAKTIKER för mest pålitlig drift: // - Lägg till 1000 uF KAPACITOR mellan NeoPixel remsans + och - anslutningar. // - MINIMERA KABELLÄNGD mellan mikrokontrollerkort och första pixel. //-NeoPixel-remsans DATA-IN ska passera genom en 300-500 OHM-RESISTOR. // - UNDVIK att ansluta NeoPixels på en LIVE CIRCUIT. Om du måste, ALLTID // ansluta GRUND (-) först, sedan +, sedan data. //-När du använder en 3,3V mikrokontroller med en 5V-driven NeoPixel-remsa, // REKOMMENDERAS EN LOGISK NIVÅKONVERTERARE på datalinjen. // (Hoppa över dessa kan fungera OK på din arbetsbänk men kan misslyckas i fältet)
#include #ifdef _AVR_ #include // Krävs för 16 MHz Adafruit Trinket #endif
// Vilken pin på Arduino är ansluten till NeoPixels? // På en prydnad eller Gemma föreslår vi att du ändrar detta till 1: #define LED_PIN 6
// Hur många NeoPixels är anslutna till Arduino? #define LED_COUNT 60
// Deklarera vårt NeoPixel -bandobjekt: Adafruit_NeoPixel -remsa (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Vit färg, för standard bool clickedCorrectly = false; // Argument 1 = Antal pixlar i NeoPixel -remsan // Argument 2 = Arduino -pinnummer (de flesta är giltiga) // Argument 3 = Pixel -flaggor, lägg ihop efter behov: // NEO_KHZ800 800 KHz bitström (de flesta NeoPixel -produkter m/ WS2812 -lysdioder) // NEO_KHZ400 400 KHz (klassiska 'v1' (inte v2) FLORA -pixlar, WS2811 -drivrutiner) // NEO_GRB Pixlar är anslutna för GRB -bitström (de flesta NeoPixel -produkter) // NEO_RGB -pixlar är anslutna för RGB -bitström (v1 FLORA -pixlar), inte v2) // NEO_RGBW Pixlar är anslutna för RGBW -bitström (NeoPixel RGBW -produkter)
// setup () funktion-körs en gång vid start --------------------------------
void setup () {// Dessa rader är specifikt för att stödja Adafruit Trinket 5V 16 MHz. // Vilket annat kort som helst kan du ta bort denna del (men ingen skada lämnas av den): #if definierad (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // SLUT för Trinket-specifik kod.
pinMode (A0, INPUT); strip.begin (); // INITIALISERA NeoPixel -bandobjekt (KRÄVS) strip.show (); // Stäng av alla pixlar ASAP strip.setBrightness (10); // Ställ in LJUSSTYRKA till cirka 1/5 (max = 255)}
// loop () funktion-körs upprepade gånger så länge kortet är på ---------------
void loop () {clickedCorrectly = theaterChaseOne (color); om (klickade rätt) {color = strip. Color (0, 255, 0); } annat {color = strip. Color (255, 0, 0); }}
// Vissa egna funktioner för att skapa animerade effekter -----------------
// Jaktljus i teater-telt-stil. Skicka in en färg (32-bitars värde, // a la strip. Color (r, g, b) enligt ovan) och en fördröjningstid (i ms) // mellan bildrutor. bool theaterChaseOne (uint32_t color) {bool correct = false; bool clickedWrong = false; för (int index = 0; index 800) {// värde ljussensor om (index <16) {// 2 lysdioder före slutet kan du klicka på color = strip. Color (255, 0, 0); // rödfärgade lysdioder clickedWrong = true; // klickade fel så blir lysdioderna röda} annars om (! clickedWrong) {// om inte fel färg = strip. Color (0, 255, 0); // grön färg lysdioder korrekt = true; // klickade rätt så blev lysdioderna gröna}} strip.clear (); strip.setPixelColor (17 - index, färg); // första raden led lampor strip.setPixelColor (18 + index, färg); // andra raden led lampor strip.setPixelColor (53 - index, färg); // tredje raden led lampor strip.show (); fördröjning (300); } returnera korrekt; }
Steg 6: Ändringar
Jag gjorde några ändringar. För det första gömde jag arduino så att det skulle vara bekvämare att använda "Rythm hand" och för det andra ändrade jag koden lite. Jag ändrade koden så att när du trycker på i rätt ögonblick blir färgen grön och lysdioderna rör sig snabbare. Genom att göra det blir LED Swill 10% snabbare än tidigare. Detta gör spelet mer intressant
Så här är koden nu:
// Ett grundläggande vardagligt NeoPixel -bandtestprogram. // NEOPIXEL BÄSTA PRAKTIKER för mest pålitlig drift: // - Lägg till 1000 uF KAPACITOR mellan NeoPixel remsans + och - anslutningar. // - MINIMERA KABELLÄNGD mellan mikrokontrollerkort och första pixel. //-NeoPixel-remsans DATA-IN ska passera genom en 300-500 OHM-RESISTOR. // - UNDVIK att ansluta NeoPixels på en LIVE CIRCUIT. Om du måste, ALLTID // ansluta GRUND (-) först, sedan +, sedan data. //-När du använder en 3,3V mikrokontroller med en 5V-driven NeoPixel-remsa, // REKOMMENDERAS EN LOGISK NIVÅKONVERTERARE på datalinjen. // (Hoppa över dessa kan fungera OK på din arbetsbänk men kan misslyckas i fältet) #include #ifdef _AVR_ #include // Krävs för 16 MHz Adafruit Trinket #endif // Vilken pin på Arduino är ansluten till NeoPixels? // På en prydnad eller Gemma föreslår vi att du ändrar detta till 1: #define LED_PIN 6 // Hur många NeoPixels är anslutna till Arduino? #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); // Vit färg, för standard bool clickedCorrectly = false; int index = 0; int intervall = 300; int resultat = 0; osignerad lång tidigareMs = millis (); // Argument 1 = Antal pixlar i NeoPixel -remsan // Argument 2 = Arduino -pinnummer (de flesta är giltiga) // Argument 3 = Pixel -flaggor, lägg ihop efter behov: // NEO_KHZ800 800 KHz bitström (de flesta NeoPixel -produkter m/ WS2812 -lysdioder) // NEO_KHZ400 400 KHz (klassiska 'v1' (inte v2) FLORA -pixlar, WS2811 -drivrutiner) // NEO_GRB Pixlar är anslutna för GRB -bitström (de flesta NeoPixel -produkter) // NEO_RGB -pixlar är anslutna för RGB -bitström (v1 FLORA -pixlar), inte v2) // NEO_RGBW Pixlar är anslutna för RGBW-bitström (NeoPixel RGBW-produkter) // setup () -funktion-körs en gång vid start -------------------- ------------ void setup () {// Dessa rader är specifikt för att stödja Adafruit Trinket 5V 16 MHz. // Vilket annat kort som helst kan du ta bort denna del (men ingen skada lämnas av den): #if definierad (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // SLUT för Trinket-specifik kod. Serial.begin (9600); medan (! Seriell) {; // vänta på att seriell port ska anslutas. Behövs endast för inbyggd USB -port} pinMode (A0, INPUT); strip.begin (); // INITIALISERA NeoPixel -bandobjekt (KRÄVS) strip.show (); // Stäng av alla pixlar ASAP strip.setBrightness (10); // Ställ in BRIGHTNESS på cirka 1/5 (max = 255)} // loop () -funktionen-körs upprepade gånger så länge kortet är på --------------- void loop () {osignerad lång strömMs = millis (); // Få det aktuella tiden int -värdet = analogRead (A0); // Läser av den aktuella ljussensorn om (värde> 900 && resultat == 0) {// Om sensorn trycks in och inget resultat har registrerats ännu, trigga resultatinsamling om (index = intervall) {// Kontrollera om strömmen loop överskrider intervallet previousMs = currentMs; // Ställ in det nya intervallet på aktuell tid + intervallindex + = 1; // Ställ in lysdioderna ett steg längre i slingan om (index> 17) {// Trigger end of loop -hanteringsindex = 0; if (resultat == 2) {// På ett korrekt resultatintervall = (int) max ((intervall * 0,95), 50); // Snabba upp med 10%, ner till 50ms intervall/ färg = strip. Color (0, 255, 0); // Ställ in lysdioderna på grönt} annars om (resultat == 1) {// På ett felaktigt resultatintervall = 300; // Återställ intervallfärgen = strip. Color (255, 0, 0); // Ställ in lysdioderna på rött} else {// På inget resultat fångad färg = strip. Color (255, 0, 0); // Ställ in lysdioderna på rött} resultat = 0; // Återställ resultatet för nästa slinga} theaterChaseOne (färg, index); // Tänd lysdioderna för visning. }} // Några av våra egna funktioner för att skapa animerade effekter ----------------- // Teater-telt-stil jagar ljus. Skicka in en färg (32-bitars värde, // a la strip. Color (r, g, b) enligt ovan) och en fördröjningstid (i ms) // mellan bildrutor. void theaterChaseOne (uint32_t color, int index) {strip.clear (); strip.setPixelColor (17 - index, färg); // första raden led lampor strip.setPixelColor (18 + index, färg); // andra raden led lampor strip.setPixelColor (53 - index, färg); // tredje raden led lampor strip.show (); }
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg
Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg
Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg
Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg
Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)