Mục lục:
- Bước 1: Vật liệu được sử dụng
- Bước 2: Mã MakeCode / JavaScript Script
- Bước 3: Thực hiện phép đo RGB: Chế độ ánh sáng truyền qua
- Bước 4: Đo ánh sáng phản xạ RGB và đo độ sáng
- Bước 5: Phép đo ánh sáng phản xạ: Hoa
Video: Các phép đo ánh sáng và màu sắc với Pimoroni Enviro: bit cho Micro: bit: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:34
Tôi đã làm việc trên một số thiết bị cho phép đo ánh sáng và màu sắc trước đây và bạn có thể tìm thấy nhiều điều về lý thuyết đằng sau các phép đo như vậy trong tài liệu hướng dẫn ở đây và ở đây.
Pimoroni gần đây đã phát hành enviro: bit, một tiện ích bổ sung cho micro: bit, đi kèm với micrô MEMS để đo mức âm thanh, cảm biến nhiệt độ / độ ẩm / áp suất không khí BME280 và cảm biến màu và ánh sáng TCS3475 (RGBC). Ngoài ra có hai đèn LED được đặt ở hai bên của cảm biến màu, cho phép đo màu sắc của vật thể bằng ánh sáng phản xạ. Tự mình xây dựng một công cụ để thực hiện các phép đo này chưa bao giờ dễ dàng hơn thế.
Ở đây tôi muốn mô tả cách enviro: bit có thể được sử dụng cho các phép đo màu sắc và ánh sáng và tập lệnh MakeCode cho phép thực hiện các phép đo này. Sự kết hợp của micro: bit và enviro: bit là một thiết bị đẹp và rẻ tiền để chứng minh các nguyên tắc đo lường khoa học thực hành và chơi với chúng.
Hướng dẫn này là một phần của cuộc thi "Rainbow". Nếu bạn thích nó, hãy bình chọn cho nó.
Bước 1: Vật liệu được sử dụng
Micro: bit, 13 GBP tại Pimoroni.
Pimoroni Enviro: bit, 20 GBP tại Pimoroni.
Pimoroni Power: bit, 6 GBP tại Piomoroni. Bạn cũng có thể sử dụng bộ pin hoặc LiPo cho micro: bit
Khối mẫu lọc màu Rosco Cinegel. Tôi nhận được của tôi từ Modulor, Berlin.
Ly nhựa màu IKEA. IKEA, Berlin.
Những bông hoa dại. Một đồng cỏ ở Potsdam-Golm.
Bước 2: Mã MakeCode / JavaScript Script
Pimoroni đã phát triển một thư viện cho Enviro: bit, cho cả môi trường viết mã MakeCode / JavaScript và cho MicroPython. Tôi ở đây đã sử dụng MakeCode, vì các tập lệnh có thể được tải trực tiếp lên micro: bit và cho phép mã hóa khối.
Tập lệnh đọc giá trị của các kênh màu đỏ, xanh lục và xanh lam (RGB) và kênh rõ ràng (C). Số đầu tiên được cho trong các giá trị từ 0 đến 255, thứ hai trong toàn bộ phạm vi từ 0 đến khoảng 61000.
Phạm vi của kênh rõ ràng là rất rộng và cho phép đo từ ánh sáng ban ngày sáng đến phòng tối.
Bây giờ tôi không hiểu tất cả các chi tiết của chức năng đo màu, nhưng tôi cho rằng chúng có một số cơ chế hiệu chỉnh và chuẩn hóa được thực hiện.
Lúc đầu, các giá trị của cả bốn kênh được lấy. Để có thể hiển thị kết quả trên ma trận LED 5x5, các giá trị đo được sử dụng để đặt kết quả vào các ngăn 5 (RGB) hoặc 10 (C), được biểu thị bằng một đèn LED trong một (R, G, B) hoặc hai (C) hàng.
Trong trường hợp RGB, tỷ lệ là tuyến tính và kích thước khoảng của mỗi thùng rộng 51 đơn vị. Trong trường hợp của C, tỷ lệ là logarit trên 10 bước (log3, vì vậy mỗi bước gấp 3 lần trước đó). Điều này cho phép hiển thị các điều kiện rất mờ và rất sáng như nhau.
Nhấn nút A hiển thị các giá trị R, G và B bằng số, nhấn B giá trị C. A + B kích hoạt đèn LED và B sẽ tắt chúng.
để bR = 0 // thùng
cho bG = 0 cho bB = 0 cho bS = 0 cho bC = 0 cho bCx = 0 cho S = 0 // các giá trị đo được cho C = 0 cho B = 0 cho G = 0 cho R = 0 cơ bản.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, tối đa 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) {// Độ bão hòa 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} // ghi vào 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)}})
Bước 3: Thực hiện phép đo RGB: Chế độ ánh sáng truyền qua
Như đã chỉ ra trước đây, có hai chế độ đo màu: quang phổ ánh sáng truyền qua và phản xạ. Ở chế độ ánh sáng truyền qua, ánh sáng đi qua bộ lọc hoặc dung dịch có màu đến cảm biến. Trong các phép đo ánh sáng phản xạ, ánh sáng phát ra, v.d. từ các đèn LED được phản xạ bởi một đối tượng và được phát hiện bởi cảm biến.
Các giá trị RGB sau đó được hiển thị ở hàng thứ 3 đến hàng thứ 5 của ma trận LED vi: bit 5x5, với các đèn LED phía trên đại diện cho giá trị thấp, các đèn LED phía dưới biểu thị giá trị cao.
Đối với các thí nghiệm hiển thị ở đây về phép đo ánh sáng truyền qua, tôi đã sử dụng ánh sáng ban ngày và đặt các bộ lọc màu từ gói mẫu Rosco trước cảm biến. Bạn có thể thấy các hiệu ứng trên màn hình, đặc biệt là trong kênh màu đỏ. Hãy xem các hình ảnh và so sánh các mẫu.
Để đọc các giá trị thực, chỉ cần nhấn nút A.
Bước 4: Đo ánh sáng phản xạ RGB và đo độ sáng
Để đo ánh sáng phản xạ, tôi bật đèn LED (nút [A + B]) và đặt một số mảnh cốc IKEA trẻ em có màu sắc rực rỡ ở phía trước cảm biến. Như có thể thấy từ các hình ảnh, các giá trị RGB đang thay đổi như mong đợi.
Đối với các phép đo độ sáng, giá trị thấp được hiển thị ở hàng đầu tiên, giá trị cao ở hàng thứ hai. Giá trị thấp ở phía trên, giá trị cao hơn bằng đèn LED thấp hơn. Để đọc giá trị chính xác, hãy nhấn nút B.
Bước 5: Phép đo ánh sáng phản xạ: Hoa
Tôi hái một số bông hoa dại từ đồng cỏ và cố gắng thực hiện một số phép đo màu sắc trên chúng. Đó là cây anh túc, hoa ngô đồng, cây knapweed nâu, cây bông lan tường và lá dilandelon. Giá trị RGB là [R, G, B]:
- không [92, 100, 105]
- cây anh túc (đỏ) [208, 98, 99]
- hoa ngô đồng (xanh lam) [93, 96, 138]
- knapweed nâu (tử đinh hương) [122, 97, 133]
- harkweed tường (màu vàng) [144, 109, 63]
- lá bồ công anh (xanh) [164, 144, 124]
Phù hợp với mong đợi, ít nhất là đối với ba cây đầu tiên. Để hiển thị màu từ các giá trị, bạn có thể sử dụng máy tính màu như ở đây.
Đề xuất:
Các mẫu LED (Các mẫu ánh sáng khác nhau): 3 bước
Các mẫu LED (Các mẫu ánh sáng khác nhau): Ý tưởng: Dự án của tôi là một mẫu LED màu. Dự án có 6 đèn LED được cấp nguồn và giao tiếp với Arduino. Có 4 mẫu khác nhau sẽ chạy qua và sẽ được phát trong một vòng lặp. Khi một mẫu kết thúc, một mẫu khác
Đúc các bộ phận chi tiết: Ngón tay giả (Phát sáng, Thay đổi màu sắc khi có nhiệt, và hơn thế nữa ): 10 bước (có hình ảnh)
Đúc các bộ phận chi tiết: Ngón tay giả (Phát sáng, Thay đổi màu sắc bằng nhiệt, và hơn thế nữa …): Đây là hướng dẫn về đúc các bộ phận nhỏ, phức tạp - giá rẻ. Cần phải nói rằng tôi không phải là chuyên gia đúc, nhưng điều cần thiết thường là mẹ của phát minh - một số quy trình ở đây đã hoạt động tốt. Tôi đã gặp Nigel Ackland tại Future Fest ở London, và
Đũa phép vẽ tranh bằng ánh sáng đa màu dựa trên Arduino: 13 bước (có hình ảnh)
Đũa phép vẽ tranh bằng ánh sáng đa màu dựa trên Arduino: Vẽ tranh bằng ánh sáng là một kỹ thuật được các Nhiếp ảnh gia sử dụng, nơi một nguồn ánh sáng được sử dụng để vẽ các mẫu thú vị và Máy ảnh sẽ kết hợp chúng lại với nhau. Kết quả là Ảnh sẽ chứa các vệt sáng trong đó, cuối cùng sẽ tạo ra một
Cho phép tạo ra một quả cầu pha lê ma thuật với phép thuật! ~ Arduino ~: 9 bước
Cho phép tạo ra một quả cầu pha lê ma thuật với phép thuật! ~ Arduino ~: Trong phần này, chúng tôi sẽ tạo một Magic Ball sử dụng cảm biến chuyển động và máy quét RFID để điều khiển hoạt ảnh của đèn LED bên trong
Một cách thực sự đơn giản / dễ dàng / không phức tạp để làm cho con người / con người / động vật / rô bốt trông giống như họ có tầm nhìn nhiệt thực sự tuyệt vời / sáng sủa (Màu sắc do bạn lựa chọn) Sử dụng GIMP: 4 bước
Một cách thực sự đơn giản / dễ dàng / không phức tạp để làm cho con người / con người / động vật / rô bốt trông giống như họ có tầm nhìn nhiệt thực sự tuyệt vời / sáng sủa (Màu sắc do bạn lựa chọn) Sử dụng GIMP: Đọc … tiêu đề