Talaan ng mga Nilalaman:
- Hakbang 1: Mangolekta ng Mga Materyal
- Hakbang 2: Paggawa ng Circuits
- Hakbang 3: Pagdidisenyo ng guwantes
- Hakbang 4: Paghihinang
- Hakbang 5: Pag-coding
- Hakbang 6: Mga Pagbabago
Video: Kamay ng Ritmo: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Ang cyberglove na ito ay tungkol sa paggawa ng tamang paglipat sa tamang sandali.
Ang mga ilaw ay pupunta mula sa iyong braso (siko) patungo sa iyong kamay at kapag dumating ang mga ilaw sa iyong kamay kailangan mong pindutin ang iyong mga daliri sa mini photocell.
Kung pinindot mo ang iyong kamay sa mini photocell sa tamang sandali ang mga leds ay berde. Kung hindi, namumula ang mga leds.
Hakbang 1: Mangolekta ng Mga Materyal
- Isang gwantes
- Tela upang gawing mas mahaba ang guwantes
- WS2812B LED strip
- Mga wire
- Arduino
- Mini photosell
Hakbang 2: Paggawa ng Circuits
Una ikonekta ang led strip sa arduino. Maaari mong gawin iyon sa pamamagitan ng pagkonekta sa + 5v sa 5v sa arduino. Ang Din ay dapat na konektado sa A0 sa arduino at ang GND ay dapat na konektado sa GND sa arduino.
Kailangan mo ring ikonekta ang mini photocell sa arduino sa pamamagitan ng pagkonekta sa 5v wire mula sa led strip at mula sa parehong mapagkukunan na kumokonekta sa isang wire sa PIN 6 sa arduino. Ang kabilang panig mula sa mini photocell ay dapat na konektado sa GND wire mula sa led strip
Hakbang 3: Pagdidisenyo ng guwantes
Ang guwantes ay dapat magkaroon ng tamang sukat upang magkasya sa mga led strip. Ang mga leds ay dapat na nakahanay upang mas maging kasiya-siya tingnan.
Para sa larong ito kailangan mong gamitin ang iyong braso at nais mong malayang makagalaw. Maaari itong mapagtanto sa pamamagitan ng paglalagay ng arduino sa guwantes. Gumamit ako ng velcro bilang isang fastener upang idikit ang arduino sa guwantes. Pagkatapos para sa pagtaguyod ng higit na katatagan maaari kang maglagay ng isang lubid sa paligid ng guwantes at sa paligid ng arduino.
Ang mini photocell ay naitahi na sa loob ng guwantes kaya mananatili ito sa lugar.
Panghuli kailangan mong itago ang mga wire upang gawing mas mahusay ito. Maaari itong gawin sa tela na tahiin sa tuktok ng mga wire.
Hakbang 4: Paghihinang
Ngayon ay maaari mo nang gawing ligtas ang mga wire na nagkokonekta mula sa circuit sa pamamagitan ng paghihinang.
Hakbang 5: Pag-coding
// Isang pangunahing araw-araw na NeoPixel strip test program.
// NEOPIXEL PINAKA MAHALAGANG Kasanayan para sa pinaka maaasahang operasyon: // - Magdagdag ng 1000 uF CAPACITOR sa pagitan ng NeoPixel strip's + at - mga koneksyon. // - MINIMIZE WIRING LENGTH sa pagitan ng microcontroller board at unang pixel. // - Ang NeoPixel strip's DATA-IN ay dapat dumaan sa isang 300-500 OHM RESISTOR. // - IWASAN ang pagkonekta ng NeoPixels sa isang LIVE CIRCUIT. Kung kinakailangan, ALWAYS // ikonekta ang GROUND (-) muna, pagkatapos ay +, pagkatapos ng data. // - Kapag gumagamit ng isang 3.3V microcontroller na may isang NeoPixel strip na pinapatakbo ng 5V, // isang LOGIC-LEVEL CONVERTER sa linya ng data ay LALAKING Inirerekomenda. // (Ang paglaktaw ng mga ito ay maaaring gumana OK sa iyong workbench ngunit maaaring mabigo sa patlang)
#include #ifdef _AVR_ #include // Kinakailangan para sa 16 MHz Adafruit Trinket #endif
// Aling pin sa Arduino ang konektado sa NeoPixels? // Sa isang Trinket o Gemma iminumungkahi namin na baguhin ito sa 1: # tukuyin ang LED_PIN 6
// Ilan sa mga NeoPixels ang nakakabit sa Arduino? # tukuyin ang LED_COUNT 60
// Declare our NeoPixel strip object: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Kulay (127, 127, 127); // White color, para sa default bool na na-clickCorrectly = false; // Argument 1 = Bilang ng mga pixel sa NeoPixel strip // Argument 2 = Arduino pin number (karamihan ay may bisa) // Argument 3 = Mga flag na uri ng Pixel, idagdag nang sama-sama kung kinakailangan: // NEO_KHZ800 800 KHz bitstream (karamihan sa mga produktong NeoPixel w / WS2812 LEDs) // NEO_KHZ400 400 KHz (klasikong 'v1' (hindi v2) FLORA pixel, mga driver ng WS2811) // Ang NEO_GRB Pixels ay naka-wire para sa GRB bitstream (karamihan sa mga produktong NeoPixel) // Ang NEO_RGB Pixels ay naka-wire para sa RGB bitstream (v1 FLORA pixel, hindi v2) // NEO_RGBW Ang mga pixel ay naka-wire para sa RGBW bitstream (mga produktong NeoPixel RGBW)
// function (setup) na - tumatakbo nang isang beses sa pagsisimula ----
void setup () {// Ang mga linyang ito ay partikular na suportado ng Adafruit Trinket 5V 16 MHz. // Anumang iba pang board, maaari mong alisin ang bahaging ito (ngunit walang pinsala na iwan ito): # Kung tinukoy (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END ng code na tukoy sa Trinket.
pinMode (A0, INPUT); strip.begin (); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show (); // OFF OFF all pixel ASAP strip.setBrightness (10); // Itakda ang KARAPATAN sa halos 1/5 (max = 255)}
// loop () function - tumatakbo nang paulit-ulit hangga't ang board ay nasa -------------
void loop () {clickedCorrectly = teatroChaseOne (kulay); kung (na-clickCorrectly) {color = strip. Color (0, 255, 0); } iba pa {color = strip. Color (255, 0, 0); }}
// Ang ilang mga pagpapaandar sa amin para sa paglikha ng mga animated na epekto -----------------
// Mga ilaw sa paghabol sa istilo ng teatro-marquee. Pumasa sa isang kulay (32-bit na halaga, // a la strip. Kulay (r, g, b) tulad ng nabanggit sa itaas), at isang oras ng pagkaantala (sa ms) // sa pagitan ng mga frame. bool theatreChaseOne (uint32_t color) {bool correct = false; bool clickedWrong = false; para sa (int index = 0; index 800) {// halaga light sensor kung (index <16) {// 2 leds bago magtapos pagkatapos ay maaari kang mag-click sa color = strip. Color (255, 0, 0); // red color leds na-clickWrong = totoo; // mali ang na-click pagkatapos ay namumula ang leds} iba pa kung (! clickedWrong) {// kung hindi maling kulay = strip. Color (0, 255, 0); // green color leds tama = totoo; // na-click nang tama pagkatapos leds maging berde}} strip.clear (); strip.setPixelColor (17 - index, kulay); // first row led lights strip.setPixelColor (18 + index, kulay); // ikalawang hilera na humantong ilaw strip.setPixelColor (53 - index, kulay); // third row led lights strip.show (); pagkaantala (300); } bumalik nang tama; }
Hakbang 6: Mga Pagbabago
Gumawa ako ng ilang pagbabago. Una itinago ko ang arduino upang mas komportable na gamitin ang "Rythm hand" at pangalawa binago ko nang kaunti ang code. Binago ko ang code upang kapag pinindot mo sa tamang sandali ang kulay ay nagiging berde at mas mabilis ang paggalaw ng LEDS. Sa pamamagitan nito, ang LED Swill ay naging 10% na mas mabilis kaysa dati. Ginagawa nitong mas kawili-wili ang laro
Ganito ang code ngayon:
// Isang pangunahing araw-araw na NeoPixel strip test program. // NEOPIXEL PINAKA MAHALAGANG Kasanayan para sa pinaka maaasahang operasyon: // - Magdagdag ng 1000 uF CAPACITOR sa pagitan ng NeoPixel strip's + at - mga koneksyon. // - MINIMIZE WIRING LENGTH sa pagitan ng microcontroller board at unang pixel. // - Ang NeoPixel strip's DATA-IN ay dapat dumaan sa isang 300-500 OHM RESISTOR. // - IWASAN ang pagkonekta ng NeoPixels sa isang LIVE CIRCUIT. Kung kinakailangan, ALWAYS // ikonekta ang GROUND (-) muna, pagkatapos ay +, pagkatapos ng data. // - Kapag gumagamit ng isang 3.3V microcontroller na may 5V na pinapatakbo na NeoPixel strip, // isang LOGIC-LEVEL CONVERTER sa linya ng data ay LALAKING Inirerekomenda. // (Ang paglaktaw ng mga ito ay maaaring gumana OK sa iyong workbench ngunit maaaring mabigo sa patlang) #include #ifdef _AVR_ #include // Kinakailangan para sa 16 MHz Adafruit Trinket #endif // Aling pin sa Arduino ang konektado sa NeoPixels? // Sa isang Trinket o Gemma iminumungkahi namin na baguhin ito sa 1: #define LED_PIN 6 // Ilan sa mga NeoPixels ang nakakabit sa Arduino? #define LED_COUNT 60 // Ipahayag ang aming NeoPixel strip object: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Kulay (127, 127, 127); // White color, para sa default bool na na-clickCorrectly = false; int index = 0; int interval = 300; int resulta = 0; unsigned matagal na nakaraangMs = millis (); // Argument 1 = Bilang ng mga pixel sa NeoPixel strip // Argument 2 = Arduino pin number (karamihan ay may bisa) // Argument 3 = Mga flag na uri ng Pixel, idagdag nang sama-sama kung kinakailangan: // NEO_KHZ800 800 KHz bitstream (karamihan sa mga produktong NeoPixel w / WS2812 LEDs) // NEO_KHZ400 400 KHz (klasikong 'v1' (hindi v2) FLORA pixel, mga driver ng WS2811) // Ang NEO_GRB Pixels ay naka-wire para sa GRB bitstream (karamihan sa mga produktong NeoPixel) // Ang NEO_RGB Pixels ay naka-wire para sa RGB bitstream (v1 FLORA pixel, hindi v2) // NEO_RGBW Ang mga pixel ay naka-wire para sa RGBW bitstream (mga produkto ng NeoPixel RGBW) // function na (setup) na tumatakbo nang isang beses sa pagsisimula -------------------- ------------ void setup () {// Ang mga linya na ito ay partikular na upang suportahan ang Adafruit Trinket 5V 16 MHz. // Anumang iba pang board, maaari mong alisin ang bahaging ito (ngunit walang pinsala na iwan ito): # Kung tinukoy (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END ng code na tukoy sa Trinket. Serial.begin (9600); habang (! Serial) {; // hintaying kumonekta ang serial port. Kailangan para sa katutubong USB port lamang} pinMode (A0, INPUT); strip.begin (); // INITIALIZE NeoPixel strip object (REQUIRED) strip.show (); // OFF OFF all pixel ASAP strip.setBrightness (10); // Itakda ang KARAPATAN sa halos 1/5 (max = 255)} // loop () na pagpapaandar - paulit-ulit na tumatakbo hangga't ang board ay nasa --------------- void loop () {unsigned long currentMs = millis (); // Pagkuha ng kasalukuyang oras int halaga = analogRead (A0); // Pagbasa ng kasalukuyang light sensor kung (halaga> 900 && resulta == 0) {// Kung ang sensor ay pinindot at wala pang naitala na resulta, i-trigger ang pagkuha ng resulta kung (index = interval) {// Suriin kung ang kasalukuyang lumagpas ang loop sa agwat ng nakaraangMs = currentMs; // Itakda ang bagong agwat sa kasalukuyang time + interval index + = 1; // Itakda ang mga leds ng isang hakbang sa loop kung (index> 17) {// Trigger end of loop handling index = 0; kung (resulta == 2) {// Sa isang tamang agwat ng resulta = (int) max ((agwat * 0.95), 50); // Bilisin ng 10%, pababa sa 50ms agwat / kulay = strip. Kulay (0, 255, 0); // Itakda ang mga leds sa berde} iba pa kung (resulta == 1) {// Sa isang hindi tamang agwat ng resulta = 300; // Reset the interval color = strip. Kulay (255, 0, 0); // Itakda ang mga leds sa pula} iba pa {// Sa walang resulta na nakunan ng kulay = strip. Color (255, 0, 0); // Itakda ang mga leds sa pula} resulta = 0; // I-reset ang resulta para sa susunod na loop} teatroChaseOne (kulay, index); // I-ilaw ang mga leds para maipakita. }} // Ang ilan sa aming mga pag-andar para sa paglikha ng mga animated na epekto ----------------- // Mga ilaw sa paghabol sa istilo ng teatro-marquee. Pumasa sa isang kulay (32-bit na halaga, // a la strip. Kulay (r, g, b) tulad ng nabanggit sa itaas), at isang oras ng pagkaantala (sa ms) // sa pagitan ng mga frame. void theatreChaseOne (uint32_t color, int index) {strip.clear (); strip.setPixelColor (17 - index, kulay); // first row led lights strip.setPixelColor (18 + index, kulay); // ikalawang hilera na humantong ilaw strip.setPixelColor (53 - index, kulay); // third row led lights strip.show (); }
Inirerekumendang:
DC MOTOR Kamay sa Pagkontrol sa Gesture sa Kamay at Direksyon Gamit ang Arduino: 8 Hakbang
Ang Bilis at Direksyon ng Control ng DC MOTOR na Kamay at Paggamit ng Arduino: Sa tutorial na ito matututunan namin kung paano makontrol ang isang DC motor na may mga kilos ng kamay gamit ang arduino at Visuino. Panoorin ang video! Suriin din ito: Tutorial sa kilos ng kamay
20 Pangalawang Kamay sa Paghugas ng Kamay para sa COVID-19: 6 Mga Hakbang (na may Mga Larawan)
20 Second Hand washing Timer para sa COVID-19: Habang kumakalat ang pandaigdigang COVID-19, dapat nating protektahan ang ating sarili hindi lamang sa pamamagitan ng pagtipon ng mas kaunti at pagsusuot ng face mask, kundi pati na rin sa paghuhugas ng kamay nang mas madalas. Hindi ito epektibo laban sa mga virus kung hindi ka t hugasan nang maayos ang iyong mga kamay. Paano hugasan nang wasto ang ating mga kamay? W
Kamay na Kinokontrol ng RC na Kumpas ng Kamay: 15 Mga Hakbang
Kamay na Kinokontrol ng RC na Kumpas ng Kamay: Kamusta Mundo! Ito ang aking unang Maituturo Kung mayroon kang anumang mga katanungan - mangyaring huwag mag-atubiling magtanong. Target na Madla: Nalalapat ang proyektong ito sa sinumang may pagkahilig pagdating sa teknolohiya. Kung ikaw ay dalubhasa o ganap na nagsisimula
Gesture Hawk: Kamay na Kinokontrol ng Robot na Kamay Gamit ang Pagproseso ng Imahe Batay sa Interface: 13 Mga Hakbang (na may Mga Larawan)
Gesture Hawk: Kamay na Kinokontrol ng Robot na Kamay Gamit ang Pagproseso ng Imahe Batay sa Interface: Ang Gesture Hawk ay ipinakita sa TechEvince 4.0 bilang isang simpleng pagproseso ng imahe batay sa interface ng human-machine. Ang utility nito ay nakasalalay sa katotohanan na walang karagdagang mga sensor o naisusuot maliban sa isang guwantes ang kinakailangan upang makontrol ang robotic car na tumatakbo sa iba't ibang
Lead sa Kamay sa Kamay: 17 Mga Hakbang (na may Mga Larawan)
Left-Handed Camera Adapter: Isang modular camera adapter na idinisenyo upang payagan ang isang gumagamit na madaling manipulahin at buhayin ang isang camera gamit ang kaliwang kamay lamang. Ang sistemang ito ay katugma sa anumang point-and-shoot na kamera, at orihinal na idinisenyo para sa isang gumagamit na may paralisis sa kanang bahagi na