Как измерить с помощью временных меток изменения полученной яркости?

Я работаю над проектом, который нуждается в некоторых тестах для его проверки. Мне нужно сделать некоторые показания яркости от источника света и сохранить эти показания с отметкой времени (с точностью до миллисекунд).

Я думал об использовании обычной камеры, но она показалась мне слишком медленной для моего приложения (<= 30 кадров в секунду), и мне потребовался бы взлом прошивки, чтобы иметь возможность интегрировать ее с компьютером, чтобы я мог получать свои временные метки.

Я думал и о фотометрах, но не нашел такого, который позволил бы мне считывать данные с него, скажем, через USB-интерфейс.

У кого-нибудь есть предложения по этому вопросу? Что я мог сделать, чтобы прочитать яркость с точностью до миллисекунд?

РЕДАКТИРОВАТЬ

Извините, но мой вопрос был не очень ясен. Мне не нужно беспокоиться об абсолютных значениях этих показаний. Что мне нужно, так это что-то вроде фотометрического триггерного генератора для осциллографа или чего-то подобного с не очень точным порогом. Идея использования микроконтроллера с фотометрическим датчиком кажется хорошим решением, но я оставлю вопрос открытым немного дольше, чтобы посмотреть, могут ли появиться другие идеи. Спасибо за ответы на все вопросы.

Какой-то фотоэлемент (фототранзистор, фоторезистор или фотодиод) плюс микроконтроллер с поддержкой USB и схема для управления элементом?
Adafruit имеет несколько датчиков света: adafruit.com/category/35_61 , как и SparkFun: sparkfun.com/categories/102.
Это похоже на аналогичный проект Sensor для обнаружения пули для страйкбола .
Я не уверен, какой датчик подходит для измерения яркости, но есть ли причина, по которой вы не можете просто использовать осциллограф для отметки времени и передачи данных? Или записывающий мультиметр? Какова общая продолжительность вашего измерения? Сколько образцов вы берете? Вам нужно обрабатывать данные в режиме реального времени или вы можете собрать все данные, а затем выполнить постобработку?

Ответы (2)

Если бы я разрабатывал его, я бы, вероятно, использовал небольшой PIC или AVR с адаптером FT2232 (последовательный порт-USB) и датчиком освещенности от Sparkfun. PIC просто использует свой АЦП и измеряет уровень освещенности, а затем записывает в свой UART метку времени + показания уровня освещенности. Некоторые PIC (PIC18) имеют встроенные USB-интерфейсы, поэтому вы можете отказаться от FT2232, но FT2232 дешев и не требует дополнительных затрат времени на программирование, поскольку PIC видит только обычный последовательный порт (и все, что видит ПК). также является обычным последовательным портом USB).

Помимо основ, я бы, вероятно, добавил способ обнуления метки времени и калибровки возвращаемого значения на датчике освещенности ... Возможно, программная PLL в соответствии с тем, что использует сетевой протокол времени, чтобы вы могли синхронизировать несколько датчиков ( если ваше приложение нуждалось в этом).

Нет необходимости обнулять отметку времени в файле micro. Это может быть даже (вероятно, должно быть) 16-битная переменная, которая подсчитывает какие-то тики, полученные от кристалла, который время от времени сворачивает. Затем вы можете выяснить реальное время на хосте. Пока время переноса является «долгим» с точки зрения хоста, двусмысленности нет. 16-битные мс будут переноситься реже, чем раз в минуту, чего должно быть достаточно.
AVR также имеют интерфейсы USB. RS232 все еще используется, но он умирает, и это (IMO) не самое подходящее место для него.
Для этой цели я использовал оценочную плату ARM: STM32F4 Discovery. Он работал безупречно. Спасибо за совет.
@OlinLathrop, вы правы, синхронизировать его не нужно, но я бы сделал это, потому что мне нравится возможность обнулять временные метки на самом устройстве. Это практически невозможно реализовать. :-)

Во время стажировки я сам провел некоторые измерения высокоточных источников света и всегда использовал спектрометр. Спектрометр (один от Avantes) может измерять освещенность и яркость. В этом случае у нас был один с USB 2.0 с большим и высокоточным спектром, и мы изо всех сил пытались получить 100 выборок в секунду (никогда не изучали его, но я думаю, что он не достигает 50 обновлений в секунду). Мы часто использовали его с коротким (1 мс) временем интегрирования (время «захвата»/«выдержки») и было ОЧЕНЬ шумно. Обновления без усреднения также были немного шумными, поэтому мы использовали большие частоты передискретизации для стабильных измерений (например, 500x). Это все с программным обеспечением производителей, я не думаю, что есть API для извлечения данных.

Более того, при «безопасном» уровне освещенности (то, что не вызывает прямого ослепления людей, например, 1 мВт/см2) мы почти ничего не измеряли за это короткое время интегрирования. Только при потенциально опасных уровнях излучения (например, 10 мВт/см2 или более) мы достигли полной шкалы. Если вы хотите сделать самодельное решение, вы также можете столкнуться с временем интеграции, и это может стать большой проблемой, если вы очень быстро ловите свет низкой интенсивности.

Кроме того, решение DIY довольно сложно, если вам нужны абсолютно точные значения. Типичные датчики имеют «ужасные» спектры. Выбор сенсора — это хорошо, но если вам нужно что-то абсолютное, вам не обойтись без калибровки известного точного источника света. Я не говорю, что это невозможно сделать, но почему-то эти спектрометры и готовые измерители мощности стали выглядеть довольно дешево.

Также следите за тем, чтобы не перепутать радиометрические (Ватт) и фотометрические (люмены). Lumen учитывает чувствительность человеческого глаза, и вы не можете преобразовать его, не зная о форме светового спектра вашего источника света. Если я быстро взгляну на некоторые датчики, упомянутые в Sparkfun, они радиометрические (они дают вам ватты).

Если 30 кадров в секунду слишком медленно, какая скорость вам нужна? Вам нужна интенсивность в 1 точке или ваша цель измерить выходную мощность? Вы измеряете различные источники света (даже тепло-белые или нейтрально-белые светодиоды могут иметь большое значение)

Я предполагаю, что вашим самым большим успехом будет поиск быстрого измерителя светового потока, люкса или люмена с поддержкой USB2/последовательного порта. Возможно, вам придется модифицировать вашу установку с помощью специальной настройки, интеграции сфер или чего-то еще, чтобы она работала в вашей ситуации.