Cảm biến màu sắc cụ thể, có thể theo một cách kinh tế, mà không cần sử dụng nhận dạng máy ảnh / hình ảnh?


7

Mặc dù tôi hiểu rằng cảm biến màu sắc với máy ảnh và bộ xử lý đủ mạnh chạy logic biểu đồ hình ảnh (hoặc các thuật toán khác như vậy) có thể xác định sự hiện diện của các màu nhất định khá đáng tin cậy.

Tuy nhiên, có những cơ chế khác, hiệu quả hơn về mặt chi phí để xác định sự hiện diện / vắng mặt của một số màu nhất định (hoặc đó là sắc thái gần), ở khoảng cách gần, sử dụng các cảm biến đơn giản / rẻ hơn và yêu cầu tính toán thấp hơn?

Tôi đoán rằng những thứ như cảm biến pH hoặc cảm biến hóa học khác có thể sử dụng các phương pháp như vậy. Trong trường hợp của tôi, ứng dụng này sao cho tôi cần phát hiện sự hiện diện / vắng mặt của một màu cụ thể (một màu xanh lam nhạt), trong một khu vực nhỏ, ở khoảng cách gần.

Đã chỉnh sửa: Bởi 'phạm vi gần' Tôi có nghĩa là một cái gì đó trong khoảng 1-5cm, mặc dù đây không phải là một yêu cầu rất nghiêm ngặt. Tôi đã nghĩ đến việc "đóng" tương đối, tức là không có sự chiếu xạ trực tiếp từ nguồn sáng đến cảm biến, loại thùng đôi, như vậy chỉ có ánh sáng phản xạ chạm vào cảm biến. Vì vậy, gần gũi là một chức năng của vị trí cảm biến vật lý, và tôi cởi mở với các đề xuất (bao gồm các phương pháp thay thế hoàn toàn / trực giao).


bạn sẽ xem xét hồng ngoại? Nó rẻ và không dễ bị nhiễu như ánh sáng nhìn thấy.
JeeShen Lee

@JeeShenLee - Bạn muốn phát hiện màu xanh với IR? Và cũng có tiếng ồn IR. Bạn đã bao giờ nhìn vào đầu ra của một mô đun máy thu IR mà không có tín hiệu đầu vào chưa?
stevenvh

@stevenvh, tôi đã đề xuất lựa chọn khác thay vì ánh sáng xanh. Dựa trên sự hiểu biết của tôi, năng lượng ánh sáng khả kiến ​​là quá lớn để có thể phát hiện một cách đáng tin cậy (do cường độ, màu sắc và không quên ánh sáng từ môi trường cũng chứa các tia màu xanh lam).
JeeShen Lee

@JeeShenLee - Theo tôi hiểu thì chất đó là màu xanh, nên các màu khác sẽ không làm được. Tôi có thể bị nhầm lẫn.
stevenvh

@stevenvh, quả thật đối tượng có màu xanh. Trong tương lai tôi có thể cần phát hiện các màu khác, nhưng đó là để sau này và muốn giữ mọi thứ đơn giản hơn bây giờ.
icarus74

Câu trả lời:


7

Vì đèn LED được sử dụng làm photodiod nhạy nhất với màu mà chúng phát ra trong quá trình hoạt động bình thường, một cảm biến màu cơ bản có thể được tạo ra bằng cách sử dụng đèn LED ngược và opamp:

Cảm biến màu

Các mạch trên đến từ trang này . Nó cũng có thể được thực hiện theo cách khác - một cái nhìn chi tiết hơn nhiều về cảm biến màu sắc bằng đèn LED và cảm biến ánh sáng có sẵn ở đây - chi tiết trang này sử dụng cảm biến ánh sáng bình thường và đèn LED màu khác nhau.

Tôi không thể tìm thấy ghi chú ứng dụng được đề cập trong các bình luận, nhưng trang này dường như được xử lý khá kỹ lưỡng về chủ đề của bộ khuếch đại transimpedance. Bạn có thể thay đổi độ lệch trên đèn LED để thay đổi thời gian / độ nhạy phản hồi.


3
Nếu bạn chỉ có 1 GΩđiện trở bạn có thể sử dụng song song ba trong số chúng :-)
stevenvh

Tôi không nghĩ rằng mạch hoạt động. Nếu đầu ra> 0 V, dòng điện của đèn LED sẽ làm cho đầu vào đảo ngược> không đảo ngược và đầu ra sẽ đơn giản về không. Ngoài ra tôi mơ hồ nhớ những thứ như "điện áp bù" và "dòng điện thiên vị đầu vào" :-(
stevenvh

@Steven - Đó là một amp transimpedance cơ bản (đường ray kép), nhằm thể hiện khái niệm này. Có thể sẽ cần một số điều chỉnh tốt. Tôi sẽ thêm một vài ghi chú ứng dụng, tôi nhớ TI làm một cái tốt nhưng dường như không thể tìm thấy nó.
Oli Glaser

3
Đèn LED tạo ra dòng điện (đảo ngược) khi ánh sáng chiếu vào nó - nó hoạt động như một điốt quang. Cũng giống như kiểm tra độ tỉnh táo, tôi chỉ cần đặt mạch trên (sử dụng MCP6021 và đèn LED ngẫu nhiên) và nó hoạt động tốt. Tôi đã sử dụng một điện trở 10Meg với 100pF song song.
Oli Glaser

2
Tôi thực sự, giống như sự đơn giản tổng thể (và tôi tin, kết quả là - chi phí thấp) của mạch này.
icarus74

5

Nếu bạn muốn phát hiện một màu rất cụ thể, bạn sẽ cần một bộ lọc băng tần hẹp như bộ lọc băng thông 11nm này của Edmund Optics. Các sản phẩm của EO là những thứ trong phòng thí nghiệm có độ chính xác cao và giá: 300 đô la.

Nếu bạn có thể giải quyết ít hơn, tôi sẽ đề nghị sử dụng bộ lọc ảnh cũng sẽ làm như vậy. Sử dụng một phototransistor có độ nhạy phổ rộng, đặc biệt là trong phạm vi 400nm và so sánh việc đọc có và không có bộ lọc màu xanh. Nếu màu của đối tượng là màu xanh thì sẽ có ít sự khác biệt trong việc đọc hơn so với đối tượng màu đỏ chẳng hạn. Bạn cũng sẽ phải tính toán bù trừ vì bộ lọc sẽ không vượt qua 100% ánh sáng, ngay cả khi có màu xanh.

Chẳng hạn, nếu bộ lọc giảm 3 dB (các nhiếp ảnh gia nói về f-stop) thì số đọc màu xanh không có bộ lọc 1 V sẽ trở thành 0,7 V với bộ lọc. Nếu màu đỏ, đọc 1 V mà không có bộ lọc có thể sẽ cho 0,4 V hoặc hơn với bộ lọc.

Bạn có thể chuyển đổi dòng điện của photodiode thành điện áp bằng điện trở nối tiếp hoặc với bộ khuếch đại transimpedance opamp:

nhập mô tả hình ảnh ở đây

Lưu ý rằng cực dương của diode phải được gắn với điện áp âm hơn so với đầu vào không đảo. Tôi tìm thấy một số lượng đáng kinh ngạc các mạch trên 'Net nơi cực dương được kết nối với mặt đất. Nhưng sau đó, do diode tạo ra sụt áp, opamp không thể điều chỉnh đầu ra để các đầu vào trở nên bằng nhau và đầu ra sẽ bão hòa.


Cảm ơn @stevenvh. Điều này gần nhất với những gì tôi đã nghĩ, ở một mức độ rất trừu tượng. Hai câu hỏi nữa: [Q1] Bộ lọc + diode photo của nhiếp ảnh gia có thể được thay thế dễ dàng bằng các diode photo (hoặc mảng) đơn lẻ, với bộ lọc tích hợp, như đề xuất của Russell trong câu trả lời của anh ấy không? [Q2] Trên mạch chạy bằng pin (12V), tôi tin rằng tôi có thể kết nối -5V với thiết bị đầu cuối của pin, GND cho op-amp với 6V (bộ chia điện áp) và + 5V của op-amp để nói + thiết bị đầu cuối của ắc quy. Đúng ?
icarus74

@ icarus74 - bộ lọc photodiode + giống như TCS3210 của Russell, nhưng sau đó chỉ với kênh màu xanh và rõ ràng. Trong bảng dữ liệu của TCS3210, bạn sẽ thấy màu xanh lam cũng phát hiện được tia hồng ngoại, bạn sẽ phải thực hiện một số xử lý trên cả bốn kênh để có được dữ liệu xanh thực tế. Bộ lọc ảnh có thể bị hạn chế hơn đối với các bước sóng quan tâm. [Q2]: Có.
stevenvh

4

Một cách tiếp cận rất đơn giản để xác định màu sắc của bề mặt là sử dụng một photodiode hoặc bộ phát quang và một số (ví dụ như trong RGB) của đèn LED có màu khác nhau để chiếu sáng bề mặt.

Sau đó, theo kiểu ghép kênh theo thời gian, mỗi đèn LED được tự bật theo thứ tự để chiếu sáng bề mặt và cường độ của ánh sáng phản xạ được đo cho từng đèn.

Ví dụ: Nếu sử dụng ba đèn LED, một màu đỏ, một màu xanh lục và một màu xanh lam, điều này sẽ mang lại ba giá trị cường độ phản xạ, một giá trị cho mỗi thành phần màu, cùng với nhau, sau khi bình thường hóa, sẽ tạo ra một xấp xỉ bằng số của màu bề mặt của không gian RGB (tất nhiên phụ thuộc vào sự phân bố bước sóng cụ thể của đèn LED).

(Tôi sẽ sử dụng thiết lập ví dụ ba màu RGB để đơn giản hơn, nhưng có thể sử dụng bất kỳ số nào từ 1 đến n của các nguồn sáng có màu khác nhau; sử dụng càng nhiều màu khác nhau thì màu của bề mặt càng chính xác.)

Nguyên tắc giống như trong chip của máy ảnh: Cường độ của các thành phần màu đỏ, xanh lam và xanh lục của ánh sáng tới được đo độc lập và sự kết hợp của ba cường độ sẽ quyết định màu sắc. Trong máy ảnh, có một bộ tách sóng quang cho mỗi ba màu cơ bản đó để có thể đo được cả ba cường độ cùng một lúc. Điều làm cho điều này trở nên phức tạp là ba cảm biến khác nhau hoặc ba bộ lọc khác nhau là cần thiết.

Do đó, đề xuất hoạt động theo cách khác: Thay vì lọc ánh sáng sau khi nó bị phản xạ từ bề mặt, người ta cũng có thể 'lọc' ánh sáng trước khi chiếu vào bề mặt; về cơ bản, đối với nhận thức của bạn, sẽ không có vấn đề gì nếu bạn đeo kính râm màu xanh hoặc nếu bạn sử dụng nguồn sáng màu xanh và không có kính râm thay thế.

Cường độ của ánh sáng phản xạ được đo cho từng thành phần màu (hoặc LED) sẽ mang lại giá trị (chuẩn hóa) trong phạm vi [0,0, ..., 1.0], trong đó 0,0 có nghĩa là không có ánh sáng nào bị phản xạ và 1.0 có nghĩa là lượng tối đa của ánh sáng được phản ánh. Tùy thuộc vào màu sắc của bề mặt, cường độ sẽ khác nhau đối với các màu ánh sáng khác nhau (bước sóng).

Trong mọi trường hợp, bạn sẽ nhận được ba giá trị cường độ, mỗi giá trị xác định cường độ của một phần nhất định của phổ màu. Mỗi phép đo hoàn chỉnh do đó mang lại một bộ ba (r, g, b) xác định màu được đo. Như trong đồ họa máy tính, bộ ba (0,0,0) đại diện cho bóng tối hoàn toàn, màu đen; (1,1,1) là màu trắng sáng nhất và bất kỳ sự kết hợp nào (r, g, b) trong đó r == g == b đại diện cho một số màu xám. Tất cả các kết hợp có thể khác xác định một điểm đặc biệt trong không gian RGB, xác định màu được đo. (0,5,0,0) là một số màu đỏ trung bình, ví dụ, và (0,9,0,9,0) là một số màu vàng tương đối sáng, vv ..

Ghi chú:

  1. Tất nhiên, bộ tách sóng quang phải nhạy với tất cả (3) màu sáng được sử dụng.
  2. Bộ tách sóng quang có thể cần một thời gian để ổn định sau khi chuyển đổi đèn LED trước khi có thể đọc chính xác; các chất phát quang, ví dụ, thường tương đối chậm. Có thể cần hàng chục đến hàng trăm mili giây cho độ chính xác chấp nhận được, vài phút cho các giá trị chính xác nhất.
  3. Sau khi phần cứng được thiết lập, nó có thể dễ dàng hiệu chỉnh theo màu sắc bề mặt quan tâm bằng cách chỉ cần đo một mẫu của từng mẫu. Bằng cách này, không cần nỗ lực trong việc cố gắng xác định phân bố bước sóng chính xác hoặc độ sáng tương đối của đèn LED hoặc độ nhạy tương đối của cảm biến đối với các bước sóng đó.
  4. Bình thường hóa các giá trị đo có thể cần thiết trước khi sử dụng thực tế. Ví dụ, để bù cho ánh sáng đi lạc từ bên ngoài, có thể thực hiện thêm một phép đo với tất cả các đèn LED tắt và kết quả sẽ được trừ vào các giá trị được đo khi đèn LED sáng. Nói chung, giá trị tuyệt đối được đo cho từng thành phần màu ít quan trọng hơn sự khác biệt tương đối giữa chúng.

Một số trang ngẫu nhiên với 'bàn tay' về chủ đề:

http://www.societyofrobots.com/sensors_color.shtml

http://www.instructables.com/id/Color-Detection-Using-RGB-LED/#step1

http://letsmakerobots.com/node/23768


Cảm ơn. Chắc chắn đáng để thử, và đặc biệt là khi tôi nhắm đến việc phát hiện một bộ màu rộng hơn một chút. Tuy nhiên, tôi không chắc tôi hiểu vật lý đằng sau nguyên tắc này. Một photodiode / photoresistor đơn giản sẽ chỉ phát hiện cường độ và tôi nghĩ rằng người ta có thể có cùng cường độ được báo cáo cho từng R, B, G. Vì vậy, tôi tự hỏi làm thế nào điều này sẽ làm việc.
icarus74

Xin vui lòng xem chỉnh sửa của tôi và cho chúng tôi biết nếu một cái gì đó vẫn chưa rõ ràng.
JimmyB

3

Có một số lượng đáng kể các IC sẽ thực hiện công việc này với nhiều mức độ khác nhau. Tôi sẽ chia phạm vi thành 3 phần, nhưng có ranh giới cứng và nhanh tuyệt đối.

(1) Ở phía dưới cùng là các IC có hiệu quả một cảm biến diode trên mỗi màu, bộ lọc RGB và đầu ra 3 kênh.
Một ví dụ (không có trong kho tại Digikey) là Avago ADJD-S311-CR999

(2) Trên đây là các mảng nhỏ của photodiod với bộ lọc RGB và có thể cả các ô chưa được lọc. Ví dụ dưới đây.

(3) Ở đầu cuối là IC camera đủ màu với giá khá hợp lý. Ví dụ dưới đây.

Đơn giản và rẻ tiền - đầu ra sóng vuông tương tự trên các kênh độ chói RGB.
Với khoảng 3,5 đô la tồn kho trong 1 / giây tại Digikey - 24 hoặc 64 photodiod được sắp xếp thành 4 nhóm xen kẽ - 25% mỗi bộ lọc R, G, B & Clear.
Giá là cho IC lớn hơn. Bảng dữ liệu ở đây

  • Bộ chuyển đổi ánh sáng tần số màu có thể lập trình TCS3200 và TCS3210 kết hợp các điốt quang silicon có thể định cấu hình và bộ chuyển đổi tần số hiện tại trên một mạch tích hợp CMOS nguyên khối duy nhất.
    Đầu ra là một sóng vuông (chu kỳ nhiệm vụ 50%) với tần số tỷ lệ thuận với cường độ ánh sáng (bức xạ).
    Tần số đầu ra quy mô đầy đủ có thể được thu nhỏ bằng một trong ba giá trị đặt trước thông qua hai chân đầu vào điều khiển. Đầu vào kỹ thuật số và đầu ra kỹ thuật số cho phép giao diện trực tiếp với vi điều khiển hoặc mạch logic khác. Cho phép đầu ra (OE) đặt đầu ra ở trạng thái trở kháng cao để chia sẻ nhiều đơn vị của dòng đầu vào vi điều khiển.
    Trong TCS3200, bộ biến đổi ánh sáng thành tần số đọc một mảng photodiod 8 × 8. Mười sáu photodiod có bộ lọc màu xanh, 16 photodiod có bộ lọc màu xanh lá cây, 16 photodiod có bộ lọc màu đỏ và 16 photodiodes rõ ràng không có bộ lọc.
    Trong TCS3210, bộ biến đổi ánh sáng thành tần số đọc một mảng photodiodes 4 × 6. Sáu photodiod có bộ lọc màu xanh, 6 photodiod có bộ lọc màu xanh lá cây, 6 photodiod có bộ lọc màu đỏ và 6 photodiodes rõ ràng không có bộ lọc.
    Bốn loại (màu sắc) của photodiod được liên kết với nhau để giảm thiểu ảnh hưởng của sự không đồng nhất của bức xạ sự cố. Tất cả các điốt quang cùng màu được kết nối song song. Các chân S2 và S3 được sử dụng để chọn nhóm photodiod nào (đỏ, lục, lam, trong) đang hoạt động. Photodiodes có kích thước 110 ×m × 110 m và nằm trên trung tâm 134-m.

Hơi thân yêu. Phức tạp hơn. Có khả năng hơn nhiều.
Với 18 đô la cổ phiếu tại Digikey, bạn có thể nhận được cảm biến "camera màu" 5 Mp RGB đầy đủ - 2592 x 1944 x 14 khung hình / giây hoặc VGA ở tốc độ 53 khung hình / giây. Điều này sẽ đáp ứng nhu cầu của bạn [tm].
Bảng dữ liệu ở đây

  • Aptina® MT9P031 là cảm biến hình ảnh kỹ thuật số hoạt động 1 / 2,5 inch CMOS với mảng pixel hình ảnh hoạt động 2592H x 1944V. Nó kết hợp các chức năng máy ảnh tinh vi trên chip như cửa sổ, chế độ bỏ qua cột và hàng và chế độ chụp nhanh. Nó được lập trình thông qua một giao diện nối tiếp hai dây đơn giản.

Cảm ơn Russell. Không chắc chắn nếu đó là định dạng nhưng tôi không thể làm rõ, nếu bạn đang nói về 3 tùy chọn, với 3 bộ chi tiết, hoặc chỉ có 2 tùy chọn. Từ quan điểm khung chi phí, tôi có thể đủ khả năng tiếp cận mảng photodiode. Mặc dù tự hỏi, nếu có một photodiode duy nhất, so với một mảng 4x6, so với một 8x8, tôi thực sự sẽ đạt được nhiều độ chính xác, trong việc xác định màu sắc của đối tượng? Tôi nghĩ vậy, nhưng muốn nghe từ những người khác.
icarus74

@ icarus74 - Trả lời cập nhật.
Russell McMahon
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.