Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
See on täielik ehitusjuhend kerge värvimistööriista jaoks, mis kasutab RGB LED -kontrollerit. Ma kasutan seda kontrollerit palju oma täiustatud tööriistades ja arvasin, et dokumentaalfilm selle ülesehitamisest ja programmeerimisest võib mõnda inimest aidata.
See tööriist on modulaarne RGB valguspliiats, mis on mõeldud kergeks kirjutamiseks, kergeks joonistamiseks ja grafiti valgustamiseks. Seda on lihtne kasutada, sest teil on ainult pliiats käes ja saate värvi kiiresti muuta.
Tööriist koosneb:
- korpus, mis on trükitud 3D -vormingus
- Arduino Micro
- WS2816B LED
- kaks potentsiomeetrit (10K või 100K)
- kaks lülitit
- nupp
- ja mõned kaablid.
Arduino Micro sobib selleks suurepäraselt, kuna see on äärmiselt väike ja suurepärane RGB LED -ide juhtimiseks. Võite kasutada ka väiksemaid mikrokontrollereid, näiteks LilyPad või isegi ATtiny85, kuid ma kasutan sageli Micro -d, kuna seda on lihtne kasutada, kuna see on varustatud kasutusvalmis USB -pistikuga. Nii Arduino kui ka LED -toiteallikaks on 5 V, seega peate hoolitsema nõuetekohase toite eest. See tööriist on mõeldud nelja AAA laetava patarei kasutamiseks, kuna neil on tavaliselt 1,2 V ja kombineeritud 4,8 V, millest piisab nii Arduino kui ka LED -i toiteks. Ärge kasutage tavalisi AAA patareisid, kuna nende pinge on 1,5 V ja kombineeritud pinge võib komponentidele liiga palju teha ja neid kahjustada. Kui soovite kasutada tavalisi patareisid, kasutage ainult kolme, pinge peaks siiski olema piisav. Akuümbrise jaoks kasutasin kellegi teise suurepärast 3D -prinditud osa, mille leiate siit: "Painduvad akuhoidjad".
Samm: programmeerimine
Esmalt vajate Arduino IDE -d mikrokontrolleri programmeerimiseks, mille saab tasuta alla laadida ja kasutada. See tundub esmapilgul üsna keeruline, kuid tegelikult on see üsna lihtne. Pärast tarkvara installimist saate lihtsa tekstiredaktori akna, mida kasutatakse Arduinole üles laaditud visandi kodeerimiseks. See tööriist kasutab ka FastLED -kogu, mis on suurepärane ja hõlpsasti kasutatav teek, mis juhib peaaegu igasuguseid RGB -LED -e, mida saate osta. Pärast teegi allalaadimist peate installima, asetades failid Arduino IDE loodud raamatukogu kausta. Selle leiate tavaliselt jaotisest „C: / Users {User Name} Documents / Arduino / libraries”, kui te pole seda muutnud. Pärast teegi sellesse kausta panemist peate IDE uuesti käivitama, kui see juba töötab. Nüüd oleme valmis kontrolleri jaoks koodi looma.
2. samm: kood
FastLED -teegi kasutamiseks peame selle esmalt oma koodi lisama. Seda tehakse koodi ülaosas enne kõike muud selle reaga:
#kaasake
Järgmisena määratleme mõned konstandid. Seda tehakse seetõttu, et need väärtused ei muutu koodi töötamise ajal ja et see oleks paremini loetav. Võiksite need väärtused otse koodi sisestada, kuid kui teil on vaja midagi muuta, peate läbima kogu koodi ja muutma iga rida, milles väärtust kasutatakse. Määratud konstantide abil peate seda muutma ainult ühes kohas ja pole vaja põhikoodi puudutada. Kõigepealt määratleme tihvtid, mida see kontroller kasutab:
#define HUE_PIN A0
#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8
Numbrid või nimed on samad, mis on trükitud Arduinole. Analoognõelad identifitseeritakse numbri ees oleva A -tähega, digitaalsed tihvtid kasutavad ainult numbrit koodis, kuid mõnikord trükitakse tahvlile D -tähega.
Tihvti A0 potentsiomeetrit kasutatakse värvi tooni juhtimiseks, tihvti A1 potentsiomeetrit heleduse reguleerimiseks. Tihvti D3 kasutatakse LED -i signaalina, nii et Arduino saab värvi juhtimiseks andmeid saata. Tihvti D6 kasutatakse valguse ümberlülitamiseks ning tihvti D7 ja D8 kasutatakse kontrolleri režiimi seadistamiseks. Olen rakendanud selle kontrolleri režiimidele, üks paneb lihtsalt LED -i värvi potentsiomeetri määratud värvi ja teine tuhmub läbi kõigi värvide. Järgmisena vajame ka mõnda FastLED -i raamatukogu määratlust:
#define COLOR_ORDER GRB
#defineeri CHIPSET WS2811 #defineeri NUM_LEDS 5
Kiibistikku kasutatakse raamatukogule teatamiseks, millist LED -i me kasutame. FastLED toetab peaaegu kõiki saadaolevaid RGB LED -e (nt NeoPixel, APA106, WS2816B jne). Minu kasutatav LED müüakse nimega WS2816B, kuid tundub olevat natuke teistsugune, nii et see töötab kõige paremini WS2811 kiibistiku abil. LED -ile värvi saatmiseks saadetavate baitide järjekord võib tootjatel samuti erineda, seega on meil ka baitide järjekorra määratlus. Siinne määratlus lihtsalt käsib raamatukogul saata värvi järjekorras roheline, punane, sinine. Viimane määratlus on ühendatud LED -ide hulga kohta. Saate alati kasutada vähem valgusdioode, kui määrate koodis, nii et määran arvuks 5, sest selle tööriistaga ei kujunda ma rohkem kui viie valgusdioodiga pliiatsit. Võiksite numbri palju kõrgemaks seada, kuid jõudluse tõttu hoian selle nii väikeseks kui vaja.
Põhikoodi jaoks vajame ka mõnda muutujat:
int heledus = 255;
unsigned int pot_Reading1 = 0; unsigned int pot_Reading1 = 0; allkirjastamata pikk lastTick = 0; unsigned int wheel_Speed = 10;
Neid muutujaid kasutatakse heleduse, potentsiomeetrite näitude, mäletamise ajal, millal kood viimati täideti ja kui kiiresti värv tuhmub.
Järgmisena määratleme LED -de jaoks massiivi, mis on lihtne viis värvi määramiseks. Massiivi suuruse määramiseks kasutatakse määratud arvu LED -e:
CRGB LED -id [NUM_LEDS];
Pärast määratluste eest hoolitsemist saame nüüd kirjutada seadistusfunktsiooni. See on selle programmi jaoks üsna lühike:
tühine seadistus () {
FastLED.addLeds (ledid, NUM_LEDS).setCorrection (tüüpilineLEDStrip); pinMode (LIGHT_PIN, INPUT_PULLUP); pinMode (COLOR_PIN, INPUT_PULLUP); pinMode (RAINBOW_PIN, INPUT_PULLUP); }
Esimene rida initsialiseerib FastLED -teegi, kasutades eelnevalt määratud määratlusi. Viimased kolm rida ütlevad Arduinole, et neid kontakte kasutatakse sisendina ja et kui need pole millegagi ühendatud, tuleks nende pinge seada kõrgeks (PULLUP). See tähendab, et millegi käivitamiseks peame need tihvtid GND -ga ühendama.
Nüüd saame põhiprogrammi eest hoolitseda. Seda tehakse tsüklifunktsioonis. Kõigepealt seadistame mõned muutujad ja loeme potentsiomeetrid ette:
void loop () {
staatiline uint8_t toon = 0; staatiline uint8_t wheel_Hue = 0; pot_Reading1 = analogRead (HUE_PIN); toon = kaart (pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead (BRIGHT_PIN); heledus = kaart (pot_Reading2, 0, 1023, 0, 255);
Esimesed kaks rida määravad muutujad, mida hiljem värvi jaoks kasutatakse. Kaks järgmist plokki hoolitsevad potentsiomeetri väärtuste lugemise eest. Kuna näete tihvti „analogRead” abil väärtust vahemikus 0–1023, kuid toon ja heledus vajavad väärtust vahemikus 0–255, kasutame funktsiooni „map”, et teisendada näidud ühest väärtuspiirkonnast teise. Selle funktsiooni esimene parameeter on väärtus, mida soovite tõlkida, neli viimast on minimaalsed ja maksimaalsed piirkonnad, mida soovite tõlkimiseks kasutada.
Järgmisena hindame nuppu:
if (digitalRead (LIGHT_PIN) == LOW) {
Kontrollime näitu LOW -ga, sest määrasime tihvti kõrgeks, kui seda ei käivitata. Seega, kui vajutada nupule, ühendatakse tihvt GND -ga ja see näitab madalat taset. Kui tihvte ei vajutata, pole palju teha.
Kõigepealt hoolitseme LED -i ühevärvilise valgustamise eest:
if (digitalRead (COLOR_PIN) == LOW) {
if (toon <2) {FastLED.showColor (CRGB:: Valge); FastLED.setBrightness (heledus); } else {FastLED.showColor (CHSV (toon, 255, heledus)); FastLED.setBrightness (heledus); } viivitus (10);
Peame hindama värvinõela, et teada saada, et tahame seda režiimi kasutada. Siis saame kontrollida, millist värvi on vaja. Kuna siin kasutatakse HSV värvimudelit, vajame värvi määratlemiseks ainult tooni. Kuid see tekitab ka probleemi, et meil pole võimalust värvi valgeks määrata. Kuna toon 0 ja toon 255 tõlgivad mõlemad punaseks, kasutan siin väikest trikki ja kontrollin, kas tooni potentsiomeetri näit on väiksem kui 2. See tähendab, et potentsiomeeter on täiesti ühele poole keeratud ja saame selle abil valgeks määrata. Meil on teisel pool endiselt punane, nii et me ei kaota siin midagi.
Nii et kas määrame värvi valgeks ja seejärel heleduse või määrame värvi tooni lugemise ja ka heleduse põhjal.
Hiljem lisasin väikese viivituse, sest palju parem on anda kontrollerile vähe seisakuid, et säästa energiat ja 10 millisekundilist viivitust ei ole tunda.
Järgmisena kodeerime värvi tuhmumist:
muidu kui (digitalRead (RAINBOW_PIN) == LOW) {
ratta_kiirus = kaart (pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) {wheel_Hue = 0; } lastTick = millis (); } FastLED.showColor (CHSV (ratta_toon, 255, heledus)); }
Esmalt kontrollitakse selle režiimi vahetamiseks mõeldud tihvti. Kuna ma ei tahtnud pleekimiskiiruse reguleerimiseks kolmandat potentsiomeetrit lisada ja kuna tooni potentsiomeetrit selles režiimis ei kasutata, saame kiiruse seadmiseks kasutada seda potentsiomeetrit. Kasutades uuesti kaardifunktsiooni, saame lugemise tõlkida viivituseks, mis teisendatakse tuhmumise kiiruseks. Kasutasin viivituse väärtust vahemikus 2 kuni 30, sest kogemuste põhjal on see hea kiirus. Funktsioon "millis" tagastab millisekundid pärast Arduino sisselülitamist, nii et saame seda kasutada aja mõõtmiseks. Viimane toonimuutus salvestatakse muutujale, mille me varem määratlesime, ja seda võrreldakse iga kord, et näha, kas peame tooni uuesti muutma. Viimane rida määrab lihtsalt värvi, mida tuleb järgmisena kuvada.
Koodi lõpetamiseks:
} muud {
FastLED.showColor (CRGB:: Must); }}
Peame LED -i lihtsalt välja lülitama, kui nuppu ei vajutata, määrates värvi mustaks ja sulgege kõik avatud sulgud.
Nagu näete, on see üsna lühike ja lihtne kood, mida saab kasutada paljude tööriistade jaoks, mis kasutavad RGB LED -e.
Kui teil on täielik kood, saate selle Arduinosse üles laadida. Selleks ühendage Arduino USB -kaabli abil arvutiga ja valige IDE -s Arduino tüüp.
Selles juhendis kasutan Arduino Pro Micro. Pärast Arduino mudeli seadistamist peate valima pordi, kust IDE selle leiab. Avage pordi menüü ja peaksite nägema ühendatud Arduino.
Nüüd jääb üle vaid kood Arduinosse üles laadida, vajutades akna ülaosas asuvat teise ringi nuppu. IDE koostab koodi ja laadib selle üles. Kui see oli edukas, saate Arduino lahti ühendada ja jätkata kontrolleri kokkupanekut.
3. samm: kontrolleri elektroonika kokkupanek
Kuna hoolitsesime Arduino kodeerimise eest, saame nüüd kontrolleri riistvara kokku panna. Alustuseks paneme komponendid korpuse sisse. Potentsiomeetrid lähevad vasakpoolsesse kahte ümmargusesse auku, toitelüliti on all, režiimi lüliti on paremas ülanurgas ja Arduino läheb hoidikusse keskel.
4. samm:
Alustage punase kaabli jootmisega toitelülitist Arduino RAW -tihvti külge. See tihvt on toiteallika jaoks mõeldud, kuna see on ühendatud pingeregulaatoriga, nii et isegi kui pinge on kõrgem kui 5 V, saab seda tihvti kasutada Arduino toiteks. Seejärel jootke VCC tihvti juurde veel üks punane juhe, kuna vajame potentsiomeetri jaoks kõrgetasemelist pinget. Potentsomeetri näitude jaoks jootke kaks valget juhet A0 ja A1 tihvtide külge.
5. samm:
Nüüd pange ülaosas oleva ava kaudu pikk valge ja pikk roheline traat, mida hiljem kasutatakse LED -i ühendamiseks. Jootke roheline nööpnõelale 3 ja valge nööpnõelale 6 ning vajutage need Arduino tasapinnale. Jootke kaks musta juhtmestikku Arduino vasakul küljel asuva GND tihvti külge, neid kasutatakse potentsiomeetrite madala pinge jaoks. Jootke kaks sinist juhet tihvti 7 ja tihvti 8 juurde, mida kasutatakse režiimilüliti jaoks.
6. samm:
Punane kaabel, mille jootsime VCC tihvti külge, tuleb nüüd joota esimese potentsiomeetri ühe välimise tihvti külge. Jätkake teise potentsiomeetriga teise punase kaabli abil. Olge ettevaatlik, et kasutate mõlemal potentsiomeetril sama külge, nii et täis on mõlemal pool sama. Jootke kaks musta kaablit potentsiomeetrite teisele küljele ja valged kaablid tihvtidelt A0 ja A1 keskmisele tihvtile. Potentsiomeetrid töötavad, seadistades keskmise tihvti pinge välistele tihvtidele rakendatud pingete vahele, nii et kui ühendame kõrge ja madalpinge, saame keskmise tihvti vahele pinge. See viis potentsiomeetrite juhtmestiku lõpule ja neid saab veidi pöörata, nii et tihvtid on teelt väljas.
7. samm:
Jootke must kaabel režiimilüliti keskmise tihvti külge ja pange pikk must kaabel läbi toiteallika juurde viiva ava. Pange teine pikk must kaabel läbi ülemise ava, mida kasutatakse LED -i GND -na.
8. samm:
Toiteallikast tulev must kaabel on joodetud teise musta juhtme külge, mis on ühendatud Arduino viimase vaba GND tihvtiga. Jootke LED -i viiv traat ja režiimilüliti must traat kokku ja lõpuks jootke kaks paari musta juhtmeid, mis teil nüüd koos on. Kasutage jootmise isoleerimiseks kahanemistoru, et vältida lühiseid kontrolleri sees.
9. samm:
Viimase sammuna saame nüüd joota kaks sinist juhet režiimilüliti külge. Need lülitid töötavad, ühendades keskmise tihvti ühe välimise tihvtiga sõltuvalt sellest, kummal pool lüliti on. Kuna tihvtid 7 ja 8 on GND -ga ühendamisel käivitatud, saame tihvtide jaoks kasutada lüliti väliseid kontakte ja GND jaoks keskmist. Nii käivitub alati üks tihvtidest.
Lõpuks pange punane juhe läbi toiteava ja jootke see toitelüliti keskmisele tihvtile ning pange teine pikk punane juhe ava kaudu LED -i ja jootke see toitelüliti samale tihvtile, millega Arduino on ühendatud.
10. samm:
Jootke toitekaablid patareipesa külge ja keerake klamber sisse, mis hoiab LED -i juhtmeid. See lõpetab kontrolleri juhtmestiku.
11. samm: valguspliiatsi kokkupanek
Kuna see tööriist on mõeldud modulaarseks ja kasutab erinevaid pliiatseid, vajame LED -i juhtmetel pistikut. Kasutasin odavat 4 -klemmilist molex -pistikut, mida tavaliselt võib leida arvuti ventilaatorite kaablitelt. Need kaablid on odavad ja neid on lihtne hankida, seega on need ideaalsed.
12. samm:
Kontrollerit ühendades ei kontrollinud ma pistikute kaablite värve, nii et need on pisut erinevad, kuid neid on lihtne meelde jätta. Ühendasin mustad juhtmed, toide kollaseks, roheline roheliseks ja valge siniseks, kuid võite kasutada mis tahes kombinatsiooni, mis teile meeldib, pidage seda ka teiste pliiatsite puhul meeles. Eraldage joodetud alad kahaneva toruga, et vältida lühiseid.
13. samm:
Pange pikk punane ja pikk roheline traat läbi pliiatsi ja jootke mustad juhtmed nupu ühele poole ja valge traat teisele poole. Sellistel nuppudel on neli tihvti, millest kaks on paarikaupa ühendatud. Nuppe põhja vaadates näete, millised tihvtid on ühendatud, ühendatud paaride vahel on tühimik. Kui vajutate nuppu, on mõlemad küljed ühendatud teisega. Seejärel tõmmatakse valge ja üks must kaabel läbi pliiatsi otsa, alustades nupu avamisest. Teine must kaabel tõmmatakse ettepoole. Veenduge, et mõlemal küljel oleks piisavalt kaablit, millega töötada.
14. samm:
Vajutage nupule ava sisse ja valmistage ülejäänud kaablid ette. Parim on joota kaablid valgusdioodi külge nii, et need oleksid suunatud LED -i keskosa poole, kuna kaablid jooksevad läbi pliiatsi keskosa. Jootke punane juhe 5V jootepadja külge, must juhe GND jootmispadja külge ja roheline juhe Dini jootmispadja külge. Kui teil on rohkem kui üks LED, on esimese LED -i jootepadi ühendatud järgmise LED -i Din -ga ja nii edasi.
15. samm:
Nüüd vajutage pliiatsi esiküljel asuvat nuppu ja pange selle taha tilk liimi, et seda paigal hoida.
Nüüd peate lihtsalt jootma pliiatsi otsas olevad juhtmed pistiku teisele küljele, pidades silmas värve.
Pliiatsi lõpus olevate kaablite vabastamiseks on kõige parem kasutada tilka liimi ja mõnda teipi, et vältida nende purunemist. See lõpetab kerge pliiatsi kokkupaneku.
16. samm: näited
Lõpuks tahan näidata teile paar näidet, kus ma seda tööriista kasutasin. Nurga all olev pliiats sobib suurepäraselt grafiti joonte valgustamiseks ja sirge pliiats sobib suurepäraselt õhku kraami joonistamiseks ja kirjutamiseks (mille jaoks mul on ainult vähe annet).
See on selle tööriista peamine eesmärk. Nagu näete, on võimalused hämmastavad, kui kombineerite selle tööriistaga pikad säritused.
Sellise pildistamise alustamiseks proovige kasutada kaamera madalaimat ISO -seadistust ja suurt ava. Hea viis õigete seadete leidmiseks on kaamera avamisrežiimi seadmine ja ava sulgemine, kuni kaamera näitab säriaega, mis on umbes aeg, mille jooksul peate joonistama selle, mida soovite pildile lisada. Seejärel lülitage käsitsi ja kasutage seda säriaega või kasutage pirnirežiimi.
Mõnusat nende katsetamist! See on hämmastav kunstivorm.
Lisasin selle juhise leiutajate ja ebatavaliste kasutusviiside väljakutsele, nii et kui teile meeldib, jätke hääletus;)
17. samm: failid
Lisasin ka mudelid rihmahoidjatele, mis on mõeldud liimimiseks kontrolleri korpuse põhja, et saaksite selle käe külge kinnitada, ja pliiatsi klambri, mida saab kaane külge kleepida, kui te seda pliiatsit ei vaja. sinu käes.
Samuti on olemas hajuti korgid, mida saab kasutada valguse sujuvamaks muutmiseks ja põletuste vältimiseks, kui pliiats suunab otse kaamerasse.