Talaan ng mga Nilalaman:

Arduino MusicStump: Magaan, Captive Touch at isang Buzzer: 3 Hakbang
Arduino MusicStump: Magaan, Captive Touch at isang Buzzer: 3 Hakbang

Video: Arduino MusicStump: Magaan, Captive Touch at isang Buzzer: 3 Hakbang

Video: Arduino MusicStump: Magaan, Captive Touch at isang Buzzer: 3 Hakbang
Video: Stomp Shield for Arduino 2024, Nobyembre
Anonim
Arduino MusicStump: Magaan, Captive Touch at isang Buzzer
Arduino MusicStump: Magaan, Captive Touch at isang Buzzer

Isang interactive na puno na may LED ring sa tuktok, isang buzzer upang gumawa ng tunog at isang bihag na touch sensor sa loob na nagbabago ng kulay habang hinahawakan mo ito. Upang gawin ang kasiya-siyang maliit na bagay na kakailanganin mo ang sumusunod:

Electronics: - 1x Arduino Uno

- 15x cable

- 1x soldering iron na may isang bilog na tip

- 1x Adafruit 8-key na bihag na ugnayan (CAP1188)

- 1x Arduino power cable

- 1x 8 LED ring

- 1x Buzzer

- 1x mainit na baril na pandikit

- I-download ang silid-aklatan ng CAP1188

- I-download ang library ng Adafruit Neopixel

Dagdag (pambalot):

- 1x tuod ng puno

- 1x stick para sa loob

- kahoy na pinggan upang ilagay ang lahat sa / sa

- Pinalamanan ang pagpupuno ng hayop para sa labas

Maaari mo ring gamitin ang ibang bagay tulad ng sa labas, maging malikhain!

Magsimula na tayo …

Hakbang 1: Hakbang 1: LED Ring Na may Captive Touch

Hakbang 1: LED Ring Na may Captive Touch
Hakbang 1: LED Ring Na may Captive Touch

Ngayon kung mapalad ka ang iyong singsing na LED ay mayroon nang mga nakakabit na mga pin dito. Kung hindi oras na upang maghinang!

Ang mga bagay na gagamitin namin para sa proyektong ito ay:

- DI (Digital input, pin 6 ~

- 5V (para sa lakas, 5V pin)

- GND (Ang lupa, pin ng GND)

Iyon ang singsing na LED para sa ngayon. Ngayon ang touch touch.

Ilagay ito sa isang breadboard at ikonekta ang lahat tulad ng sumusunod: SDA / MISO sa pin (analog sa) A4SCK sa pin (analog sa) A5VIN sa (lakas) 5VGND sa isang GND pin1x cable sa C1 (sa Captive touch mismo)

Ngayon upang subukan ang pag-upload ng sumusunod na code sa iyong Arduino:

// Julia Emmink // Banayad at pindutin ang code para sa interactive na puno 19 /// Ginawa gamit ang paggamit ng Adafruit Neopixel at Adafruit bihag na touch (CAP1188) (ay mai-install) at ang LED na kumikislap nang walang pagkaantala

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

# isama

#define PIXELSPIN 6 // Kung saan mo ikinonekta ang LED Ring

#define NUMPIXELS 8 // Ang dami ng mga LED na nasa iyong singsing # tukuyin ang CALIBRATIONTIME 20000

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

unsigned mahabang pixelInterval = 500; // ang oras na kailangan nating maghintay

unsigned mahabang kulayWipePreviousMillis = 0; unsigned mahabang teatroChasePreviousMillis = 0; unsigned mahabang bahaghariPreviousMillis = 0; unsigned mahabang bahaghariCyclePreviousMillis = 0;

int theatreChaseQ = 0;

uint16_t currentPixel = 0; // anong pixel ang pinapatakbo natin

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

#include #include #include

// Ginagamit ang I-reset ang Pin para sa I2C o SPI

# tukuyin ang CAP1188_RESET 9

// CS pin ay ginagamit para sa software o hardware SPI

# tukuyin ang CAP1188_CS 10

// Ang mga ito ay tinukoy para sa software SPI, para sa hardware SPI, suriin ang iyong

// board's SPI pins sa dokumentasyong Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// Gumamit ng I2C, walang reset pin!

Adafruit_CAP1188 cap = Adafruit_CAP1188 ();

walang bisa ang pag-setup () {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~~ kasalukuyangPixel = 0; pix.begin (); // Pinasimulan nito ang NeoPixel library. pix.show (); // Ipinapadala nito ang na-update na kulay ng pixel sa hardware.

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

Serial.begin (300); Serial.println ("pagsubok sa CAP1188!");

kung (! cap.begin ()) {

Serial.println ("hindi nahanap ang CAP1188"); habang (1); } Serial.println ("Nahanap ang CAP1188!"); }

void loop () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~~ uint8_t touch = cap.touched (); kung (hinawakan == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixInterval) {colorWipePreviousMillis = millis (); colorWipe (mga pixel. Kulay (0, 255, 125)); }} iba pa {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixInterval) {colorWipePreviousMillis = millis (); colorWipe (mga pixel. Kulay (100, 0, 150)); }}

}

walang bisa na colorWipe (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Nakakawala ng mga pixel ng kulay.setPixelColor (currentPixel, c); pix.setPixelColor (kasalukuyangPixel - 1, mga pixel. Kulay (0, 0, 0)); pix.show (); kasalukuyangPixel ++; kung (kasalukuyangPixel == NUMPIXELS) {currentPixel = 0; pix.setPixelColor (7, pixel. Color (0, 0, 0));

}

}

Subukan ito at magsaya! Tulad ng nakikita mo kapag hinawakan mo ang C1 cord nagbabago ang kulay. (Kung hindi ito sa unang pagkakataon i-unplug lamang ang iyong Arduino at i-plug ito muli sa iyong computer.)

Hakbang 2: Hakbang 2: Pagdaragdag ng Tunog

Sa paggamit ng isang madaling gamiting tutorial na ginawa ko ito. Ang tutorial ay sa ibaba:

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

Oras upang grab ang iyong buzzer! Ilagay ang (-) ng buzzer sa isa sa mga pin ng GND at ang (+) sa pin 10 ~

Iyon ay tungkol dito, oras na ngayon upang patakbuhin muli ang code at marinig ang kaibig-ibig na Pirates of the Caribbean tune! Ngayon magsaya ka sa pagsubok!

// Julia Emmink // Light, touch and music code para sa interactive na puno 2018-01-19 // Ginawa gamit ang paggamit ng Adafruit Neopixel and Captive Touch (CAP1188) (ay mai-install) at ang LED na kumikislap nang walang pagkaantala

// NEOPIXEL ~~~~~~~~~~~~~~~~~~~ # isama

# tukuyin ang PIXELSPIN 6

# tukuyin ang NUMPIXELS 8 # tukuyin ang CALIBRATIONTIME 20000

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

unsigned mahabang pixelInterval = 500; // ang oras na kailangan nating maghintay

unsigned mahabang kulayWipePreviousMillis = 0; unsigned mahabang teatroChasePreviousMillis = 0; unsigned mahabang bahaghariPreviousMillis = 0; unsigned mahabang bahaghariCyclePreviousMillis = 0;

int theatreChaseQ = 0;

uint16_t currentPixel = 0; // anong pixel ang pinapatakbo natin

// MUSIC ~~~~~~~~~~~~~~~~~~~~~~~~

Const int buzzer = 10; // Define pin 10, can use other PWM pins (5, 6 or 9) // Note pin 3 and 11 cannot be used when using the tone function in Arduino Uno const int songspeed = 1.5; // Change to 2 para sa isang mas mabagal na bersyon ng kanta, mas malaki ang bilang ng mas mabagal ang kanta // ***** ***** 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 // ********************* *****, NOTE_C5, NOTE_C5, 0, NOTE_C5, NOTE_D5, NOTE_B4, NOTE_B4, 0, NOTE_A4, NOTE_G4, NOTE_A4, 0}; // ***** / tagal ng bawat tala (sa ms) Ang Quarter Note ay nakatakda sa 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};

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

#include #include #include

// Ginagamit ang I-reset ang Pin para sa I2C o SPI

# tukuyin ang CAP1188_RESET 9

// CS pin ay ginagamit para sa software o hardware SPI

# tukuyin ang CAP1188_CS 10

// Ang mga ito ay tinukoy para sa software SPI, para sa hardware SPI, suriin ang iyong

// board's SPI pins sa dokumentasyong Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// Gumamit ng I2C, walang reset pin!

Adafruit_CAP1188 cap = Adafruit_CAP1188 ();

walang bisa ang pag-setup () {

// MUSIC ~~~~~~~~~~~~~~~~~~~~~~~ para sa (int i = 0; i <203; i ++) {// 203 ang kabuuang bilang ng mga tala ng musika sa ang kantang int wait = tagal * songspeed; tono (buzzer, tala , maghintay); // tone (pin, dalas, tagal);} // pagkaantala ay ginagamit upang hindi ito pumunta sa susunod na loop bago matapos ang tono sa pag-play // Maaari mong i-click ang i-reset sa Arduino upang i-replay ang kanta // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~~ kasalukuyangPixel = 0; pix.begin (); // Pinasimulan nito ang NeoPixel library. pix.show (); // Ipinapadala nito ang na-update na kulay ng pixel sa hardware.

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

Serial.begin (300); Serial.println ("pagsubok sa CAP1188!"); kung (! cap.begin ()) {Serial.println ("CAP1188 not found"); habang (1); } Serial.println ("Nahanap ang CAP1188!");

}

void loop () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~~ uint8_t touch = cap.touched (); kung (hinawakan == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixInterval) {colorWipePreviousMillis = millis (); colorWipe (mga pixel. Kulay (0, 255, 125)); }} iba pa {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixInterval) {colorWipePreviousMillis = millis (); colorWipe (mga pixel. Kulay (100, 0, 150)); }}

para sa (int i = 0; i = pixInterval) {

colorWipePreviousMillis = millis (); colorWipe (mga pixel. Kulay (0, 255, 125)); }} iba pa {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixInterval) {colorWipePreviousMillis = millis (); colorWipe (mga pixel. Kulay (100, 0, 150)); }}

antala (maghintay);

}

}

walang bisa na colorWipe (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Nakakawala ng mga pixel ng kulay.setPixelColor (currentPixel, c); pix.setPixelColor (kasalukuyangPixel-1, mga pixel. Kulay (0, 0, 0)); pix.show (); kasalukuyangPixel ++; kung (kasalukuyangPixel == NUMPIXELS) {currentPixel = 0; pix.setPixelColor (7, pixel. Color (0, 0, 0));

}

}

Hakbang 3: Karagdagang Hakbang: Ginagawa ang Stump na 'Arduino Ready'

Karagdagang Hakbang: Paggawa ng tuod ng 'Arduino Ready'
Karagdagang Hakbang: Paggawa ng tuod ng 'Arduino Ready'
Karagdagang Hakbang: Paggawa ng tuod ng 'Arduino Ready'
Karagdagang Hakbang: Paggawa ng tuod ng 'Arduino Ready'
Karagdagang Hakbang: Paggawa ng tuod ng 'Arduino Ready'
Karagdagang Hakbang: Paggawa ng tuod ng 'Arduino Ready'

Kung magpasya kang gumamit ng isang tuod ng puno kailangan mong gawin ang mga sumusunod.

  • Kumuha ng isang tuod ng puno (Nakuha ko ang isa mula sa isang lumang Christmas tree nang libre)
  • Sukatin ang iyong Arduino at makita kung paano mo nais na magkaroon ng mga kable sa tuod ng puno
  • Hollow out ang tuod (Gumamit ako ng drill machine mula sa paaralan)
  • Buhangin ang magaspang na mga gilid
  • Magdagdag ng nakakatuwang maliliit na detalye

Ang mga detalyeng idinagdag ko ay isang maliit na logo na ginawa ko gamit ang isang laser cutter. Inilagay ko din ang lahat ng aking electronics sa loob ng isang stick sa loob ng aking puno at idinagdag ko ang pinalamanan na pagpupuno ng hayop sa labas upang magaan ang ilaw at maibigay ang maliit na labis na lambot.

Inirerekumendang: