Cuprins:
- Pasul 1: Pasul 1: Inel cu LED cu atingere captivă
- Pasul 2: Pasul 2: Adăugarea de sunet
- Pasul 3: Pas suplimentar: pregătirea butucului „Arduino Ready”
Video: Arduino MusicStump: ușor, captivant și un buzzer: 3 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
Un copac interactiv cu un inel LED în partea de sus, un buzzer pentru a face sunet și un senzor tactil captiv în interior care schimbă culoarea pe măsură ce îl atingeți. Pentru a face acest lucru distractiv, veți avea nevoie de următoarele:
Electronică: - 1x Arduino Uno
- 15x cabluri
- 1x fier de lipit cu vârf rotund
- 1 atingere captivă Adafruit cu 8 taste (CAP1188)
- 1x cablu de alimentare Arduino
- 1 inel cu 8 LED-uri
- 1x buzzer
- 1x pistol de lipit fierbinte
- Descărcați biblioteca CAP1188
- Descărcați biblioteca Adafruit Neopixel
Extra (carcasă):
- 1x butuc de copac
- 1x stick pentru interior
- platou de lemn pentru a pune totul pe / în
- Umpluturi de animale umplute pentru exterior
Puteți folosi și altceva ca în exterior, fiți creativi!
Acum să începem …
Pasul 1: Pasul 1: Inel cu LED cu atingere captivă
Acum, dacă ești norocos, inelul tău cu LED-uri are deja pini atașați la el. Dacă nu, este timpul să lipiți!
Lucrurile pe care le vom folosi pentru acest proiect sunt:
- DI (Intrare digitală, pin 6 ~
- 5V (pentru putere, pin 5V)
- GND (solul, pinul GND)
Acesta este inelul LED pentru moment. Acum atingerea captivă.
Așezați-l într-o placă de conectare și conectați totul după cum urmează: SDA / MISO în pin (analog intrare) A4SCK în pin (analog intrare) A5VIN în (alimentare) 5VGND într-un pin GND cablu 1x la C1 (pe captivitatea însăși)
Acum, pentru a testa încărcați următorul cod pe Arduino:
// Julia Emmink // Cod luminos și tactil pentru arborele interactiv 19 /// Realizat cu utilizarea Adafruit Neopixel și Adafruit captive touch (CAP1188) (urmează să fie instalat) și LED-ul clipește fără întârziere
// NEOPIXEL ~~~~~~~~~~~~~~~~~~
#include
#define PIXELSPIN 6 // Unde ați conectat inelul LED
#define NUMPIXELS 8 // Cantitatea de LED-uri care sunt pe inelul tău #define CALIBRATIONTIME 20000
Adafruit_NeoPixel pixeli = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
pixeli lungi nesemnați Interval = 500; // timpul pe care trebuie să-l așteptăm
nesemnat lung colorWipePreviousMillis = 0; teatru lung nesemnatChasePreviousMillis = 0; curcubeu lung nesemnatPreviousMillis = 0; rainbowCyclesPreviousMillis lung nesemnat = 0;
int theatreChaseQ = 0;
uint16_t currentPixel = 0; // pe ce pixel operăm
// TOUCH ~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin este utilizat pentru I2C sau SPI
#define CAP1188_RESET 9
// Pinul CS este utilizat pentru software sau hardware SPI
#define CAP1188_CS 10
// Acestea sunt definite pentru software SPI, pentru hardware SPI, verificați-vă
// pinii SPI ai plăcii în documentația Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Folosiți I2C, fără pin de resetare!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
configurare nulă () {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ currentPixel = 0; pixeli.begin (); // Aceasta inițializează biblioteca NeoPixel. pixels.show (); // Aceasta trimite culoarea pixelilor actualizată la hardware.
// TOUCH ~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("test CAP1188!");
if (! cap.begin ()) {
Serial.println ("CAP1188 nu a fost găsit"); în timp ce (1); } Serial.println ("CAP1188 găsit!"); }
bucla nulă () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~ uint8_t atins = cap.touched (); if (atins == 0) {if ((nesemnat lung) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixeli. Culoare (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixeli. Culoare (100, 0, 150)); }}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ // Elimina pixelii de culoare.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel - 1, pixels. Color (0, 0, 0)); pixels.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Testează-l și distrează-te! După cum vedeți când atingeți cablul C1, culoarea se schimbă. (Dacă nu este pentru prima dată, deconectați-vă Arduino și conectați-l din nou la computer.)
Pasul 2: Pasul 2: Adăugarea de sunet
Cu ajutorul unui tutorial la îndemână, am făcut acest lucru. Tutorialul de mai jos:
github.com/xitangg/-Pirates-of-the-Caribbe…
Este timpul să vă apucați soneria! Puneți (-) soneria într-unul dintre pinii GND și (+) în pinul 10 ~
Cam atât, acum este timpul să rulați din nou codul și să auziți acea melodie minunată a Piraților din Caraibe! Acum distrează-te testând!
// Julia Emmink // Lumina, atingerea și codul muzical pentru arborele interactiv 2018-01-19 // Realizat cu utilizarea Adafruit Neopixel și Captive Touch (CAP1188) (urmează să fie instalat) și LED-ul clipește fără întârziere
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ # include
#define PIXELSPIN 6
#define NUMPIXELS 8 #define CALIBRATIONTIME 20000
Adafruit_NeoPixel pixeli = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
pixeli lungi nesemnați Interval = 500; // timpul pe care trebuie să-l așteptăm
nesemnat lung colorWipePreviousMillis = 0; teatru lung nesemnatChasePreviousMillis = 0; curcubeu lung nesemnatPreviousMillis = 0; rainbowCyclesPreviousMillis lung nesemnat = 0;
int theatreChaseQ = 0;
uint16_t currentPixel = 0; // pe ce pixel operăm
// MUZICA ~~~~~~~~~~~~~~~~~~~~~~
const int buzzer = 10; // Definiți pinul 10, puteți utiliza alți pinii PWM (5, 6 sau 9) // Notați pinii 3 și 11 nu pot fi utilizați când utilizați funcția de ton în Arduino Uno const int viteză de melodie = 1,5; // Schimbați la 2 pentru o versiune mai lentă a melodiei, cu cât numărul este mai mare, cu atât melodia este mai lentă // *************************** ************** #define NOTE_C4 262 // Definirea frecvenței notei #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 notes = {// Nota melodiei, 0 este o pauză / 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 durata = {/ / durata fiecărei note (în ms) Notă trimestrială este setată la 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
// Reset Pin este utilizat pentru I2C sau SPI
#define CAP1188_RESET 9
// Pinul CS este utilizat pentru software sau hardware SPI
#define CAP1188_CS 10
// Acestea sunt definite pentru software SPI, pentru hardware SPI, verificați-vă
// pinii SPI ai plăcii în documentația Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Utilizați I2C, fără pin de resetare!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
configurare nulă () {
// MUSIC ~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 este numărul total de note muzicale din melodia int wait = durata * melodia vitezei; ton (sonerie, note , așteptați); // ton (pin, frecvență, durată);} // întârzierea este utilizată, astfel încât să nu meargă la următoarea buclă înainte ca tonul să fie terminat de redat // Puteți face clic pe reset pe Arduino pentru a reda melodia // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pixeli.begin (); // Aceasta inițializează biblioteca NeoPixel. pixels.show (); // Aceasta trimite culoarea pixelilor actualizată la hardware.
// TOUCH ~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("test CAP1188!"); if (! cap.begin ()) {Serial.println ("CAP1188 not found"); în timp ce (1); } Serial.println ("CAP1188 găsit!");
}
bucla nulă () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~ uint8_t atins = cap.touched (); if (atins == 0) {if ((nesemnat lung) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixeli. Culoare (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixeli. Culoare (100, 0, 150)); }}
for (int i = 0; i = pixelsInterval) {
colorWipePreviousMillis = millis (); colorWipe (pixeli. Culoare (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (pixeli. Culoare (100, 0, 150)); }}
întârziere (așteptați);
}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ // Elimina pixelii de culoare.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel-1, pixels. Color (0, 0, 0)); pixels.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Pasul 3: Pas suplimentar: pregătirea butucului „Arduino Ready”
Dacă decideți să folosiți o buturugă de copac, trebuie să faceți următoarele.
- Obțineți o buturugă de copac (am primit una de la un pom de Crăciun gratuit)
- Măsurați-vă Arduino și vedeți cum doriți să aveți cablurile în butucul de copac
- Scobesc butucul (am folosit o mașină de găurit de la școală)
- Șlefuiți marginile aspre
- Adăugați mici detalii distractive
Detalii pe care le-am adăugat a fost un logo mic pe care l-am realizat cu un tăietor cu laser. De asemenea, mi-am stivuit toate componentele electronice înăuntru pe un băț în interiorul copacului meu și am adăugat umpluturi de animale umplute în exterior pentru a lăsa lumina să treacă și pentru a oferi acea mică moliciune suplimentară.
Recomandat:
Garaj ușor de stare Hack ușor: 3 pași
Garage Door Status Light Hack: Locuiesc într-o casă în care nu este ușor să văd dacă ușa garajului este deschisă sau închisă. Avem un buton în casă, dar ușa nu este văzută. Gândul la ingineria unui fel de întrerupător și de alimentare nu a fost de dorit din cauza pr
DIY MusiLED, LED-uri sincronizate muzicale cu aplicație Windows și Linux cu un singur clic (32-bit și 64-bit). Ușor de recreat, ușor de utilizat, ușor de portat: 3 pași
DIY MusiLED, LED-uri sincronizate muzicale cu aplicație Windows și Linux cu un singur clic (32-bit și 64-bit). Ușor de recreat, ușor de utilizat, ușor de portat: acest proiect vă va ajuta să conectați 18 LED-uri (6 roșii + 6 albastre + 6 galbene) la placa Arduino și să analizați semnalele în timp real ale plăcii de sunet ale computerului și să le retransmiteți la LED-urile pentru a le aprinde conform efectelor de bătăi (Snare, High Hat, Kick)
Cum să creați un afișaj captivant (stil LED): 9 pași (cu imagini)
Cum se creează un afișaj captivant (stil LED): Acesta nu este atât de instructiv, cât o înregistrare a modului în care am realizat un proiect școlar. Repetând exact ceea ce am făcut, probabil că nu vă va ajuta, acest proiect poate fi modificat pentru a face aproape orice afișaj mai atrăgător
Anulați ștergerea fișierelor șterse, foarte ușor și ușor de utilizat: 7 pași
Anulați ștergerea fișierelor șterse, foarte ușor și ușor de utilizat: ați șters vreodată un fișier de pe hard disk-ul de rezervă, camera foto, mp3 sau chiar ați golit coșul de reciclare și apoi ați realizat că doriți în continuare acel fișier? Acesta este un mod simplu de a recupera acele fișiere. Am adăugat acest instrucat, pentru că am șters fiecare episod din familia g
Robot ușor: Urmăritor ușor: 4 pași
Easy Robot: Light Follower: Fără programare sau microcipuri! Roboți, cel mai minunat lucru existent, mai ales când o mulțime de oameni îl pot construi! Am primit acest robot de la un prieten. mulțumesc Rudolf.Oricum, acest robot folosește 2 rezistențe dependente de lumină pentru a simți lumina și d