Sadržaj:
- Korak 1: RGB prostor boja
- Korak 2: Dobri brod Lissajous
- Korak 3: Pričekajte - Kako možemo upravljati LED diodom sa sinusoidnim valom?
- Korak 4: Izgradimo 3D LIssajous uzorak
- Korak 5: Stavite sve ovo zajedno na Arduino
- Korak 6: Što je sljedeće?
Video: Istraživanje prostora boja: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
Naše oči percipiraju svjetlost kroz receptore koji su osjetljivi na crvenu, zelenu i plavu boju u vidnom spektru. Ljudi su tu činjenicu koristili za pružanje slika u boji putem filma, televizije, računala i drugih uređaja u posljednjih stotinjak godina.
Na zaslonu računala ili telefona slike se prikazuju u mnogim bojama promjenom intenziteta sitnih crvenih, zelenih i plavih LED dioda koje se nalaze jedna do druge na zaslonu. Milijuni različitih boja mogu se prikazati promjenom intenziteta svjetla s crvene, zelene ili plave LED diode.
Ovaj će vam projekt pomoći u istraživanju crvenog, zelenog i plavog (RGB) prostora boja pomoću Arduina, RGB LED i malo matematike.
Intenzitete tri boje, crvene, zelene i plave, možete zamisliti kao koordinate u kocki, gdje je svaka boja duž jedne osi, a sve tri osi su okomite jedna na drugu. Što ste bliže nultoj točki ili ishodištu osi, manje se prikazuje ta boja. Kad su vrijednosti za sve tri boje na nultoj točki, ili izvoru, tada je boja crna, a RGB LED dioda je potpuno isključena. Kad su vrijednosti za sve tri boje najveće moguće (u našem slučaju, 255 za svaku od tri boje), RGB LED dioda je potpuno uključena, a oko ovu kombinaciju boja doživljava kao bijelu.
Korak 1: RGB prostor boja
Hvala Kennethu Morelandu na dopuštenju da koristi njegovu lijepu sliku.
Željeli bismo istražiti kutove 3D kocke prostora u boji pomoću RGB LED spojene na Arduino, ali želimo to učiniti i na zanimljiv način. To bismo mogli učiniti gniježđenjem tri petlje (po jedna za crvenu, za zelenu i za plavu) i prolaskom kroz svaku moguću kombinaciju boja, ali to bi bilo zaista dosadno. Jeste li ikada vidjeli 2D Lissajous uzorak na osciloskopu ili laserski svjetlosni show? Ovisno o postavkama, Lissajousov uzorak može izgledati poput dijagonalne crte, kruga, figure 8 ili polako rotirajućeg šiljastog uzorka nalik leptiru. Lissajous obrasci nastaju praćenjem sinusoidnih signala dva (ili više) oscilatora ucrtanih na osi x-y (ili, u našem slučaju, x-y-z ili R-G-B) osi.
Korak 2: Dobri brod Lissajous
Najzanimljiviji Lissajous obrasci pojavljuju se kada se frekvencije sinusoidnih signala razlikuju za malu količinu. Na fotografiji osciloskopa ovdje se frekvencije razlikuju u omjeru 5 prema 2 (oba su prosti brojevi). Ovaj uzorak prilično dobro prekriva kvadrat i lijepo ulazi u kutove. Veći prosti brojevi učinili bi još bolji posao pri prekrivanju kvadrata i zabadanju još dalje u kutove.
Korak 3: Pričekajte - Kako možemo upravljati LED diodom sa sinusoidnim valom?
Uhvatio si me! Želimo istražiti 3D prostor u boji koji se kreće od off (0) do full on (255) za svaku od tri boje, ali sinusoidni valovi variraju od -1 do +1. Ovdje ćemo malo matematički i programirati kako bismo dobili ono što želimo.
- Pomnožite svaku vrijednost sa 127 da biste dobili vrijednosti u rasponu od -127 do +127
- Dodajte 127 i zaokružite svaku vrijednost kako biste dobili vrijednosti u rasponu od 0 do 255 (za nas dovoljno blizu 255)
Vrijednosti koje se kreću od 0 do 255 mogu se predstaviti jednobajtnim brojevima (tip podataka "char" u C-sličnom programskom jeziku Arduino), pa ćemo uštedjeti memoriju pomoću jednobajtnog prikaza.
Ali što je s kutovima? Ako koristite stupnjeve, kutovi u sinusoidi kreću se od 0 do 360. Ako koristite radijane, kutovi se kreću od 0 do 2 puta π ("pi"). Učinit ćemo nešto što opet čuva memoriju u našem Arduinu, te ćemo zamisliti krug podijeljen na 256 dijelova i imati "binarne kutove" koji se kreću od 0 do 255, tako da "kutovi" za svaku od boja mogu biti predstavljeni jednobajtnim brojevima ili znakovima i ovdje.
Arduino je prilično nevjerojatan upravo takav kakav jest, i iako može izračunati sinusne vrijednosti, potrebno nam je nešto brže. Prethodno ćemo izračunati vrijednosti i staviti ih u niz od 256 unosa jednobajtnih ili char vrijednosti u našem programu (pogledajte deklaraciju SineTable […] u programu Arduino).
Korak 4: Izgradimo 3D LIssajous uzorak
Za kretanje po tablici različitom frekvencijom za svaku od tri boje zadržat ćemo jedan indeks po boji i svakom indeksu dodavati relativno osnovne pomake dok koračamo kroz boje. Odabrat ćemo 2, 5 i 11 kao relativno primarne pomake za vrijednosti indeksa Red, Green i Blue. Vlastite interne matematičke sposobnosti Arduina pomoći će nam tako što ćemo se automatski preokrenuti dok svakom indeksu dodamo vrijednost pomaka.
Korak 5: Stavite sve ovo zajedno na Arduino
Većina Arduina ima brojne kanale PWM (ili modulaciju širine impulsa). Ovdje će nam trebati tri. Arduino UNO je odličan za to. Čak i mali 8-bitni Atmel mikrokontroler (ATTiny85) radi izvrsno.
Svaki od PWM kanala će pokretati jednu boju RGB LED -e pomoću Arduinove funkcije "AnalogWrite", gdje je intenzitet boje u svakoj točki oko sinusnog ciklusa predstavljen širinom impulsa ili radnim ciklusom, od 0 (sve isključeno) do 255 (sve uključeno). Naše oči percipiraju ove različite širine impulsa, koje se ponavljaju dovoljno brzo, kao različite intenzitete ili svjetline LED -a. Kombinirajući sva tri PWM kanala koji pokreću svaku od tri boje u RGB LED, dobivamo mogućnost prikaza 256*256*256 ili više od šesnaest milijuna boja!
Morat ćete postaviti Arduino IDE (interaktivno razvojno okruženje) i spojiti ga na Arduino ploču pomoću USB kabela. Pokrenite kratkospojnike s PWM izlaza 3, 5 i 6 (pinovi procesora 5, 11 i 12) na tri otpornika od 1 KΩ (tisuću ohma) na vašoj matičnoj ploči ili proto štitu, a s otpornika na LED R, G, i B igle.
- Ako je RGB LED uobičajena katoda (negativni terminal), vodite žicu od katode natrag do GND pina na Arduinu.
- Ako je RGB LED zajednička anoda (pozitivni terminal), vodite žicu od anode natrag do +5V pina na Arduinu.
Arduino skica će raditi u svakom slučaju. Slučajno sam koristio SparkFun Electronics / COM-11120 RGB LED sa uobičajenom katodom (na slici gore, sa SparkFun web stranice). Najduži pin je zajednička katoda.
Preuzmite skicu RGB-Instructable.ino, otvorite je s Arduino IDE-om i testirajte je. Svakako navedite ispravnu ciljnu Arduino ploču ili čip, a zatim učitajte program u Arduino. Trebao bi se odmah pokrenuti.
Vidjet ćete ciklus RGB LED kroz koliko god boja možete imenovati, a milijune ne možete!
Korak 6: Što je sljedeće?
Upravo smo počeli istraživati RGB prostor boja s našim Arduinom. Neke druge stvari koje sam učinio s ovim konceptom uključuju:
Izravno pisanje u registre na čipu, umjesto korištenja AnalogWrite, kako bi se stvari doista ubrzale
- Izmjena kruga tako da IC senzor blizine ubrzava ili usporava ciklus, ovisno o tome koliko ste blizu
- Programiranje Atmel ATTiny85 8-pinskog mikrokontrolera s Arduino pokretačkim programom i ovom skicom
Preporučeni:
SOLARBOI - 4G solarni rover za istraživanje svijeta!: 3 koraka (sa slikama)
SOLARBOI - 4G solarni rover za istraživanje svijeta !: Od malih nogu uvijek sam volio istraživati. Tijekom godina vidio sam mnoge konstrukcije automobila s daljinskim upravljanjem koji se kontroliraju putem WiFi -a, i izgledali su dovoljno zabavno. Ali sanjao sam da idem toliko dalje - u stvarni svijet, daleko izvan granica
Uzgoj više salate na manje prostora ili Uzgoj salate u svemiru, (više ili manje) .: 10 koraka
Uzgoj više salate na manje prostora ili … Uzgoj salate u svemiru, (više ili manje) .: Ovo je profesionalna prijava na natječaj Growing Beyond Earth, Maker, predana putem Instructables. Ne mogu biti više uzbuđen što ću dizajnirati za proizvodnju svemirskih usjeva i objaviti svoj prvi Instructable. Za početak, natječaj nas je zamolio da
Istraživanje učinaka rezonantne strukture s papirnatim saćem: 6 koraka
Istraživanje efekata rezonantne strukture s papirnatim saćem: Mislio sam da bi oni koji se vole baviti temama o alternativnoj energiji mogli ovo probati. Temelji se na otkriću Viktora Grebennkova. Priča se može naći na mnogim mjestima, ali ovu na keelynetu sam pronašao http://www.keelynet.com/gr
Nosiva svjetlosna ploča po mjeri (Tečaj za istraživanje tehnologije - TfCD - Tu Delft): 12 koraka (sa slikama)
Nosiva svjetlosna ploča po mjeri (Tečaj za istraživanje tehnologije - TfCD - Tu Delft): U ovom Instructableu naučit ćete kako napraviti vlastitu osvijetljenu sliku koju možete nositi! To se postiže korištenjem EL tehnologije prekrivene vinilnom naljepnicom i pričvršćivanjem traka na nju tako da je možete nositi oko ruke. Također možete promijeniti dijelove ovog p
Kako pokrenuti vlastiti laboratorij za istraživanje grafita: 6 koraka (sa slikama)
Kako pokrenuti vlastiti istraživački laboratorij za grafite: Pokretanje vlastitog lažnog laboratorija jednostavno je, ali pokušat ćemo to učiniti teško u ovih šest pompeznih koraka