Mündəricat:
- Addım 1: RGB Rəng Məkanı
- Addım 2: Yaxşı Gəmi Lissajous
- Addım 3: Gözləyin - Sinusoidal Dalğa ilə Bir LED -i Necə Sürə bilərik?
- Addım 4: Gəlin, 3D -dən çox olmayan bir nümunə yaradaq
- Addım 5: Bunların hamısını Arduinoya qoyun
- Addım 6: Sonrakı Nədir?
Video: Rəng Məkanını Kəşf edin: 6 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Gözlərimiz vizual spektrdə qırmızı, yaşıl və mavi rənglərə həssas olan reseptorlar vasitəsilə işığı qəbul edir. İnsanlar son yüz il ərzində film, televiziya, kompüter və digər qurğular vasitəsilə rəngli görüntülər təqdim etmək üçün bu həqiqəti istifadə etdilər.
Bir kompüter və ya telefonun ekranında, görüntülər ekranda bir -birinin yanında olan kiçik qırmızı, yaşıl və mavi LED -lərin intensivliyini dəyişdirərək bir çox rəngdə göstərilir. Qırmızı, yaşıl və ya mavi LED -lərdən işığın intensivliyi dəyişdirilərək milyonlarla fərqli rəng göstərilə bilər.
Bu layihə Arduino, RGB LED və kiçik bir riyaziyyat istifadə edərək qırmızı, yaşıl və mavi (RGB) rəng sahəsini araşdırmağa kömək edəcək.
Qırmızı, yaşıl və mavi olan üç rəngin intensivliyini, hər rəngin bir ox boyunca olduğu və hər üç oxun bir -birinə dik olduğu bir kubdakı koordinatlar kimi düşünə bilərsiniz. Eksenin sıfır nöqtəsinə və ya mənşəyinə nə qədər yaxın olsanız, o rəng daha az göstərilir. Hər üç rəng üçün dəyərlər sıfır nöqtəsində və ya mənşəyində olduqda, rəng qara olur və RGB LEDi tamamilə sönür. Hər üç rəngin dəyərləri bacardıqları qədər yüksək olduqda (bizim vəziyyətimizdə üç rəngin hər biri üçün 255), RGB LED tamamilə yanır və göz bu rəng birləşməsini ağ kimi qəbul edir.
Addım 1: RGB Rəng Məkanı
Kenneth Moreland -a gözəl görüntüsünü istifadə etməyə icazə verdiyi üçün təşəkkür edirəm.
Arduino -ya qoşulmuş bir RGB LED -dən istifadə edərək 3D rəngli kosmik kubun künclərini araşdırmaq istərdik, həm də bunu maraqlı bir şəkildə etmək istərdik. Üç döngəni (hər biri qırmızı, yaşıl və mavi üçün) içəri qoyaraq və mümkün olan hər rəng kombinasiyasından keçərək edə bilərdik, amma bu çox darıxdırıcı olardı. Osiloskopda və ya lazer işıq şousu? Ayarlardan asılı olaraq, Lissajous naxışı diaqonal xətt, dairə, rəqəm 8 və ya yavaş-yavaş fırlanan sivri kəpənək kimi naxışa bənzəyə bilər. Lissajous nümunələr, x-y (və ya bizim vəziyyətimiz üçün x-y-z və ya R-G-B) oxları üzərində qurulmuş iki (və ya daha çox) osilatorun sinusoidal siqnallarını izləməklə yaradılır.
Addım 2: Yaxşı Gəmi Lissajous
Ən maraqlı Lissajous nümunələri sinusoidal siqnalların tezliyi az miqdarda fərqləndikdə ortaya çıxır. Buradakı osiloskop fotoşəkildə tezliklər 5 ilə 2 nisbətində fərqlənir (hər ikisi də sadə ədədlərdir). Bu model öz meydanını olduqca yaxşı örtür və künclərə gözəl daxil olur. Daha yüksək ədədlər, meydanı örtmək və künclərə daha da soxmaq üçün daha yaxşı bir iş görərdi.
Addım 3: Gözləyin - Sinusoidal Dalğa ilə Bir LED -i Necə Sürə bilərik?
Məni tutdun! Üç rəngin hər biri üçün (0) tamdan (255) qədər dəyişən 3D rəng məkanını araşdırmaq istəyirik, lakin sinusoidal dalğalar -1 ilə +1 arasında dəyişir. İstədiyimizi əldə etmək üçün burada kiçik bir riyaziyyat və proqramlaşdırma edəcəyik.
- -127 ilə +127 arasında dəyişən dəyərlər əldə etmək üçün hər bir dəyəri 127 ilə çarpın
- 127 əlavə edin və 0 -dan 255 -ə qədər olan dəyərləri əldə etmək üçün hər bir dəyəri yuvarlayın (bizim üçün 255 -ə yaxın)
0-dan 255-ə qədər olan dəyərlər tək baytlı nömrələrlə (C kimi Arduino proqramlaşdırma dilində "char" məlumat növü) təmsil oluna bilər, buna görə də tək baytlı təsvirdən istifadə edərək yaddaşa qənaət edəcəyik.
Bəs açılar? Bir dərəcə istifadə edirsinizsə, sinusoiddəki açılar 0 ilə 360 arasındadır. Radian istifadə edirsinizsə, açılar 0 ilə 2 dəfə range ("pi") arasında dəyişir. Yenidən Arduino yaddaşımızı qoruyacaq bir şey edəcəyik və 256 hissəyə bölünmüş bir dairə düşünəcəyik və 0 ilə 255 arasında dəyişən "ikili açılara" sahibik, buna görə rənglərin hər biri üçün "açılar" ola bilər. burada da tək baytlı nömrələrlə və ya işarələrlə təmsil olunur.
Arduino olduğu kimi olduqca gözəldir və sinusoidal dəyərləri hesablaya bilsə də, daha sürətli bir şeyə ehtiyacımız var. Dəyərləri əvvəlcədən hesablayacağıq və proqramımızda 256 girişdən ibarət uzun bir bayt və ya char dəyərlərinə qoyacağıq (Arduino proqramında SineTable […] bəyannaməsinə baxın).
Addım 4: Gəlin, 3D -dən çox olmayan bir nümunə yaradaq
Üç rəngin hər biri üçün fərqli bir tezlikdə cədvəldə gəzmək üçün rəng başına bir indeks saxlayacağıq və rəngləri keçdikcə hər bir indeksə nisbətən əsas ofsetlər əlavə edəcəyik. Qırmızı, Yaşıl və Mavi indeks dəyərləri üçün nisbətən əsas kompensasiya olaraq 2, 5 və 11 seçəcəyik. Arduino -nun öz daxili riyazi qabiliyyətləri, hər bir indeksə ofset dəyərini əlavə edərkən avtomatik olaraq dolanaraq bizə kömək edəcək.
Addım 5: Bunların hamısını Arduinoya qoyun
Əksər Arduinolarda bir neçə PWM (və ya nəbz genişliyi modulyasiyası) kanalı var. Burada üçə ehtiyacımız var. Bunun üçün bir Arduino UNO əladır. Hətta kiçik bir 8 bitlik Atmel mikro nəzarətçisi (ATTiny85) inanılmaz dərəcədə işləyir.
PWM kanallarının hər biri, Arduino'nun "AnalogWrite" funksiyasından istifadə edərək RGB LED -in bir rəngini idarə edəcək, burada sinusoidal dövrünün hər nöqtəsindəki rəngin intensivliyi 0 -dan nəbz genişliyi və ya vəzifə dövrü ilə təmsil olunur.) 255 -ə (hamısı açıqdır). Gözlərimiz, LED -in fərqli intensivliyi və ya parlaqlığı olaraq kifayət qədər tez təkrarlanan bu dəyişən nəbz genişliklərini qəbul edir. RGB LED -də üç rəngin hər birini idarə edən hər üç PWM kanalını birləşdirərək 256*256*256 və ya on altı milyondan çox rəng göstərmək imkanı əldə edirik!
Arduino IDE (İnteraktiv İnkişaf Ortamı) qurmalı və USB kabelindən istifadə edərək Arduino lövhəsinə qoşmalısınız. PWM 3, 5 və 6 çıxışlarından (prosessor pinləri 5, 11 və 12) proto lövhənizdə və ya proto qalxanınızdakı üç 1 KΩ (min ohm) rezistora və rezistorlardan LED R, G -yə qədər işləyin. və B pinləri.
- RGB LED ümumi bir katoddursa (mənfi terminal), o zaman katoddan Arduino üzərindəki GND pininə qədər bir tel çəkin.
- RGB LED ümumi bir anoddursa (pozitiv terminal), o zaman anoddan Arduino üzərindəki +5V pininə qədər bir tel çəkin.
Arduino eskizi hər iki şəkildə də işləyəcək. Bir SparkFun Electronics / COM-11120 RGB ümumi katot LEDindən istifadə etdim (yuxarıdakı şəkil, SparkFun veb saytından). Ən uzun pin ümumi katoddur.
RGB-Instructable.ino eskizini yükləyin, Arduino IDE ilə açın və test tərtib edin. Doğru hədəf Arduino lövhəsini və ya çipini təyin etdiyinizə əmin olun, sonra proqramı Arduinoya yükləyin. Dərhal başlamalıdır.
Adlandıra biləcəyiniz qədər çox rəngdə RGB LED dövrəsini görəcəksiniz və milyonlarca adam edə bilməzsiniz!
Addım 6: Sonrakı Nədir?
Arduino ilə RGB Rəng Məkanını kəşf etməyə yeni başladıq. Bu konsepsiya ilə etdiyim digər işlər arasında:
İşi sürətləndirmək üçün AnalogWrite istifadə etmək əvəzinə birbaşa çip qeydlərinə yazmaq
- Bir IR yaxınlıq sensoru, nə qədər yaxınlaşdığınıza bağlı olaraq dövrəni sürətləndirir və ya yavaşlatır ki, dövrə dəyişdirin
- Arduino bootloader və bu eskiz ilə bir Atmel ATTiny85 8 pinli mikrokontrolörün proqramlaşdırılması
Tövsiyə:
SOLARBOI - Dünyanı Kəşf etmək üçün 4G Solar Rover !: 3 Addım (Şəkillərlə)
SOLARBOI - Dünyanı Kəşf etmək üçün 4G Solar Rover !: Gəncliyimdən həmişə araşdırmağı çox sevirəm. İllər keçdikcə WiFi üzərindən idarə olunan bir çox uzaqdan idarə olunan maşın gördüm və kifayət qədər əyləncəli görünürdülər. Ancaq daha da irəli getməyi xəyal etdim - real dünyaya, sərhədlərin çox kənarına
Arduino RGB Rəng Seçici - Real Həyat Obyektlərindən Rəng Seçin: 7 Addım (Şəkillərlə)
Arduino RGB Rəng Seçici - Real Həyat Nəsillərindən Rəng Seçin: Kompüterinizdə və ya cib telefonunuzda real həyatda gördüyünüz rəngləri yenidən yaratmağa imkan verən bu Arduino əsaslı RGB rəng seçici ilə fiziki obyektlərdən rəngləri asanlıqla seçin. Ucuz bir TCS347 istifadə edərək obyektin rəngini skan etmək üçün sadəcə bir düyməni basmaq kifayətdir
Fotoşəkil çəkməyin ən yaxşı yolunu kəşf edin: 8 addım
Bir fotoşəkili kəskinləşdirməyin ən yaxşı yolunu kəşf edin: Artefaktları körfəzdə saxlayarkən yumşaq görünüşlü detalları kəskinləşdirmək üçün Photoshop Elements istifadə edin Bir fotoşəkilin bir az yumşaq görünməsinin bir neçə səbəbi var. Yeni başlayanlar üçün kameranın Avtomatik Fokus (AF) nöqtəsi əsas maraq sahəsi ilə üst -üstə düşməmiş ola bilər
Raspberry Pi 2 və Scratch istifadə edərək, rəng spektrində bir RGB LEDini dövr edin: 11 addım
Raspberry Pi 2 və Scratch istifadə edərək rəng spektrində bir RGB LEDini dövr edin: Qeydləri 25 Fevral 2016 -cı ilə qədər yeniləyin: Scratch proqramını təkmilləşdirdim və təlimat verdiyim şeyi yenidən dizayn etdim. Salam uşaqlar, bu layihə ilə rəng spektrində bir RGB LEDini dövr etmək üçün Scratch istifadə etmək istədim. Bunu edən bir çox layihə var
Kitab məlumatlarını kəşf etmək, təşkil etmək və paylaşmaq üçün bir sayt olan Bookhuddle.com yaratmaq: 10 addım
Kitab məlumatlarını kəşf etmək, təşkil etmək və paylaşmaq üçün bir veb sayt olan Bookhuddle.com -un yaradılması: Bu yazı, oxucuların kitab məlumatlarını kəşf etmələrinə, təşkil etmələrinə və paylaşmalarına kömək etmək məqsədi daşıyan Bookhuddle.com saytının yaradılması və istifadəyə verilməsi ilə bağlı olan addımları təsvir edir. digər veb saytların inkişafına müraciət edəcək