Sisukord:

Arduino MusicStump: kerge, kütkestav puudutus ja helisignaal: 3 sammu
Arduino MusicStump: kerge, kütkestav puudutus ja helisignaal: 3 sammu

Video: Arduino MusicStump: kerge, kütkestav puudutus ja helisignaal: 3 sammu

Video: Arduino MusicStump: kerge, kütkestav puudutus ja helisignaal: 3 sammu
Video: How to use 4 channel Relay to control AC load with Arduino code 2024, November
Anonim
Arduino MusicStump: kerge, kütkestav puudutus ja helisignaal
Arduino MusicStump: kerge, kütkestav puudutus ja helisignaal

Interaktiivne puu, mille ülaosas on LED -rõngas, helisignaal ja helisignaal, mis muudab puudutamisel värvi. Selle lõbusa väikese asja tegemiseks vajate järgmist:

Elektroonika:- 1x Arduino Uno

- 15x kaablit

- 1x ümmarguse otsaga jootekolb

- 1x 8-klahviline Adafruit-puudutus (CAP1188)

- 1x Arduino toitekaabel

- 1x 8 LED -rõngas

- 1x helisignaal

- 1x kuuma liimipüstol

-Laadige alla CAP1188 raamatukogu

- Laadige alla Adafruit Neopixeli raamatukogu

Lisa (korpus):

- 1x kännu

- 1x kepp sees

- puidust taldrik, kuhu kõik sisse/sisse panna

- Täidisega loomade täidis väljast

Võite kasutada ka midagi muud kui väljas, olge loominguline!

Nüüd alustame…

1. samm: 1. samm: LED -rõngas koos puudutusega

Samm: LED -rõngas koos puudutusega
Samm: LED -rõngas koos puudutusega

Kui teil veab, on teie LED -rõngal juba tihvtid kinnitatud. Kui ei, siis on aeg jootmiseks!

Selle projekti jaoks kasutame järgmisi asju:

- DI (digitaalsisend, tihvt 6 ~

- 5V (toiteallika jaoks, 5V pin)

- GND (maapind, GND tihvt)

See on praegu LED -rõngas. Nüüd tabab puudutus.

Asetage see leivalauale ja ühendage kõik järgmiselt: SDA/MISO tihvtis (analoogsisend) A4SCK tihvt (analoogsisend) A5VIN sisend (toide) 5VGND GND tihvtiga 1x kaabel C1 juures (kinnipidamisel ise)

Nüüd proovige oma Arduinole üles laadida järgmine kood:

// Julia Emmink // Interaktiivse puu valgus- ja puutetundlik kood 19 /// Valmistatud Adafruit Neopixeli ja Adafruit'i vangistatud puute (CAP1188) (tuleb paigaldada) ja viivitamata vilkuva LED -i abil

// NEOPIXEL ~~~~~~~~~~~~~~~~~~~

#kaasake

#define PIXELSPIN 6 // Kus ühendasite LED -rõnga

#define NUMPIXELS 8 // Teie rõngas olevate LED -ide hulk #define CALIBRATIONTIME 20000

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

allkirjastamata pikad pikslidInterval = 500; // aeg, mida peame ootama

allkirjastamata pikk värvWipePreviousMillis = 0; allkirjastamata pikk teaterChasePreviousMillis = 0; allkirjastamata pikk vikerkaarPreviousMillis = 0; allkirjastamata pikk vikerkaarCyclesPreviousMillis = 0;

int TheaterChaseQ = 0;

uint16_t currentPixel = 0; // millist pikslit me opereerime

// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~

#kaasama #kaasama #kaasama

// Reset Pin kasutatakse I2C või SPI jaoks

#define CAP1188_RESET 9

// CS pin kasutatakse tarkvara või riistvara SPI jaoks

#define CAP1188_CS 10

// Need on määratletud tarkvara SPI jaoks, riistvara SPI jaoks kontrollige oma

// plaadi SPI -tihvtid Arduino dokumentatsioonis #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// Kasutage I2C -d, ilma nööpnõelata!

Adafruit_CAP1188 kork = Adafruit_CAP1188 ();

tühine seadistus () {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ praegunePiksel = 0; pixels.begin (); // See initsialiseerib NeoPixeli kogu. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi.

// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~

Seriaal.algus (300); Serial.println ("CAP1188 test!");

if (! cap.begin ()) {

Serial.println ("CAP1188 ei leitud"); samas (1); } Serial.println ("CAP1188 leitud!"); }

void loop () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t touch = cap.touched (); if (touched == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikslit. Värv (0, 255, 125)); }} else {if ((allkirjastamata pikk) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikslit. Värv (100, 0, 150)); }}

}

void colorWipe (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Vabaneb värvipikslitest.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel - 1, pixels. Color (0, 0, 0)); pixels.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pikslit. Värv (0, 0, 0));

}

}

Testige ja nautige! Nagu näete C1 juhtme puudutamisel, muutub värv. (Kui see ei õnnestu esimest korda, ühendage Arduino vooluvõrgust lahti ja ühendage see uuesti arvutiga.)

2. samm: 2. samm: heli lisamine

Kasutades käepärast õpetust, tegin selle. Õpetus on järgmine:

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

Aeg haarata oma helisignaal! Pange sumisti (-) ühte GND tihvti ja (+) tihvti 10 ~

See on kõik, nüüd on aeg kood uuesti käivitada ja kuulda seda kaunist Kariibi mere piraatide viisi! Nüüd nautige katsetamist!

// Julia Emmink // Valgus-, puudutus- ja muusikakood interaktiivsele puule 19.01.2018 // Valmistatud Adafruit Neopixeli ja Captive Touchi (CAP1188) abil (tuleb paigaldada) ning LED vilgub viivitamatult

// NEOPIXEL ~~~~~~~~~~~~~~~~~~#sisaldavad

#define PIXELSPIN 6

#defineeri NUMPIXELS 8 #defineeri CALIBRATIONTIME 20000

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

allkirjastamata pikad pikslidInterval = 500; // aeg, mida peame ootama

allkirjastamata pikk värvWipePreviousMillis = 0; allkirjastamata pikk teaterChasePreviousMillis = 0; allkirjastamata pikk vikerkaarPreviousMillis = 0; allkirjastamata pikk vikerkaarCyclesPreviousMillis = 0;

int TheaterChaseQ = 0;

uint16_t currentPixel = 0; // millist pikslit me opereerime

// MUUSIKA ~~~~~~~~~~~~~~~~~~~~~~~

const int helisignaal = 10; // Määrake tihvt 10, saab kasutada teisi PWM -nööpnõelu (5, 6 või 9) // Märkus. Nööpnõelasid 3 ja 11 ei saa kasutada, kui kasutate toonifunktsiooni Arduino Uno const int laulukiirusel = 1,5; // Laulu aeglasema versiooni korral muutke väärtuseks 2, mida suurem number, seda aeglasem lugu // *************************** ************** #defineeri NOTE_C4 262 // Märkmete sageduse määratlemine #defineeri NOTE_D4 294 #defineeri NOTE_E4 330 #defineeri NOTE_F4 349 #defineeri NOTE_G4 392 #defineeri NOTE_A4 440 #defineeri NOTE_B4 494 #defineeri NOTE_C5 523 #defineeri NOTE_D5 587 #defineeri NOTE_E5 659 #defineeri NOTE_F5 698 #defineeri NOTE_G5 784 #defineeri NOTE_A5 880 #defineeri NOTE_B5 988 // *********************** ****************** int notes = {// Laulu märkus, 0 on puhkus/impulss 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}; // **************************************** kestus = { / /iga noodi kestus (ms) Veerandnoodiks on seatud 250 ms 125, 125, 250, 125, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};

// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~

#kaasama #kaasama #kaasama

// Reset Pin kasutatakse I2C või SPI jaoks

#define CAP1188_RESET 9

// CS pin kasutatakse tarkvara või riistvara SPI jaoks

#define CAP1188_CS 10

// Need on määratletud tarkvara SPI jaoks, riistvara SPI jaoks kontrollige oma

// plaadi SPI -tihvtid Arduino dokumentatsioonis #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// Kasutage I2C -d, ilma nööpnõelata!

Adafruit_CAP1188 kork = Adafruit_CAP1188 ();

tühine seadistus () {

// MUSIC ~~~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 on noodide koguarv lugu int ootama = kestus * laulukiirus; toon (helisignaal, noodid , oota); // toon (nööpnõel, sagedus, kestus);} // kasutatakse viivitust, nii et see ei lähe järgmisele ringile enne, kui toon on mängitud ~~~~~~~~~~~~~~~~ praegunePiksel = 0; pixels.begin (); // See initsialiseerib NeoPixeli kogu. pixels.show (); // See saadab riistvarale uuendatud pikslivärvi.

// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~

Seriaal.algus (300); Serial.println ("CAP1188 test!"); if (! cap.begin ()) {Serial.println ("CAP1188 ei leitud"); samas (1); } Serial.println ("CAP1188 leitud!");

}

void loop () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t touch = cap.touched (); if (touched == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikslit. Värv (0, 255, 125)); }} else {if ((allkirjastamata pikk) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikslit. Värv (100, 0, 150)); }}

jaoks (int i = 0; i = pixelsInterval) {

colorWipePreviousMillis = millis (); colorWipe (pikslit. Värv (0, 255, 125)); }} else {if ((allkirjastamata pikk) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikslit. Värv (100, 0, 150)); }}

viivitus (oota);

}

}

void colorWipe (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Vabaneb värvipikslitest.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel-1, pixels. Color (0, 0, 0)); pixels.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pikslit. Värv (0, 0, 0));

}

}

3. samm: täiendav samm: kännu „Arduino Ready” valmistamine

Täiendav samm: tehke kännu "Arduino valmis"
Täiendav samm: tehke kännu "Arduino valmis"
Täiendav samm: tehke kännu "Arduino valmis"
Täiendav samm: tehke kännu "Arduino valmis"
Täiendav samm: tehke kännu "Arduino valmis"
Täiendav samm: tehke kännu "Arduino valmis"

Kui otsustate puukännu kasutada, peate tegema järgmist.

  • Hankige puu kännu (sain selle ühelt vanalt jõulupuult tasuta)
  • Mõõtke oma Arduino ja vaadake, kuidas soovite juhtmestiku puu kännu külge panna
  • Õõnestage kännu (kasutasin koolist pärit puurmasinat)
  • Lihvige karmid servad ära
  • Lisage lõbusaid väikeseid detaile

Lisatud üksikasjad olid väike logo, mille tegin laserlõikuriga. Samuti ladusin kogu oma elektroonika oma puu sees olevale pulgale ja lisasin väljast täidisega täidisega täidise, et valgus läbi lasta ja anda sellele väikesele täiendavale pehmusele.

Soovitan: