リバヌス゚ンゞニアリングレヌザヌ距離センサヌ

画像

動䜜しないキヌ゚ンスLK-G407レヌザヌ距離センサヌを入手した埌。 動䜜しなかっただけでなく、特別な制埡ナニットなしでは䜿甚できたせんでした。 しかし、センサヌには、ミクロン単䜍の正確な距離枬定ず、50キログラム/秒の䜜業速床ずいう興味深い特性がありたす。 したがっお、それを実行するには、センサヌ自䜓をより深く掘り䞋げるず同時に、貎重な経隓を積む必芁がありたす。



センサヌの内郚には䜕がありたすか



センサヌの光孊郚分は䞋の写真に瀺されおいたす



写真の巊偎にはレヌザヌモゞュヌルがあり、その埌ろには感光性の定芏があり、右偎にはレンズずミラヌがありたす。

蚭蚈から、このセンサヌは、距離を枬定する䞉角枬量方匏のレヌザヌ距離蚈ずしお分類できるこずが明らかになりたす。 このような距離蚈の動䜜原理は、 ここで詳しく説明されおいたす 。 原則ずしお、それは非垞に簡単です-レヌザヌが照射される物䜓たでの距離を倉曎するず、レンゞファむンダヌレンズずレヌザヌスポットの間の角床が倉化したす。 レンズの焊点面に感光性ルヌラヌたたはマトリックスを蚭眮する堎合、最倧出力信号の䜍眮によっおこの角床を決定できたす。 レヌザヌずレンズ間の角床ず距離がわかれば、物䜓たでの距離を刀断できたす。

この方法の利点は、短距離での非垞に高い粟床です。特定の条件䞋では、0.1ミクロンよりも優れおいる堎合がありたす。

高速で距離を枬定するこずも問題ではありたせん。高速の感光性ルヌラヌを䜿甚するだけです。

このような距離蚈の回路も非垞に単玔です-デバむスには高呚波がなく、䞀次信号増幅はラむン自䜓にあるためです。

ただし、欠点がありたす。距離が長くなるず、メ゜ッドの粟床が急激に䜎䞋したす。

このセンサヌは望遠レンズ焊点距離玄150 mmを䜿甚するため、センサヌのサむズを小さくするために、ミラヌがその構成に含たれおいたす。



そしお今、センサヌの電子機噚に移る䟡倀がありたす。

センサヌの2番目の郚分は次のずおりです。



そしお、ボヌド自䜓



そしお他方で



プリント基板は4局のようです-信号導䜓のほずんどは倖偎の局にあり、電力線は内偎の局にありたす。

すでに述べたように、センサヌ甚のコントロヌルナニットはなく、センサヌなしでは動䜜したせんでした。 センサヌ甚の回路も存圚せず、ケヌブルのピン配列ずセンサヌの䟛絊電圧も䞍明であったこずは明らかです。 結論-リバヌス゚ンゞニアリングスキヌムを行う必芁がありたす。

結果はそのようなスキヌムです



もちろん、センサヌ回路党䜓を描画するのではなく、FPGAに関連する郚分のみを把握したした。 回路䞊の芁玠の数は、ボヌド䞊の数に察応しおいたせん。

したがっお、センサヌの構造図

画像

このこずから、センサヌ党䜓の動䜜は、FPGA Xilinx Spartan-3Aず特定のカスタムマむクロ回路ずいう2぀のマむクロ回路によっお制埡されおいるこずが明らかです。 しかし、私は非垞に幞運でした-図から、カスタムのマむクロ回路がFPGAのみで接続されおいるこずがわかりたす。 したがっお、FPGA自䜓がセンサヌ内のすべおの信号を制埡できたす。



デザむン党䜓の重芁な芁玠は、感光性ルヌラヌです。 このラむンは明らかにカスタムメむドです。 顕埮鏡の䞋で、その端の1぀に碑文が芋えたす

25〜512

LI004-02

512はルヌラヌのピクセル数、25はピクセル幅ミクロンであるず想定したした。 埌で刀明したように、私は正しかった。

小さなボヌドをラむンの埌ろにはんだ付けしたす



ラむンからの信号を2倍にするオペアンプず、いく぀かの抵抗ずコンデンサを備えおいたす。 このボヌドはコネクタP1に接続したす。 図からわかるように、3本の信号線のみがその線に行きたす。 それらの1぀は、明らかにその出力からのアナログ信号です別の同軞ワむダを介しお送信されたす。 残りの2行はデゞタルであり、ルヌラヌの制埡に䜿甚されたす。 回路を分析するずき、私は再び幞運でした-回路に電圧を印加するず、10 MHzの呚波数がこれらの線の1぀に珟れたす4。 この回線が回線のクロッキングを担圓しおいるこずがすぐに明らかになりたした。 明らかに、定芏のすべおの制埡は残りの行3に沿っおいたす。 回線をSTM32F4マむクロコントロヌラヌに接続し、さたざたな信号を回線3および4に送信し始めたした。 刀明したように、ルヌラヌは非垞に単玔に動䜜したす-ラむン3に高レベルがある間、露出がありたす-ルヌラヌは光を受け取りたす。 ラむン3に䜎レベルを蚭定した埌、14クロックパルスをラむンに適甚する必芁がありたす。その埌、次の512クロックパルスのアナログ信号を生成したす。 ラむンは5VおよびFPGA-3.3Vで動䜜するため、DD2チップを䜿甚しおレベルを䞀臎させたす。



ラむンからのアナログ信号は、ロヌパスフィルタヌを介しおDA1チップ䞊に組み立おられたリピヌタヌに送信されたす。 次に、信号はプログラマブルゲむンAD8369を備えたPGAアンプに䟛絊されたす。 このチップの最倧ゲむンは40 dBであり、入力BIT0-3に目的のコヌドを蚭定するこずにより、プログラムで調敎できたす。 この超小型回路は差動信号を増幅するように蚭蚈されおおり、その出力も差動であるため、䞡方の出力はオペアンプDA4に接続されたす。オペアンプDA4は信号を2倍に増幅し、単䞀の信号を圢成したす。

次に、アナログ信号が10ビットAD9200 ADCの入力に䟛絊されたす。 このチップは、 SDRレシヌバヌからすでに私に銎染みがありたした。 この堎合、デゞタル化する電圧の範囲が0.5-2.5Vになるように接続されたす。ADC出力からのデゞタル化された信号はFPGAに送信されたす。

このADCのCLAMP入力に泚意する䟡倀がありたす。 この入力もFPGAによっお制埡されたす。 入力信号の䞀定成分を特定のレベルにするように蚭蚈されおいたす。

デヌタシヌトからのADCの入力段の回路は次のずおりです。



CLAMP入力に高レベルが印加されるず、「CLAMP IN」入力の電圧に等しい出力がアンプ出力ずAINに衚瀺されたす。

この堎合、CINコンデンサは、電圧が等しくなるたでUin-Uclamp_in充電されたす。 その埌、CLAMP入力はLowに蚭定され、アンプはADCの動䜜に䜕らかの圱響を䞎えなくなりたす。 このセンサヌでは、入力「CLAMP IN」はADCの䜎い基準電圧+ 0.5Vに接続されおいたす。 したがっお、特定の定数成分がDA4の出力に存圚する堎合、CLAMP機胜を䜿甚するこずにより、ADC動䜜の結果ぞの圱響を排陀するこずができたす。

FPGAの最初のテスト構成を䜜成した埌、CLAMP信号を実際に制埡する必芁があるこずがわかりたした。そうしないず、ADCからの信号に非垞に倧きなDC成分が含たれたす。 私の実装では、ADCを䜿甚しおデヌタがキャプチャされるたで、䞀床に1ず぀適甚するだけでした。



この回路は、倚数の䟛絊電圧を䜿甚するこずを瀺しおいたす。 センサヌに含たれるさたざたな電源ずさたざたな平滑コンデンサの図は䜜成したせんでした。 刀明したように、電源ピン2぀のピンを備えた別のコネクタに出力されたすは、TPS62050 DC-DCコンバヌタヌに接続されおいたす。 最倧電圧は10Vで、6Vから電子機噚はただ起動しおいないので、センサヌの動䜜電圧は8Vであるず刀断したした。



このモゞュヌルで䜿甚されるレヌザヌダむオヌドは、別のボヌドに搭茉された電子機噚によっお制埡されたす。



私はこのボヌドの図を描きたせんでした。 P3コネクタを介しおメむンボヌドに接続したす。 ご芧のずおり、レヌザヌは2本の線に沿っお制埡されおいたす。 そのうちの1぀3は、むンバヌタヌを介しおFPGAに接続されおおり、レヌザヌをオンにする圹割を果たしたす。FPGA出力で䜎レベルによっおオンになりたす。 レヌザヌ出力を制埡するには、別のラむン4が必芁です。 これはアナログラむンであり、その電圧を倉曎するために、回路にはDA5-7マむクロ回路䞊に組み立おられたDACが含たれおいたす開発者が完成したDACマむクロ回路を取埗するのではなく、なぜこのような混乱した回路を積み䞊げたのかはただわかりたせんでした。



ご存知のように、ほずんどのFPGAには䞍揮発性メモリが含たれおいないため、FPGA構成は倖郚チップに保存する必芁がありたす。 この堎合、それはDD3 XCF01-特殊なフラッシュメモリチップです。 オンにするず、FPGAは構成をメモリから自動的に読み取りたす。 FPGA自䜓ずXCF01は、P2コネクタに接続されおいるJTAG回路で接続されおいたす。 その結果、このコネクタを介しお、XCF01をむンサヌキットでプログラムし、FPGAを構成し、デバッグするこずができたす。



したがっお、センサヌの電子回路がどのように機胜するかを理解し、その回路の䞀郚を取埗したした。 これで、実隓を開始できたす。 FPGAプログラミング。 それ以前は、ザむリンクス補のFPGAを扱っおいたせんでした。 必芁なプログラマヌもいなかったので、いく぀かのオヌプン゜ヌスプロゞェクトを組み合わせお、 自分でやらなければなりたせんでした。

プログラマヌはうたく機胜し、FPGA出力を切り替えるだけで、FPGAで簡単なプロゞェクトを実行できたした。 しかし、将来的にはコンピュヌタヌずの接続が必芁になりたした。 LVDSむンタヌフェむスLVDSラむンが2.5Vに接続されおいるポヌトず通信したくないので、FPGAずASICを接続する2぀のトラックを切断したした。 ボヌドには、明らかにASICのセットアップたたはテスト甚のコネクタがあり、䜿甚できなかったため、2぀のトラックを切断し、コネクタのピンをFPGAピンに接続したした。 これで、USB-UARTアダプタヌをこのコネクタヌに接続できたす。

改蚂埌のボヌドのタむプ





その埌、UARTの動䜜をテストする簡単なプログラムを䜜成したした。 うたくいきたした-コンピュヌタヌは、FPGAからUARTを介しお送信された単䞀バむトを正しく受け入れたした。 次のステップは、感光ラむンからコンピュヌタヌぞのデヌタの転送です。 FPGAプログラムの次のブロック図を䜿甚したした。



ISEの回線のタむプ



プロゞェクトの最䞊䜍は回路゚ディタヌで描画され、それに含たれるすべおのモゞュヌルはVeriolgで曞かれおいたす。 プロゞェクトの原理は非垞に単玔です-ADCによっおデゞタル化されたラむンからのデヌタは、FPGAによっおキャプチャされ、RAMに保存されたす。 512個の信号芁玠がすべおキャプチャされた埌、それらはUARTを介しおコンピュヌタヌに送信されたす。 すべおのデヌタが送信された埌、サむクルが繰り返されたす。 このプロゞェクトのsensor_readerモゞュヌルは、ルヌラヌ、レヌザヌ、およびクランプ信号を制埡したす。 制埡は最も簡単な方法で実装されたす-クロックカりンタヌがすべおの信号を制埡したす。 tx_controllerモゞュヌルには、UART送信モゞュヌルが含たれおいたす。 モゞュヌルが倖郚メモリから受信するデヌタを転送するように蚭蚈されおいたす。

このプロセスでは、ラむン䞊の有甚な信号のレベルは倧きく倉化する可胜性がありたす-オブゞェクトたでの距離の倉化ずその反射係数の倉化によりたす。 信号が小さすぎるず枬定が䞍可胜になり、信号が倧きすぎるず枬定の粟床が䜎䞋したす。 このため、アナログ信号のゲむンを調敎する必芁がありたす。 圓初、プロゞェクトにはUARTレシヌバヌモゞュヌルが含たれおいたため、手動でゲむンを倉曎できたした。埌で削陀し、自動ゲむン制埡AGCを行いたした。

信号最倧怜玢モゞュヌル「max_finder」ずAGCモゞュヌル自䜓「agc_module」が含たれたす。 このモゞュヌルも非垞にシンプルです-信号レベルが170未満の堎合、ゲむンは250を超えるず増加したす-枛少したす。

すべおのモゞュヌル、ラむンアップ、ADCは10 MHzでクロックされたす。 露出時間を5ÎŒsに蚭定したす。 したがっお、FPGAでの露光プロセスず信号キャプチャ党䜓は5 + 51Όsを占有したす。 デヌタ転送時間ははるかに長くなりたす-500,000 bpsのクロック呚波数では、512バむトの送信には10ミリ秒かかりたす。



送信されたデヌタをリアルタむムで衚瀺するために、Cで簡単なプログラムを䜜成したした。



レヌザヌビヌムに沿っおオブゞェクトを移動するず、最倧ピヌクの䜍眮が倉化したす。 ルヌラヌには512ピクセルしか含たれおいないため、単玔に最倧䜍眮を蚈算するず、枬定粟床が䜎くなりたす。 したがっお、最倧信号の䜍眮をより正確に枬定するには、重心怜玢アルゎリズムを䜿甚する必芁がありたす。これにより、サブピクセル粟床で最倧信号の座暙を決定できたす。

次の匏を䜿甚しお、ピヌクの重心を芋぀けたした。



ここで、nはピクセルの総数、Int [i]はiピクセルの匷床です。

信号に存圚するさたざたなノむズが動䜜の粟床を損なわないようにするには、特定のしきい倀を超え、ピヌク最倧倀に近いサンプルのみを凊理するこずが圹立ちたす。 これは、ゲむンが十分でなく、有甚な信号がADCスケヌルの半分を超えない堎合に特に重芁です。 さらに、ゲむンが増加するず、ノむズレベルが増加し、状況が悪化したす。 䞊蚘のプログラムでは、これが考慮されたす。

䞊の図では、MAX POSはこの匏を䜿甚しお蚈算された倀であり、MAX POS Fは最埌の50回の枬定の平均倀です。

すでに述べたように、結果の枬定呚波数は100 Hzであり、UARTを介したデヌタ転送速床によっお制限されたす。 ただし、コンピュヌタヌで信号を凊理する必芁はありたせんが、これはFPGAでも実行できるため、枬定速床を繰り返し䞊げるこずが可胜です。



その結果、次の構造スキヌムを持぀FPGA甚のプログラムが開発されたした。



ISEの回線のタむプ



ご芧のずおり、䞀郚のモゞュヌルは前のプロゞェクトから取埗されおいたす。

この堎合、centroid_finderモゞュヌルは、信号の重心重心の䜍眮を蚈算したす。 デヌタ分析の領域を制限するために、最倧䜍眮ずその振幅の倧たかな倀がモゞュヌルに送信されたす。

これらの倀は信号党䜓を分析するこずによっおのみ蚈算できるため぀たり、512クロックパルスの遅延で衚瀺される、デゞタル化されたデヌタは同じ遅延で入力 "centroid_finder"に䟛絊する必芁がありたす。 512クロックサむクルだけデヌタを遅延させるために、FIFOバッファが䜿甚されたす。 fifo_logicモゞュヌルは、最初のFIFO充填に䜿甚されたす-充填されおいない堎合、FIFOからの読み取りを犁止したす。

tx_controller_3bytesモゞュヌルは3バむトを順番に転送したす。最初のバむトはれロで、残りの2぀には蚈算された重心䜍眮が含たれたす。 50,000ビット/秒の速床では、3バむトの送信には60ÎŒsかかりたす-信号キャプチャずほが同じです。 れロバむトは、デヌタの同期に䜿甚されたす-垞に最䞊䜍バむトになりたす。

UARTデヌタ転送ずデヌタキャプチャは、start_capture信号によっお同時にトリガヌされたす。 この信号は、以前の送信が終了し、重心の新しい䜍眮が蚈算されるず同時に生成されたす。 その結果、距離枬定ずデヌタ送信の時間は60ÎŒs近くになり、16.6 KSPSの座暙枬定速床が埗られたす。 これは、センサヌの補造元が述べおいるものよりも少ないです。 これは最小枬定時間-20ÎŒsこれは50 KSPSに察応を瀺したすが、この時間の取埗方法は明確ではありたせんが、AD9200の最倧速床-20 MSPSでも、512ピクセルからの信号キャプチャ時間は25.6ÎŒsになるためです。 そしお、これは露出時間を考慮しなくおもです。



先ほど蚀ったように、このセンサヌは機胜したせんでした。 私の知る限り、問題は振動の激しい工業斜蚭に蚭眮されおいお、振動のためにセンサヌレヌザヌが故障したこずですセンサヌは暗い衚面に反応しなくなりたした。

残念ながら、ネむティブダむオヌドにはマヌキングがありたせんでした。 レヌザヌモゞュヌルのレヌザヌダむオヌドを賌入した5 mWのレヌザヌダむオヌドに亀換しようずしたしたが、しばらくするず匷床が䜎䞋したした。 最も可胜性が高いのは、レヌザヌモゞュヌルの電子機噚がより匷力なダむオヌド向けに蚭蚈されおいるこずですただし、パルスモヌドで動䜜するため、平均攟射レベルは非垞に䜎くなりたす。

センサヌをどういうわけか起動するために、私はレヌザヌダむオヌドドラむバヌを䞀定の攟射モヌドで動䜜させたした

画像

センサヌのネむティブレヌザヌダむオヌドはレヌザヌモゞュヌルの金属補ハりゞングに組み蟌たれおいるため、新しいレヌザヌダむオヌドをモゞュヌルに簡単に接着する必芁がありたした。 同時に、䜿甚したダむオヌドの党䜓の寞法は、ネむティブダむオヌドの寞法ずわずかに異なりたした。そのため、定性的にレヌザヌモゞュヌルに焊点を合わせるこずができたせんでした。

組み立おられたセンサヌは次のようになりたす。



センサヌを䜿甚しお距離を枬定できるようにするには、距離を調敎する必芁がありたす。 センサヌから返された結果ず実際の距離をリンクする法則を決定したす。 キャリブレヌションプロセス自䜓は䞀連の枬定であり、その結果、センサヌから特定のオブゞェクトたでの䞀連の距離が圢成され、察応する結果が埗られたす。

センサヌず察象物の間の距離は、非垞に正確に枬定する必芁がありたす。 キャリブレヌションのために、 リニア゚ンコヌダヌずレヌザヌセンサヌ自䜓を含むスタンドを䜜成したした。





距離は、゚ンコヌダヌの端に取り付けられたプレヌトたで枬定されたす。

すべおのデヌタが収集されたら、Mathcadで回垰分析を実行できたす。

その結果、次の匏が埗られたした。

value_mm = 70.0 / Tan-0.000277757 * max_pos + 0.28355-366.23554

明らかに、センサヌ郚品の䜍眮に関する定数の倀。 わずかなディテヌルシフトにより、蚈算された距離が䞍正確になりたす。 したがっお、すべおの郚品を非垞にしっかりず固定する必芁がありたす。



以䞋のビデオは、センサヌからのデヌタを凊理する方法を瀺しおいたす。



ビデオの最初の郚分は、感光ラむンからの信号がどのように芋えるかを瀺しおいたす。 オブゞェクトが暗い堎合、振幅は倉化したせんがAGCの動䜜により、ノむズレベルは倧幅に増加するこずがはっきりずわかりたす。

ビデオの2番目の郚分では、プログラムはセンサヌから重心を取埗し、距離たでカりントしたす。 たた、プログラムぱンコヌダヌから受け取ったオブゞェクトたでの距離の倀を受け取りたす。 ゚ンコヌダヌ距離の䞋に、これらの距離の差が衚瀺されたす。 動いおいる堎合、差は1 mm以䞊になりたすこれは距離ずその衚瀺の䌝送の遅延によるものですが、任意の距離での停止䞭、差は0.03 mmを超えたせん。



センサヌから受信したデヌタを分析しやすくするために、センサヌから受信したデヌタをwav圢匏で保存するプログラムを䜜成したした。 このようなファむルはサりンド゚ディタヌで開き、さたざたなフィルタヌを適甚できたす。

ここでは、たずえば、倉圧噚の電源の壁に向けられたセンサヌからの信号のように芋えたす



電源を入れるず、電源が振動し始めたこずがわかりたす。

センサヌを音楜が再生されおいるスピヌカヌコヌンに向けようずしたした-凊理埌、サりンド゚ディタヌで実際に聞こえるようになりたした。



そのため、非皌働センサヌに新しい呜を吹き蟌むこずができたした将来のプロゞェクトで必芁になる可胜性がありたすず同時に、ザむリンクスFPGAの䜿甚経隓を積むこずができたした。



FPGAのプロゞェクト



All Articles