RGB LED olovka za slikanje svjetlom: 17 koraka (sa slikama)
RGB LED olovka za slikanje svjetlom: 17 koraka (sa slikama)
Anonim
RGB LED olovka za slikanje svjetlom
RGB LED olovka za slikanje svjetlom
RGB LED olovka za slikanje svjetlom
RGB LED olovka za slikanje svjetlom
RGB LED olovka za slikanje svjetlom
RGB LED olovka za slikanje svjetlom

Ovo je cjelovito uputstvo za izradu alata za oslikavanje svjetla koji koristi RGB LED kontroler. Često koristim ovaj kontroler u svojim naprednim alatima i mislio sam da bi dokumentarac o tome kako je to izgrađeno i programirano mogao pomoći nekim ljudima.

Ovaj alat je modularna svjetlosna olovka RGB namijenjena svjetlosnom pisanju, svjetlosnom crtanju i osvjetljavanju grafita. Lako je koristiti jer olovku imate u ruci i možete brzo promijeniti boju.

Alat se sastoji od:

  • kućište koje je 3D štampano
  • Arduino Micro
  • LED WS2816B
  • dva potenciometra (10K ili 100K)
  • dva prekidača
  • dugme za pritiskanje
  • i neki kablovi.

Arduino Micro je savršen za to jer je izuzetno mali i odličan za kontrolu RGB LED dioda. Možete koristiti i manje mikrokontrolere poput LilyPada ili čak ATtiny85, ali ja često koristim Micro jer je jednostavan za korištenje jer dolazi s USB priključkom spremnim za upotrebu. I Arduino i LED napajaju se sa 5V, pa morate voditi računa o odgovarajućoj podršci napajanja. Ovaj alat je dizajniran za korištenje četiri AAA punjive baterije jer obično imaju 1,2V i kombiniranih 4,8V što je dovoljno za napajanje i Arduina i LED diode. Pazite da ne koristite obične AAA baterije jer imaju 1,5 V, a kombinirani napon može biti previše za komponente i može ih oštetiti. Ako želite koristiti obične baterije, upotrijebite samo tri, napon bi i dalje trebao biti dovoljan. Koristio sam još jedan sjajan 3D štampani dio nekog drugog za kućište baterije koje se može pronaći ovdje: "Savijajući držači baterija".

Korak 1: Programiranje

Prvo vam je potreban Arduino IDE za programiranje mikro kontrolera koji možete besplatno preuzeti i koristiti. Na prvi pogled ovo zvuči prilično komplicirano, ali je prilično jednostavno. Nakon instalacije softvera dobit ćete jednostavan prozor za uređivanje teksta koji se koristi za kodiranje skice koja je učitana na Arduino. Ovaj alat također koristi FastLED biblioteku koja je odlična i laka za korištenje biblioteka koja kontrolira gotovo sve vrste RGB LED koje možete kupiti. Nakon preuzimanja biblioteke morate je instalirati stavljanjem datoteka u mapu biblioteke koju je stvorio Arduino IDE. To se obično može pronaći pod „C: / Users {Korisničko ime} Documents / Arduino / libraries“ako ga niste promijenili. Nakon stavljanja biblioteke u ovu mapu morate ponovo pokrenuti IDE ako je već pokrenuta. Sada smo spremni za kreiranje koda za kontroler.

Korak 2: Kodeks

Da bismo koristili FastLED biblioteku, moramo je uključiti u svoj kôd. Ovo se radi na vrhu koda prije bilo čega drugog u ovoj liniji:

#include

Zatim ćemo definirati nekoliko konstanti. To je učinjeno jer se ove vrijednosti neće promijeniti dok je kôd pokrenut, a i da bi bile čitljivije. Ove biste vrijednosti mogli staviti izravno u kôd, ali onda ako trebate promijeniti bilo što, morali biste proći kroz cijeli kôd i promijeniti svaki redak u kojem se vrijednost koristi. Korištenjem definiranih konstanti trebate ga promijeniti samo na jednom mjestu i ne morate dodirivati glavni kod. Prvo definiramo pinove koje koristi ovaj kontroler:

#define HUE_PIN A0

#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8

Brojevi ili imena su isti koji se ispisuju na Arduinu. Analogni pinovi su označeni slovom A ispred svog broja, digitalni pinovi koriste samo broj u kodu, ali se ponekad štampaju sa početnim slovom D na ploči.

Potenciometar na pin A0 koristi se za kontrolu nijanse boje, potenciometar na pin A1 se koristi za kontrolu svjetline. Pin D3 se koristi kao signal LED diodi tako da Arduino može slati podatke za kontrolu boje. Pin D6 se koristi za prebacivanje svjetla, a pin D7 i D8 za podešavanje načina rada kontrolera. Implementirao sam načine rada u ovom kontroleru, jedan jednostavno stavlja boju definiranu potenciometrom boje na LED, a drugi će izblijedjeti kroz sve boje. Zatim nam je potrebno i nekoliko definicija za FastLED biblioteku:

#define COLOR_ORDER GRB

#define CHIPSET WS2811 #define NUM_LEDS 5

Čipset se koristi da biblioteci kaže kakvu LED diodu koristimo. FastLED podržava gotovo sve dostupne RGB LED diode (poput NeoPixela, APA106, WS2816B, itd.). LED dioda koju koristim se prodaje kao WS2816B, ali čini se da je malo drugačija pa najbolje funkcionira koristeći skup čipova WS2811. Redoslijed bajtova koji se šalju LED -u radi postavljanja boje također se može razlikovati među proizvođačima, pa imamo i definiciju redoslijeda bajtova. Definicija ovdje samo kaže biblioteci da pošalje boju po redoslijedu zelena, crvena, plava. Posljednja definicija je količina LED dioda koje su povezane. Uvijek možete koristiti manje LED dioda nego što definirate u kodu, pa sam postavio broj na 5 jer s ovim alatom neću dizajnirati olovke s više od 5 LED dioda. Mogli biste postaviti mnogo veći broj, ali zbog performansi ga držim onoliko malim koliko mi treba.

Za glavni kod potrebno nam je i nekoliko varijabli:

int svjetlina = 255;

nepotpisani int pot_Reading1 = 0; nepotpisani int pot_Reading1 = 0; unsigned long lastTick = 0; bez potpisa int wheel_Speed = 10;

Ove se varijable koriste za svjetlinu, očitanja s potenciometara, pamćenje posljednjeg puta kada je kôd izvršen i koliko će brzo nestati boja.

Zatim definiramo niz za LED diode što je jednostavan način za postavljanje boje. Definirana količina LED dioda koristi se za postavljanje veličine niza ovdje:

CRGB LED diode [NUM_LEDS];

Nakon što smo se pobrinuli za definicije, sada možemo napisati funkciju postavljanja. Ovo je prilično kratko za ovaj program:

void setup () {

FastLED.addLeds (LED diode, NUM_LEDS).setCorrection (TypicalLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }

Prvi red inicijalizira FastLED biblioteku koristeći prethodno navedene definicije. Posljednja tri retka govore Arduinu da se ti pinovi koriste kao ulaz i da ako nisu povezani s bilo čim njihov napon treba postaviti na visoki (PULLUP). To znači da moramo priključiti ove pinove na GND da bismo nešto pokrenuli.

Sada se možemo pobrinuti za glavni program. To se radi u funkciji petlje. Prvo postavljamo neke varijable i očitavamo potenciometre:

void loop () {{100} {101}

statički uint8_t nijansa = 0; statički uint8_t wheel_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); hue = map (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); svjetlina = karta (pot_Reading2, 0, 1023, 0, 255);

Prva dva reda postavljaju varijable koje se kasnije koriste za boju. Dva sljedeća bloka brinu se o očitanju vrijednosti potenciometra. Budući da dobivate vrijednost između 0 i 1023 ako očitate pin koristeći “analogRead”, ali nijansa i svjetlina trebaju vrijednost između 0 i 255, koristimo “map” funkciju za prevođenje očitavanja iz jednog područja vrijednosti u drugo. Prvi parametar ove funkcije je vrijednost koju želite prevesti, posljednja četiri su minimalna i maksimalna regija koju želite koristiti za prevođenje.

Zatim ćemo procijeniti tipku:

if (digitalRead (LIGHT_PIN) == LOW) {

Provjeravamo očitanje prema LOW jer smo definirali da je pin visok ako se ne aktivira. Dakle, ako se pritisne tipka, pin će biti spojen na GND i čitati će nisko. Ako igle nisu pritisnute, nema mnogo posla.

Prvo se pobrinimo da samo LED osvijetlimo u jednoj boji:

if (digitalRead (COLOR_PIN) == LOW) {

if (nijansa <2) {FastLED.showColor (CRGB:: Bijelo); FastLED.setBrightness (svjetlina); } else {FastLED.showColor (CHSV (nijansa, 255, svjetlina)); FastLED.setBrightness (svjetlina); } kašnjenje (10);

Moramo procijeniti pin boje kako bismo znali da želimo koristiti ovaj način rada. Tada možemo provjeriti koja je boja potrebna. Budući da se ovdje koristi HSV model boje, potrebna nam je samo nijansa za definiranje boje. Ali ovo također stvara problem što nemamo način da boju postavimo na bijelu. Budući da se nijanse 0 i nijanse 255 prevode u crvenu, upotrijebio sam mali trik i provjerio je li očitanje potenciometra nijanse manje od 2. To znači da je potenciometar okrenut skroz na jednu stranu i ovo možemo upotrijebiti za postavljanje bijele boje. Još uvijek imamo crveno s druge strane pa nećemo ništa izgubiti ovdje.

Dakle, ili postavljamo boju na bijelu, a zatim svjetlinu ili boju postavljamo na osnovu očitavanja nijanse i svjetline.

Nakon toga sam dodao malo kašnjenje jer je mnogo bolje dati kontroleru malo zastoja radi uštede energije i kašnjenje od 10 milisekundi se neće osjetiti.

Zatim kodiramo nestanak boje:

inače if (digitalRead (RAINBOW_PIN) == LOW) {

wheel_Speed = map (pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (wheel_Hue, 255, svjetlina)); }

Prvo se provjerava pin za prebacivanje u ovaj način rada. Budući da nisam želio dodati treći potenciometar za kontrolu brzine blijeđenja i budući da se potenciometar nijanse ne koristi u ovom načinu rada, taj potenciometar možemo koristiti za podešavanje brzine. Ponovnom upotrebom funkcije map možemo prevesti očitavanje u kašnjenje koje se prevodi u brzinu blijeđenja. Koristio sam vrijednost između 2 i 30 za kašnjenje jer je iz iskustva ovo dobra brzina. Funkcija “millis” vratit će milisekunde otkad je Arduino uključen, pa to možemo koristiti za mjerenje vremena. Zadnja promjena nijanse pohranjena je u varijabli koju smo ranije definirali i to se svaki put uspoređuje kako bi se vidjelo moramo li ponovo promijeniti nijansu. Zadnji red samo postavlja boju koja se zatim mora prikazati.

Da biste dovršili kôd:

} else {

FastLED.showColor (CRGB:: Crna); }}

Moramo samo isključiti LED ako dugme nije pritisnuto postavljanjem boje na crno i zatvoriti sve otvorene zagrade.

Kao što vidite, ovo je prilično kratak i jednostavan kod koji se može koristiti za mnoge alate koji koriste RGB LED diode.

Nakon što dobijete potpuni kôd, možete ga prenijeti na Arduino. Za ovo spojite Arduino na računalo USB kablom i odaberite vrstu Arduina u IDE -u.

U ovim uputama koristim Arduino Pro Micro. Nakon postavljanja Arduino modela morate odabrati port na kojem ga IDE može pronaći. Otvorite izbornik portova i trebali biste vidjeti povezani Arduino.

Sada je jedino potrebno učitati kôd na Arduino pritiskom na dugme drugog kruga na vrhu prozora. IDE će izgraditi kôd i učitati ga. Nakon što je ovo uspjelo, možete isključiti Arduino i nastaviti sa sastavljanjem kontrolera.

Korak 3: Montaža elektronike za kontroler

Budući da smo vodili računa o kodiranju Arduina, sada možemo sastaviti hardver kontrolera. Počinjemo stavljanjem komponenti u kućište. Potenciometri idu u dvije okrugle rupe s lijeve strane, prekidač za napajanje nalazi se pri dnu, prekidač za način rada nalazi se gore desno, a Arduino ide u držač u sredini.

Korak 4:

Image
Image

Počnite lemljenjem crvenog kabela od prekidača za napajanje na RAW pin Arduina. Ovaj pin je kontakt za napajanje jer je spojen na regulator napona, pa čak i ako je napon veći od 5V ovaj pin se može koristiti za napajanje Arduina. Zatim lemite još jednu crvenu žicu na VCC pin jer nam za potenciometar treba visoki napon. Lemite dvije bijele žice na pinove A0 i A1 koje ćete koristiti za očitanja potenciometra.

Korak 5:

Image
Image

Sada provucite dugu bijelu i dugu zelenu žicu kroz otvor na vrhu koji se kasnije koristi za povezivanje LED diode. Lemite zeleno na pin 3 i bijelo na pin 6 i pritisnite ih ravno na Arduino. Lemite dvije crne žice na GND pinove na lijevoj strani Arduina, oni se koriste za niski napon potenciometara. Lemite dvije plave žice na pin 7 i pin 8 koje ćete koristiti za prekidač načina rada.

Korak 6:

Image
Image
Image
Image

Crveni kabel koji smo lemili na VCC pinu sada treba lemiti na jedan od vanjskih pinova prvog potenciometra. Upotrijebite drugi crveni kabel za nastavak do drugog potenciometra. Pazite da koristite istu stranu na oba potenciometra, tako da će puna biti ista strana na oba. Lemite dva crna kabla sa druge strane potenciometara i bele kablove sa pinova A0 i A1 na srednjem pinu. Potenciometri rade postavljanjem napona na srednjem pinu na napon između napona primijenjenih na vanjskim pinovima, pa ako spojimo visoki i niski napon možemo dobiti napon između na srednjem pinu. Ovo je dovršilo ožičenje potenciometara i oni se mogu malo okrenuti tako da se igle ne miješaju.

Korak 7:

Image
Image

Lemiti crni kabel na srednju iglu prekidača za način rada i staviti dugački crni kabel kroz otvor koji vodi do napajanja. Provucite još jedan dugi crni kabel kroz gornji otvor koji će se koristiti kao GND za LED.

Korak 8:

Image
Image

Crni kabel koji dolazi iz izvora napajanja lemljen je na drugu crnu žicu koja je spojena na posljednji besplatni GND pin Arduina. Lemite žicu koja vodi do LED diode i crnu žicu na prekidaču za način rada i na kraju lemite dva para crnih žica koje sada imate zajedno. Upotrijebite skupljajuću cijev za izolaciju lemljenja kako biste spriječili kratke spojeve unutar kontrolera.

Korak 9:

Image
Image

Kao posljednji korak, sada možemo lemiti dvije plave žice na prekidač za način rada. Ovi prekidači rade spajanjem srednjeg pina na jedan od vanjskih pinova, ovisno o tome na kojoj je strani prekidač. Budući da su pin 7 i 8 podešeni da se aktiviraju kada su spojeni na GND, možemo koristiti vanjske pinove prekidača za pinove, a srednji za GND. Na ovaj način uvijek se aktivira jedan od pinova.

Na kraju provucite crvenu žicu kroz otvor za napajanje i lemite je na srednju iglu prekidača za napajanje, a drugu dugačku crvenu žicu provucite kroz otvor do LED diode i lemite je na isti pin na prekidaču za napajanje na koji je priključen Arduino.

Korak 10:

Image
Image

Lemite kablove za napajanje na držač baterije i uvijte kopču koja drži kablove koji vode do LED diode. Time je ožičenje za kontroler završeno.

Korak 11: Sklapanje olovke za svjetlo

Budući da je ovaj alat zamišljen kao modularni i koristi različite olovke, potreban nam je konektor na žicama za LED. Koristio sam jeftin molex konektor sa 4 terminala koji se obično može naći na kablovima koji se koriste za ventilatore u računaru. Ovi su kabeli jeftini i lako ih je nabaviti, pa su savršeni.

Korak 12:

Image
Image
Image
Image

Kad sam počeo s ožičenjem kontrolera, nisam provjerio boje kabela na konektorima tako da su malo drugačije, ali se lako pamte. Priključio sam crne žice, napajanje na žuto, zeleno na zeleno i bijelo na plavo, ali možete koristiti bilo koju kombinaciju koja vam se sviđa, sjetite se je i ostalih olovaka. Pazite da izolirana mjesta lemljenja skupljajućom cijevi spriječite kratke hlače.

Korak 13:

Image
Image
Image
Image

Provucite dugu crvenu i dugu zelenu žicu kroz olovku i lemite crne žice s jedne strane tipke, a bijelu žicu s druge strane. Ova vrsta tipki ima četiri pina od kojih su dva spojena u paru. Možete vidjeti koji su pinovi povezani gledajući pri dnu gumba, postoji jaz između parova koji su povezani. Ako pritisnete dugme, dvije strane su povezane s drugom. Bijeli i jedan crni kabel se zatim provlače do kraja olovke, počevši od otvora za gumb. Drugi crni kabel povlači se prema naprijed. Uvjerite se da imate dovoljno kabela s obje strane za rad.

Korak 14:

Image
Image
Image
Image

Pritisnite dugme u otvoru i pripremite ostale kablove. Najbolje je lemiti kabele na LED diodu tako da budu okrenuti prema sredini LED diode jer kabeli prolaze kroz sredinu olovke. Lemite crvenu žicu na lemilicu od 5 V, crnu žicu na podlogu za lemljenje GND, a zelenu žicu na lemilicu Din. Ako imate više LED dioda, Dout podloga za lemljenje prve LED je spojena na Din sljedeće LED diode i tako dalje.

Korak 15:

Image
Image
Image
Image

Sada pritisnite gumb ispred olovke i stavite kap ljepila iza njega kako biste je držali na mjestu.

Sada samo morate lemiti žice na kraju olovke na drugu stranu konektora imajući na umu boje.

Najbolje je koristiti kapljicu ljepila i malo trake za rasterećenje kablova na kraju olovke kako biste spriječili njihovo lomljenje. Time je završeno sastavljanje olovke za svjetlo.

Korak 16: Primjeri

Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri
Primjeri

Na kraju, želim vam pokazati nekoliko primjera gdje sam koristio ovaj alat. Olovka pod uglom sjajna je za osvjetljavanje linija grafita, a ravna olovka odlična je za crtanje i pisanje stvari u zraku (za što nemam mnogo talenta).

Ovo je glavna svrha ovog alata. Kao što vidite, mogućnosti su nevjerojatne ako kombinirate duge ekspozicije s ovim alatom.

Za početak s ovom vrstom fotografije pokušajte koristiti najnižu ISO postavku koju podržava vaša kamera i veliki otvor blende. Dobar način za pronalaženje odgovarajućih postavki je stavljanje fotoaparata u način rada otvora blende i zatvaranje otvora blende sve dok fotoaparat ne pokaže vrijeme ekspozicije otprilike u vremenu koje vam je potrebno da nacrtate ono što želite dodati slici. Zatim prijeđite na ručni način rada ili upotrijebite to vrijeme ekspozicije ili upotrijebite način rada žarulje.

Zabavite se isprobavajući ove! To je neverovatna umetnička forma.

Dodao sam ovo uputstvo izumiteljima i izazovima neobične upotrebe, pa ako vam se sviđa, ostavite glasanje;)

Korak 17: Datoteke

Dodao sam i modele za držače remena koji su namijenjeni za lijepljenje na dno kućišta kontrolera tako da ih možete pričvrstiti na ruku i kopču za olovku koja se može zalijepiti za poklopac kada vam olovka nije potrebna u tvojoj ruci.

Postoje i kapice za raspršivanje koje se mogu koristiti za ujednačavanje svjetla i sprječavanje bljeskanja kada olovka pokaže direktno u kameru.