Talaan ng mga Nilalaman:
- Hakbang 1: Hakbang 1: LED Ring Na may Captive Touch
- Hakbang 2: Hakbang 2: Pagdaragdag ng Tunog
- Hakbang 3: Karagdagang Hakbang: Ginagawa ang Stump na 'Arduino Ready'
Video: Arduino MusicStump: Magaan, Captive Touch at isang Buzzer: 3 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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'
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:
Paano Gumamit ng isang Photoresistor upang magaan ang isang LED Sa Aurduino: 12 Hakbang
Paano Gumamit ng isang Photoresistor upang magaan ang isang LED Sa Aurduino: Magandang umaga / hapon / gabi sa lahat ng mga mahilig sa Arduino! Ngayon, ipapakita ko kung paano gumamit ng isang photoresistor (photocell) upang magaan ang isang LED. Ang code na ibinigay sa Instructable na ito ay hahayaan ang LED na umupo nang normal, ngunit magpapikit
Mas magaan ang Arc sa isang Slot Car Controller: 6 Hakbang (na may Mga Larawan)
Mas magaan ang Arc sa isang Slot Car Controller: Ito ang aking magaan ng arc ng slot car controller. Hindi kailanman naisip na pagsasama-sama ko ang mga salitang iyon sa isang pangungusap! Ang tagakontrol ay mula sa isang Scalextric type racetrack ngunit isang malungkot, murang bersyon. Natagpuan ko ang isang pares sa kanila sa dump at naisip na sila mig
Paano Magaan ang pintura ng isang Kalipunan: 7 Mga Hakbang
Paano Magaan ang pintura ng isang Kalipunan: Sa aking karanasan sa magaan na pagpipinta, sa ngayon ang pinakamahalagang hakbang ay upang lumabas at subukan ito. Hindi ito gagana nang maayos sa una, ngunit ang pagsasanay ay ang tanging paraan upang mapagbuti ang iyong mga kasanayan at maunawaan kung ano ang maaaring mapabuti sa disenyo. Bago pa man
Paano Magaan ang isang LED o Regular na Liwanag Sa USB !!: 5 Mga Hakbang
Paano Mag-iilaw ng isang LED o Regular na Liwanag Sa USB !!: Ang Instructable na ito ay magtuturo sa iyo kung paano magaan ang isang bombilya sa pamamagitan ng isang USB !! Sensya: Kasalukuyan akong walang camera upang hindi ko mai-load ang anumang mga larawan! PERO: I Mayroon bang isang scanner kaya't gagawin ko ang makakaya ko. Sa palagay ko maaari mo itong magamit kapag madilim at ikaw
Mas magaan ang Paglalakbay Sa Isang Laptop: 5 Mga Hakbang
Lighter sa Paglalakbay Gamit ang isang Laptop: Ang mga kaso sa paglalakbay para sa mga laptop ay madalas na napakalaki. Ang ilan ay halos hindi magkasya sa ilalim ng mga upuan sa isang eroplano. Ang larawan ay isang nylon attache 'na natanggap bilang bahagi ng isang packet sa pagpaparehistro ng kombensiyon. Ito ay sapat na malaki para sa isang laptop. Ang mga hawakan at strap ng balikat ay stro