İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-23 15:13
Daha önce ışık ve renk ölçümlerine izin veren bazı cihazlar üzerinde çalışıyordum ve burada ve burada bu tür ölçümlerin arkasındaki teori hakkında çok şey bulabilirsiniz.
Pimoroni yakın zamanda, ses seviyesi ölçümleri için bir MEMS mikrofonu, bir BME280 sıcaklık/nem/hava basıncı sensörü ve bir TCS3475 ışık ve renk sensörü (RBC) ile birlikte gelen micro:bit için bir eklenti olan enviro:bit'i piyasaya sürdü. Ek olarak, renk sensörünün yan taraflarına yerleştirilmiş iki adet LED, yansıyan ışıkla nesnelerin rengini ölçmeye olanak tanır. Bu ölçümleri gerçekleştirmek için kendiniz bir araç oluşturmak hiç bu kadar kolay olmamıştı.
Burada enviro:bit'in renk ve ışık ölçümleri için nasıl kullanılabileceğini ve bunları gerçekleştirmeyi sağlayan MakeCode betiğini anlatmak istiyorum. micro:bit ve enviro:bit kombinasyonu, bilimsel ölçümlerin ilkelerini uygulamalı olarak göstermek ve onlarla oynamak için güzel ve ucuz bir cihazdır.
Bu talimat, "Gökkuşağı" yarışmasının bir parçasıdır. Beğendiyseniz lütfen oyunuzu verin. Teşekkürler
Adım 1: Kullanılan Malzemeler
Mikro:bit, Pimoroni'de 13 GBP.
Pimoroni Enviro:bit, Pimoroni'de 20 GBP.
Pimoroni Gücü: bit, Piomoroni'de 6 GBP. Ayrıca micro:bit için pil paketleri veya bir LiPo kullanabilirsiniz.
Rosco Cinegel renk filtresi örnek bloğu. Benimkini Modulor, Berlin'den aldım.
IKEA renkli plastik bardaklar. IKEA, Berlin.
Kır çiçekleri. Potsdam-Golm'da bir çayır.
2. Adım: MakeCode/JavaScript Komut Dosyası
Pimoroni, hem MakeCode/JavaScript kodlama ortamı hem de MicroPython için Enviro:bit için bir kitaplık geliştirmiştir. Burada, betikler doğrudan mikro:bit'e yüklenebildiği ve blok kodlamaya izin verdiği için MakeCode kullandım.
Komut dosyası, kırmızı, yeşil ve mavi (RGB) ve net (C) kanalların değerlerini okur. İlkler 0 ila 255 arasındaki değerlerde, ikincisi 0 ila yaklaşık 61000 arasındaki tüm aralıkta verilir.
Net kanal aralığı çok geniştir ve parlak gün ışığından karanlık bir odaya kadar ölçüm yapılmasına olanak tanır.
Şimdiye kadar renk ölçüm fonksiyonunun tüm ayrıntılarını anlamadım, ancak bazı düzeltme ve normalleştirme mekanizmalarının uygulandığını varsayıyorum.
İlk başta, dört kanalın hepsinin değerleri alınır. Sonuçları 5x5 LED matrisinde görüntüleyebilmek için, sonuçları bir (R, G, B) veya bir LED ile temsil edilen 5 (RGB) veya 10 (C) kutuya yerleştirmek için ölçülen değerler kullanılır. iki (C) satır.
RGB durumunda, ölçekleme doğrusaldır ve her bölmenin aralık boyutu 51 birim genişliğindedir. C durumunda, ölçekleme 10 adımda logaritmiktir (log3, yani her adım bir öncekinin 3 katıdır). Bu, hem çok loş hem de çok parlak koşulların görüntülenmesini sağlar.
A düğmesine basmak, R, G ve B değerlerini sayılarla, B'ye basmak ise C değerini görüntüler. A+B LED'leri etkinleştirir ve B onları kapatır.
bR = 0 olsun // kutular
olsun bG = 0 olsun bB = 0 olsun bS = 0 olsun bC = 0 olsun bCx = 0 olsun S = 0 // ölçülen değerler olsun C = 0 olsun B = 0 olsun G = 0 olsun R = 0 basic.forever(() => { if (input.buttonIsPressed(Button. AB)) { envirobit.setLEDs(envirobit. OnOff. On) } else if (input.buttonIsPressed(Button. A)) { basic.showString("R: " + R + " G: " + G + " B: " + B) } else if (input.buttonIsPressed(Button. B)) { basic.showString("C: " + C) envirobit.setLEDs(envirobit. OnOff. Off) } else { basic.pause(100) R = envirobit.getRed() G = envirobit.getGreen() B = envirobit.getBlue() C = envirobit.getLight() bC = 5 bCx = 5 if (R >= 204) { // binning, max 255 bR = 4 } else if (R >= 153) { bR = 3 } else if (R >= 102) { bR = 2 } else if (R >= 51) { bR = 1 } başka { bR = 0 } if (G >= 204) { bG = 4 } else if (G >= 153) { bG = 3 } else if (G >= 102) { bG = 2 } else if (G >= 51) { bG = 1 } else { bG = 0 } if (B >= 204) { bB = 4 } else if (B >= 153) { bB = 3 } else if (B >= 102) { bB = 2 } else if (B >= 51) { bB = 1 } else { bB = 0 } if (C >= 60000) { // Doygunluk bCx = 4 } else if (C >= 20000) { bCx = 3 } else if (C >= 6600) { bCx = 2 } else if (C >= 2200) { bCx = 1 } else if (C >= 729) { bCx = 0 } else if (C >= 243) { bC = 4 } else if (C >= 81) { bC = 3 } else if (C >= 27) { bC = 2 } else if (C >= 9) { bC = 1 } else { bC = 0 } // led basic.clearScreen()'e yaz if (bCx < 5) { led.plot(1, bCx) } else { led.plot (0, bC) } led.plot(2, bR) led.plot(3, bG) led.plot(4, bB) } })
Adım 3: RGB Ölçümlerinin Alınması: İletilen Işık Modu
Daha önce belirtildiği gibi, iki renk ölçüm modu vardır: iletilen ve yansıyan ışık spektroskopisi. İletilen ışık modunda, ışık renkli bir filtreden veya çözeltiden sensöre gider. Yansıyan ışık ölçümlerinde, yayılan ışık örn. LED'lerden gelen bir nesne tarafından yansıtılır ve sensör tarafından algılanır.
RGB değerleri daha sonra micro:bit 5x5 LED matrisinin 3. ila 5. sıralarında görüntülenir; üst LED'ler düşük, alt LED'ler yüksek değerleri temsil eder.
Burada iletilen ışık ölçümlerinde gösterilen deneyler için gün ışığını kullandım ve sensörün önüne bir Rosco numune paketinden renkli filtreler yerleştirdim. Efektleri ekranda özellikle kırmızı kanalda görebilirsiniz. Resimlere bir göz atın ve desenleri karşılaştırın.
Gerçek değerleri okumak için A düğmesine basmanız yeterlidir.
Adım 4: Yansıyan Işık RGB ve Parlaklık Ölçümleri
Yansıyan ışık ölçümleri için LED'leri açtım (düğme [A+B]) ve sensörün önüne parlak renkli bazı IKEA çocuk bardakları yerleştirdim. Resimlerden de anlaşılacağı üzere RGB değerleri beklendiği gibi değişmektedir.
Parlaklık ölçümleri için ilk satırda düşük değerler, ikinci satırda yüksek değerler görüntülenir. Üstte düşük değerler, alt LED'lerde daha yüksek değerler. Kesin değeri okumak için B düğmesine basın.
Adım 5: Yansıyan Işık Ölçümleri: Çiçekler
Bir çayırdan bazı kır çiçekleri topladım ve üzerlerinde bazı renk ölçümleri yapmaya çalıştım. Haşhaş, peygamber çiçeği, kahverengi knapweed, wall harkweed ve dilandelon yaprağıydı. RGB değerleri [R, G, B]:
- hiçbiri [92, 100, 105]
- haşhaş (kırmızı) [208, 98, 99]
- peygamber çiçeği (mavi) [93, 96, 138]
- kahverengi karahindiba (leylak) [122, 97, 133]
- duvar harkweed (sarı) [144, 109, 63]
- karahindiba yaprağı (yeşil) [164, 144, 124]
Bu, en azından ilk üç tesis için beklentilere uyuyor. Değerlerden renkleri görüntülemek için buradaki gibi bir renk hesaplayıcı kullanabilirsiniz.
Önerilen:
Pimoroni Enviro+ FeatherWing'i Adafruit Feather NRF52840 Express ile Kullanma: 8 Adım
Pimoroni Enviro+ FeatherWing'i Adafruit Feather NRF52840 Express ile Kullanma: Pimoroni Enviro+ FeatherWing, Adafruit Feather serisi kartlarla çalışmak üzere tasarlanmış sensörlerle dolu bir karttır. Çevresel izleme, atmosfer kirliliği ve veri hırsızlığı ile ilgilenen herkes için faydalı bir başlangıç noktasıdır. BEN
ACS724 Arduino İle Akım Sensörü Ölçümleri: 4 Adım
Arduino ile ACS724 Akım Sensörü Ölçümleri: Bu talimatta, akım ölçümleri yapmak için bir ACS724 akım sensörünü bir Arduino'ya bağlamayı deneyeceğiz. Bu durumda akım sensörü, 400 mv/A çıkış veren bir +/- 5A çeşididir. Arduino Uno'nun 10 bit ADC'si var, o yüzden güzel sorular
Arduino RGB Renk Seçici – Gerçek Hayattaki Nesnelerden Renk Seçin: 7 Adım (Resimlerle)
Arduino RGB Renk Seçici - Gerçek Hayattaki Nesnelerden Renk Seçin: Bu Arduino tabanlı RGB renk seçici ile fiziksel nesnelerden kolayca renk seçin, gerçek hayattaki nesnelerde gördüğünüz renkleri PC'nizde veya cep telefonunuzda yeniden oluşturmanıza olanak tanır. Ucuz bir TCS347 kullanarak nesnenin rengini taramak için bir düğmeye basmanız yeterlidir
IoT Hydroponics - PH ve EC Ölçümleri için IBM'in Watson'ını Kullanma: 7 Adım (Resimlerle)
IoT Hydroponics - PH ve EC Ölçümleri için IBM'in Watson ürününü kullanma: Bu talimat, bir hidroponik kurulumunun EC, pH ve sıcaklığının nasıl izleneceğini ve verilerin IBM'in Watson hizmetine nasıl yükleneceğini gösterecektir. Watson'ı kullanmaya başlamak ücretsizdir. Ücretli planlar var, ancak ücretsiz plan bu proje için fazlasıyla yeterli
Müzikle Tepkisel Işık--Masaüstünü Harika Hale Getirmek için Süper Basit Müzik Tepkisel Işık Nasıl Yapılır.: 5 Adım (Resimlerle)
Müzik Reaktif Işık||Masaüstünü Harika Hale Getirmek için Süper Basit Müzik Reaktif Işığı Nasıl Yapılır.: Hey naber arkadaşlar, Bugün çok ilginç bir proje inşa edeceğiz.Bugün müzikle reaktif ışık oluşturacağız. aslında düşük frekanslı ses sinyali olan bas. Yapımı çok basit. Biz