Përmbajtje:

Arduino MusicStump: Prekje e lehtë, e kapur dhe një zile: 3 hapa
Arduino MusicStump: Prekje e lehtë, e kapur dhe një zile: 3 hapa

Video: Arduino MusicStump: Prekje e lehtë, e kapur dhe një zile: 3 hapa

Video: Arduino MusicStump: Prekje e lehtë, e kapur dhe një zile: 3 hapa
Video: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, Nëntor
Anonim
Arduino MusicStump: Prekje e lehtë, e kapur dhe një zile
Arduino MusicStump: Prekje e lehtë, e kapur dhe një zile

Një pemë interaktive me një unazë LED në krye, një zile për të bërë zë dhe një sensor prekës brenda që ndryshon ngjyrën kur e prekni. Për ta bërë këtë gjë të vogël argëtuese do t'ju duhet sa vijon:

Elektronikë:- 1x Arduino Uno

- kabllo 15x

- 1x hekur bashkues me majë të rrumbullakët

- 1x prekje 8-çelësash Adafruit (CAP1188)

- 1 x kabllo energjie Arduino

- Unazë 1x 8 LED

- 1x Zile

- 1x armë me zam të nxehtë

-Shkarkoni bibliotekën e CAP1188

- Shkarkoni bibliotekën e Adafruit Neopixel

Extra (zorrë):

- 1x trungu i pemës

- 1x shkop për brenda

- pjatë druri për t'i vendosur të gjitha në/brenda

- Mbushje të kafshëve të mbushura për pjesën e jashtme

Ju gjithashtu mund të përdorni diçka tjetër si jashtë, jini krijues!

Tani le të fillojmë…

Hapi 1: Hapi 1: Unaza LED me prekje të kapur

Hapi 1: Unaza LED me prekje të kapur
Hapi 1: Unaza LED me prekje të kapur

Tani nëse jeni me fat unaza juaj LED tashmë ka kunja të bashkangjitura në të. Nëse jo është koha për të bashkuar!

Gjërat që do të përdorim për këtë projekt janë:

- DI (Hyrja dixhitale, kunja 6

- 5V (për energji, pin 5V)

- GND (toka, pin GND)

Kjo është unaza LED tani për tani. Tani prekja robëruese.

Vendoseni atë në një tabelë buke dhe lidhni gjithçka si më poshtë: SDA/MISO në pin (analoge në) A4SCK në pin (analog në) A5VIN në (fuqi) 5VGND në një kabllo GND pin1x në C1 (në prekjen Captive vetë)

Tani për të testuar ngarkoni kodin e mëposhtëm në Arduino tuaj:

// Julia Emmink // Kodi i ndriçimit dhe prekjes për pemën ndërvepruese 19 /// Krijuar me përdorimin e Adafruit Neopixel dhe Adafruit captive touch (CAP1188) (do të instalohet) dhe LED po ndizet pa vonesë

// NEOPIXEL

#përfshi

#define PIXELSPIN 6 // Ku e keni lidhur Unazën LED

#përcaktoni NUMPIXELS 8 // Shuma e LED -ve që janë në unazën tuaj #përcaktoni KALIBRIMTIMIN 20000

Piksela Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

piksele të gjata të panënshkruara Intervali = 500; // koha që duhet të presim

ngjyra e panënshkruar e gjatëWipePreviousMillis = 0; teatër i gjatë i panënshkruarChasePreviousMillis = 0; ylber i gjatë i panënshkruarPreviousMillis = 0; ylber i gjatë i panënshkruarCyclesPrecomeMillis = 0;

int theaterChaseQ = 0;

uint16_t aktualePixel = 0; // me çfarë pikseli po operojmë

// Prek

#përfshi #përfshi #përfshi

// Reset Pin përdoret për I2C ose SPI

#përcaktoni CAP1188_RESET 9

// PIN CS përdoret për softuer ose harduer SPI

#përcaktoni CAP1188_CS 10

// Këto janë të përcaktuara për softuerin SPI, për harduerin SPI, kontrolloni tuajin

// Kunjat SPI të bordit në dokumentacionin Arduino #përcaktoni CAP1188_MOSI 11 #përcaktoni CAP1188_MISO 12 #përcaktoni CAP1188_CLK 13

// Përdorni I2C, pa pin të rivendosur!

Kapak Adafruit_CAP1188 = Adafruit_CAP1188 ();

void setup () {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ aktualePixel = 0; piksele.filloj (); // Kjo inicializon bibliotekën NeoPixel. piksele.shfaq (); // Kjo dërgon ngjyrën e azhurnuar të pikselit në harduer.

// Prek

Serial.fillo (300); Serial.println ("Testi CAP1188!");

nëse (! cap.begin ()) {

Serial.println ("CAP1188 nuk u gjet"); ndërsa (1); } Serial.println ("CAP1188 u gjet!"); }

lak void () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t prekur = kapak. Prekur (); nëse (e prekur == 0) {nëse ((pa shenjë e gjatë) (milis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksele. Ngjyra (0, 255, 125)); }} else {if ((pa shenja të gjata) (milis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksele. Ngjyra (100, 0, 150)); }}

}

ngjyra e pavlefshme Fshij (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Heq qafe pikselët e ngjyrave.setPixelColor (aktualePixel, c); pixels.setPixelColor (aktualePixel - 1, pixel. Color (0, 0, 0)); piksele.shfaq (); aktualePixel ++; nëse (aktualePixel == NUMPIXELS) {aktualePixel = 0; pixels.setPixelColor (7, pixel. Color (0, 0, 0));

}

}

Provojeni dhe argëtohuni! Siç mund ta shihni kur prekni kordonin C1 ngjyra ndryshon. (Nëse nuk është hera e parë, thjesht shkëputni Arduino -n tuaj nga priza dhe futeni përsëri në kompjuterin tuaj.)

Hapi 2: Hapi 2: Shtimi i zërit

Me përdorimin e një mësimi të dobishëm e bëra këtë. Udhëzimi është si më poshtë:

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

Koha për të kapur zilen tuaj! Vendosni (-) të ziles në një nga kunjat GND dhe (+) në pin 10

Bëhet fjalë për këtë, tani është koha për të ekzekutuar përsëri kodin dhe për të dëgjuar atë melodinë e mrekullueshme të Piratëve të Karaibeve! Tani argëtohuni duke testuar!

// Julia Emmink // Kodi i dritës, prekjes dhe muzikës për pemën ndërvepruese 2018-01-19 // Krijuar me përdorimin e Adafruit Neopixel dhe Captive Touch (CAP1188) (do të instalohet) dhe LED po ndizet pa vonesë

// NEOPIXEL ~~~~~~~~~~~~~~~~~~#përfshijnë

#përcaktoni PIXELSPIN 6

#përcaktoni NUMPIXELS 8 #përcaktoni KALIBRIMTIMIN 20000

Piksela Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

piksele të gjata të panënshkruara Intervale = 500; // koha që duhet të presim

ngjyra e panënshkruar e gjatëWipePreviousMillis = 0; teatër i gjatë i panënshkruarChasePreviousMillis = 0; ylber i gjatë i panënshkruarPreviousMillis = 0; ylber i gjatë i panënshkruarCyclesPreciousMillis = 0;

int theaterChaseQ = 0;

uint16_t aktualePixel = 0; // me çfarë pikseli po operojmë

// MUZIK

const int zile = 10; // Përcaktoni kunjin 10, mund të përdorni kunjat e tjera PWM (5, 6 ose 9) // Shënimi kunjat 3 dhe 11 nuk mund të përdoren kur përdorni funksionin e tonit në Arduino Uno const int songspeed = 1.5; // Ndrysho në 2 për një version më të ngadalshëm të këngës, sa më i madh numri aq më i ngadalshëm është kënga // ************************** ************** #përcakto NOTE_C4 262 // Përcaktimi i frekuencës së shënimeve #përcakto NOTE_D4 294 #përcakto NOTE_E4 330 #përcakto NOTE_F4 349 #define NOTE_G4 392 #përcakto NOTE_A4 440 #përcakto NOTE_B4 494 #define 523 #define NOTE_D5 587 #define NOTE_E5 659 #define NOTE_F5 698 #define NOTE_G5 784 #define NOTE_A5 880 #define NOTE_B5 988 // *********************** ****************** int shënime = {// Shënimi i këngës, 0 është pushim/impuls 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}; // ************************************* kohëzgjatja int = { / /kohëzgjatja e secilës shënim (në ms) Shënimi tremujor është vendosur në 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};

// Prek

#përfshi #përfshi #përfshi

// Reset Pin përdoret për I2C ose SPI

#përcaktoni CAP1188_RESET 9

// PIN CS përdoret për softuer ose harduer SPI

#përcaktoni CAP1188_CS 10

// Këto janë të përcaktuara për softuerin SPI, për harduerin SPI, kontrolloni tuajin

// Kunjat SPI të bordit në dokumentacionin Arduino #përcaktoni CAP1188_MOSI 11 #përcaktoni CAP1188_MISO 12 #përcaktoni CAP1188_CLK 13

// Përdorni I2C, pa pin të rivendosur!

Adafruit_CAP1188 kapak = Adafruit_CAP1188 ();

void setup () {

// MUZIK (për (int i = 0; i <203; i ++) {// 203 është numri i përgjithshëm i notave muzikore në kënga int prisni = kohëzgjatja * shpejtësia e këngëve; toni (zile, shënime , prit); // toni (kunja, frekuenca, kohëzgjatja);} // vonesa përdoret në mënyrë që të mos shkojë në lakin tjetër para se të përfundojë tingulli // Ju mund të klikoni rivendosjen në Arduino për të riprodhuar këngën // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ aktualePixel = 0; piksele.filloj (); // Kjo inicializon bibliotekën NeoPixel. piksele.shfaq (); // Kjo dërgon ngjyrën e azhurnuar të pikselit në harduer.

// Prek

Serial.filloj (300); Serial.println ("Testi CAP1188!"); nëse (! cap.begin ()) {Serial.println ("CAP1188 nuk u gjet"); ndërsa (1); } Serial.println ("CAP1188 u gjet!");

}

lak void () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t prekur = kapak. Prekur (); nëse (e prekur == 0) {nëse ((pa shenjë e gjatë) (milis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksele. Ngjyra (0, 255, 125)); }} else {if ((pa shenja të gjata) (milis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksele. Ngjyra (100, 0, 150)); }}

për (int i = 0; i = pixelsInterval) {

colorWipePreviousMillis = millis (); colorWipe (piksele. Ngjyra (0, 255, 125)); }} else {if ((pa shenjë të gjatë) (milis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksele. Ngjyra (100, 0, 150)); }}

vonesë (pritje);

}

}

ngjyra e pavlefshme Fshij (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Heq qafe pikselët e ngjyrave.setPixelColor (aktualePixel, c); pixels.setPixelColor (aktualePixel-1, pixel. Color (0, 0, 0)); piksele.shfaq (); aktualePixel ++; nëse (aktualePixel == NUMPIXELS) {aktualePixel = 0; pixels.setPixelColor (7, pixel. Color (0, 0, 0));

}

}

Hapi 3: Hapi shtesë: Bërja e trungut 'Arduino gati'

Hapi shtesë: Bërja e trungut 'Arduino gati'
Hapi shtesë: Bërja e trungut 'Arduino gati'
Hapi shtesë: Bërja e trungut 'Arduino gati'
Hapi shtesë: Bërja e trungut 'Arduino gati'
Hapi shtesë: Bërja e trungut 'Arduino gati'
Hapi shtesë: Bërja e trungut 'Arduino gati'

Nëse vendosni të përdorni një trung peme, duhet të bëni sa më poshtë.

  • Merrni një trung peme (e mora një nga një pemë e vjetër e Krishtlindjes falas)
  • Matni Arduino -n tuaj dhe shihni se si dëshironi të keni instalime elektrike në trungun e pemës
  • Hiqeni trungun (kam përdorur një makinë stërvitore nga shkolla)
  • Lërini skajet e përafërta
  • Shtoni detaje argëtuese të vogla

Detajet që shtova ishte një logo e vogël që e bëra me një prestar lazer. Unë gjithashtu i vendosa të gjitha pajisjet e mia elektronike brenda në një shkop brenda pemës sime dhe shtova mbushje të kafshëve të mbushura në pjesën e jashtme për të lënë dritën dhe për të dhënë atë butësinë e vogël shtesë.

Recommended: