Sisällysluettelo:
- Vaihe 1: Kerää materiaaleja
- Vaihe 2: Piirien tekeminen
- Vaihe 3: Käsineen suunnittelu
- Vaihe 4: Juotos
- Vaihe 5: Koodaus
- Vaihe 6: Muutokset
Video: Rytmikäsi: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Tässä kyberrakkaudessa on kyse oikeasta liikkeestä oikeaan aikaan.
Valot menevät käsivarresta (kyynärpäästä) käteen ja kun valot saapuvat käteen, sinun on painettava sormiasi mini -valokennossa.
Jos painat kättäsi mini -valokennossa oikeaan aikaan, ledit muuttuvat vihreiksi. Jos ei, ledit muuttuvat punaisiksi.
Vaihe 1: Kerää materiaaleja
- Hanska
- Kangas tekee käsineestä pidemmän
- WS2812B LED -nauha
- Johdot
- Arduino
- Mini valokuvamyynti
Vaihe 2: Piirien tekeminen
Liitä ensin led -nauha arduinoon. Voit tehdä sen yhdistämällä +5v arduinon 5v: iin. Din on liitettävä arduinon A0: een ja GND on liitettävä arduinon GND: hen.
Sinun on myös liitettävä mini -valokenno arduinoon liittämällä 5 -napainen johto led -nauhasta ja samasta lähteestä yhdistämällä johdolla arduinon PIN -koodiin 6. Mini -valokennon toinen puoli on liitettävä led -nauhan GND -johtoon
Vaihe 3: Käsineen suunnittelu
Käsineen on oltava oikean kokoinen, jotta se sopii led -nauhoihin. Ledit on kohdistettava, jotta niistä olisi miellyttävämpi katsoa.
Tässä pelissä sinun on käytettävä kättäsi ja haluat voida liikkua vapaasti. Tämä voidaan toteuttaa asettamalla arduino käsineeseen. Käytin tarranauhaa kiinnikkeenä arduinon kiinnittämiseen käsineeseen. Sitten vakauden lisäämiseksi voit laittaa köyden käsineen ja arduinon ympärille.
Minivalokenno on ommeltu käsineen sisään, joten se pysyy paikallaan.
Lopuksi johdot on piilotettava, jotta se näyttää paremmalta. Tämä voidaan tehdä kankaalla, joka ommellaan lankojen päälle.
Vaihe 4: Juotos
Nyt voit tehdä piirin liitäntäjohdot turvallisiksi juottamalla.
Vaihe 5: Koodaus
// Perus päivittäinen NeoPixel -nauhatestausohjelma.
// NEOPIXELIN PARHAAT KÄYTÄNNÖT luotettavimmalle toiminnalle: // - Lisää 1000 uF KAPASITAATTORIA NeoPixel -nauhan + ja - -liitäntöjen väliin. // - MINIMOI KYTKENTÄPITUUS mikrokortin ja ensimmäisen pikselin välillä. //-NeoPixel-nauhan DATA-IN: n tulee kulkea 300-500 OHM: n vastuksen läpi. // - VÄLTÄ NeoPixelien yhdistämistä LIVE CIRCUIT -sovelluksessa. Jos on pakko, AINA // liitä ensin GROUND (-), sitten +ja sitten data. //-Kun käytät 3,3 V: n mikro-ohjainta, jossa on 5 V: n virtalähteenä toimiva NeoPixel-nauha, // LOGIC-LEVEL CONVERTER -tietorivillä on VAHVASTI SUOSITELTU. // (Näiden ohittaminen voi toimia OK työpöydälläsi, mutta voi epäonnistua kentällä)
#include #ifdef _AVR_ #include // Pakollinen 16 MHz: n Adafruit -rihkalle #endif
// Mikä Arduinon nasta on yhdistetty NeoPixel -laitteisiin? // Herkussa tai Gemmassa suosittelemme vaihtamaan tämän arvoon 1: #define LED_PIN 6
// Kuinka monta NeoPixeliä on liitetty Arduinoon? #define LED_COUNT 60
// Ilmoita NeoPixel -nauhaobjektimme: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Valkoinen väri, oletusarvoisen boolin napsautuksen jälkeenCorrectly = false; // Argumentti 1 = NeoPixel -nauhan pikselien lukumäärä // Argumentti 2 = Arduino -pin -numero (useimmat ovat kelvollisia) // Argumentti 3 = Pikselityyppiset liput, lisää tarvittaessa: // NEO_KHZ800 800 KHz: n bittivirta (useimmat NeoPixel -tuotteet WS2812 LEDit) // NEO_KHZ400 400 KHz (klassinen 'v1' (ei v2) FLORA -pikseliä, WS2811 -ohjaimet) // NEO_GRB Pikselit on kytketty GRB -bittivirtaan (useimmat NeoPixel -tuotteet) // NEO_RGB Pikselit on kytketty RGB -bittivirtaan (v1 FLORA -pikseliä), ei v2) // NEO_RGBW Pikselit on kytketty RGBW -bittivirtaan (NeoPixel RGBW -tuotteet)
// setup () -toiminto-suoritetaan kerran käynnistyksen yhteydessä --------------------------------
void setup () {// Nämä linjat tukevat erityisesti Adafruit Trinket 5V 16 MHz -taajuutta. // Mikä tahansa muu levy, voit poistaa tämän osan (mutta ei haittaa siitä): #if define (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END of Trinket-spesifinen koodi.
pinMode (A0, INPUT); strip.begin (); // ALOITA NeoPixel -nauhaobjekti (VAATIMUS) strip.show (); // Sammuta kaikki pikselit ASAP strip.setBrightness (10); // Aseta KIRKKAUS arvoon noin 1/5 (enintään = 255)}
// loop () -toiminto-toimii toistuvasti niin kauan kuin levy on päällä ---------------
void loop () {clickckedCorrectly = TheaterChaseOne (väri); if (napsautetaan oikein) {color = strip. Color (0, 255, 0); } else {väri = nauha. Väri (255, 0, 0); }}
// Jotkut omat toiminnot animoitujen tehosteiden luomiseen -----------------
// Teatteriteltatyyliset jahtaavat valot. Anna väri (32-bittinen arvo, // a la strip, väri (r, g, b) kuten edellä mainittiin) ja viiveaika (ms) // kehysten välillä. bool -teatteriChaseOne (uint32_t väri) {bool correct = false; bool clickWrong = false; for (int index = 0; index 800) {// arvo valoanturi jos (indeksi <16) {// 2 lediä ennen loppua, voit napsauttaa color = strip. Color (255, 0, 0); // punaisen värin ledit napsauttivatWrong = true; // napsautti väärin ja ledit muuttuivat punaisiksi} else if (! clickckedWrong) {// jos ei väärä väri = strip. Color (0, 255, 0); // vihreät värit osoittavat oikein = true; // napsautti oikein ja ledit muuttuivat vihreäksi}} strip.clear (); strip.setPixelColor (17 - indeksi, väri); // ensimmäisen rivin led -valot strip.setPixelColor (18 + indeksi, väri); // toisen rivin led -valot strip.setPixelColor (53 - indeksi, väri); // kolmannen rivin led -valot strip.show (); viive (300); } palauta oikein; }
Vaihe 6: Muutokset
Tein joitain muutoksia. Ensinnäkin piilotin arduinon, jotta olisi mukavampaa käyttää "Rythm -kättä", ja toiseksi muutin koodia hieman. Muutin koodin niin, että kun painat oikealla hetkellä, väri muuttuu vihreäksi ja LED -valot liikkuvat nopeammin. Näin LED Swill tulee 10% nopeampi kuin ennen. Tämä tekee pelistä mielenkiintoisemman
Koodi on nyt näin:
// Perus päivittäinen NeoPixel -nauhatestausohjelma. // NEOPIXELIN PARHAAT KÄYTÄNNÖT luotettavimmalle toiminnalle: // - Lisää 1000 uF KAPASITAATTORIA NeoPixel -nauhan + ja - -liitäntöjen väliin. // - MINIMOI KYTKENTÄPITUUS mikrokortin ja ensimmäisen pikselin välillä. //-NeoPixel-nauhan DATA-IN: n tulee kulkea 300-500 OHM: n vastuksen läpi. // - VÄLTÄ NeoPixelien yhdistämistä LIVE CIRCUIT -sovelluksessa. Jos on pakko, AINA // liitä ensin GROUND (-), sitten +ja sitten data. //-Kun käytät 3,3 V: n mikro-ohjainta, jossa on 5 V: n virtalähteenä toimiva NeoPixel-nauha, // LOGIC-LEVEL CONVERTER -tietorivillä on VAHVASTI SUOSITELTU. // (Näiden ohittaminen voi toimia OK työpöydälläsi, mutta voi epäonnistua kentällä) #include #ifdef _AVR_ #include // Pakollinen 16 MHz: n Adafruit -rihkalle #endif // Mikä Arduino -nasta on liitetty NeoPixeleihin? // Herkussa tai Gemmassa suosittelemme vaihtamaan tämän arvoon 1: #define LED_PIN 6 // Kuinka monta NeoPixeliä on liitetty Arduinoon? #define LED_COUNT 60 // Ilmoita NeoPixel -nauhaobjektimme: Adafruit_NeoPixel strip (LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800); uint32_t color = strip. Color (127, 127, 127); // Valkoinen väri, oletusarvoisen boolin napsautuksen jälkeenCorrectly = false; int -indeksi = 0; int -väli = 300; int tulos = 0; allekirjoittamaton aikaisempiMs = millis (); // Argumentti 1 = NeoPixel -nauhan pikselien lukumäärä // Argumentti 2 = Arduino -pin -numero (useimmat ovat kelvollisia) // Argumentti 3 = Pikselityyppiset liput, lisää tarvittaessa: // NEO_KHZ800 800 KHz: n bittivirta (useimmat NeoPixel -tuotteet WS2812 LEDit) // NEO_KHZ400 400 KHz (klassinen 'v1' (ei v2) FLORA -pikseliä, WS2811 -ohjaimet) // NEO_GRB Pikselit on kytketty GRB -bittivirtaan (useimmat NeoPixel -tuotteet) // NEO_RGB Pikselit on kytketty RGB -bittivirtaan (v1 FLORA -pikseliä), ei v2) // NEO_RGBW Pikselit on kytketty RGBW-bittivirtaan (NeoPixel RGBW -tuotteet) // setup () -toiminto-toimii kerran käynnistyksen yhteydessä -------------------- ------------ void setup () {// Nämä linjat tukevat erityisesti Adafruit Trinket 5V 16 MHz -taajuutta. // Mikä tahansa muu levy, voit poistaa tämän osan (mutta ei haittaa siitä): #if define (_ AVR_ATtiny85_) && (F_CPU == 16000000) clock_prescale_set (clock_div_1); #endif // END of Trinket-spesifinen koodi. Sarja.alku (9600); while (! Sarja) {; // odota, että sarjaportti muodostaa yhteyden. Tarvitaan vain natiiville USB -portille} pinMode (A0, INPUT); strip.begin (); // ALOITA NeoPixel -nauhaobjekti (VAATIMUS) strip.show (); // Sammuta kaikki pikselit ASAP strip.setBrightness (10); // Aseta KIRKKAUS noin 1/5 (maks. = 255)} // silmukka () -toiminto-toimii toistuvasti niin kauan kuin kortti on päällä --------------- mitätön silmukka () {unsigned long currentMs = millis (); // Nykyisen ajan saaminen int value = analogRead (A0); // Nykyisen valoanturin lukeminen, jos (arvo> 900 && result == 0) {// Jos anturia painetaan eikä tulosta ole vielä tallennettu, laukaise tulosten kaappaus, jos (indeksi = väli) {// Tarkista, onko nykyinen silmukka ylittää aikavälin previousMs = currentMs; // Aseta uusi aikaväli nykyiseen aika + väliindeksi + = 1; // Aseta ledit askeleen pidemmälle silmukassa, jos (indeksi> 17) {// Käynnistä silmukankäsittelyn loppu index = 0; if (tulos == 2) {// Oikealla tulosvälillä = (int) max ((väli * 0,95), 50); // Nopeuta 10%, aina 50 ms: n välein/ color = strip. Color (0, 255, 0); // Aseta ledit vihreäksi} else if (result == 1) {// Väärällä tulovälein = 300; // Nollaa värin väri = nauha. Väri (255, 0, 0); // Aseta ledit punaisiksi} else {// Ei tulosta väri = nauha. Väri (255, 0, 0); // Aseta ledit punaisiksi} result = 0; // Palauta seuraavan silmukan tulos} TheaterChaseOne (väri, hakemisto); // Sytytä LEDit näytölle. }} // Jotkut omat toiminnot animoitujen tehosteiden luomiseen ----------------- // Teatteriteltatyyliset jahtaavat valot. Anna väri (32-bittinen arvo, // a la strip, väri (r, g, b) kuten edellä mainittiin) ja viiveaika (ms) // kehysten välillä. void teatteriChaseOne (uint32_t väri, int -indeksi) {strip.clear (); strip.setPixelColor (17 - indeksi, väri); // ensimmäisen rivin led -valot strip.setPixelColor (18 + indeksi, väri); // toisen rivin led -valot strip.setPixelColor (53 - indeksi, väri); // kolmannen rivin led -valot strip.show (); }
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen