Daftar Isi:

Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit: 5 Langkah
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit: 5 Langkah

Video: Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit: 5 Langkah

Video: Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit: 5 Langkah
Video: Review of Pimoroni's Enviro+ board- Part2: LCD, noise level, light+proximity 2024, November
Anonim
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit
Pengukuran Cahaya dan Warna Dengan Pimoroni Enviro:bit untuk Mikro:bit

Saya telah mengerjakan beberapa perangkat yang memungkinkan pengukuran cahaya dan warna sebelumnya dan Anda mungkin menemukan banyak tentang teori di balik pengukuran tersebut, instruksi di sini dan di sini.

Pimoroni baru-baru ini merilis enviro:bit, add-on untuk mikro:bit, yang dilengkapi dengan mikrofon MEMS untuk pengukuran tingkat suara, sensor suhu/kelembaban/tekanan udara BME280 dan sensor cahaya dan warna TCS3475 (RGBC). Selain itu ada dua LED yang ditempatkan di sisi sensor warna, memungkinkan untuk mengukur warna objek dengan cahaya yang dipantulkan. Membangun alat sendiri untuk melakukan pengukuran ini tidak pernah semudah ini.

Saya di sini ingin menjelaskan bagaimana enviro:bit dapat digunakan untuk pengukuran warna dan cahaya dan skrip MakeCode yang memungkinkan untuk melakukan ini. Kombinasi mikro:bit dan enviro:bit adalah perangkat yang bagus dan murah untuk mendemonstrasikan prinsip-prinsip pengukuran ilmiah secara langsung dan bermain dengannya.

Instruksi ini adalah bagian dari kontes "Pelangi". Jika Anda menyukainya, silakan berikan suara Anda. Terima kasihH

Langkah 1: Bahan yang Digunakan

Mikro:bit, 13 GBP di Pimoroni.

Pimoroni Enviro:bit, 20 GBP di Pimoroni.

Pimoroni Power:bit, 6 GBP di Piomoroni. Anda juga dapat menggunakan paket baterai atau LiPo untuk mikro:bit

Blok sampel filter warna Rosco Cinegel. Saya mendapatkan milik saya dari Modulor, Berlin.

Gelas plastik warna IKEA. IKEA, Berlin.

Bunga liar. Sebuah padang rumput di Potsdam-Golm.

Langkah 2: Skrip MakeCode/JavaScript

Pimoroni telah mengembangkan perpustakaan untuk Enviro:bit, baik untuk lingkungan pengkodean MakeCode/JavaScript dan untuk MicroPython. Saya di sini telah menggunakan MakeCode, karena skrip dapat diunggah langsung ke mikro:bit dan memungkinkan pengkodean blok.

Script membaca nilai saluran merah, hijau dan biru (RGB) dan clear (C). Yang pertama diberikan dalam nilai dari 0 hingga 255, yang kedua dalam rentang keseluruhan dari 0 hingga sekitar 61000.

Rentang saluran jernih sangat lebar dan memungkinkan pengukuran dari siang hari yang cerah hingga ruangan yang gelap.

Sekarang saya tidak mengerti semua detail fungsi pengukuran warna, tetapi saya berasumsi bahwa mereka memiliki beberapa mekanisme koreksi dan normalisasi yang diterapkan.

Pada awalnya, nilai keempat saluran diambil. Untuk dapat menampilkan hasil pada matriks LED 5x5, nilai terukur digunakan untuk menempatkan hasil di 5 (RGB) atau 10 (C) bin, yang diwakili oleh satu LED di salah satu (R, G, B) atau dua (C) baris.

Dalam kasus RGB, penskalaannya linier dan ukuran interval setiap bin adalah 51 unit lebar. Dalam kasus C, penskalaan adalah logaritmik lebih dari 10 langkah (log3, jadi setiap langkah adalah 3 kali lipat dari sebelumnya). Hal ini memungkinkan untuk menampilkan kondisi yang sangat redup dan sangat terang.

Menekan tombol A menampilkan nilai R, G dan B dalam angka, menekan B nilai C. A+B mengaktifkan LED dan B akan mematikannya.

misalkan bR = 0 // bins

misal bG = 0 misal bB = 0 misal bS = 0 misal bC = 0 misal bCx = 0 misal S = 0 // nilai terukur misal C = 0 misal B = 0 misal G = 0 misal 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, maks 255 bR = 4 } else if (R >= 153) { bR = 3 } else if (R >= 102) { bR = 2 } else if (R >= 51) { bR = 1 } else { 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) { // Saturasi 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 } // tulis ke led basic.clearScreen() if (bCx < 5) { led.plot(1, bCx) } else { led.plot (0, bC) } led.plot(2, bR) led.plot(3, bG) led.plot(4, bB) } })

Langkah 3: Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan

Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan
Mengambil Pengukuran RGB: Mode Cahaya yang Ditransmisikan

Seperti yang ditunjukkan sebelumnya, ada dua mode pengukuran warna: spektroskopi cahaya yang ditransmisikan dan dipantulkan. Dalam mode cahaya yang ditransmisikan, cahaya melewati filter atau larutan berwarna ke sensor. Dalam pengukuran cahaya yang dipantulkan, cahaya yang dipancarkan mis. dari LED dipantulkan oleh objek dan dideteksi oleh sensor.

Nilai RGB kemudian ditampilkan di baris ke-3 hingga ke-5 dari matriks LED mikro:bit 5x5, dengan LED atas mewakili rendah, LED bawah menunjukkan nilai tinggi.

Untuk percobaan yang ditunjukkan di sini pada pengukuran cahaya yang ditransmisikan, saya menggunakan siang hari dan menempatkan filter berwarna dari paket sampel Rosco di depan sensor. Anda dapat melihat efek pada tampilan, terutama di saluran merah. Perhatikan gambar dan bandingkan polanya.

Untuk membaca nilai sebenarnya, cukup tekan tombol A.

Langkah 4: RGB Cahaya Terpantul, dan Pengukuran Kecerahan

RGB Cahaya Terpantul, dan Pengukuran Kecerahan
RGB Cahaya Terpantul, dan Pengukuran Kecerahan
RGB Cahaya Terpantul, dan Pengukuran Kecerahan
RGB Cahaya Terpantul, dan Pengukuran Kecerahan
RGB Cahaya Terpantul, dan Pengukuran Kecerahan
RGB Cahaya Terpantul, dan Pengukuran Kecerahan

Untuk pengukuran cahaya yang dipantulkan, saya menyalakan LED (tombol [A+B]) dan meletakkan beberapa cangkir anak IKEA berwarna cerah di depan sensor. Seperti yang dapat dilihat dari gambar, nilai RGB berubah seperti yang diharapkan.

Untuk pengukuran kecerahan, nilai rendah ditampilkan di baris pertama, nilai tinggi di baris kedua. Nilai rendah di bagian atas, nilai lebih tinggi dengan LED bagian bawah. Untuk membaca nilai yang tepat, tekan tombol B.

Langkah 5: Pengukuran Cahaya Terpantul: Bunga

Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga
Pengukuran Cahaya yang Dipantulkan: Bunga

Saya memetik beberapa bunga liar dari padang rumput dan mencoba melakukan pengukuran warna pada bunga tersebut. Bunganya adalah poppy, cornflower, brown knapweed, wall harkweed, dan daun dilandelon. Nilai RGB adalah [R, G, B]:

  • tidak ada [92, 100, 105]
  • opium (merah) [208, 98, 99]
  • bunga jagung (biru) [93, 96, 138]
  • knapweed coklat (lilac) [122, 97, 133]
  • wall harkweed (kuning) [144, 109, 63]
  • daun dandelon (hijau) [164, 144, 124]

Yang sesuai dengan harapan, setidaknya untuk tiga pabrik pertama. Untuk menampilkan warna dari nilai, Anda dapat menggunakan kalkulator warna, seperti yang ada di sini.

Direkomendasikan: