
Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02

Et interaktivt tre med en LED -ring på toppen, en summer for å lage lyd og en fanget berøringssensor inni som endrer fargen mens du berører den. For å lage denne morsomme lille tingen trenger du følgende:
Elektronikk:- 1x Arduino Uno
- 15x kabler
- 1x loddejern med rund spiss
- 1x Adafruit 8-key captive touch (CAP1188)
- 1x Arduino strømkabel
- 1x 8 LED -ring
- 1x summer
- 1x varm limpistol
-Last ned biblioteket til CAP1188
- Last ned biblioteket til Adafruit Neopixel
Ekstra (foringsrør):
- 1x trestubbe
- 1x pinne til innsiden
- trefat for å legge alt på/inn
- Fyllet dyrefyll for utsiden
Du kan også bruke noe annet som utenfor, vær kreativ!
La oss begynne…
Trinn 1: Trinn 1: LED -ring med Captive Touch

Hvis du er heldig, har LED -ringen din allerede festet pins. Hvis ikke er det på tide å lodde!
Tingene vi skal bruke til dette prosjektet er:
- DI (Digital inngang, pin 6 ~
- 5V (for strøm, 5V pin)
- GND (bakken, GND -pinnen)
Det er LED -ringen for nå. Nå den fengslende berøringen.
Plasser den i et brødbrett og koble til alt som følger: SDA/MISO i pin (analog inn) A4SCK i pin (analog inn) A5VIN i (strøm) 5VGND i en GND pin1x kabel ved C1 (på Captive touch selv)
Nå for å teste last opp følgende kode til Arduino:
// Julia Emmink // Lys- og berøringskode for det interaktive treet 19 /// Laget med bruk av Adafruit Neopixel og Adafruit captive touch (CAP1188) (skal installeres) og LED -en blinker uten forsinkelse
// NEOPIXEL ~~~~~~~~~~~~~~~~~~~
#inkludere
#define PIXELSPIN 6 // Hvor du koblet LED -ringen
#define NUMPIXELS 8 // Mengden av lysdioder som er på ringen din #define CALIBRATIONTIME 20000
Adafruit_NeoPixel piksler = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
usignerte lange pikslerInterval = 500; // tiden vi trenger å vente
usignert lang colorWipePreviousMillis = 0; usignert lang theaterChasePreviousMillis = 0; usignert lang regnbuePreviousMillis = 0; usignert lang regnbueCyclesPreviousMillis = 0;
int theaterChaseQ = 0;
uint16_t currentPixel = 0; // hvilken piksel bruker vi
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin brukes for I2C eller SPI
#define CAP1188_RESET 9
// CS -pin brukes til programvare eller maskinvare SPI
#define CAP1188_CS 10
// Disse er definert for programvare SPI, for maskinvare SPI, sjekk din
// styrets SPI -pinner i Arduino -dokumentasjonen #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Bruk I2C, ingen tilbakestillingsnål!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
ugyldig oppsett () {
// NEOPIXEL ~~~~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin (); // Dette initialiserer NeoPixel -biblioteket. piksler. vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren.
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("CAP1188 test!");
hvis (! cap.begin ()) {
Serial.println ("CAP1188 ikke funnet"); mens (1); } Serial.println ("CAP1188 funnet!"); }
void loop () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched (); if (berørt == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksler. Color (0, 255, 125)); }} annet {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksler. Color (100, 0, 150)); }}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ // Bli kvitt fargepikslene.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel - 1, pixels. Color (0, 0, 0)); piksler. vis (); currentPixel ++; hvis (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Test det og ha det gøy! Som du ser når du berører C1 -ledningen, endres fargen. (Hvis det ikke er første gangen, bare koble fra Arduino og koble den til datamaskinen igjen.)
Trinn 2: Trinn 2: Legge til lyd
Med bruk av en praktisk opplæring laget jeg dette. Opplæringen er nedenfor:
github.com/xitangg/-Pirates-of-the-Caribbe…
På tide å ta tak i summeren din! Sett (-) på summeren i en av GND-pinnene og (+) i pin 10 ~
Det er omtrent det, nå er det på tide å kjøre koden igjen og høre den nydelige Pirates of the Caribbean -melodien! Ha det gøy å teste nå!
// Julia Emmink // Lys, berøring og musikkode for det interaktive treet 2018-01-19 // Laget med bruk av Adafruit Neopixel og Captive Touch (CAP1188) (skal installeres) og LED blinker uten forsinkelse
// NEOPIXEL ~~~~~~~~~~~~~~~~~~~#inkludere
#define PIXELSPIN 6
#define NUMPIXELS 8 #define CALIBRATIONTIME 20000
Adafruit_NeoPixel piksler = Adafruit_NeoPixel (NUMPIXELS, PIXELSPIN, NEO_GRB + NEO_KHZ800);
usignerte lange pikslerInterval = 500; // tiden vi trenger å vente
usignert lang colorWipePreviousMillis = 0; usignert lang theaterChasePreviousMillis = 0; usignert lang regnbuePreviousMillis = 0; usignert lang regnbueCyclesPreviousMillis = 0;
int theaterChaseQ = 0;
uint16_t currentPixel = 0; // hvilken piksel bruker vi
// MUSIKK ~~~~~~~~~~~~~~~~~~~~~~~
const int summer = 10; // Definer pin 10, kan bruke andre PWM -pins (5, 6 eller 9) // Note pins 3 og 11 kan ikke brukes når du bruker tonefunksjonen i Arduino Uno const int songspeed = 1,5; // Endre til 2 for en tregere versjon av sangen, jo større tall jo saktere sangen // *************************** ********* ***** 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 = {// Notat av sangen, 0 er en hvil/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 varighet = { / /varighet for hver note (i ms) Kvartalsnotat er satt til 250 ms 125, 125, 250, 125, 125, 125, 250, 125, 125, 125, 125, 125, 125, 125, 125, 125, 375, 125};
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~
#include #include #include
// Reset Pin brukes for I2C eller SPI
#define CAP1188_RESET 9
// CS -pin brukes til programvare eller maskinvare SPI
#define CAP1188_CS 10
// Disse er definert for programvare SPI, for maskinvare SPI, sjekk din
// styrets SPI -pinner i Arduino -dokumentasjonen #define CAP1188_MOSI 11 #define CAP1188_MISO 12 #define CAP1188_CLK 13
// Bruk I2C, ingen tilbakestillingsnål!
Adafruit_CAP1188 cap = Adafruit_CAP1188 ();
ugyldig oppsett () {
// MUSIKK ~~~~~~~~~~~~~~~~~~~~~~ for (int i = 0; i <203; i ++) {// 203 er det totale antallet noter i sangen int wait = varighet * sanghastighet; tone (summer, notater , vent); // tone (pin, frekvens, varighet);} // forsinkelse brukes slik at den ikke går til neste sløyfe før tonen er ferdig med å spille // Du kan klikke reset på Arduino for å spille av sangen // NEOPIXEL ~~~ ~~~~~~~~~~~~~~~ currentPixel = 0; pixels.begin (); // Dette initialiserer NeoPixel -biblioteket. piksler. vis (); // Dette sender den oppdaterte pikselfargen til maskinvaren.
// TOUCH ~~~~~~~~~~~~~~~~~~~~~~~
Serial.begin (300); Serial.println ("CAP1188 test!"); if (! cap.begin ()) {Serial.println ("CAP1188 ikke funnet"); mens (1); } Serial.println ("CAP1188 funnet!");
}
void loop () {
// TOUCH + NEOPIXEL ~~~~~~~~~~~~~~~~~~~~ uint8_t touched = cap.touched (); if (berørt == 0) {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksler. Color (0, 255, 125)); }} annet {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksler. Color (100, 0, 150)); }}
for (int i = 0; i = pixelsInterval) {
colorWipePreviousMillis = millis (); colorWipe (piksler. Color (0, 255, 125)); }} annet {if ((unsigned long) (millis () - colorWipePreviousMillis)> = pixelsInterval) {colorWipePreviousMillis = millis (); colorWipe (piksler. Color (100, 0, 150)); }}
forsinkelse (vent);
}
}
void colorWipe (uint32_t c) {
// NEOPIXEL ~~~~~~~~~~~~~~~~~ // Bli kvitt fargepikslene.setPixelColor (currentPixel, c); pixels.setPixelColor (currentPixel-1, pixels. Color (0, 0, 0)); piksler. vis (); currentPixel ++; hvis (currentPixel == NUMPIXELS) {currentPixel = 0; pixels.setPixelColor (7, pixels. Color (0, 0, 0));
}
}
Trinn 3: Ytterligere trinn: Gjør stubben 'Arduino Ready'



Hvis du bestemmer deg for å bruke en trestubbe, må du gjøre følgende.
- Få en trestubbe (jeg har en gratis fra et gammelt juletre)
- Mål Arduinoen din og se hvordan du vil ha ledningene i trestubben
- Hul ut stubben (jeg brukte en boremaskin fra skolen)
- Slip av de grove kantene
- Legg til morsomme små detaljer
Detaljer jeg la til var en liten logo som jeg laget med en laserskjærer. Jeg stablet også all elektronikken min inne på en pinne inne i treet mitt, og jeg la til utstoppet dyrefyll på utsiden for å slippe lyset gjennom og gi den lille ekstra mykheten.
Anbefalt:
Summer Fan Cooling Baseball Cap: 6 trinn

Summer Fan Cooling Baseball Cap: En dag da jeg rotet i garderoben min, så jeg en gammel rød baseballcap som jeg har kjøpt i fjor. Plutselig og en idé dukket opp i tankene mine, kunne jeg endre denne gamle hetten til et kult produkt som heter fan hat, et helt spesielt innovasjonsprodukt
Quiz -summer med bruk av ATMEGA328P (Arduino) DIY: 3 trinn

Quiz Buzzer Ved hjelp av ATMEGA328P (Arduino) DIY: I summerrunden med quizkonkurranser blir spørsmålet åpnet for alle lagene. Personen som vet svaret treffer summeren først og svarer deretter på spørsmålet. Noen ganger treffer to eller flere spillere summeren nesten samtidig, og det er ver
Hjemmeautomatisering ved hjelp av Captive Portal: 9 trinn

Hjemmeautomatisering ved hjelp av Captive Portal: Her skal vi lage et veldig interessant prosjekt med Captive Portal -basert hjemmeautomatisering ved hjelp av nodeMCU fra bunnen av. Så, la oss begynne
ESP32 Captive Portal for å konfigurere statiske og DHCP IP -innstillinger: 8 trinn

ESP32 Captive Portal for å konfigurere statiske og DHCP IP -innstillinger: ESP 32 er en enhet med integrert WiFi og BLE. Det er en slags velsignelse for IoT -prosjektene. Bare gi SSID, passord og IP -konfigurasjoner og integrer tingene i skyen. Men å administrere IP -innstillingene og brukerlegitimasjonen kan være et hoved
Arduino lyssensor summer: 3 trinn

Arduino Light Sensor Buzzer: Denne designen brukes til å plassere inne i et mørkt sted, og en alarmstøy vil høres når du åpner det mørke området. Den bruker en lysfølsom motstand og er stille når det er mørkt og lar fra seg når det er lyst. Dette vil hjelpe deg med å beskytte