Indholdsfortegnelse:
- Trin 1: Saml materialer
- Trin 2: Lav kredsløb
- Trin 3: Design af handsken
- Trin 4: Lodning
- Trin 5: Kodning
- Trin 6: Ændringer
Video: Rytmehånd: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Denne cyberglove handler om at foretage det rigtige træk i det rigtige øjeblik.
Lysene går fra din arm (albue) til din hånd, og når lysene kommer til din hånd, skal du trykke fingrene på mini fotocellen.
Hvis du trykker din hånd på minifotocellen i det rigtige øjeblik, bliver lysdioderne grønne. Hvis ikke, bliver lysdioderne røde.
Trin 1: Saml materialer
- En handske
- Stof, der gør handsken længere
- WS2812B LED -strimmel
- Ledninger
- Arduino
- Mini fotosel
Trin 2: Lav kredsløb
Tilslut først ledstrimlen til arduinoen. Du kan gøre det ved at tilslutte +5v til 5v på arduinoen. Din skal forbindes til A0 på arduinoen, og GND skal forbindes til GND på arduinoen.
Du skal også tilslutte mini -fotocellen til arduinoen ved at tilslutte 5v -ledningen fra ledstrimlen og fra den samme kilde, der forbinder med en ledning til PIN 6 på arduinoen. Den anden side fra mini -fotocellen skal forbindes til GND -ledningen fra ledstrimlen
Trin 3: Design af handsken
Handsken skal have den rigtige størrelse, så den passer til ledstrimlerne. Lysdioderne skal justeres for at gøre det mere behageligt at se på.
Til dette spil skal du bruge din arm, og du vil gerne kunne bevæge dig frit. Dette kan realiseres ved at sætte arduinoen på handsken. Jeg brugte velcro som lukning til at holde arduinoen på handsken. For at skabe mere stabilitet kan du lægge et reb omkring handsken og omkring arduinoen.
Minifotocellen er syet inde i handsken, så den forbliver på plads.
Endelig skal du skjule ledningerne for at få det til at se bedre ud. Det kan gøres med stof, der vil blive syet oven på ledningerne.
Trin 4: Lodning
Nu kan du gøre forbindelsesledningerne fra kredsløbet sikre ved lodning.
Trin 5: Kodning
// Et grundlæggende hverdags NeoPixel strip testprogram.
// NEOPIXEL BEDSTE PRAKTIKER for den mest pålidelige drift: // - Tilføj 1000 uF KAPACITOR mellem NeoPixel strips + og - forbindelser. // - MINIMER KABELLÆNGDE mellem mikrokontrollerkort og første pixel. //-NeoPixel strips DATA-IN skal passere gennem en 300-500 OHM RESISTOR. // - UNDGÅ at forbinde NeoPixels på en LIVE CIRCUIT. Hvis du skal, skal du ALTID // forbinde GROUND (-) først, derefter +, derefter data. //-Ved brug af en 3.3V mikrokontroller med en 5V-drevet NeoPixel-strimmel, // ANBEFALES en LOGISK NIVEAU-KONVERTER på datalinjen STÆRKT. // (Springe over disse fungerer muligvis OK på dit arbejdsbord, men kan mislykkes i feltet)
#include #ifdef _AVR_ #include // Påkrævet til 16 MHz Adafruit Trinket #endif
// Hvilken pin på Arduino er forbundet til NeoPixels? // På en Trinket eller Gemma foreslår vi at ændre dette til 1: #define LED_PIN 6
// Hvor mange NeoPixels er knyttet til Arduino? #define LED_COUNT 60
// Angiv vores NeoPixel -stripobjekt: Adafruit_NeoPixel -strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t farve = strip. Color (127, 127, 127); // Hvid farve, for standard bool clickedCorrectly = false; // Argument 1 = Antal pixels i NeoPixel -strimmel // Argument 2 = Arduino -pin -nummer (de fleste er gyldige) // Argument 3 = Pixel -typeflag, tilføj efter behov: // NEO_KHZ800 800 KHz bitstream (de fleste NeoPixel -produkter m/ WS2812 LED'er) // NEO_KHZ400 400 KHz (klassiske 'v1' (ikke v2) FLORA -pixels, WS2811 -drivere) // NEO_GRB Pixler er tilsluttet GRB -bitstrøm (de fleste NeoPixel -produkter) // NEO_RGB Pixels er forbundet til RGB -bitstrøm (v1 FLORA -pixels, ikke v2) // NEO_RGBW Pixels er forbundet til RGBW bitstream (NeoPixel RGBW -produkter)
// setup () funktion-kører en gang ved opstart --------------------------------
void setup () {// Disse linjer er specifikt til at understøtte Adafruit Trinket 5V 16 MHz. // Ethvert andet bord kan du fjerne denne del (men ingen skade forlader den): #if defineret (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END for Trinket-specifik kode.
pinMode (A0, INPUT); strip.begin (); // INITIALISER NeoPixel -strimmelobjekt (påkrævet) strip.show (); // Sluk for alle pixels ASAP strip.setBrightness (10); // Indstil BRIGHTNESS til ca. 1/5 (maks. = 255)}
// loop () funktion-kører gentagne gange, så længe brættet er tændt ---------------
void loop () {clickedCorrectly = theaterChaseOne (color); hvis (klikket korrekt) {color = strip. Color (0, 255, 0); } ellers {color = strip. Color (255, 0, 0); }}
// Nogle af vores egne funktioner til at skabe animerede effekter -----------------
// Teater-telt-lignende jagtlys. Indsæt en farve (32-bit værdi, // a la strip. Color (r, g, b) som nævnt ovenfor) og en forsinkelse (i ms) // mellem rammer. bool theaterChaseOne (uint32_t farve) {bool korrekt = falsk; bool clickedWrong = falsk; for (int index = 0; index 800) {// værdi lyssensor hvis (index <16) {// 2 lysdioder før slutning, kan du klikke på color = strip. Color (255, 0, 0); // røde lysdioder clickedWrong = true; // klikket forkert, så bliver lysdioderne røde} ellers hvis (! clickedWrong) {// hvis ikke forkert farve = strip. Color (0, 255, 0); // grønne lysdioder korrekt = sand; // klikket korrekt, så bliver lysdioder grøn}} strip.clear (); strip.setPixelColor (17 - indeks, farve); // første række led -lys strip.setPixelColor (18 + indeks, farve); // anden række led -lys strip.setPixelColor (53 - indeks, farve); // tredje række led -lys strip.show (); forsinkelse (300); } returner korrekt; }
Trin 6: Ændringer
Jeg lavede nogle ændringer. For det første skjulte jeg arduinoen, så det ville være mere behageligt at bruge "Rythm -hånden", og for det andet ændrede jeg koden en lille smule. Jeg ændrede koden, så når du trykker på i det rigtige øjeblik, bliver farven grøn, og lysdioderne bevæger sig hurtigere. Ved at gøre det bliver LED Swill 10% hurtigere end før. Dette gør spillet mere interessant
Sådan er koden nu:
// Et grundlæggende hverdags NeoPixel strip testprogram. // NEOPIXEL BEDSTE PRAKTIKER for den mest pålidelige drift: // - Tilføj 1000 uF KAPACITOR mellem NeoPixel strips + og - forbindelser. // - MINIMER KABELLÆNGDE mellem mikrokontrollerkort og første pixel. //-NeoPixel strips DATA-IN skal passere gennem en 300-500 OHM RESISTOR. // - UNDGÅ at forbinde NeoPixels på en LIVE CIRCUIT. Hvis du skal, skal du ALTID // forbinde GROUND (-) først, derefter +, derefter data. //-Ved brug af en 3.3V mikrokontroller med en 5V-drevet NeoPixel-bånd, // ANBEFALES en LOGISK NIVEAU-KONVERTER på datalinjen STERKT. // (Spring over disse fungerer muligvis OK på dit arbejdsbord, men kan mislykkes i feltet) #include #ifdef _AVR_ #include // Påkrævet til 16 MHz Adafruit Trinket #endif // Hvilken pin på Arduino er forbundet til NeoPixels? // På en Trinket eller Gemma foreslår vi at ændre dette til 1: #define LED_PIN 6 // Hvor mange NeoPixels er knyttet til Arduino? #define LED_COUNT 60 // Deklarere vores NeoPixel strip objekt: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t farve = strip. Color (127, 127, 127); // Hvid farve, for standard bool clickedCorrectly = false; int indeks = 0; int interval = 300; int resultat = 0; usigneret lang tidligereMs = millis (); // Argument 1 = Antal pixels i NeoPixel -strip // Argument 2 = Arduino -pin -nummer (de fleste er gyldige) // Argument 3 = Pixel -typeflag, tilføj efter behov: // NEO_KHZ800 800 KHz bitstream (de fleste NeoPixel -produkter m/ WS2812 LED'er) // NEO_KHZ400 400 KHz (klassiske 'v1' (ikke v2) FLORA -pixels, WS2811 -drivere) // NEO_GRB Pixler er tilsluttet GRB -bitstream (de fleste NeoPixel -produkter) // NEO_RGB Pixels er forbundet til RGB -bitstrøm (v1 FLORA -pixels, ikke v2) // NEO_RGBW Pixels er forbundet til RGBW bitstream (NeoPixel RGBW-produkter) // setup () funktion-kører en gang ved opstart -------------------- ------------ void setup () {// Disse linjer er specifikt til at understøtte Adafruit Trinket 5V 16 MHz. // Ethvert andet bord kan du fjerne denne del (men ingen skade forlader den): #if defineret (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END for Trinket-specifik kode. Serial.begin (9600); mens (! Seriel) {; // vent på, at den serielle port skal oprette forbindelse. Kræves kun til indbygget USB -port} pinMode (A0, INPUT); strip.begin (); // INITIALISER NeoPixel -strimmelobjekt (påkrævet) strip.show (); // Sluk for alle pixels ASAP strip.setBrightness (10); // Indstil BRIGHTNESS til ca. 1/5 (max = 255)} // loop () funktion-kører gentagne gange, så længe kortet er på --------------- void loop () {usigneret lang strømMs = millis (); // Henter den aktuelle tid int -værdi = analogRead (A0); // Læsning af den aktuelle lyssensor hvis (værdi> 900 && resultat == 0) {// Hvis der trykkes på sensoren, og der endnu ikke er registreret noget resultat, udløser resultatopsamling, hvis (indeks = interval) {// Kontroller, om den aktuelle loop overskrider intervallet previousMs = currentMs; // Indstil det nye interval til det aktuelle tidspunkt + intervalindeks + = 1; // Indstil lysdioderne et skridt videre i sløjfen, hvis (indeks> 17) {// Udløser ende af sløjfehåndteringsindeks = 0; hvis (resultat == 2) {// På et korrekt resultatinterval = (int) max ((interval * 0,95), 50); // Hastighed med 10%, ned til 50ms interval/ farve = strip. Color (0, 255, 0); // Indstil lysdioderne til grøn} ellers hvis (resultat == 1) {// På et forkert resultatinterval = 300; // Nulstil intervallets farve = strip. Color (255, 0, 0); // Indstil lysdioderne til rød} else {// På intet resultat fanget farve = strip. Color (255, 0, 0); // Indstil lysdioderne til rød} resultat = 0; // Nulstil resultatet for den næste sløjfe} theaterChaseOne (farve, indeks); // Tænd lysdioderne til visning. }} // Nogle egne funktioner til at skabe animerede effekter ----------------- // Teater-telt-stil jagtlys. Indsæt en farve (32-bit værdi, // a la strip. Color (r, g, b) som nævnt ovenfor), og en forsinkelsestid (i ms) // mellem rammer. void theaterChaseOne (uint32_t color, int index) {strip.clear (); strip.setPixelColor (17 - indeks, farve); // første række led -lys strip.setPixelColor (18 + indeks, farve); // anden række led -lys strip.setPixelColor (53 - indeks, farve); // tredje række led -lys strip.show (); }
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)