Sommario:

Arduino MusicStump: tocco leggero, captive e buzzer: 3 passaggi
Arduino MusicStump: tocco leggero, captive e buzzer: 3 passaggi

Video: Arduino MusicStump: tocco leggero, captive e buzzer: 3 passaggi

Video: Arduino MusicStump: tocco leggero, captive e buzzer: 3 passaggi
Video: Smart Curtain Track works with Alexa and Google Home Unboxing and Setup 2024, Dicembre
Anonim
Arduino MusicStump: tocco leggero, captive e un cicalino
Arduino MusicStump: tocco leggero, captive e un cicalino

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

Passaggio 1: anello LED con tocco prigioniero
Passaggio 1: anello LED con tocco prigioniero

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"

Passaggio aggiuntivo: preparare il moncone "Arduino pronto"
Passaggio aggiuntivo: preparare il moncone "Arduino pronto"
Passaggio aggiuntivo: preparare il moncone "Arduino pronto"
Passaggio aggiuntivo: preparare il moncone "Arduino pronto"
Passaggio aggiuntivo: preparare il moncone "Arduino pronto"
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: