Sommario:
- Passaggio 1: Passaggio 1: Anello LED con Captive Touch
- Passaggio 2: Passaggio 2: Aggiunta del suono
- Passaggio 3: passaggio aggiuntivo: preparare il moncone "Arduino pronto"
Video: Arduino MusicStump: tocco leggero, captive e buzzer: 3 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Un albero interattivo con un anello LED nella parte superiore, un cicalino per emettere suoni e un sensore tattile prigioniero all'interno che cambia colore quando lo tocchi. Per realizzare questa piccola cosa divertente avrai bisogno di quanto segue:
Elettronica:- 1x Arduino Uno
- 15x cavi
- 1x saldatore con punta tonda
- 1x Captive Touch Adafruit a 8 tasti (CAP1188)
- 1x cavo di alimentazione Arduino
- 1x anello da 8 LED
- 1x cicalino
- 1x pistola per colla a caldo
- Scarica la libreria di CAP1188
- Scarica la libreria di Adafruit Neopixel
Extra (involucro):
- 1x ceppo d'albero
- 1x stick per interno
- piatto di legno su cui appoggiare il tutto
- Ripieno di peluche per l'esterno
Puoi anche usare qualcos'altro come esterno, sii creativo!
Ora cominciamo…
Passaggio 1: Passaggio 1: Anello LED con Captive Touch
Ora, se sei fortunato, il tuo anello LED ha già dei perni attaccati. Altrimenti è il momento di saldare!
Le cose che useremo per questo progetto sono:
- DI (ingresso digitale, pin 6~
- 5V (per alimentazione, pin 5V)
- GND (La terra, pin GND)
Questo è l'anello LED per ora. Ora il tocco prigioniero.
Posizionalo in una breadboard e collega tutto come segue: SDA/MISO nel pin (ingresso analogico) A4SCK nel pin (ingresso analogico) A5VIN in (alimentazione) 5VGND in un cavo GND pin1x a C1 (sul Captive touch stesso)
Ora per testare carica il seguente codice sul tuo Arduino:
// Julia Emmink// Codice luce e tocco per l'albero interattivo 19/// Realizzato con l'utilizzo di Adafruit Neopixel e Adafruit captive touch (CAP1188) (da installare) e il LED lampeggia senza ritardo
// NEOPIXEL ~~~~~~~~~~~~~~~~~~
#includere
#define PIXELSPIN 6 // Dove hai collegato l'anello LED
#define NUMPIXELS 8 //La quantità di LED presenti sul tuo anello #define CALIBRATIONTIME 20000
Adafruit_NeoPixel pixel = Adafruit_NeoPixel(NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
pixelsInterval lungo senza segno = 500; // il tempo che dobbiamo aspettare
unsigned long colorWipePreviousMillis = 0; unsigned lungo theaterChasePreviousMillis = 0; unsigned long rainbowPreviousMillis = 0; RainbowCyclesPreviousMillis lungo senza segno = 0;
int theaterChaseQ = 0;
uint16_t currentPixel = 0;// su quale pixel stiamo operando
// TOCCA ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin viene utilizzato per I2C o SPI
#define CAP1188_RESET 9
// Il pin CS è utilizzato per software o hardware SPI
#define CAP1188_CS 10
// Questi sono definiti per SPI software, per SPI hardware, controlla il tuo
// pin SPI della scheda nella documentazione Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Usa I2C, nessun pin di reset!
Adafruit_CAP1188 cap = Adafruit_CAP1188();
void setup() {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ currentPixel = 0; pixel.begin(); // Questo inizializza la libreria NeoPixel. pixel.mostra(); // Questo invia il colore del pixel aggiornato all'hardware.
// TOCCA ~~~~~~~~~~~~~~~~~~~~~~
Serial.begin(300); Serial.println("Prova CAP1188!");
if (!cap.begin()) {
Serial.println("CAP1188 non trovato"); mentre (1); } Serial.println("CAP1188 trovato!"); }
ciclo vuoto () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched(); if (toccato == 0) { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(0, 255, 125)); } } else { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(100, 0, 150)); } }
}
void colorWipe(uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Elimina i pixel di colore.setPixelColor(currentPixel, c); pixels.setPixelColor(currentPixel - 1, pixels. Color(0, 0, 0)); pixel.mostra(); currentPixel++; if (currentPixel == NUMPIXELS) { currentPixel = 0; pixels.setPixelColor(7, pixels. Color(0, 0, 0));
}
}
Provalo e divertiti! Come vedi quando tocchi il cavo C1 il colore cambia. (Se non lo fa la prima volta, scollega Arduino e ricollegalo al computer.)
Passaggio 2: Passaggio 2: Aggiunta del suono
Con l'uso di un pratico tutorial ho realizzato questo. Il tutorial è qui sotto:
github.com/xitangg/-Pirati-dei-Caribbe…
È ora di prendere il cicalino! Mettere il (-) del cicalino in uno dei pin GND e il (+) nel pin 10~
Questo è tutto, ora è il momento di eseguire di nuovo il codice e ascoltare quella bella melodia dei Pirati dei Caraibi! Ora divertiti a testare!
// Julia Emmink// Luce, tocco e codice musicale per l'albero interattivo 2018-01-19// Realizzato con l'utilizzo di Adafruit Neopixel e Captive Touch (CAP1188) (da installare) e il LED lampeggia senza ritardo
// NEOPIXEL ~~~~~~~~~~~~~~~~~~#include
#define PIXELSPIN 6
#define NUMPIXELS 8 #define CALIBRATIONTIME 20000
Adafruit_NeoPixel pixel = Adafruit_NeoPixel(NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
unsigned long pixelsInterval=500; // il tempo che dobbiamo aspettare
unsigned long colorWipePreviousMillis=0; unsigned long theaterChasePreviousMillis=0; unsigned long rainbowPreviousMillis=0; unsigned long rainbowCyclesPreviousMillis=0;
int theaterChaseQ = 0;
uint16_t currentPixel = 0;// su quale pixel stiamo operando
// MUSICA ~~~~~~~~~~~~~~~~~~~~~~
const int cicalino = 10; // Definisci il pin 10, puoi usare altri pin PWM (5, 6 o 9) // Nota che i pin 3 e 11 non possono essere utilizzati quando si utilizza la funzione tono in Arduino Uno const int songspeed = 1.5; // Passa a 2 per una versione più lenta della canzone, più grande è il numero più lenta sarà la canzone //************************* ************** #define NOTE_C4 262 //Definizione della frequenza delle note #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 della canzone, 0 è una pausa/impulso 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 di ogni nota (in ms) Quarter Note è impostata su 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};
// TOCCA ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin viene utilizzato per I2C o SPI
#define CAP1188_RESET 9
// Il pin CS è utilizzato per software o hardware SPI
#define CAP1188_CS 10
// Questi sono definiti per SPI software, per SPI hardware, controlla il tuo
// pin SPI della scheda nella documentazione Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Usa I2C, nessun pin di reset!
Adafruit_CAP1188 cap = Adafruit_CAP1188();
void setup() {
// MUSICA ~~~~~~~~~~~~~~~~~~~~~ for (int i=0;i<203;i++){ //203 è il numero totale di note musicali in la canzone int wait = duration * songspeed; tone(buzzer, note, aspetta); //tone(pin, frequency, duration);} //delay viene utilizzato in modo che non passi al loop successivo prima che il tono sia finito //Puoi fare clic su reset su Arduino per riprodurre la canzone //NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pixel.begin(); // Questo inizializza la libreria NeoPixel. pixel.mostra(); // Questo invia il colore del pixel aggiornato all'hardware.
// TOCCA ~~~~~~~~~~~~~~~~~~~~~~
Serial.begin(300); Serial.println("Prova CAP1188!"); if (!cap.begin()) { Serial.println("CAP1188 non trovato"); mentre (1); } Serial.println("CAP1188 trovato!");
}
ciclo vuoto () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched(); if (toccato == 0) { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(0, 255, 125)); } } else { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(100, 0, 150)); } }
for (int i=0;i= pixelInterval) {
colorWipePreviousMillis = millis(); colorWipe(pixels. Color(0, 255, 125)); } } else { if ((unsigned long)(millis() - colorWipePreviousMillis) >= pixelsInterval) { colorWipePreviousMillis = millis(); colorWipe(pixels. Color(100, 0, 150)); }}
ritardo (attesa);
}
}
void colorWipe(uint32_t c){
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Elimina i pixel di colore.setPixelColor(currentPixel, c); pixels.setPixelColor(currentPixel-1, pixels. Color(0, 0, 0)); pixel.mostra(); currentPixel++; if(currentPixel == NUMPIXELS){ currentPixel = 0; pixels.setPixelColor(7, pixels. Color(0, 0, 0));
}
}
Passaggio 3: passaggio aggiuntivo: preparare il moncone "Arduino pronto"
Se decidi di usare un ceppo d'albero devi fare quanto segue.
- Prendi un ceppo d'albero (ne ho preso uno da un vecchio albero di Natale gratis)
- Misura il tuo Arduino e vedi come vuoi avere il cablaggio nel ceppo d'albero
- Scava il moncone (ho usato un trapano a scuola)
- Leviga i bordi ruvidi
- Aggiungi piccoli dettagli divertenti
I dettagli che ho aggiunto erano un piccolo logo che ho realizzato con un laser cutter. Ho anche impilato tutta la mia elettronica all'interno su un bastoncino all'interno del mio albero e ho aggiunto dell'imbottitura di peluche all'esterno per far passare la luce e dare quella piccola morbidezza in più.
Consigliato:
Cellulare GSM Arduino leggero: 10 passaggi
Cellulare GSM Arduino leggero: Hello Friends.Welcome. In questo post, ti presenterò il mio telefono cellulare GSM leggero Arduino. Il cellulare leggero è in grado delle seguenti funzionalità nazionali/internazionali: Effettua chiamate Ricevi chiamate Invia SMS Ricevi SMS In questo progetto, io us
Giocattolo con suono leggero della pistola Microbit: 5 passaggi
Microbit Gun Light Sound Thing Toy: questo è solo un semplice giocattolo fatto per provare a usare i miei componenti e il mio materiale, e per me per giocare e grattarmi la voglia di dover fare qualcosa. Essendo inteso come un giocattolo, non sono riuscito a sembrare realistico, e l'ho fatto solo per avere il generale
Cellulare GSM Arduino leggero.: 7 passaggi (con immagini)
Cellulare GSM Arduino leggero.: Ciao amici, in questo tutorial vi presenterò il mio cellulare GSM Arduino leggero. Il cellulare leggero è in grado di eseguire le seguenti funzioni nazionali/internazionali: Effettua chiamate. Ricevi chiamate. Inviare SMS. Ricevi SMS.In questo progetto
Come Creare un Pesce Leggero: 6 Passaggi (Illustrato)
How to Create a Lightfish: Impara come creare lightfish, chiamati anche LED-Swimmies: pesci altamente lucidi. L'artista Karl Klar ha realizzato un'installazione nello spazio pubblico, che è stato collocato nel cantiere del nuovo Ars Electronica Center a Linz , Austria. Per vivificare il
IPod leggero a letto: 7 passaggi
Ipod leggero a letto: basato su un Jollexs Ipod a letto, ho realizzato questo leggero che utilizza meno pezzi e può avere un iPod classico o un iPod touch senza cambiare nulla