Sadržaj:
- Korak 1: Korak 1: LED prsten sa zarobljenim dodirom
- Korak 2: Korak 2: Dodavanje zvuka
- Korak 3: Dodatni korak: Pripremanje panja za 'Arduino spreman'
Video: Arduino MusicStump: Lagani, zarobljeni dodir i zujalica: 3 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Interaktivno stablo s LED prstenom na vrhu, zujalicom za zvuk i zatvorenim senzorom dodira koji mijenja boju dok ga dodirujete. Za izradu ove zabavne sitnice trebat će vam sljedeće:
Elektronika:- 1x Arduino Uno
- 15x kabela
- 1x lemilica sa okruglim vrhom
- 1x Adafruit 8-ključni dodirni dodir (CAP1188)
- 1x Arduino kabel za napajanje
- 1x 8 LED prsten
- 1x zujalica
- 1x pištolj za vruće ljepilo
-Preuzmite biblioteku CAP1188
- Preuzmite biblioteku Adafruit Neopixela
Dodatno (kućište):
- 1x panj
- 1x štapić za unutrašnjost
- drveni tanjur za sve to staviti/u
- Punjenje punjenih životinja izvana
Također možete koristiti nešto drugo kao vani, budite kreativni!
Počnimo sada…
Korak 1: Korak 1: LED prsten sa zarobljenim dodirom
Ako imate sreće, vaš LED prsten već ima pričvršćene pinove. Ako ne, vrijeme je za lemljenje!
Stvari koje ćemo koristiti za ovaj projekt su:
- DI (digitalni ulaz, pin 6 ~
- 5V (za napajanje, pin 5V)
- GND (Uzemljenje, pin GND)
To je zasad LED prsten. Sada dodirnite zarobljeni.
Stavite ga u matičnu ploču i povežite sve na sljedeći način: SDA/MISO u pin (analogni ulaz) A4SCK u pin (analogni ulaz) A5VIN ulaz (napajanje) 5VGND u GND pin1x kabel na C1 (na samom zarobljenom dodiru)
Sada za testiranje prenesite sljedeći kod na svoj Arduino:
// Julia Emmink // Kôd svjetla i dodira za interaktivno stablo 19 /// Izrađeno korištenjem Adafruit Neopixela i Adafruit captive touch (CAP1188) (treba se instalirati) i LED trepće bez odgode
// NEOPIXEL ~~~~~~~~~~~~~~~~~~
#uključi
#define PIXELSPIN 6 // Gdje ste spojili LED prsten
#define NUMPIXELS 8 // Količina LED dioda na vašem prstenu #define CALIBRATIONTIME 20000
Adafruit_NeoPixel pikseli = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
bez potpisa dugi pikseliInterval = 500; // vrijeme koje trebamo čekati
unsigned long colorWipePreviousMillis = 0; bez potpisa dugo kazališteChasePreviousMillis = 0; bez potpisa duga dugaPrethodniMillis = 0; nepotpisana duga duga ciklaPrethodniMillis = 0;
int TheaterChaseQ = 0;
uint16_t currentPixel = 0; // kojim pikselom radimo
// DODIR ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin se koristi za I2C ili SPI
#define CAP1188_RESET 9
// CS pin se koristi za softverski ili hardverski SPI
#define CAP1188_CS 10
// Oni su definirani za softverski SPI, za hardverski SPI, provjerite svoj
// SPI pinovi ploče u Arduino dokumentaciji #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Koristite I2C, bez pina za resetiranje!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
void setup () {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ currentPixel = 0; pikseli.begin (); // Ovo inicijalizira NeoPixel knjižnicu. pikseli.show (); // Ovo šalje ažuriranu boju piksela na hardver.
// DODIR ~~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("CAP1188 test!");
if (! cap.begin ()) {{100} {101}
Serial.println ("CAP1188 nije pronađen"); while (1); } Serial.println ("CAP1188 pronađen!"); }
void loop () {{100} {101}
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched (); if (dodirnuto == 0) {if ((bez potpisa dugo) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikseli. Boja (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikseli. Boja (100, 0, 150)); }}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Riješava se piksela u boji.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel - 1, pikseli. Boja (0, 0, 0)); pikseli.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Testirajte i zabavite se! Kao što vidite kada dodirnete C1 kabel, boja se mijenja. (Ako nije prvi put, samo isključite Arduino iz utičnice i ponovno ga uključite u računalo.)
Korak 2: Korak 2: Dodavanje zvuka
Koristeći zgodan vodič to sam napravio. Vodič je ispod:
github.com/xitangg/-Pirates-of-the-Caribbe…
Vrijeme je da uzmete zvučni signal! Stavite (-) zujalice u jedan od GND pinova, a (+) u iglu 10 ~
To je sve, sad je vrijeme da ponovno pokrenete kôd i čujete tu ljupku melodiju Pirati s Kariba! Sada se zabavite s testiranjem!
// Julia Emmink // Svjetlosni, dodirni i glazbeni kôd za interaktivno stablo 19. 01. 2018. // Izrađeno korištenjem Adapruit Neopixela i Captive Touch -a (CAP1188) (treba se instalirati) i LED treperi bez odgode
// NEOPIXEL ~~~~~~~~~~~~~~~~~~#include
#define PIXELSPIN 6
#define NUMPIXELS 8 #define CALIBRATIONTIME 20000
Adafruit_NeoPixel pikseli = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
bez potpisa dugi pikseliInterval = 500; // vrijeme koje trebamo čekati
unsigned long colorWipePreviousMillis = 0; bez potpisa dugo kazališteChasePreviousMillis = 0; bez potpisa duga dugaPrethodniMillis = 0; nepotpisana duga duga ciklaPrethodniMillis = 0;
int TheaterChaseQ = 0;
uint16_t currentPixel = 0; // kojim pikselom radimo
// GLAZBA ~~~~~~~~~~~~~~~~~~~~~~
const int zujalica = 10; // Definirajte pin 10, can use other PWM pins (5, 6 or 9) // Napomena pinovi 3 i 11 se ne mogu koristiti kada se koristi funkcija tona u Arduino Uno const int songspeed = 1,5; // Promijenite na 2 za sporiju verziju pjesme, što je veći broj, pjesma je sporija // *************************** ************** #define NOTE_C4 262 // Definiranje frekvencije bilješke #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 note = {// Napomena pjesme, 0 je odmor/puls 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 trajanje = { / /trajanje svake note (u ms) Kvartalna nota je postavljena na 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};
// DODIR ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin se koristi za I2C ili SPI
#define CAP1188_RESET 9
// CS pin se koristi za softverski ili hardverski SPI
#define CAP1188_CS 10
// Oni su definirani za softverski SPI, za hardverski SPI, provjerite svoj
// SPI pinovi ploče u Arduino dokumentaciji #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Koristite I2C, bez pina za resetiranje!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
void setup () {
// MUZIKA ~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 je ukupan broj glazbenih nota u pjesma int čekanje = trajanje * brzina pjesme; ton (zujalica, note , pričekajte); // ton (pin, frekvencija, trajanje);} // koristi se kašnjenje kako ne bi prešlo na sljedeću petlju prije nego što ton završi s reprodukcijom // Možete kliknuti reset na Arduinu za ponovnu reprodukciju pjesme // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pikseli.begin (); // Ovo inicijalizira NeoPixel knjižnicu. pikseli.show (); // Ovo šalje ažuriranu boju piksela na hardver.
// DODIR ~~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("CAP1188 test!"); if (! cap.begin ()) {Serial.println ("CAP1188 nije pronađen"); while (1); } Serial.println ("CAP1188 pronađen!");
}
void loop () {{100} {101}
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched (); if (dodirnuto == 0) {if ((bez potpisa dugo) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikseli. Boja (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikseli. Boja (100, 0, 150)); }}
for (int i = 0; i = pixelsInterval) {
colorWipePreviousMillis = millis (); colorWipe (pikseli. Boja (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pikseli. Boja (100, 0, 150)); }}
odgoda (čekanje);
}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Riješava se piksela u boji.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel-1, pixels. Color (0, 0, 0)); pikseli.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Korak 3: Dodatni korak: Pripremanje panja za 'Arduino spreman'
Ako se ipak odlučite za korištenje panja, morate učiniti sljedeće.
- Nabavite panj (dobio sam ga sa starog božićnog drvca besplatno)
- Izmjerite svoj Arduino i vidite kako želite imati ožičenje u panju
- Izdubite panj (koristio sam bušilicu iz škole)
- Odgrusite grube rubove
- Dodajte zabavne male detalje
Detalji koje sam dodao bio je mali logotip koji sam napravio laserskim rezačem. Također sam svu svoju elektroniku složio unutra na štap unutar svog stabla, a izvana sam dodao nadjev od plišanih životinja kako bi propuštao svjetlo i dao toj maloj dodatnoj mekoći.
Preporučeni:
Lagani držač baterije za papir: 5 koraka
Jednostavan držač baterije za papir: Ako vam je teško pronaći držač za dugmastu bateriju dok radite male projekte sa svojom djecom ili studentima poput mene, onda su ove upute za vas samo za vas. Ovaj držač baterija također ima položaj ON ili OFF, ovisno o načinu zatvaranja
Lagani LED krug: 5 koraka (sa slikama)
Lagani LED krug: Danas ću vam pokazati kako stvoriti jednostavan, ali prilagodljiv krug LED -a i baterije koji je savršen za stavljanje u vaš sljedeći projekt. Ovo je sjajan prvi projekt lemljenja! Slijedite videozapis kako biste vježbali svoju tehniku. Najviše
Lagani Arduino GSM mobilni telefon: 10 koraka
Lagani Arduino GSM mobilni telefon: Pozdrav prijatelji.Dobro došli. U ovom postu predstavit ću vam svoj lagani Arduino GSM mobilni telefon. Lagani mobilni uređaj ima sljedeće nacionalne/međunarodne značajke: Upućivanje poziva Primanje poziva Slanje SMS -a Primanje SMS -a U ovom projektu ja sam
Sretan rođendan-zujalica i gumb: 10 koraka
Sretan rođendan-zujalica i gumb: Ovaj projekt koristi Arduino Uno, zujalicu i gumb za reprodukciju pjesme Sretan rođendan! Kad se pritisne gumb, zujalica reproducira cijelu pjesmu Sretan rođendan. Vidim vezu s glazbenim rođendanskim čestitkama koje moja djeca toliko vole
Lagani GSM mobilni telefon Arduino .: 7 koraka (sa slikama)
Lagani Arduino GSM mobilni telefon.: Zdravo prijatelji, U ovom uputstvu predstavit ću vam svoj Lagani Arduino GSM mobilni telefon. Lagani mobilni uređaj sposoban je za sljedeće nacionalne/međunarodne značajke: Upućivanje poziva. Primajte pozive. Pošaljite SMS. Primajte SMS. U ovom projektu