Բովանդակություն:

Arduino MusicStump: Թեթև, գերված հպում և ազդանշան. 3 քայլ
Arduino MusicStump: Թեթև, գերված հպում և ազդանշան. 3 քայլ

Video: Arduino MusicStump: Թեթև, գերված հպում և ազդանշան. 3 քայլ

Video: Arduino MusicStump: Թեթև, գերված հպում և ազդանշան. 3 քայլ
Video: Stomp Shield for Arduino 2024, Հուլիսի
Anonim
Arduino MusicStump: Թեթև, գերված հպում և ազդանշան
Arduino MusicStump: Թեթև, գերված հպում և ազդանշան

Ինտերակտիվ ծառ, որի վերևում կա LED օղակ, ձայնը հնչեցնող ազդանշան և ներսում գրավված հպման ցուցիչ, որը փոխում է գույնը, երբ դիպչում եք դրան: Այս զվարճալի փոքրիկ իրը պատրաստելու համար ձեզ հարկավոր է հետևյալը.

Էլեկտրոնիկա.- 1x Arduino Uno

- 15x մալուխ

- 1x եռակցման երկաթ `կլոր ծայրով

- 1x Adafruit 8 բանալիով գերված հպում (CAP1188)

- 1x Arduino հոսանքի մալուխ

- 1x 8 LED օղակ

- 1x ազդանշան

- 1x տաք սոսինձ ատրճանակ

-Ներբեռնեք CAP1188 գրադարանը

- Ներբեռնեք Adafruit Neopixel- ի գրադարանը

Լրացուցիչ (պատյան).

- 1x ծառի կոճղ

- 1x փայտ ներսի համար

- փայտյա ափսե `ամեն ինչ տեղադրելու/ներս տեղադրելու համար

- Դրսի համար լցոնված կենդանիների լցոնումներ

Կարող եք նաև ինչ -որ այլ բան օգտագործել որպես դրսում, եղեք ստեղծագործ:

Հիմա եկեք սկսենք…

Քայլ 1: Քայլ 1. LED մատանի ՝ գերված հպումով

Քայլ 1. LED մատանի ՝ գերված հպումով
Քայլ 1. LED մատանի ՝ գերված հպումով

Եթե ձեր բախտը բերել է, ձեր LED մատանին արդեն ամրացված է կապում: Եթե ոչ, ժամանակն է զոդման:

Այս նախագծի համար մենք կօգտագործենք հետևյալ բաները.

- DI (Թվային մուտք, փին 6)

- 5V (հզորության համար, 5V քորոց)

- GND (գետնին, GND քորոց)

Դա առայժմ LED օղակն է: Այժմ գերության հպումը:

Տեղադրեք այն տախտակի մեջ և ամեն ինչ միացրեք հետևյալ կերպ. SDA/MISO- ի կապում (անալոգային) A4SCK- ում `կապում (անալոգային) A5VIN- ում (հոսանքի մեջ) 5VGND GND- ի pin1x մալուխի C1- ում (ինքն էլ` գերության հպման վրա)

Այժմ փորձարկելու համար ձեր Arduino- ում վերբեռնեք հետևյալ ծածկագիրը.

// iaուլիա Էմմինկ // Լույսի և հպման կոդ ինտերակտիվ ծառի համար 19 /// Պատրաստված է Adafruit Neopixel և Adafruit գերության հպումով (CAP1188) (տեղադրվելու է) և LED- ը թարթում է առանց ուշացման

// NEOPIXEL

#ներառում

#սահմանեք PIXELSPIN 6 // Որտեղ միացրել եք LED մատանին

#սահմանեք NUMPIXELS 8 // LED- ների քանակը, որոնք ձեր մատանին են #սահմանեք CALIBRATIONTIME 20000

Adafruit_NeoPixel պիքսել = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

անստորագիր երկար պիքսել Interval = 500; // ժամանակը, որը մենք պետք է սպասենք

անստորագիր երկար գույնWipePreviousMillis = 0; անստորագիր երկար թատրոն ChasePreviousMillis = 0; անստորագիր երկար ծիածան ՆախկինՄիլիս = 0; անստորագիր երկար ծիածան yիկլեր ՆախկինՄիլիս = 0;

int theaterChaseQ = 0;

uint16_t currentPixel = 0; // ինչ պիքսելներով ենք մենք աշխատում

// ՀԱUԵԼ

#ներառել #ներառել #ներառել

// Վերականգնել Pin- ը օգտագործվում է I2C կամ SPI- ի համար

#սահմանեք CAP1188_RESET 9

// CS փինն օգտագործվում է ծրագրային ապահովման կամ ապարատային SPI- ի համար

#սահմանի CAP1188_CS 10

// Սրանք սահմանված են ծրագրային ապահովման SPI- ի համար, ապարատային SPI- ի համար ՝ ստուգեք ձեր տվյալները

// տախտակի SPI կապում Arduino փաստաթղթերում #սահմանեք CAP1188_MOSI 11 #սահմանեք CAP1188_MISO 12 #սահմանեք CAP1188_CLK 13

// Օգտագործեք I2C, առանց վերականգնման քորոցի:

Adafruit_CAP1188 կափարիչ = Adafruit_CAP1188 ();

void setup () {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ ընթացիկՊիքսել = 0; pixels.begin (); // Սա նախաստորագրում է NeoPixel գրադարանը: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին:

// ՀԱUԵԼ

Serial.begin (300); Serial.println («CAP1188 թեստ»);

եթե (! cap.begin ()) {

Serial.println ("CAP1188 չի գտնվել"); մինչդեռ (1); } Serial.println («Գտնվել է CAP1188»); }

դատարկ շրջան () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t touch = cap.touched (); if (հպված == 0) {if ((երկար չստորագրված) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (պիքսելներ. Գույն (0, 255, 125)); }} else {if ((անստորագիր երկար) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (պիքսելներ. Գույն (100, 0, 150)); }}

}

դատարկ գույն Սրբել (uint32_t գ) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Ազատվում է գունավոր pixels.setPixelColor- ից (ընթացիկՊիքսել, գ); pixels.setPixelColor (ընթացիկՓիքսել - 1, պիքսել. Գույն (0, 0, 0)); pixels.show (); ընթացիկPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, պիքսել. Գույն (0, 0, 0));

}

}

Փորձարկեք այն և զվարճացեք: Ինչպես տեսնում եք, երբ C1 լարին դիպչում եք, գույնը փոխվում է: (Եթե դա առաջին անգամը չէ, պարզապես անջատեք ձեր Arduino- ն և միացրեք այն ձեր համակարգչին):

Քայլ 2: Քայլ 2. Ձայն ավելացնելը:

Օգտակար ձեռնարկի օգնությամբ ես դա արեցի: Ձեռնարկը հետևյալն է.

github.com/xitangg/-Pirates-of-the-Caribbe…

Timeամանակն է բռնել ձեր ազդանշանը: Putանգիչի (-) նշանը տեղադրեք GND կապում մեկում և (+) 10 փինում

Ահա և վերջ, հիմա ժամանակն է նորից գործարկել ծածկագիրը և լսել Կարիբյան ծովի ծովահենների այդ հիասքանչ մեղեդին: Այժմ զվարճացեք թեստավորում:

// Julուլիա Էմմինկ // Լույս, հպում և երաժշտական ծածկագիր ինտերակտիվ ծառի համար 2018-01-19 // Պատրաստված է Adafruit Neopixel և Captive Touch (CAP1188) - ով (տեղադրվելու է) և LED- ը թարթում է առանց ուշացման

// NEOPIXEL ~~~~~~~~~~~~~~~~~~#ներառել

#սահմանեք PIXELSPIN 6 -ը

#սահմանել NUMPIXELS 8 #սահմանել ALԱՌԱՅՈԹՅԱՆ IMEԱՄԱՆԱԿԸ 20000

Adafruit_NeoPixel պիքսել = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

անստորագիր երկար պիքսել Interval = 500; // ժամանակը, որը մենք պետք է սպասենք

անստորագիր երկար գույնWipePreviousMillis = 0; անստորագիր երկար թատրոն ChasePreviousMillis = 0; անստորագիր երկար ծիածան ՆախկինՄիլիս = 0; անստորագիր երկար ծիածան yիկլեր ՆախկինՄիլիս = 0;

int theaterChaseQ = 0;

uint16_t currentPixel = 0; // ինչ պիքսելներով ենք մենք աշխատում

// ԵՐԱՇՏՈԹՅՈՆ

const int buzzer = 10; // Սահմանել 10 -րդ կապը, կարող է օգտագործել այլ PWM կապեր (5, 6 կամ 9) // Նշման 3 և 11 կապերը չեն կարող օգտագործվել Arduino Uno const int songspeed = 1.5 -ում հնչերանգային գործառույթը օգտագործելիս: // Երգի ավելի դանդաղ տարբերակի համար փոխեք 2 -ի, որքան մեծ է թիվը, այնքան երգը դանդաղ է // *************************** ************** #սահմանել NOTE_C4 262 // Նշման հաճախականության սահմանում #սահմանել NOTE_D4 294 #սահմանել NOTE_E4 330 #սահմանել NOTE_F4 349 #սահմանել NOTE_G4 392 #սահմանել NOTE_A4 440 #սահմանել NOTE_B4 494 #defe 523 #սահմանել NOTE_D5 587 #սահմանել NOTE_E5 659 #սահմանել NOTE_F5 698 #սահմանել NOTE_G5 784 #սահմանել NOTE_A5 880 #սահմանել NOTE_B5 988 // *********************** ****************** int նշումներ = {// Երգի նշումը, 0 -ը հանգստություն/զարկերակ է NOTE_E4, NOTE_G4, NOTE_A4, NOTE_A4, 0, NOTE_A4, NOTE_B4, NOTE_C5, NOTE_C5, 0, NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0, NOTE_A4, NOTE_G4, NOTE_A4, 0}; // ************************************* int տևողություն = { / /յուրաքանչյուր նոտայի տևողությունը (ms) Քառորդ նշումը սահմանվում է 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};

// Դիպչել

#ներառել #ներառել #ներառել

// Վերականգնել Pin- ը օգտագործվում է I2C կամ SPI- ի համար

#սահմանեք CAP1188_RESET 9

// CS փինն օգտագործվում է ծրագրային ապահովման կամ ապարատային SPI- ի համար

#սահմանի CAP1188_CS 10

// Սրանք սահմանված են ծրագրային ապահովման SPI- ի համար, ապարատային SPI- ի համար ՝ ստուգեք ձեր տվյալները

// տախտակի SPI կապում Arduino փաստաթղթերում #սահմանեք CAP1188_MOSI 11 #սահմանեք CAP1188_MISO 12 #սահմանեք CAP1188_CLK 13

// Օգտագործեք I2C, առանց վերականգնման քորոցի:

Adafruit_CAP1188 կափարիչ = Adafruit_CAP1188 ();

void setup () {

// ԵՐԱՇՏՈԹՅՈՆ ~~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 -ը երաժշտական նոտաների ընդհանուր թիվն է երգը int wait = տևողություն * songspeed; հնչերանգ (ազդանշան, նշումներ , սպասել); // հնչերանգ (քորոց, հաճախականություն, տևողություն);} // ուշացումն օգտագործվում է, որպեսզի այն չանցնի հաջորդ հանգույց ՝ նախքան հնչերանգի նվագարկումը ավարտելը ~~~~~~~~~~~~~~~ ընթացիկՊիքսել = 0; pixels.begin (); // Սա նախաստորագրում է NeoPixel գրադարանը: pixels.show (); // Սա ուղարկում է պիքսելների թարմացված գույնը ապարատին:

// Դիպչել

Serial.begin (300); Serial.println («CAP1188 թեստ»); if (! cap.begin ()) {Serial.println ("CAP1188 չի գտնվել"); մինչդեռ (1); } Serial.println ("CAP1188 գտավ!");

}

դատարկ շրջան () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t touch = cap.touched (); if (հպված == 0) {if ((երկար չստորագրված) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (պիքսելներ. Գույն (0, 255, 125)); }} else {if ((անստորագիր երկար) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (պիքսելներ. Գույն (100, 0, 150)); }}

համար (int i = 0; i = pixelsInterval) {

colorWipePreviousMillis = millis (); colorWipe (պիքսելներ. Գույն (0, 255, 125)); }} else {if ((անստորագիր երկար) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (պիքսելներ. Գույն (100, 0, 150)); }}

ուշացում (սպասել);

}

}

դատարկ գույն Սրբել (uint32_t գ) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Ազատվում է գունավոր pixels.setPixelColor- ից (ընթացիկՊիքսել, գ); pixels.setPixelColor (ընթացիկՓիքսել -1, պիքսելներ. Գույն (0, 0, 0)); pixels.show (); ընթացիկPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, պիքսել. Գույն (0, 0, 0));

}

}

Քայլ 3. Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնելը

Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնել
Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնել
Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնել
Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնել
Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնել
Լրացուցիչ քայլ. Կոճղը «Arduino պատրաստ» դարձնել

Եթե որոշեք օգտագործել ծառի կոճղը, ապա պետք է անեք հետևյալը.

  • Ստացեք ծառի կոճղ (ես այն ստացել եմ հին տոնածառից անվճար)
  • Չափեք ձեր Arduino- ն և տեսեք, թե ինչպես եք ցանկանում ունենալ էլեկտրալարեր ծառի կոճղի մեջ
  • Խոռոչը հանեք (ես դպրոցից փորված մեքենա եմ օգտագործել)
  • Մանրացրեք կոպիտ եզրերը
  • Ավելացրեք զվարճալի փոքր մանրամասներ

Մանրամասներ, որոնք ես ավելացրել եմ, փոքր պատկերանշան էր, որը ես պատրաստել էի լազերային դանակով: Ես նաև իմ ամբողջ էլեկտրոնիկան դրեցի իմ ծառի փայտի վրա, իսկ դրսից ավելացրեցի լցոնված կենդանիներ ՝ լույսը բաց թողնելու և այդ փոքրիկ լրացուցիչ փափկություն հաղորդելու համար:

Խորհուրդ ենք տալիս: