明るさを調整してLEDマーカーを識別する方法は?


11

私のプロジェクトでは、ステレオビジョンアルゴリズムと複数のIRカメラを使用して、空間内のポイントの位置を識別するために赤外線LEDマーカーを使用する必要があります。また、各LEDマーカーには一意の認識可能なIDが必要です。これが現在の問題です。

私の考えは、認識可能なシーケンスで2つの明るさの状態の間で各LEDを点滅させることです(これは可能ですか?)が、まだ低い明るさの状態で追跡するのに十分な明るさ​​である必要がありました。

これを実装する方法や、どこから探し始めるのか本当にわかりません。私はプログラマーですが、これまで実際の回路を扱ったことはありません。始めるのを手伝ってくれませんか?

led 

回答:


11

すべてのLEDが同じソースから制御されている場合は、マイクロコントローラー+ 差分マンチェスターエンコーディング +高/低LED状態を使用して、次のような繰り返しシーケンスのビット文字列をエンコードすることを検討してください。

id #0: 1000000000000000[10000000000000001000000000000000....]
id #1: 1000000000000001[10000000000000011000000000000001....]
id #2: 1000000000000010
id #3: 1000000000000011
id #4: 1000000000000100

ID番号を、1、次に7つのゼロ、および8ビットのID#で構成される16ビットのビットシーケンスとしてエンコードします。次に、デコード時に、1に続いて7つのゼロを探し、その後に続くビットを取得します。これはすべての8ビットID#で機能します(#128 = 10000000でも1000000010000000としてエンコードされますが、必ずしも適切に同期することはできませんが、その番号では重要ではありません)。

(潜在的なLEDが少ない場合は、使用するビット数を減らします。このスキームは非常に単純で、1 +(N-1)ゼロ+ Nビット数に一般化されます)

マンチェスターエンコーディングはセルフクロッキングなので、レシーバーをそれに同期させることができるはずです(周波数がわからない別のマイクロコントローラーであっても、ビットごとに数回サンプリングしてロックを維持できます)。


4

異なる周波数で各LEDを点滅させることができれば、555ベースの回路を使用して必要な周波数で各LEDを点滅させることができるので、これはおそらく非常に簡単になります。


2
送信機を簡素化するが、受信機を複雑にする
Jason S

大量のポイントを追跡している場合、Arduinoやその他のマイクロコントローラーを使用することはおそらくないでしょう。
Amos、

..つまり、受信機にとっては、それは回路の問題であるプログラミングではなく、回路が単純であるほど良いです。
Amos、

4

最近誰もがArduinosを使い始めているようですので、おそらくこのようなものがあなたが探しているものです。でもたくさん使うつもりのようですarduinoでは難しいと思われる、このプロジェクトのLEDの数。これはすべて私の頭の上*から外れていますが、トランジスタと大きな抵抗を並列に使用して、トランジスタがオフのときに電流が大きな抵抗を流れて薄暗い光が得られるようにすることもできます。オンにすると、抵抗が低いためトランジスタに電流が流れ、明るい状態になります。これが機能すると仮定すると、マイクロコントローラなどのデジタルコンポーネントを使用してトランジスタを制御し、必要な点滅を実現できます。添付されているのは、私が何を意味するかを示す図です(値は任意であり、回路に合わせて変更する必要があるでしょう)。

トランジスタ回路図

どちらにしても、電子機器をあまり使っていないことを考えると、かなり難しいでしょう。幸運を!

*遅いです; これは完全に間違っている可能性があり、まったく機能しません。ymmv。


1
基本的には問題ありませんが、明るい状態の電流を設定するには、LEDおよびトランジスタと直列に別の抵抗が必要です。そうしないと、LEDが停止します。
starblue

はい、その通りです。私はそれが暗示されていると考えましたが、とにかくそれを述べるべきでした。
jeremy、2009

3

私はペンジュインのアイデアのバリエーションを行います。オンとオフの状態を使用して2つのレベルを生成します。オフ状態(またはロー状態)でLEDを追跡するのではなく、オフ状態を短くして、オン状態で追跡するだけです。

また、追跡する必要のあるLEDの数や、LEDの移動速度についても触れていません。


1

はい、2つの状態の「薄暗い」と「明るい」は簡単です。与えられた任意のトランジスタをオンとオフハードLEDを点滅回路は、そのトランジスタ全体で一つの抵抗を追加します。次に、トランジスタが完全にオフになると、抵抗器が薄暗くなります。まず、すでにLEDに接続されている電流制限抵抗とまったく同じ値の抵抗から始めます。(すべてのLEDには電流制限抵抗が必要です)。

いくつかのマーカーでは、それぞれに独立したバッテリーと555タイマーが最も単純なマーカーハードウェアになります。(プラスいくつかの抵抗とコンデンサ)。

LEDを同期できる場合は、システム全体がより単純になります。サイクルの開始時にすべてのマーカーをオンにしてから、一度に1つずつオフにしてからすべてオフにしてから、すべてを再びオンにしてサイクルを最初から始めます。一連のLEDを数時間点滅させるのに必要なエネルギー量は、通常、LEDごとに1つのバッテリーではなく、1つまたは2つの中央バッテリーの形ではるかに軽くなります。(これには、各LEDにコンパレータIC、またはいくつかのシフトレジスタ、または中央の場所でこれらのシフトレジスタをエミュレートするArduinoが必要です)。(これには、1つのマーカーから次のマーカーへ、または各マーカーからいくつかの中心点へと繋がる多くのワイヤーが必要です-そのため、アプリケーションによっては不可能かもしれません。)

PCがLEDを直接制御できれば、視覚認識ソフトウェアがはるかに簡単になります。次に、PCがLED_5を検索しているときに、LED_5をオン/オフして、点滅した1つのLEDがLED_5でなければならないことを確信できます。おそらく、USBから8ビットのパラレルポートコンバーターのようなものを使用します(これは、8つの抵抗を使用し、LEDごとに1つ)8つのLEDまたは(4つの抵抗を使用し、列ごとに1つ)16個のLEDの4x4マトリックスを直接制御できます。(これにはさらに別のワイヤー、PCからコンバーターへのUSBケーブルが必要ですがバッテリーやトランジスターや追加のチップは必要ありません-これは、プログラマーである電子工学以外の人が作業するのに最も簡単かもしれません)。


1

カメラのフレームレートがLEDのモーションレートに比べて十分に高くないと、ビジョンの面で問題が発生する可能性があります。

LEDは、カメラのフレームレートの妥当な倍数で高から低にサイクルする必要があります。状態ごとに少なくとも2フレーム変化して、2つの状態から混合するのではなく、1つの状態のみからの光があることを確認します。つまり、どのマーカーであるかを識別するために、LEDによってフラッシュされるデータのビットごとに2つのフレームが必要です。明らかに短いコードがそのために最適です。

マーカーがフレーム内で互いからの距離と同じオーダーの距離を超えて移動している場合、ビジョンシステムは、どのフラッシュがどのマーカーに属しているかを正しく識別する信頼性を失う可能性があります。


0

概略図

この回路のシミュレーションCircuitLabを使用して作成された回路

図1、2、3のLEDスキーム。

  • デュアルLEDは非常にシンプルな制御を提供します。R2は常時オンのLEDの輝度を設定します。R1は、パルスLEDの輝度を設定します。
  • シングルLED、デュアル輝度は、もう1つの単純なスキームです。D3は、R4を通過する電流で常に点灯します。BUF2がLowに切り替わると、R3がGNDに接続され、D3を流れる電流が増加して、LEDが明るく点灯します。
  • PWM輝度制御はハードウェアの観点からは最も単純ですが、ソフトウェアはLED輝度を制御する必要があります。

ここに画像の説明を入力してください

図2. PWMエンコーディング。

パルス幅変調(PWM)を使用すると、オン/オフ比を変えることで見かけの明るさを変えることができます。図2は、高電力、低電力、高電力のシーケンスを示しています。

アプリケーションでは、PWM周波数を十分に高く設定して、カメラセンサーがちらつきを検出しないようにする必要があります。高輝度と低輝度を切り替えるデータ変調またはレートは、最大でフレームレートの半分でなければならず、適切に識別できるようにフレームレートの約1/10である必要があります。

また、LEDからのビーム角度に対処する必要がある場合もあります。カメラが常に軸上にあるわけではないようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.