Sadržaj:
- Korak 1: Pripremite NeoPixel prsten
- Korak 2: Izrežite trake LED dioda
- Korak 3: Lemite LED diode
- Korak 4: Priprema leđa
- Korak 5: Ožičenje mikrofona i Arduina
- Korak 6: Programiranje Arduina
- Korak 7: Promjena boja, svjetline i praga senzora
- Korak 8: Učinite krug trajnijim
- Korak 9: Kreirajte sliku
- Korak 10: Sastavite to zajedno
- Korak 11: Učenje iz grešaka
Video: Interaktivni maslačak: 11 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Ovaj projekt pokazuje kako napraviti interaktivnu sliku maslačka. Počinje kao žuti cvijet sa LED diodama za latice, a zatim se pretvara u bijeli sat od maslačka, na koji se može puhati kako bi se sjeme raspršilo.
Zasnovan je na prekrasnom umjetničkom djelu Qi Jiea, čija je slika inspirirana dizajnom jednog cvijeta Jessie Thompson i Zachory Berta. Napravio sam svoj na tkanini i uokvirio ga u obruč od tapiserije kako bi išao na zid proizvodnog prostora Tech and Textiles u Devonu u Engleskoj, kao primjer projekta za početnike koji kombinira šivanje s Arduinom.
Video oslikavanja svjetla, Qi Jie
Videozapis dizajna jednog cvijeta Jessie Thompson i Zachory Berta
Kod za oba postojeća projekta je dostupan i mislio sam da će ga biti lako napraviti, ali upute su bile minimalne i bilo je potrebno nekoliko pokušaja prije nego što sam pronašao metodu koja funkcionira. Dakle, ovdje su potpuna uputstva i savjeti za uštedu vremena za remiks koji kombinira elemente moga dizajna i ugađanja.
Detalji onog što mi nije uspjelo su na kraju za svakoga koga zanima zašto sam se odlučio za ovaj način.
Šifra za svjetlopis Qi Jie
Kôd za sliku malih cvjetova Jessie Thompson i Zachory Berta
Materijali
- Arduino UNO
- Adafruit prsten od 12 neopiksela
- 5V traka od 11 RGB LED dioda
- Senzor mikrofona zvuka
- Džemper žice
- Punjiva baterija od 5 V sa USB A vezom
- Kabl štampača (USB A do B kabl)
- Tačke ljepila ili vruće ljepilo
- A4 kartica
- 30 cm x 30 cm krem pamučna tkanina, poput stare jastučnice
- Boja za zelenu tkaninu
- Smeđi pamučni konac
- 70 cm x 50 cm valoviti karton, poput kutija za pizzu
- Samoljepljiva traka
- 9 -inčni obruč za vezenje za uokvirivanje slike
- 9 Samoljepljive čičak trake
Alati
- Računalo sa Arduino IDE -om je preuzeto
- Lemilica i lemilo bez olova
- Okvir za ispitivanje kola
- Skidač žice/rezači žica
- Šivaća igla
- Olovka
- Makaze
Korak 1: Pripremite NeoPixel prsten
Lemite žice različitih boja na svaki od priključaka za napajanje, uzemljenje i podatke na stražnjoj strani NeoPixel prstena.
Ako imate drugu verziju prstena, vaše žice možda neće biti na istom položaju kao moja fotografija.
Zabilježite koje su žice za ulaz i izlaz, kao i pozitivne, podatke i uzemljenje jer se oznake za njih nalaze na donjoj strani prstena i neće biti vidljive kada je prsten na svom mjestu.
Korak 2: Izrežite trake LED dioda
Izrežite 11 pojedinačnih LED dioda iz trake RGB LED dioda, vodeći računa da režete duž središnje linije kako biste ostavili jastučiće za lemljenje s obje strane reza. Utisnite mrlju lema na gornju stranu svakog jastučića.
Korak 3: Lemite LED diode
Napravite rupu u sredini kartice da stane na mikrofon. Koristeći točkice ljepila, zalijepite prsten neo piksela i pojedinačne LED diode na položaj kao što je prikazano, pazeći da se sve strelice na LED diodama poravnaju na isti način kada je tratinčica spojena zajedno.
Lemite izlazne žice od prstena do prve pojedinačne LED diode, usklađujući pozitivne, uzemljene i podatkovne žice na iste podloge na obje LED.
Najbrži i najlakši način na koji sam spojio LED diode je skidanje kratkospojne žice u zasebne bakrene niti. Pričvrstite jednu žicu kako biste povezali svaki od lemljenih jastučića na LED -ovima sa sljedećom, odgovarajući pozitivni, podaci i uzemljenje. Samo je potreban brz dodir vrućeg lemilice jer su jastučići prethodno lemljeni u prethodnom koraku. Umjesto prerezivanja žica u ovoj fazi, odvedite ih preko vrha LED diode kako biste došli do lemljenih jastučića s druge strane. Pazeći da se žice ne ukrštaju niti dodiruju, lemite te jastučiće i nastavite kružiti do ulazne strane posljednje LED diode.
Nemojte priključivati žicu na izlaznu stranu posljednje LED diode. Za razliku od nekih LED dioda s kojima ste možda upoznati, ne morate dovršiti okrugli krug koji vraća energiju na tlo jer ste cijelo vrijeme ožičavali odvojeno uzemljenje i pozitivne vodove. Odrežite sve žice koje idu preko vrha LED dioda tako da imate samo žice koje povezuju između njih.
Savjet: Da biste spriječili dodirivanje žica pri zaobilaženju uglova, svaku uvucite natrag u malu traku plastične izolacije koja je prethodno uklonjena.
Korak 4: Priprema leđa
Napravite još jednu rupu na bijeloj kartici za ulazne žice i progurajte ih.
Odvojite dva prstena obruča za tapiseriju. Nacrtajte vanjski dio najmanjeg prstena na 5 komada valovite karte i izrežite. Izrežite rupe u sredini 3 kruga otprilike 2 cm od ruba da napravite prstenove i u svaki izrežite prorez od 5 mm. Zalijepite prstenove jedan na drugi, poravnavajući proreze, i zalijepite ovo na jedan od preostalih krugova kartice.
Korak 5: Ožičenje mikrofona i Arduina
Priključite svoj Arduino na senzor mikrofona i LED prsten kao što je prikazano. Koristio sam TinkerCad za izradu dijagrama kruga koji nema sliku mikrofona pa sam zamijenio drugi senzor koji koristi iste pinove i radi na isti način u simulaciji.
Da biste pogledali simulaciju, idite na https://www.tinkercad.com/things/5cgI2wluA0c. Povucite krug pričvršćen na senzor na aktivno područje kako biste simulirali duvanje u mikrofon. LED diode su u trakama na 6, pa posljednja LED dioda u simulaciji nije dio dizajna i ne svijetli.
Korak 6: Programiranje Arduina
Otvorite Arduino IDE na svom računaru i pokrenite novu skicu Izbrišite sve unutar skice i umjesto toga kopirajte i zalijepite ovaj kod u nju
// Prilagođeno pomoću jednostavne skice NeoPixel Ring (c) 2013 Shae Erisson // i koda senzora sa https://www.hackster.io/ingo-lohs/first-test-37-s… #include // Koji pin na Arduino je spojen na NeoPixels? #define PIN 6 // Koliko je NeoPixela priključeno na Arduino? #define NUMPIXELS 23 // Kada postavljamo NeoPixel biblioteku, govorimo joj koliko piksela i koji pin treba koristiti za slanje signala. // Imajte na umu da ćete za starije NeoPixel trake možda morati promijeniti treći parametar-za više informacija o mogućim vrijednostima pogledajte primjer strandtest //. Adafruit_NeoPixel pikseli = Adafruit_NeoPixel (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // odgoda za pola sekunde int sensorPin = A0; // odabir ulaznog pina za senzor int sensorValue = 0; // varijabla za spremanje vrijednosti koja dolazi sa senzora const int prag = 200; // proizvoljni prag nivoa koji je u rasponu analognog ulaza void setup () {pixels.begin (); // Ovo inicijalizira NeoPixel biblioteku. pixels.setBrightness (20); // Postavljanje svjetline Serial.begin (9600); } void loop () {// Za skup NeoPixela prvi NeoPixel je 0, drugi je 1, sve do broja piksela minus jedan. // Maslačkovi LED diode // pikseli. Boja uzima RGB vrijednosti, od 0, 0, 0 do 255, 255, 255 piksela.setPixelColor (0, pikseli. Boja (0, 0, 0)); // Isključeno. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (5, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (6, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (7, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (8, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (9, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (10, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (11, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Isključeno. pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. delay (delayval*6); // Postepena promjena sa cvjetne na sjemensku glavu // piksela. Boja uzima RGB vrijednosti, od 0, 0, 0 do 255, 255, 255 piksela.setPixelColor (0, piksela. Boja (0, 0, 0)); // Isključeno. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (5, pixels. Color (226, 246, 255)); // plavo -bijeli pikseli.setPixelColor (6, pikseli. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (7, pixels. Color (226, 246, 255)); // plavičasto bijeli pikseli.setPixelColor (8, pikseli. Boja (255, 165, 0)); // Narančasta. pixels.setPixelColor (9, pixels. Color (226, 246, 255)); // plavo -bijeli pikseli.setPixelColor (10, piksela. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // blueishwhite. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Isključeno. pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. kašnjenje (delayval*6); // LED diode sjemenske glave pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // isključeno pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // isključeno pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (5, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (6, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (7, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (8, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (9, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (10, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // isključeno pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Isključeno. pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. kašnjenje (delayval*3); // Odgoda za određeni vremenski period (u milisekundama). pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // isključeno pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (3, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (5, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (6, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (7, pixels. Color (255, 165, 0)); // Narančasta. pixels.setPixelColor (8, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (9, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (10, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Isključeno. pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. kašnjenje (delayval*3); // Odgoda za određeni vremenski period (u milisekundama). pixels.setPixelColor (0, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (1, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (2, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (3, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (4, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (5, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (6, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (7, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (8, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (9, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (10, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (11, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Isključeno. pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. kašnjenje (delayval); // Odgoda za određeni vremenski period (u milisekundama). // Očitajte vrijednost senzora i prikažite je u serijskom monitoru sensorValue = analogRead (sensorPin); Serial.println (sensorValue); kašnjenje (250); // Dok je vrijednost senzora manja od praga, provjerite vrijednost senzora i ispišite je na serijskom monitoru. Kada je vrijednost iznad praga, skica se može nastaviti dok (sensorValue <prag) {sensorValue = analogRead (sensorPin); Serial.println (sensorValue); kašnjenje (250); } // LED za prvi vjetar pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (5, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (6, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (7, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (8, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (9, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (10, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (11, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (12, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (13, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (14, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (15, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (16, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (17, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (18, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (19, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (20, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (21, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (22, pixels. Color (0, 0, 0)); // Isključeno. pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. kašnjenje (delayval); // Odgoda za određeni vremenski period (u milisekundama). // LED za drugi vjetar pixels.setPixelColor (0, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (1, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (2, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (3, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (4, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (5, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (6, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (7, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (8, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (9, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (10, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (11, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (12, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (13, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (14, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (15, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (16, pixels. Color (0, 0, 0)); // Isključeno. pixels.setPixelColor (17, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (18, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (19, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (20, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (21, pixels. Color (226, 246, 255)); // Plavičasto bijelo. pixels.setPixelColor (22, pixels. Color (226, 246, 255)); // Plavičasto bijelo.pixels.show (); // Ovo šalje ažuriranu boju piksela na hardver. kašnjenje (2000); // Odgoda za određeni vremenski period (u milisekundama). }
Priključite svoj Arduino na računar pomoću kabla USB štampača
Idite na Alati> Ploča i odaberite Arduino/Genuino UNO ploču
Idite na Port i provjerite da li je ploča spojena na desni USB port. Ako niste sigurni, možete isključiti Arduino i vidjeti koji port nestaje s popisa. Ponovo ga uključite i port će se ponovo prikazati.
Otpremite skicu klikom na ikonu za otpremanje, prikazanu na označenoj fotografiji. Svjetla bi trebala treptati na Arduinu dok se učitava. Kada završi učitavanje pola LED dioda na neo piksel prstenu će zasvijetliti žuto, a zatim će se promijeniti u puni prsten bijelih svjetala. Duvajte u mikrofon da biste provjerili strujno kolo. LED diode u vanjskim slojevima trebale bi svijetliti zauzvrat. Provjerite lemljenje na svim LED diodama koje ne rade.
Korak 7: Promjena boja, svjetline i praga senzora
Boje
Boje LED dioda se postavljaju pomoću vrijednosti boje RGB (crveno zelena plava). Ako više volite koristiti različite boje nego što sam ja koristio, možete pronaći vrijednosti za boje koje želite pomoću mrežnog RGB kalkulatora boja, poput www.w3schools.com/colors/colors_rgb.asp
Da biste isključili LED, koristite vrijednosti 0, 0, 0.
Da biste LED postavili na bijelo, koristite vrijednosti 255, 255, 255. Kôd u prethodnom koraku koristi plavkasto bijelu boju s vrijednostima 226, 246, 255 i narančastu s vrijednostima 255, 165, 0.
Svjetlina
Da biste promijenili svjetlinu LED dioda, idite na odjeljak za postavljanje praznine u kodu i pronađite sljedeću liniju koda:
pixels.setBrightness (20); // Postavljanje svjetline
Uredite broj u zagradama da biste promijenili svjetlinu LED dioda.
Sensor Threshold
Kada pokrenete program, polovica NeoPixel prstena počinje žuto da predstavlja cvijet i postupno se mijenja u puni krug bijelih LED dioda kako bi predstavljala sjeme. U ovom trenutku program bi trebao pauzirati sve dok ne udarite u senzor mikrofona. Ako se program nastavi i osvijetli vanjske slojeve LED dioda bez aktiviranja senzora, idite na odjeljak za podešavanje praznine u kodu i smanjite dolje prikazanu vrijednost. Povećajte vrijednost ako se program pauzira, ali ne reagira kada nanesete senzor.
const int prag = 200;
Korak 8: Učinite krug trajnijim
Kada krug radi, isključite Arduino iz računara i uklonite senzor mikrofona s matične ploče. Lemite žice od Arduina do senzora mikrofona kako biste isti krug učinili trajnijim. Gurnite mikrofon kroz otvor na kartici straga. Ako je potrebno, pažljivo savijte mikrofon za 90 stepeni kako bi ploča mogla ležati ravno iza kartice. Priključite bateriju na Arduino pomoću kabela pisača i cijeli niz bi trebao funkcionirati.
Korak 9: Kreirajte sliku
Napravite rupu u tkanini na mestu gde želite mikrofon. Upotrijebio sam vruće lemilo za spaljivanje male rupe i obrezivao je škarama dok mikrofon nije ušao. Obojite i ušijte svoj cvijet na tkaninu. Kad se boja osuši, pričvrstite sliku na obruč za vez i odrežite višak tkanine, ostavljajući mali rub.
Da vidite da li neka od komponenti kola prolazi kroz tkaninu, privremeno stavite tkaninu i obruč na vrh kartice s mikrofonom kroz rupu. Ako je potrebno, prekrijte krug slojevima maskirne trake, povremeno provjeravajući, sve dok se komponente više ne pokažu. LED diode su dovoljno jake da se vide kroz sloj maskirne trake. Ako morate dodati još više slojeva, LED diode možete učiniti svjetlijima prilagođavanjem koda kao što je prikazano u koraku 7.
Vratite tkaninu i obruč na vrh kartice kao i prije i pričvrstite je lijepljenjem dodatne tkanine preko stražnje strane kartice.
Korak 10: Sastavite to zajedno
Zalijepite bijelu kartu na krug od valovitog kartona, obuhvaćajući mikrofon, ali ne i Arduino i bateriju, koji trebaju zaobići rub kartona tako da žice prolaze kroz proreze.
Zadnji krug kartona pričvrstite čičakom kako biste mogli pristupiti bateriji. Napravite rupu u kartonu gdje želite da je objesite na kuku na zidu.
Korak 11: Učenje iz grešaka
Moj prvi pokušaj bio je s naljepnicama za krugove i bakrenom trakom. Naljepnice kola su male LED diode koje su površinski montirane na naljepnice s bakrenim jastučićima. Dolaze iz kompanije Qi Jie, Chibitroniksa, i mislio sam da će biti savršeni.
Nisam mogao dobiti pouzdanu vezu pomoću bakrene trake ili srebrne trake, a kad sam lemio žicu na naljepnice, mogao sam dobiti samo seriju od 3 LED naljepnice za osvjetljenje pomoću 9V baterije. Postalo je jasno da nisu namijenjeni multi light projektima kako sam se nadao. Kad sam pomnije pogledao web stranicu o naljepnicama za krugove, pokazalo se da je projekt sa 4 svjetla drugačija vrsta LED dioda. Mogao bih napajati naljepnice sa baterijom od 12 V, ali bile bi previše glomazne da stanu u sliku.
Zatim sam isprobao LED za LED za kanalizaciju. Mislio sam da bi samo napajanje i uzemljenje bilo lakše spojiti nego programabilne LED diode koje imaju napajanje, uzemljenje i podatkovne vodove. No, pokazalo se da je to kompliciraniji krug koji treba dodatno napajanje i MOSFET, što ja nisam imao. Mogao sam koristiti NeoPixele za kanalizaciju, ali oni su skuplji.
Tako sam nakon nekoliko lažnih startova završio s nizom programabilnih LED dioda koje su jeftine i jednostavne za upotrebu.
Preporučuje se:
BBC Micro: bit i ogrebotina - interaktivni upravljač i igra vožnje: 5 koraka (sa slikama)
BBC Micro: bit and Scratch - Interaktivni upravljač i igra vožnje: Jedan od mojih zadataka ove sedmice je da koristim BBC Micro: bit za povezivanje sa programom Scratch koji smo napisali. Mislio sam da je ovo savršena prilika da pomoću ThreadBoarda stvorim ugrađeni sistem! Moja inspiracija za grebanje p
Arduino interaktivni LED stolić: 6 koraka (sa slikama)
Arduino interaktivni LED stolić za kavu: Napravio sam interaktivni stolić za kavu koji uključuje LED svjetla ispod objekta, kada je objekt postavljen preko stola. Samo LED diode koje se nalaze ispod tog objekta će zasvijetliti. To čini učinkovitom upotrebom senzora blizine, a kada udaljenost
Interaktivni zid od LED pločica (lakše nego što izgleda): 7 koraka (sa slikama)
Interaktivni zid od LED pločica (lakše nego što izgleda): U ovom projektu izgradio sam interaktivni LED zidni ekran koristeći Arduino i 3D štampane dijelove. Inspiracija za ovaj projekt djelomično je došla od Nanoleaf pločica. Htio sam smisliti vlastitu verziju koja je ne samo pristupačnija, već i mo
Interaktivni radio za pripovijedanje priča: 6 koraka (sa slikama)
Interaktivni radio za pripovijedanje priča: U ovom projektu pretvaramo uredan radio u glasovnog, interaktivnog pripovjedača. Budućnost, evo nas
Interaktivni Minecraft Ne unosite mač/znak (ESP32-CAM): 15 koraka (sa slikama)
Interaktivni Minecraft ne unosi mač/znak (ESP32-CAM): Zaista postoji nekoliko razloga zašto je ovaj projekt nastao: 1. Kao autor zadružne biblioteke za više zadataka TaskScheduler, uvijek sam bio znatiželjan kako kombinirati prednosti kooperativne višezadaćnosti s prednostima prevencije