Orodha ya maudhui:

Mkono wa Rhythm: 6 Hatua
Mkono wa Rhythm: 6 Hatua

Video: Mkono wa Rhythm: 6 Hatua

Video: Mkono wa Rhythm: 6 Hatua
Video: MKONO WA BWANA by Zabron Singers (SMS SKIZA 8561961 TO 811) 2024, Novemba
Anonim
Mkono wa Rhythm
Mkono wa Rhythm

Cyberglove hii ni juu ya kufanya hoja sahihi kwa wakati unaofaa.

Taa zinaenda kutoka kwa mkono wako (kiwiko) hadi mkononi mwako na taa inapowasili mkononi mwako lazima ubonyeze vidole vyako kwenye picha ndogo.

Ukibonyeza mkono wako kwenye picha ndogo wakati wa kulia viongo vinageuka kijani. Ikiwa sivyo, viongo vinageuka nyekundu.

Hatua ya 1: Kusanya Vifaa

  • Kinga
  • Kitambaa cha kutengeneza glavu kuwa ndefu
  • Ukanda wa LED wa WS2812B
  • Waya
  • Arduino
  • Mini photosell

Hatua ya 2: Kufanya Mizunguko

Kutengeneza Mizunguko
Kutengeneza Mizunguko
Kutengeneza Mizunguko
Kutengeneza Mizunguko

Kwanza unganisha ukanda ulioongozwa na arduino. Unaweza kufanya hivyo kwa kuunganisha + 5v na 5v kwenye arduino. Din lazima iunganishwe na A0 kwenye arduino na GND inapaswa kushikamana na GND kwenye arduino.

Lazima pia uunganishe picha ndogo ya mini na arduino kupitia unganisho kwa waya wa 5v kutoka kwa ukanda ulioongozwa na kutoka chanzo hicho hicho kuunganisha na waya hadi PIN 6 kwenye arduino. Upande wa pili kutoka kwa picha ndogo ya mini inapaswa kushikamana na waya wa GND kutoka ukanda ulioongozwa

Hatua ya 3: Kubuni Kinga

Kubuni Kinga
Kubuni Kinga

Kinga inapaswa kuwa na saizi inayofaa kutoshea vipande vilivyoongozwa. Viongozi wanapaswa kuwa iliyokaa ili kufanya kufurahisha zaidi kutazama.

Kwa mchezo huu lazima utumie mkono wako na unataka kuweza kusonga kwa uhuru. Hii inaweza kutambuliwa kwa kuweka arduino kwenye glavu. Nilitumia velcro kama kifunga kufunga fimbo ya arduino kwenye glavu. Halafu kwa kuanzisha utulivu zaidi unaweza kuweka kamba kuzunguka glavu na karibu na arduino.

Picha ya mini imeshonwa ndani ya glavu kwa hivyo itakaa mahali pake.

Mwishowe lazima ufiche waya ili ionekane bora. Hiyo inaweza kufanywa na kitambaa ambacho kitashonwa juu ya waya.

Hatua ya 4: Kufunga

Kufundisha
Kufundisha

Sasa unaweza kutengeneza waya zinazounganisha kutoka kwa mzunguko salama kwa kutengeneza.

Hatua ya 5: Usimbuaji

Kuandika
Kuandika
Kuandika
Kuandika
Kuandika
Kuandika

// Programu ya msingi ya kila siku ya majaribio ya NeoPixel.

// MATENDO BORA YA NEOPIXEL kwa operesheni ya kuaminika zaidi: // - Punguza urefu wa wiring kati ya bodi ya microcontroller na pixel ya kwanza. // - DATA-IN ya strip ya NeoPixel inapaswa kupita kupitia 300-500 OHM RESISTOR. // - EPUKA kuunganisha NeoPixels kwenye CIRCUIT LIVE. Ikiwa ni lazima, DAIMA // unganisha GROUND (-) kwanza, kisha +, kisha data. // - Unapotumia mdhibiti mdogo wa 3.3V na mkanda wa NeoPixel unaotumia 5V, // LOGIC-LEVEL CONVERTER kwenye laini ya data INAPENDEKEZWA SANA. // (Kuruka hizi kunaweza kufanya kazi sawa kwenye benchi yako ya kazi lakini inaweza kufeli uwanjani)

# pamoja na #ifdef _AVR_ # pamoja na // Inayohitajika kwa MHz 16 ya Adafruit Trinket #endif

// Je! Ni pini ipi kwenye Arduino iliyounganishwa na NeoPixels? // Kwenye Trinket au Gemma tunashauri kubadilisha hii kuwa 1: #fafanua LED_PIN 6

// Je, ni NeoPixels ngapi zimeunganishwa na Arduino? #fafanua LED_COUNT 60

// Tangaza kipengee chetu cha NeoPixel: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); rangi ya uint32_t = ukanda Rangi (127, 127, 127); // Rangi nyeupe, kwa bool default ilibonyeza sawa = uongo; // Hoja 1 = Idadi ya saizi katika ukanda wa NeoPixel // Hoja 2 = Nambari ya pini ya Arduino (nyingi ni halali) // Hoja 3 = bendera za aina ya pikseli, ongeza pamoja inahitajika: // NEO_KHZ800 800 KHz mkondo wa maji (bidhaa nyingi za NeoPixel w / WS2812 LEDs) // NEO_KHZ400 400 KHz (saizi za kawaida 'v1' (sio v2) FLORA, madereva WS2811) // Sawa za NEO_GRB zimefungwa kwa mtiririko wa GRB (bidhaa nyingi za NeoPixel), sio v2) // Saizi za NEO_RGBW zimefungwa kwa waya wa RGBW (bidhaa za NeoPixel RGBW)

// kuanzisha () kazi - inaendesha mara moja kwa kuanza ------------------------------------

kuanzisha batili () {// Mistari hii ni haswa kusaidia Adafruit Trinket 5V 16 MHz. // Bodi nyingine yoyote, unaweza kuondoa sehemu hii (lakini hakuna ubaya kuiacha): # ikiwa imefafanuliwa (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); # endif // MWISHO wa nambari maalum ya Trinket.

pinMode (A0, INPUT); strip. kuanza (); // INITIALIZE NeoPixel strip kitu (INAHitajika) strip.show (); // ZIMA saizi zote ASAP strip.setBrightness (10); // Weka Nuru iwe karibu 1/5 (max = 255)}

// kitanzi () kazi - inaendesha mara kwa mara ilimradi bodi iko kwenye ---------------

kitanzi batili () {clickedCorlyly = theatreChaseOne (color); ikiwa (ilibofya kwa usahihi) {color = strip. Color (0, 255, 0); } mwingine {color = strip. Color (255, 0, 0); }}

// Baadhi ya kazi zetu kwa kuunda athari za uhuishaji -----------------

// Taa za maonyesho ya mtindo wa ukumbi wa michezo. Pitia rangi (32-bit thamani, // la la. Rangi (r, g, b) kama ilivyoelezwa hapo juu), na muda wa kuchelewesha (katika ms) // kati ya fremu. bool theatreChaseOne (uint32_t color) {bool correct = false; bool clickedWrong = uongo; kwa (int index = 0; index 800) {// value light sensor if (index <16) {// 2 leds before end then you can click color = strip. Color (255, 0, 0); // vipuli vya rangi nyekundu vimebofyaWrong = kweli; // kubofya vibaya kisha kuongoza kugeuka nyekundu} mwingine ikiwa (! clickedWrong) {// ikiwa sio makosa rangi = strip. Color (0, 255, 0); // rangi ya kijani leds sahihi = kweli; // kubofya sahihi kisha vichwa kugeuka kijani}} strip.clear (); strip.setPixelColor (17 - index, rangi); // mstari wa taa wa kwanza wa safu ya kwanza.setPixelColor (18 + index, rangi); // safu ya pili ya taa iliyoongozwa. setPixelColor (53 - index, rangi); // safu ya tatu iliyoongozwa na taa. onyesha (); kuchelewesha (300); } kurudi sahihi; }

Hatua ya 6: Mabadiliko

Mabadiliko
Mabadiliko
Mabadiliko
Mabadiliko
Mabadiliko
Mabadiliko

Nilifanya mabadiliko kadhaa. Kwanza nilificha arduino kwa hivyo itakuwa vizuri zaidi kutumia "mkono wa Rythm" na pili nilibadilisha nambari kidogo. Nilibadilisha nambari ili wakati unabonyeza kwa wakati unaofaa rangi inakuwa ya kijani na LED zinaenda haraka. Kwa kufanya hivyo Swill ya LED kuwa 10% kwa kasi zaidi kabla. Hii inafanya mchezo kuwa wa kupendeza zaidi

Hivi ndivyo nambari iko hivi sasa:

// Programu ya msingi ya kila siku ya majaribio ya NeoPixel. // MATENDO BORA YA NEOPIXEL kwa operesheni ya kuaminika zaidi: // - Punguza urefu wa wiring kati ya bodi ya microcontroller na pixel ya kwanza. // - DATA-IN ya strip ya NeoPixel inapaswa kupita kupitia 300-500 OHM RESISTOR. // - EPUKA kuunganisha NeoPixels kwenye CIRCUIT LIVE. Ikiwa ni lazima, DAIMA // unganisha GROUND (-) kwanza, kisha +, kisha data. // - Unapotumia mdhibiti mdogo wa 3.3V na mkanda wa NeoPixel unaotumia 5V, // LOGIC-LEVEL CONVERTER kwenye laini ya data INAPENDEKEZWA SANA. // (Kuruka hizi kunaweza kufanya kazi sawa kwenye benchi lako la kazi lakini linaweza kutofaulu katika uwanja) # pamoja na #ifdef _AVR_ # pamoja na // Inahitajika kwa 16 MHz Adafruit Trinket #endif // Je! Ni pini ipi kwenye Arduino iliyounganishwa na NeoPixels? // Kwenye Trinket au Gemma tunashauri kubadilisha hii kuwa 1: #fafanua LED_PIN 6 // Ni NeoPixels ngapi zimeambatanishwa na Arduino? #fafanua LED_COUNT 60 // Tangaza kipengee chetu cha NeoPixel: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); rangi ya uint32_t = ukanda Rangi (127, 127, 127); // Rangi nyeupe, kwa bool default ilibonyeza sawa = uongo; int index = 0; muda kati ya 300; matokeo = 0; unsigned previous previousMs = millis (); // Hoja 1 = Idadi ya saizi katika ukanda wa NeoPixel // Hoja 2 = Nambari ya pini ya Arduino (nyingi ni halali) // Hoja 3 = bendera za aina ya pikseli, ongeza pamoja inahitajika: // NEO_KHZ800 800 KHz mkondo wa maji (bidhaa nyingi za NeoPixel w / WS2812 LEDs) // NEO_KHZ400 400 KHz (saizi za kawaida 'v1' (sio v2) FLORA, madereva WS2811) // Saizi za NEO_GRB zimefungwa kwa mtiririko wa GRB (bidhaa nyingi za NeoPixel) // Saizi za NEO_RGB zimefungwa kwa waya wa RGB (v1 FLORA, sio v2) // Saizi za NEO_RGBW zimefungwa kwa waya wa RGBW (bidhaa za NeoPixel RGBW) // kazi ya kuanzisha () - inaendesha mara moja kwa kuanza -------------------- ------------ usanidi batili () {// Mistari hii ni haswa kusaidia Adafruit Trinket 5V 16 MHz. // Bodi nyingine yoyote, unaweza kuondoa sehemu hii (lakini hakuna ubaya kuiacha): # ikiwa imefafanuliwa (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); # endif // MWISHO wa nambari maalum ya Trinket. Kuanzia Serial (9600); wakati (! Serial) {; // subiri bandari ya serial kuungana. Inahitajika kwa bandari ya asili ya USB tu} pinMode (A0, INPUT); strip. kuanza (); // INITIALIZE NeoPixel strip kitu (INAHitajika) strip.show (); // ZIMA saizi zote ASAP strip.setBrightness (10); // Weka BRIGHTNESS karibu 1/5 (max = 255)} // kitanzi () kazi - inaendesha mara kwa mara ilimradi bodi iko kwenye --------------- kitanzi batili () {unsigned longMs longs = millis (); // Kupata wakati wa sasa int thamani = AnalogRead (A0); // Kusoma sensa ya mwangaza ya sasa ikiwa (thamani> 900 && matokeo == 0) {// Ikiwa kitambuzi kimeshinikizwa na hakuna matokeo yoyote ambayo yamerekodiwa bado, chagua kukamata matokeo ikiwa (index = interval) {// Angalia ikiwa sasa kitanzi kinazidi muda uliopitaMs = currentMs; // Weka muda mpya kwa wakati wa sasa + index ya muda + = 1; // Weka viongozo kwa hatua moja zaidi kwenye kitanzi ikiwa (index> 17) {// Trigger mwisho wa index ya utunzaji wa kitanzi = 0; ikiwa (matokeo == 2) {// Kwa muda sahihi wa matokeo = (int) max ((muda * 0.95), 50); // kuharakisha kwa 10%, chini hadi 50ms interval / color = strip. Color (0, 255, 0); // Weka viongozo kwenye kijani} vingine ikiwa (matokeo == 1) {// Kwenye kipindi kisicho sahihi cha matokeo = 300; // Rudisha rangi ya muda = ukanda Rangi (255, 0, 0); // Weka vichwa kuwa nyekundu} vingine {// Hakuna matokeo yaliyokamatwa color = strip. Color (255, 0, 0); // Weka vichwa kuwa nyekundu} matokeo = 0; // Rudisha matokeo kwa kitanzi kinachofuata} ukumbi wa michezoChaseOne (rangi, faharisi); // Washa taa kwa onyesho. }} // Baadhi ya kazi zetu wenyewe za kuunda athari za uhuishaji ----------------- // Taa za mtindo wa ukumbi wa michezo wa mtindo. Pitia rangi (32-bit thamani, // la la. Rangi (r, g, b) kama ilivyoelezwa hapo juu), na muda wa kuchelewesha (katika ms) // kati ya fremu. batili ukumbi wa michezoChaseOne (uint32_t color, int index) {strip.clear (); strip.setPixelColor (17 - index, rangi); // mstari wa taa wa kwanza wa safu ya kwanza.setPixelColor (18 + index, rangi); // safu ya pili ya taa iliyoongozwa. setPixelColor (53 - index, rangi); // safu ya tatu iliyoongozwa na taa. onyesha (); }

Ilipendekeza: