Mündəricat:
Video: RGB LED istifadə edərək rəng algılama: 4 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:49
Heç bir obyektin rəngini aşkar etmək üçün avtomatlaşdırılmış bir yol istəmisinizmi? Müəyyən bir rəngin işığını obyektə yandıraraq və nə qədər işığın geri əks olunduğuna baxaraq, obyektin hansı rəngdə olduğunu anlaya bilərsiniz. Məsələn, qırmızı bir cisimə qırmızı işıq yansanız, o işıq geri əks olunacaq. Qırmızı bir cisimə mavi işıq yatsanız, cisim həmin işığın bir hissəsini udar və daha az hissəsi əksinə əks olunacaq.
Addım 1: Lazım olan hissələr
Bir PIC 16F887 Mikrokontrolördən istifadə etdim, amma nəbz genişliyi modulyasiya qabiliyyətinə malik demək olar ki, hər kəs işləyəcək. 1 RGB LED1 Mikrokontrolör1 Standart qırmızı LED 1k ohm müqavimət1 Fotoresistor (üzərinə düşən işıq miqdarından asılı olaraq müqaviməti dəyişir) Bəzi tellər Mənə geniş rəngli detektorların olması üçün yalnız mikrokontrolör və RGB LED lazımdır, ancaq yalnız bir rəng algılar, mikro nəzarətçiyə ehtiyacınız yoxdur - yalnız aşkar etmək istədiyiniz rəngin parlaq bir LEDinə ehtiyacınız var. Standart qırmızı LED "göstərici LED" dir - doğru rəng aşkar edildikdə yanır.
Addım 2: Dövrə qurun
Sxem olduqca sadədir və ümumilikdə aşağıda göstərilmişdir. RGB LED -i xaricdən PWM siqnalı ilə təchiz olunmuşdur. Fotorezistorun ətrafına elektrik lenti qoydum ki, ətrafdakı işıq daxil olmasın - yalnız birbaşa yuxarıdakı işıq algılanacaq.
Addım 3: Kod
Bu kod bir Microchip PIC 16F887 üçün yazılmışdır, amma ümid edirəm ümumi fikir əldə edə bilərsiniz. RGB LED-in rəng spektrini dəyişmək üçün inkişaf etdirmə lövhəmdə quraşdırılmış potensiometrdən istifadə etdim (və 3 PWM modulum olmadığı üçün bütün spektrdən keçmir, amma kifayət qədər yaxşıdır) Şərhlər daxildir. #include #include #include "delay.c" #include #include #use delay (clock = 4000000) #FUSES INTRC, NOWDT, NOPUT, NOMCLR, NOPROTECT, NOCPD, NOBROWNOUT, NOIESO, NOFCMEN, NOLVP #byte CCP1 byte CCP1 bayt CCP2CON = 0x1D#bayt PWM1CON = 0x9Bint dəyəri = 128; int p1 = 0; int p2 = 0; void my_setup_ccp1 (int8 dəyər) {output_low (PIN_C2); CCP1CON = dəyər; PWM1CON = 0;} my_setup_ccp2 etibarsızdır (int_setup_ccp2) {output_low (PIN_C1); CCP2CON = dəyər;} // ================================ void main () {// A4 = photodiodeoutput_high (PIN_A4) üçün güc mənbəyi (PIN_A4); output_high (PIN_B1); setup_adc (ADC_CLOCK_INTERNAL); set_adc_channel (0); setup_adc_ports (sAN0); // Timer/Interrupt setupenable_interERts_PP1 my_setup_ccp2 (CCP_PWM); setup_timer_2 (T2_DIV_BY_1, 128, 1); // setup_compare (2, COMPARE_PWM | COMPARE_TIMER2); while (1) {// PIC -in yuxuya getməsini maneə törədir.// SET PWM DUTY CYCLE_5) // Pin A3, əgər (giriş (PIN_A3) == 1) çıxış_yüksək (PIN_A4); else output_low (PIN_A4); // LED dəyərinin rəngini dəyişdirmək üçün potansiometr oxu dəyəri = read_adc (); keçid (dəyər) {hal 0: p1 = dəyər; output_low (PIN_C0); p2 = dəyər; fasilə; hal 50: p1 = dəyər; çıxış_yüksək (PIN_C0); p2 = dəyər; fasilə; hal 100: p1 = dəyər; çıxış_yüksək (PIN_C0); p2 = dəyər; fasilə; hal 150: output_high (PIN_C0); p1 = 50; p2 = dəyər; fasilə; hal 200: output_low (PIN_C0); p1 = 0; p2 = dəyər; fasilə; hal 250: p1 = 0; p2 = dəyər; output_low (PIN_C0); fasilə; } p1 = dəyər; p2 = 128 - p1; set_pwm1_duty (p1); set_pwm2_duty (p2);}}
Addım 4: Tətbiqlər
Bunun kimi sadə bir rəng detektoru robototexnikada və ya legoları rəngə görə ayırmaq, M & M -ləri sıralamaq və ya rəng korluğuna kömək etmək kimi sərin layihələrdə istifadə edilə bilər. İnşallah bu təlimat, düşündüyünüz bir layihəni inkişaf etdirməkdə faydalı oldu!:) LEDlər bir çox şey üçün yaxşıdır …
Tövsiyə:
OpenCV istifadə edərək sadə rəng algılama: 6 addım
OpenCV istifadə edərək sadə rəng algılama: Salam! Bu gün OpenCV və python istifadə edərək canlı videodan bir rəng aşkar etməyin sadə bir üsulunu göstərəcəyəm. Əsasən lazım olan rəngin arxa çərçivədə olub olmadığını yoxlayacağam və OpenCV modullarından istifadə edərək həmin bölgəni maskalayacağam və
OpenCV istifadə edərək Pythonda Rəng Algılama: 8 Addım
OpenCV istifadə edərək Pythonda Rəng Algılama: Salam! Bu təlimat, openCV kitabxanasından istifadə edərək pythonda bir şəkildən müəyyən bir rəngin necə çıxarılacağını izah etmək üçün istifadə olunur. Bu texnikada yenisinizsə, narahat olmayın, bu təlimatın sonunda öz rənginizi proqramlaşdıra biləcəksiniz
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
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow - Arduino IDE -dən istifadə edərək M5stack M5stick C -dən istifadə edərək Neopixel Ws2812 -də Göy qurşağının Çalışması: 5 addım
Neopixel Ws2812 M5stick-C ilə Göy qurşağı LED Glow | Arduino IDE istifadə edərək M5stack M5stick C istifadə edərək Neopixel Ws2812 üzərində Göy qurşağı çalıştırın: Salam uşaqlar bu təlimatlarda Arduino IDE ilə m5stack m5stick-C inkişaf lövhəsi ilə neopixel ws2812 LED və ya led şerit və ya led matris və ya led üzük istifadə etməyi öyrənəcəyik. onunla bir göy qurşağı nümunəsi
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