Kazalo:
- 1. korak: 1. korak: LED obroč z ujetniškim dotikom
- 2. korak: 2. korak: Dodajanje zvoka
- 3. korak: Dodatni korak: Priprava panja na "Arduino pripravljen"
Video: Arduino MusicStump: lahek, ujetniški dotik in zvočni signal: 3 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
Interaktivno drevo z LED obročem na vrhu, zvočnikom za zvok in vgrajenim senzorjem na dotik, ki spreminja barvo, ko se ga dotaknete. Če želite narediti to zabavno malenkost, potrebujete naslednje:
Elektronika:- 1x Arduino Uno
- 15x kabli
- 1x spajkalnik z okroglo konico
- 1x Adafruit 8-ključni dotik (CAP1188)
- 1x napajalni kabel Arduino
- 1x 8 LED obroček
- 1x zvočni signal
- 1x pištola za vroče lepilo
-Prenesite knjižnico CAP1188
- Prenesite knjižnico Adafruit Neopixel
Dodatno (ohišje):
- 1x panj
- 1x palica za notranjost
- leseni krožnik, na katerega lahko postavite vse
- Polnjenje z polnjenimi živalmi za zunanjost
Zunaj lahko uporabite tudi kaj drugega, bodite ustvarjalni!
Zdaj pa začnimo…
1. korak: 1. korak: LED obroč z ujetniškim dotikom
Če imate srečo, ima vaš LED obroč že pritrjene zatiče. Če ne, je čas za spajkanje!
Za ta projekt bomo uporabili:
- DI (digitalni vhod, pin 6 ~
- 5V (za napajanje, 5V pin)
- GND (ozemljitev, pin GND)
To je za zdaj LED obroč. Zdaj se dotaknite.
Postavite ga na ploščo in vse povežite na naslednji način: SDA/MISO v pin (analogni vhod) A4SCK v pin (analogni vhod) A5VIN v (napajanje) 5VGND v kabel GND pin1x na C1 (na samem dotiku)
Zdaj za preskus naložite naslednjo kodo v svoj Arduino:
// Julia Emmink // Koda za svetlobo in dotik za interaktivno drevo 19 /// Izdelano z uporabo Adafruit Neopixel in Adafruit captive touch (CAP1188) (nameščen bo) in LED utripa brez zamude
// NEOPIXEL ~~~~~~~~~~~~~~~~~~
#vključi
#define PIXELSPIN 6 // Kjer ste priključili LED obroč
#define NUMPIXELS 8 // Količina LED, ki so na vašem obroču #define CALIBRATIONTIME 20000
Slikovne pike Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
nepodpisani dolgi piksliInterval = 500; // čas, ki ga moramo počakati
brez podpisa dolga colorWipePreviousMillis = 0; brez podpisa dolgo gledališčeChasePreviousMillis = 0; nepodpisana dolga mavricaPreviousMillis = 0; nepodpisani dolgi mavrični cikliPreviousMillis = 0;
int theatreChaseQ = 0;
uint16_t currentPixel = 0; // s katerim pikslom delujemo
// DOTIK ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin se uporablja za I2C ali SPI
#define CAP1188_RESET 9
// CS pin se uporablja za programsko ali strojno opremo SPI
#define CAP1188_CS 10
// Te so določene za programsko opremo SPI, za strojno opremo SPI, preverite vaš
// zatiči SPI plošče v dokumentaciji Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Uporabite I2C, brez pin za ponastavitev!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
void setup () {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin (); // To inicializira knjižnico NeoPixel. piksli.show (); // To pošlje posodobljeno barvo slikovnih pik strojni opremi.
// DOTIK ~~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("CAP1188 test!");
if (! cap.begin ()) {
Serial.println ("CAP1188 ni mogoče najti"); medtem ko (1); } Serial.println ("Najden je bil CAP1188!"); }
void loop () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched (); if (dotaknjeno == 0) {if ((brez podpisa dolgo) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (slikovne pike. Barva (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (slikovne pike. Barva (100, 0, 150)); }}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Znebi se barvnih pikslov.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel - 1, pixels. Color (0, 0, 0)); piksli.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Preizkusite in se zabavajte! Ko vidite, da se dotaknete kabla C1, se barva spremeni. (Če se to ne zgodi prvič, preprosto izključite Arduino in ga znova vklopite v računalnik.)
2. korak: 2. korak: Dodajanje zvoka
Z uporabo priročne vadnice sem to naredil. Vadnica je spodaj:
github.com/xitangg/-Pirates-of-the-Caribbe…
Čas je, da vzamete zvočni signal! (-) brenčalnika vstavite v enega od zatičev GND in (+) v zatič 10 ~
To je to, zdaj je čas, da znova zaženete kodo in slišite to čudovito melodijo Pirati s Karibov! Zdaj pa se zabavajte pri testiranju!
// Julia Emmink // Koda za svetlobo, dotik in glasbo za interaktivno drevo 2018-01-19 // Izdelano z uporabo Adapruit Neopixel in Captive Touch (CAP1188) (namesti se) in LED utripa brez zamude
// NEOPIXEL ~~~~~~~~~~~~~~~~~#vključi
#define PIXELSPIN 6
#define NUMPIXELS 8 #define CALIBRATIONTIME 20000
Slikovne pike Adafruit_NeoPixel = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
nepodpisani dolgi piksliInterval = 500; // čas, ki ga moramo počakati
brez podpisa dolga colorWipePreviousMillis = 0; brez podpisa dolgo gledališčeChasePreviousMillis = 0; nepodpisana dolga mavricaPreviousMillis = 0; nepodpisani dolgi mavrični cikliPreviousMillis = 0;
int theatreChaseQ = 0;
uint16_t currentPixel = 0; // s katerim pikslom delujemo
// GLASBA ~~~~~~~~~~~~~~~~~~~~~
zvočni signal const int = 10; // Določimo pin 10, lahko uporabimo tudi druge PWM nožice (5, 6 ali 9) // Opombe nožic 3 in 11 ni mogoče uporabiti pri uporabi tonske funkcije v Arduino Uno const int songspeed = 1,5; // Spremenite v 2 za počasnejšo različico pesmi, večja kot je številka, počasnejša je pesem // *************************** ************** #define NOTE_C4 262 // Določanje frekvence zapiskov #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 = {// Opomba pesmi, 0 je počitek/utrip 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}; // *************************************** trajanje int = { / /trajanje vsakega zapiska (v ms) Četrtletna nota je nastavljena na 250 ms 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 250, 125, 125, 125, 125, 375, 125};
// DOTIK ~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin se uporablja za I2C ali SPI
#define CAP1188_RESET 9
// CS pin se uporablja za programsko ali strojno opremo SPI
#define CAP1188_CS 10
// Te so določene za programsko opremo SPI, za strojno opremo SPI, preverite vaš
// zatiči SPI plošče v dokumentaciji Arduino #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Uporabite I2C, brez ponastavitvenega zatiča!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
void setup () {
// GLASBA ~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 je skupno število glasbenih not v int wait pesmi = trajanje * hitrost pesmi; ton (zvonec, opombe , počakaj); // ton (pin, frekvenca, trajanje);} // se uporablja zakasnitev, da ne gre na naslednjo zanko, preden se ton konča // Če pritisnete reset na Arduinu, lahko predvajate pesem // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin (); // To inicializira knjižnico NeoPixel. piksli.show (); // To pošlje posodobljeno barvo slikovnih pik strojni opremi.
// DOTIK ~~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("CAP1188 test!"); if (! cap.begin ()) {Serial.println ("CAP1188 ni mogoče najti"); medtem ko (1); } Serial.println ("Najden je bil CAP1188!");
}
void loop () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched (); if (dotaknjeno == 0) {if ((brez podpisa dolgo) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (slikovne pike. Barva (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (slikovne pike. Barva (100, 0, 150)); }}
for (int i = 0; i = pixelsInterval) {
colorWipePreviousMillis = millis (); colorWipe (slikovne pike. Barva (0, 255, 125)); }} else {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (slikovne pike. Barva (100, 0, 150)); }}
zamuda (čakanje);
}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ // Znebi se barvnih pikslov.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel-1, pixels. Color (0, 0, 0)); piksli.show (); currentPixel ++; if (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
3. korak: Dodatni korak: Priprava panja na "Arduino pripravljen"
Če se odločite za uporabo drevesnega panja, morate storiti naslednje.
- Pridobite drevesni panj (enega sem dobil brezplačno od starega božičnega drevesa)
- Izmerite svoj Arduino in poglejte, kako želite imeti ožičenje v škrbini
- Izdolbi panj (iz šole sem uporabljal vrtalni stroj)
- Odstranite grobe robove
- Dodajte zabavne majhne podrobnosti
Podrobnosti, ki sem jih dodal, je bil majhen logotip, ki sem ga naredil z laserskim rezalnikom. Vso svojo elektroniko sem zložil tudi notri na palico v svojem drevesu, na zunanji strani pa sem dodal nadev iz polnjenih živali, ki je prepuščal svetlobo in dal tej majhni dodatni mehkobi.
Priporočena:
Uporabite zvočni signal na Magicbitu [Magicblocks]: 4 koraki
Uporabite brenčalo na Magicbitu [Magicblocks]: Ta vadnica vas bo naučila uporabljati brenčalo na Magicbitu z uporabo Magicblocks. Kot razvojno ploščo v tem projektu, ki temelji na ESP32, uporabljamo magicbit. Zato je v tem projektu mogoče uporabiti katero koli razvojno ploščo ESP32
Tri vezja senzorja na dotik + vezje časovnika na dotik: 4 koraki
Tri vezja senzorja na dotik + vezje časovnika na dotik: Senzor na dotik je vezje, ki se vklopi, ko zazna dotik na nožicah na dotik. Deluje na prehodni osnovi, to je, da bo obremenitev vklopljena le za čas dotika na zatičih. Tukaj vam bom pokazal tri različne načine, kako občutiti dotik
STIKALO NA DOTIK - Kako narediti stikalo na dotik s tranzistorjem in ploščico: 4 koraki
STIKALO NA DOTIK | Kako narediti stikalo na dotik z uporabo tranzistorja in tiskalne plošče.: Stikalo na dotik je zelo preprost projekt, ki temelji na uporabi tranzistorjev. V tem projektu je uporabljen tranzistor BC547, ki deluje kot stikalo na dotik. OBVEZNO OGLEDITE VIDEO, KI vam bo dal popolne podrobnosti o projektu
Kako uporabljati piezo zvočni signal: 4 koraki
Kako uporabljati Piezo Buzzer: Opis: Piezoelektrični zvočnik je zvočnik, ki uporablja piezoelektrični učinek za ustvarjanje zvoka. Začetno mehansko gibanje nastane z uporabo napetosti na piezoelektrični material, ki se običajno pretvori v aud
Zvočni signal senzorja svetlobe Arduino: 3 koraki
Zvočni signal senzorja svetlobe Arduino: Ta zasnova se uporablja za namestitev v temen prostor in zvočni alarm se bo oglasil vsakič, ko odprete temno območje. Uporablja svetlobno občutljiv upor in je tih, ko je temno, in oddaja hrup, ko je svetlo. Tako boste zaščitili svoje