Для моего проекта мне нужно использовать инфракрасные светодиодные маркеры для определения местоположения точек в пространстве с помощью алгоритмов стереовидения и нескольких ИК-камер. Мне также нужно, чтобы у каждого светодиодного маркера был уникальный узнаваемый идентификатор, что является моей текущей проблемой.
Я думал, что каждый светодиод должен мигать между двумя состояниями яркости (возможно ли это?) В узнаваемой последовательности, но при этом быть достаточно ярким, чтобы отслеживать в состоянии более низкой яркости.
Я не знаю, как реализовать это или действительно, где начать искать. Я программист, но никогда раньше не работал с реальными схемами. Можете ли вы помочь мне начать?
Все , кажется, начинать с Arduinos в эти дни, так что- то вроде этого , вероятно , что вы ищете. Однако кажется, что вы собираетесь использовать многосветодиодов в этом проекте, что было бы трудно с Arduino. Это все от моей головы * здесь, но может быть возможно использовать транзистор и большой резистор параллельно, чтобы, когда транзистор выключен, ток протекал через большой резистор, и вы получали тусклый свет. Когда вы включаете его, ток проходит через транзистор из-за более низкого сопротивления, и вы получаете более яркое состояние. Предполагая, что это работает, вы могли бы использовать цифровые компоненты, такие как микроконтроллеры, для управления транзисторами и достижения требуемой вспышки. В приложении приведена схема того, что я имею в виду (значения являются произвольными, вам, вероятно, придется изменить их для вашей схемы):
Как бы вы это ни делали, это будет довольно сложно, учитывая, что вы не сделали много электроники. Удачи!
*поздно; это может быть совершенно неправильно и вообще не работать. YMMV.
источник
Я бы сделал вариант идеи пенджуина. Я бы использовал состояние включения и выключения для создания двух уровней. Вместо того, чтобы пытаться отследить светодиод в выключенном состоянии (или в низком состоянии), сделайте короткое состояние выключения и просто отследите его во включенном состоянии.
Вы также не упомянули, сколько светодиодов нужно отслеживать и как быстро они движутся.
источник
Да, два состояния: "тусклый" и "яркий" - это легко. Учитывая любую цепь, которая сильно мигает светодиодом на транзисторе, вы добавляете один резистор через этот транзистор. Затем, когда транзистор полностью выключен, резистор допускает тусклое свечение. Я бы начал с резистора точно такого же значения, как и токоограничивающий резистор, уже подключенный к светодиоду. (Каждый светодиод нуждается в токоограничивающем резисторе).
Для нескольких маркеров независимая батарея и таймер 555 на каждом будут самым простым аппаратным маркером. (плюс несколько резисторов и конденсаторов).
В целом система проще, если вы можете синхронизировать светодиоды: включите все маркеры в начале цикла, затем выключайте один маркер за раз, пока они все не выключатся, затем снова включите их и начните цикл заново. Количество энергии, необходимое для того, чтобы группа светодиодов мигала в течение пары часов, обычно весит гораздо меньше в виде одной или двух центральных батарей, а не одной батареи на светодиод. (Для этого требуется компаратор IC на каждом светодиоде или несколько сдвиговых регистров или Arduino, эмулирующий эти сдвиговые регистры в каком-то центральном месте). (Это требует большого количества проводов, идущих от одного маркера к другому или от каждого маркера до некоторой центральной точки - так что это может оказаться невозможным для вашего приложения.)
Это делает ваше программное обеспечение для распознавания зрения намного проще, если ПК может напрямую управлять светодиодами. Затем, когда ПК ищет LED_5, он может выключить и включить LED_5 и быть уверенным, что один мигавший светодиод должен быть LED_5. Возможно, использовать что-то вроде преобразователя USB в 8-битный параллельный порт , который (с 8 резисторами, по одному на светодиод) может напрямую управлять 8 светодиодами или (с 4 резисторами, по одному на столбец) матрицей 4x4 из 16 светодиодов. ( Для этого требуется еще один провод, а USB - кабель от компьютера к преобразователю, но он не требует какой - либо батареи или транзисторов или дополнительных фишек - это может быть самым простым для программиста не-электронщика , чтобы работать).
источник
Я думаю, что вы можете столкнуться с проблемами со стороны зрения, если частота кадров камеры недостаточно высока относительно скорости движения светодиодов.
светодиоды будут нуждаться в циклическом переключении от высокого к низкому на некотором разумном кратном значении частоты кадров камеры, по крайней мере, 2 кадра на изменение состояния, чтобы убедиться, что некоторые из кадров имеют свет только из одного состояния, а не смешаны из двух состояний, это означает, что вам нужно два кадра для каждого бита данных, высвечиваемого светодиодами, чтобы определить, какой это маркер. очевидно, более короткий код будет лучшим для этого.
Если маркеры перемещаются на расстояние, которое находится в том же порядке, что и их расстояние друг от друга в кадре, тогда система обзора может потерять уверенность в правильном определении того, какие вспышки принадлежат какому-либо маркеру.
источник
смоделировать эту схему - схема, созданная с использованием CircuitLab
На фиг.1, 2 и 3 светодиодные схемы.
Рисунок 2. ШИМ-кодирование.
Используя широтно-импульсную модуляцию (ШИМ), вы можете изменять видимую яркость, изменяя соотношение включения и выключения. На рисунке 2 показана последовательность мощных, маломощных и мощных сигналов.
Для вашего приложения вам нужно установить достаточно высокую частоту ШИМ, чтобы датчик камеры не видел мерцания. Модуляция данных или скорость переключения между высокой и низкой яркостью должны составлять не более половины частоты кадров и, более вероятно, около одной десятой частоты кадров, чтобы можно было правильно их различить.
Вам также может потребоваться указать угол луча от светодиодов. Звучит так, как будто ваши камеры не будут постоянно находиться на одной оси.
источник