Სარჩევი:

Arduino MusicStump: Light, Captive Touch and Buzzer: 3 Steps
Arduino MusicStump: Light, Captive Touch and Buzzer: 3 Steps

ვიდეო: Arduino MusicStump: Light, Captive Touch and Buzzer: 3 Steps

ვიდეო: Arduino MusicStump: Light, Captive Touch and Buzzer: 3 Steps
ვიდეო: How To Use A Sound Sensor With Arduino 2024, ნოემბერი
Anonim
Arduino MusicStump: მსუბუქი, ტყვეობრივი შეხება და ზარი
Arduino MusicStump: მსუბუქი, ტყვეობრივი შეხება და ზარი

ინტერაქტიული ხე, რომელსაც აქვს LED ბეჭედი ზედა ნაწილში, ზარის გასაძლიერებლად და შიგნით შეხების სენსორი, რომელიც იცვლის ფერს შეხებისას. ამ სახალისო პატარა ნივთის გასაკეთებლად დაგჭირდებათ შემდეგი:

ელექტრონიკა:- 1x Arduino Uno

- 15x კაბელი

- 1x soldering რკინის ერთად მრგვალი წვერი

- 1x Adafruit 8-გასაღები ტყვეობაში შეხება (CAP1188)

- 1x Arduino დენის კაბელი

- 1x8 LED ბეჭედი

- 1x Buzzer

- 1x ცხელი წებოს იარაღი

-ჩამოტვირთეთ ბიბლიოთეკა CAP1188

- ჩამოტვირთეთ Adafruit Neopixel ბიბლიოთეკა

დამატებითი (გარსაცმები):

- 1x ხის stump

- 1x ჯოხი შიგნით

- ხის ლანგარი, რომ ყველაფერი მოათავსოთ/ჩასვათ

- გარედან ცხოველების ჩაყრილი შიგთავსი

თქვენ ასევე შეგიძლიათ გამოიყენოთ რაიმე სხვა, როგორც გარეთ, იყავით შემოქმედებითი!

ახლა დავიწყოთ…

ნაბიჯი 1: ნაბიჯი 1: LED ბეჭედი ტყვე შეხებით

ნაბიჯი 1: LED ბეჭედი ტყვე შეხებით
ნაბიჯი 1: LED ბეჭედი ტყვე შეხებით

ახლა თუ გაგიმართლათ, თქვენს LED ბეჭედს უკვე აქვს მიმაგრებული ქინძისთავები. თუ არადა დროა შედუღების!

ის, რასაც ჩვენ გამოვიყენებთ ამ პროექტისთვის, არის:

- DI (ციფრული შეყვანა, პინ 6 ~

- 5V (სიმძლავრისთვის, 5V pin)

- GND (მიწა, GND pin)

ეს არის LED ბეჭედი ახლა. ახლა ტყვეობაში შეხება.

მოათავსეთ იგი დაფაზე და შეაერთეთ ყველაფერი შემდეგნაირად: SDA/MISO პინში (ანალოგიში) A4SCK პინში (ანალოგიში) A5VIN in (ძალა) 5VGND GND pin1x კაბელში C1 (თავად ტყვეობის შეხებაზე)

ახლა შესამოწმებლად ატვირთეთ შემდეგი კოდი თქვენს არდუინოში:

// ჯულია ემინკი // სინათლისა და შეხების კოდი ინტერაქტიული ხის 19 /// დამზადებულია Adafruit Neopixel და Adafruit captive touch (CAP1188) (დაინსტალირდება) და LED მოციმციმე დაყოვნების გარეშე

// NEOPIXEL

#ჩართეთ

#განსაზღვრეთ PIXELSPIN 6 // სად შეაერთეთ LED ბეჭედი

#განსაზღვრეთ NUMPIXELS 8 // LED- ების რაოდენობა, რომლებიც თქვენს ბეჭედზეა #განსაზღვრეთ კალიბრაცია დრო 20000

Adafruit_NeoPixel პიქსელი = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

ხელმოუწერელი გრძელი პიქსელი ინტერვალი = 500; // დრო, რომელიც უნდა დაველოდოთ

ხელმოუწერელი გრძელი ფერიWipePreviousMillis = 0; ხელმოუწერელი გრძელი თეატრი ChasePreviousMillis = 0; ხელმოუწერელი გრძელი ცისარტყელა წინასწარიმილის = 0; ხელმოუწერელი გრძელი ცისარტყელა CyclesPreviousMillis = 0;

int theaterChaseQ = 0;

uint16_t currentPixel = 0; // რა პიქსელზე ვმუშაობთ

// შეხება

#ჩართეთ #ჩართეთ #ჩართეთ

// გადატვირთვა 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 cap = Adafruit_CAP1188 ();

void setup () {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin (); // ეს ინიციალებს NeoPixel ბიბლიოთეკას. pixels.show (); // ეს აგზავნის განახლებული პიქსელის ფერს აპარატურაზე.

// შეხება

სერიული. დასაწყისი (300); Serial.println ("ტესტი CAP1188!");

თუ (! cap.begin ()) {

Serial.println ("CAP1188 ვერ მოიძებნა"); ხოლო (1); } Serial.println ("ნაპოვნია CAP1188!"); }

ბათილი მარყუჟი () {

// შეხება + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t შეეხო = cap.touched (); if (შეეხო == 0) {if ((ხელმოუწერელი გრძელია) (მილილი () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (პიქსელი. ფერი (0, 255, 125)); }} სხვა {if ((ხელმოუწერელი გრძელი) (მილილი () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (პიქსელი. ფერი (100, 0, 150)); }}

}

ბათილი ფერიWipe (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…

დროა დაიჭიროთ თქვენი ზუზუნი! განათავსეთ ზუმერის (-) ერთი GND ქინძისთავში და (+) პინ 10-ში

ეს ასეა, ახლა დროა კვლავ გაუშვათ კოდი და მოვისმინოთ კარიბის ზღვის მეკობრეების ეს მელოდია! ახლა გაერთეთ ტესტირებით!

// ჯულია ემინკი // სინათლე, შეხება და მუსიკალური კოდი ინტერაქტიული ხისათვის 2018-01-19 // დამზადებულია Adafruit Neopixel და Captive Touch (CAP1188) გამოყენებით (დაინსტალირდება) და LED მოციმციმე დაყოვნების გარეშე

// NEOPIXEL ~~~~~~~~~~~~~~~~~~#მოიცავს

#განსაზღვრეთ PIXELSPIN 6

#განსაზღვრეთ NUMPIXELS 8 #განსაზღვრეთ კალიბრაციის დრო 20000

Adafruit_NeoPixel პიქსელი = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);

ხელმოუწერელი გრძელი პიქსელი ინტერვალი = 500; // დრო, რომელიც უნდა დაველოდოთ

ხელმოუწერელი გრძელი ფერიWipePreviousMillis = 0; ხელმოუწერელი გრძელი თეატრი ChasePreviousMillis = 0; ხელმოუწერელი გრძელი ცისარტყელა წინამილის = 0; ხელმოუწერელი გრძელი ცისარტყელა CyclesPreviousMillis = 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 #define 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 cap = Adafruit_CAP1188 ();

void setup () {

// MUSIC ~~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 არის მუსიკალური ნოტების საერთო რაოდენობა სიმღერა int ლოდინი = ხანგრძლივობა * სიმღერების სიჩქარე; ტონი (ზუზუნი, შენიშვნები , ლოდინი); // ტონი (პინი, სიხშირე, ხანგრძლივობა);} // შეფერხება გამოიყენება, რათა ის არ გადავიდეს მომდევნო მარყუჟზე ტონის დამთავრებამდე // თქვენ შეგიძლიათ დააწკაპუნოთ Arduino– ზე გადატვირთვა სიმღერის გასახსნელად // NEOPIXEL ~~~~~~~~~~~~~~~ მიმდინარე პიქსელი = 0; pixels.begin (); // ეს ინიციალებს NeoPixel ბიბლიოთეკას. pixels.show (); // ეს აგზავნის განახლებული პიქსელის ფერს აპარატურაზე.

// შეხება

სერიული. დასაწყისი (300); Serial.println ("ტესტი CAP1188!"); if (! cap.begin ()) {Serial.println ("CAP1188 ვერ მოიძებნა"); ხოლო (1); } Serial.println ("ნაპოვნია CAP1188!");

}

ბათილი მარყუჟი () {

// შეხება + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~ uint8_t შეეხო = cap.touched (); if (შეეხო == 0) {if ((ხელმოუწერელი გრძელია) (მილილი () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (პიქსელი. ფერი (0, 255, 125)); }} სხვა {if ((ხელმოუწერელი გრძელი) (მილილი () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (პიქსელი. ფერი (100, 0, 150)); }}

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

colorWipePreviousMillis = millis (); colorWipe (პიქსელი. ფერი (0, 255, 125)); }} სხვა {if ((ხელმოუწერელი გრძელი) (მილილი () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (პიქსელები. ფერი (100, 0, 150)); }}

დაგვიანება (ლოდინი);

}

}

ბათილი ფერიWipe (uint32_t გ) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // ათავისუფლებს ფერს pixels.setPixelColor (მიმდინარე პიქსელი, გ); pixels.setPixelColor (მიმდინარე Pixel-1, pixels. Color (0, 0, 0)); pixels.show (); მიმდინარე Pixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, პიქსელი. ფერი (0, 0, 0));

}

}

ნაბიჯი 3: დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის

დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის
დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის
დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის
დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის
დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის
დამატებითი ნაბიჯი: Stump მზადდება Arduino– სთვის

თუ თქვენ გადაწყვეტთ ხის ღეროს გამოყენებას, თქვენ უნდა გააკეთოთ შემდეგი.

  • მიიღეთ ხის ჩეხი (მე მივიღე ერთი ძველი ნაძვის ხისგან უფასოდ)
  • გაზომეთ თქვენი არდუინო და ნახეთ, თუ როგორ გსურთ გაყვანილობა ხის ღეროში
  • ამოიღეთ მუწუკი (სკოლიდან გამოვიყენე საბურღი მანქანა)
  • ქვიშა უხეში კიდეები
  • დაამატეთ სახალისო მცირე დეტალები

დეტალები, რომლებიც მე დავამატე, იყო პატარა ლოგო, რომელიც მე გავაკეთე ლაზერული საჭრელით. მე ასევე დავდე ჩემი ყველა ელექტრონიკა შიგნით ჩხირზე, ჩემი ხის შიგნით და გარედან დავამატე ცხოველების შიგთავსით შიგთავსები, რათა შუქი გაშვებულიყო და მიეცა ეს პატარა დამატებითი რბილობა.

გირჩევთ: