Obsah:

Arduino MusicStump: Ľahký, zajatý dotyk a bzučiak: 3 kroky
Arduino MusicStump: Ľahký, zajatý dotyk a bzučiak: 3 kroky

Video: Arduino MusicStump: Ľahký, zajatý dotyk a bzučiak: 3 kroky

Video: Arduino MusicStump: Ľahký, zajatý dotyk a bzučiak: 3 kroky
Video: Высокая плотность 2022 2024, November
Anonim
Arduino MusicStump: Ľahký, zajatý dotyk a bzučiak
Arduino MusicStump: Ľahký, zajatý dotyk a bzučiak

Interaktívny strom s prstencom LED v hornej časti, bzučiakom na vytváranie zvuku a vnútorným dotykovým senzorom, ktorý pri dotyku mení farbu. Na to, aby ste urobili túto zábavnú drobnosť, budete potrebovať:

Elektronika:- 1x Arduino Uno

- 15x káble

- 1x spájkovačka s okrúhlou špičkou

- 1x Adafruit 8-klávesový dotykový dotyk (CAP1188)

- 1x napájací kábel Arduino

- 1x 8 LED krúžok

- 1x bzučiak

- 1x horúca lepiaca pištoľ

-Stiahnite si knižnicu CAP1188

- Stiahnite si knižnicu Adafruit Neopixel

Extra (plášť):

- 1x peň

- 1x tyčinka do vnútra

- drevený tanier, ktorý to všetko položí na/do

- Plnená zvieracia plnka zvonku

Môžete tiež použiť niečo iné ako vonku, buďte kreatívni!

Teraz začnime…

Krok 1: Krok 1: Prstenec LED s dotykovým ovládaním

Krok 1: LED krúžok s dotykovým dotykom
Krok 1: LED krúžok s dotykovým dotykom

Ak máte šťastie, k vášmu LED prsteňu už sú pripevnené kolíky. Ak nie, je čas spájkovať!

V tomto projekte použijeme tieto veci:

- DI (digitálny vstup, kolík 6 ~

- 5V (pre napájanie, 5V pin)

- GND (uzemnenie, kolík GND)

To je zatiaľ LED krúžok. Teraz dotyk v zajatí.

Umiestnite ho na nepájivú dosku a všetko zapojte nasledovne: SDA/MISO v kolíku (analógový vstup) A4SCK v kolíku (analógový vstup) A5VIN v (napájanie) 5VGND v kolíku GND1x kábel na C1 (na samotnom dotyku)

Teraz vyskúšajte nahranie nasledujúceho kódu do vášho Arduina:

// Julia Emmink // Svetelný a dotykový kód pre interaktívny strom 19 /// Vyrobený s použitím adaptéra Adafruit Neopixel a Adafruit Captive Touch (CAP1188) (má byť nainštalovaný) a LED diódy bliká bez oneskorenia

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

#zahrnúť

#define PIXELSPIN 6 // Kde ste pripojili LED krúžok

#define NUMPIXELS 8 // Množstvo LED diód, ktoré sú na vašom prstenci #define CALIBRATIONTIME 20 000

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

bez znamienka dlhé pixelyInterval = 500; // čas, na ktorý musíme čakať

nepodpísané dlhé colorWipePreviousMillis = 0; nepodpísané dlhé divadloChasePreviousMillis = 0; dlhá dúha bez znamienkaPreviousMillis = 0; nepodpísané dlhé rainbowCyclesPreviousMillis = 0;

int divadloChaseQ = 0;

uint16_t currentPixel = 0; // na akom pixeli pracujeme

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

#include #include #include

// Reset Pin sa používa pre I2C alebo SPI

#define CAP1188_RESET 9

// Kolík CS sa používa pre softvér alebo hardvér SPI

#define CAP1188_CS 10

// Tieto sú definované pre softvér SPI, pre hardvérové SPI skontrolujte svoje

// SPI piny dosky v dokumentácii Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// Použite I2C, žiadny resetovací kolík!

Čiapka Adafruit_CAP1188 = Adafruit_CAP1188 ();

neplatné nastavenie () {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~ CurrentPixel = 0; pixely.begin (); // Tým sa inicializuje knižnica NeoPixel. pixely.show (); // Toto odošle aktualizovanú farbu pixelov na hardvér.

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

Serial.begin (300); Serial.println („test CAP1188!“);

if (! cap.begin ()) {

Serial.println ("CAP1188 nebol nájdený"); pričom (1); } Serial.println ("CAP1188 nájdený!"); }

prázdna slučka () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~užuž if (touched == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixely. Farba (0, 255, 125)); }} else {if ((bez znamienka) (millis () - colorWipePreviousMillis)> = PixelInterval) {colorWipePreviousMillis = millis (); colorWipe (pixely. Farba (100, 0, 150)); }}

}

void colorWipe (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~~ // Zbaví sa farebných pixelov.setPixelColor (currentPixel, c); pixely.setPixelColor (currentPixel - 1, pixely. Color (0, 0, 0)); pixely.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixely.setPixelColor (7, pixely. Color (0, 0, 0));

}

}

Vyskúšajte a zabavte sa! Ako vidíte, keď sa dotknete kábla C1, farba sa zmení. (Ak sa tak nestane prvýkrát, jednoducho odpojte Arduino a znova ho zapojte do počítača.)

Krok 2: Krok 2: Pridanie zvuku

S použitím šikovného tutoriálu som to urobil. Nasleduje návod:

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

Čas chytiť bzučiak! Vložte (-) bzučiaka do jedného z kolíkov GND a (+) do kolíka 10 ~

To je asi všetko, teraz je čas znova spustiť kód a vypočuť si tú nádhernú melódiu Pirátov z Karibiku! Teraz sa bavte s testovaním!

// Julia Emmink // Svetelný, dotykový a hudobný kód pre interaktívny strom 19. januára 2018 // Vyrobené s použitím adaptéra Adafruit Neopixel a Captive Touch (CAP1188) (má byť nainštalovaný) a LED diódy bliká bez oneskorenia

// NEOPIXEL ~~~~~~~~~~~~~~~~~~~#include

#define PIXELSPIN 6

#define NUMPIXELS 8 #define CALIBRATIONTIME 20 000

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

bez znamienka dlhé pixelyInterval = 500; // čas, na ktorý musíme čakať

nepodpísané dlhé colorWipePreviousMillis = 0; nepodpísané dlhé divadloChasePreviousMillis = 0; dlhá dúha bez znamienkaPreviousMillis = 0; nepodpísané dlhé rainbowCyclesPreviousMillis = 0;

int divadloChaseQ = 0;

uint16_t currentPixel = 0; // na akom pixeli pracujeme

// HUDBA ~~~~~~~~~~~~~~~~~~~~~~

konštantný bzučiak = 10; // Definujte pin 10, môžete použiť iné PWM piny (5, 6 alebo 9) // Poznámka piny 3 a 11 nie je možné použiť pri použití funkcie tónu v Arduino Uno const int SongSpeed = 1,5; // Zmeňte na 2 pre pomalšiu verziu skladby, čím vyššie číslo, tým je pieseň pomalšia // ************************** ************* #define NOTE_C4 262 // Definovanie frekvencie poznámok #define NOTE_D4 294 #define NOTE_E4 330 #define NOTE_F4 349 #define NOTE_G4 392 #define NOTE_A4 440 #define NOTE_B4 494 #define NOTE_C5 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 tóny = {// Poznámka k piesni, 0 je odpočinok/pulz 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 trvanie = { / /trvanie každej noty (v ms) Quarter Note je nastavená na 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

// Resetovací pin sa používa pre I2C alebo SPI

#define CAP1188_RESET 9

// Kolík CS sa používa pre softvér alebo hardvér SPI

#define CAP1188_CS 10

// Tieto sú definované pre softvér SPI, pre hardvérové SPI skontrolujte svoje

// SPI piny dosky v dokumentácii Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13

// Použite I2C, žiadny resetovací kolík!

Čiapka Adafruit_CAP1188 = Adafruit_CAP1188 ();

neplatné nastavenie () {

// MUSIC ~~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 je celkový počet hudobných poznámok v skladba čakať, = trvanie * rýchlosť skladby; tón (bzučiak, poznámky , čakanie); // tón (pin, frekvencia, trvanie);} // oneskorenie sa používa, aby neprešlo do ďalšej slučky, kým sa prehrávanie tónu neskončí // Kliknutím na resetovať na Arduine prehráte skladbu // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pixely.begin (); // Tým sa inicializuje knižnica NeoPixel. pixely.show (); // Toto odošle aktualizovanú farbu pixelov na hardvér.

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

Serial.begin (300); Serial.println („test CAP1188!“); if (! cap.begin ()) {Serial.println ("CAP1188 not found"); pričom (1); } Serial.println ("CAP1188 nájdený!");

}

prázdna slučka () {

// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~užuž if (touched == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixely. Farba (0, 255, 125)); }} else {if ((bez znamienka) (millis () - colorWipePreviousMillis)> = PixelInterval) {colorWipePreviousMillis = millis (); colorWipe (pixely. Farba (100, 0, 150)); }}

pre (int i = 0; i = interval pixelov) {

colorWipePreviousMillis = milis (); colorWipe (pixely. Farba (0, 255, 125)); }} else {if ((bez znamienka) (millis () - colorWipePreviousMillis)> = PixelInterval) {colorWipePreviousMillis = millis (); colorWipe (pixely. Farba (100, 0, 150)); }}

oneskorenie (čakanie);

}

}

void colorWipe (uint32_t c) {

// NEOPIXEL ~~~~~~~~~~~~~~~~~~~ // Zbaví sa farebných pixelov.setPixelColor (currentPixel, c); pixely.setPixelColor (aktuálnyPixel-1, pixely. Color (0, 0, 0)); pixely.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixely.setPixelColor (7, pixely. Color (0, 0, 0));

}

}

Krok 3: Ďalší krok: Príprava pňa na „Arduino“

Ďalší krok: Príprava pňa na „Arduino“
Ďalší krok: Príprava pňa na „Arduino“
Ďalší krok: Vytvorenie pňa „pripraveného na Arduino“
Ďalší krok: Vytvorenie pňa „pripraveného na Arduino“
Ďalší krok: Príprava pňa na „Arduino“
Ďalší krok: Príprava pňa na „Arduino“

Ak sa rozhodnete použiť peň, musíte urobiť nasledujúce.

  • Získajte pahýľ (jeden mám zo starého vianočného stromčeka zadarmo)
  • Zmerajte si Arduino a uvidíte, ako chcete mať kabeláž v pni stromu
  • Vydlabte pahýľ (zo školy som použil vŕtačku)
  • Hrubé hrany obrúste
  • Pridajte zábavné malé detaily

Podrobnosti, ktoré som pridal, bolo malé logo, ktoré som vyrobil laserovou rezačkou. Celú svoju elektroniku som tiež poskladal dovnútra na palicu vo svojom strome a zvonku som pridal plnku z plyšových zvierat, aby svetlo preniklo dovnútra a dodalo tej malej extra jemnosť.

Odporúča: