1: 2017-09-12 (火) 22:20:16 takaboo | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | TITLE:ToFセンサ(RS485)マニュアル | ||
+ | #norelated | ||
+ | #contents | ||
+ | [[BTE010 ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=181]]~ | ||
+ | [[BTE011 ショップページへ>http://www.besttechnology.co.jp/modules/onlineshop/index.php?fct=photo&p=180]] | ||
+ | #ref(E141_3D.png) | ||
+ | **概要 [#r74f771c] | ||
+ | 本装置はST社製[[VL53L0X>http://www.st.com/ja/imaging-and-photonics-solutions/vl53l0x.html]](赤外光の反射時間を測定する事で測距するセンサモジュール)を使用した非接触測距センサです。~ | ||
+ | VL53L0XとCPU及び周辺回路を搭載し、CPUのファームウェアを書き換える事により、対象との測距データをデジタルパケットで取得したり、ホストレスで単体で距離をアナログ電圧に変換して出力させるといった運用ができます。 | ||
+ | |||
+ | **仕様 [#l2888af9] | ||
+ | ***同梱内容 [#w140ccc5] | ||
+ | |型式 |数量 |備考 |<| | ||
+ | |センサ本体 | 1|E141 |<| | ||
+ | |ケーブル | 1&br;1|BTE010 |molex<->JST 3p 180mm cable&br;JST<->JST 3p 180mm cable | | ||
+ | |~| 1&br;1|BTE011 |molex<->JST 4p 180mm cable&br;JST<->JST 4p 180mm cable | | ||
+ | |||
+ | ***基本仕様 [#k2ce4472] | ||
+ | |商品番号 |BTE010 (TTL I/F版)|<| | ||
+ | |~|BTE011 (RS-485 I/F版)|<| | ||
+ | |主要コンポーネント |CPU |[[LPC824M201JHI33E>http://www.nxp.com/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/lpc800-series-cortex-m0-plus-mcus/low-cost-32-bit-microcontroller-based-on-arm-cortex-m0-plus:LPC824M201JHI33]] | | ||
+ | |~|センサ |[[VL53L0X>http://www.st.com/ja/imaging-and-photonics-solutions/vl53l0x.html]] | | ||
+ | |~|DAC |[[MCP4726A0T-E/CH>http://www.microchip.com/wwwproducts/en/MCP4726]] | | ||
+ | |リビジョン |E141 |<| | ||
+ | |動作温度範囲 |-20~+70℃ (結露無きこと) |<| | ||
+ | |保存温度範囲 |-40~+85℃ (結露無きこと) |<| | ||
+ | |電源電圧 |DC5.4~25V (絶対最大定格:DC75V) |<| | ||
+ | |最大消費電力 |0.4W |<| | ||
+ | |レーザー安全基準 |IEC 60825-1:CLASS 1 |<| | ||
+ | |IR中心波長 |940nm|<| | ||
+ | |推奨検出距離 |20~1200mm |<| | ||
+ | |コマンドシグナル |デジタルパケット |<| | ||
+ | |プロトコル |半二重非同期通信 8-1-N |<| | ||
+ | |リンク方式 |BTE010 |1ワイヤ双方向 | | ||
+ | |~|BTE011 |RS-485 | | ||
+ | |通信速度 |9.6k~2Mbps |<| | ||
+ | |AO端子 |シンク・ソース電流 |40mA以下| | ||
+ | |~|分解能 |12bit| | ||
+ | |DO端子 |シンク電流 |1.3A以下(オープンドレン)| | ||
+ | |~|絶対最大定格 |60V| | ||
+ | |寸法 |約40.0×13.0×H10.0mm |<| | ||
+ | |重量 |20g以下 |<| | ||
+ | |環境配慮 |RoHS準拠, 鉛フリー半田 |<| | ||
+ | |||
+ | ***内部簡略ブロック及び回路図 [#g51ebef5] | ||
+ | #ref(E141_block.png,100%) | ||
+ | #ref(E141_SCH.png) | ||
+ | |||
+ | ***外観 [#sa9b979d] | ||
+ | | TOP | BOTTOM |h | ||
+ | | 3D pdf |<|h | ||
+ | | #ref(E141_TOP.png,30%) | #ref(E141_BOTTOM.png,30%) | | ||
+ | | [[3D pdf>http://www.besttechnology.co.jp/download/3D/E141_3D.pdf]] |<| | ||
+ | ※図はRS-485 I/F版。実際に装着されるコネクタは商品番号によって異なる | ||
+ | |||
+ | ***外形・配置 [#sf234681] | ||
+ | #ref(E141_LAYOUT.png,50%) | ||
+ | ※単位mm~ | ||
+ | ※図はRS-485 I/F版。実際に装着されるコネクタは商品番号によって異なる~ | ||
+ | |CENTER:BGCOLOR(red): :idea:|本機を設置する際は「接触禁止領域」のパーツ及びランドに固定部材が接触してはならない。&br;他の電位へ短絡したりパーツを欠損した場合、本品の永久破壊を招く。| | ||
+ | |||
+ | ***各機能詳細 [#d1060eef] | ||
+ | 主要コンポーネントについての詳細です。 | ||
+ | ****CN1 [#a2b6ff02] | ||
+ | -1.27mmピッチ5ピンランド | ||
+ | #ref("E141_CN1.png",100%) | ||
+ | -CPUのSWD用 | ||
+ | | 端子番号 | 信号名 |h | ||
+ | | 1 | 3.3V | | ||
+ | | 2 | GND | | ||
+ | | 3 | SWDIO | | ||
+ | | 4 | SWCLK | | ||
+ | | 5 | RESET | | ||
+ | |||
+ | |CENTER:BGCOLOR(red): :idea:|CN1は出荷時にブートローダの書き込みや調整に使用する目的で備わっており、ユーザに解放しているものではない。| | ||
+ | |||
+ | ****CN2, CN3[#cb647497] | ||
+ | |||
+ | *****BTE010 (TTL I/F版)[#y6b38a09] | ||
+ | -2.5mmピッチ4ピンランドのうち3ピンに[[JST B3B-EH>http://www.jst-mfg.com/product/detail.php?series=58]]を装備 | ||
+ | #ref("E141_TTL_CN.png",100%) | ||
+ | | Pats Name | JST Parts Number |h | ||
+ | |基板用ヘッダー |[[B3B-EH>http://www.jst-mfg.com/product/detail.php?series=58]] | | ||
+ | |ハウジング |[[EHR-3>http://www.jst-mfg.com/product/detail.php?series=58]] | | ||
+ | |ターミナル |[[SEH-00x>http://www.jst-mfg.com/product/detail.php?series=58]] | | ||
+ | -1ワイヤによる0/5Vレベルの半二重双方向シリアルI/Fと電源~ | ||
+ | 送信時はプッシュプル出力 | ||
+ | #ref("TTL_half.png",100%) | ||
+ | -SIGNAL端子は220kΩの抵抗を介して内部の5V電源へウィークプルアップ | ||
+ | -使用されないRS-485 I/Fの影響を回避するため、終端抵抗をONにする事 | ||
+ | -2つのコネクタはいずれも内部で並列に接続 | ||
+ | -TTL I/Fと電源は以下の端子に接続 (端子番号はコネクタの仕様に基づく)~ | ||
+ | Dynamixel Xシリーズ互換 | ||
+ | #ref(DXLSHARE/jst_B3B-EH.png) | ||
+ | | 端子番号 | 信号名 |h | ||
+ | | 1 |GND | | ||
+ | | 2 |VDD (DC5.4~35V) | | ||
+ | | 3 |TTL Signal | | ||
+ | |||
+ | *****BTE011 (RS-485 I/F版) [#u052d265] | ||
+ | -2.5mmピッチ4ピンランドに[[JST B4B-EH>http://www.jst-mfg.com/product/detail.php?series=58]]を装備 | ||
+ | #ref("E141_RS485_CN.png",100%) | ||
+ | | Pats Name | JST Parts Number |h | ||
+ | |基板用ヘッダー |[[B4B-EH>http://www.jst-mfg.com/product/detail.php?series=58]] | | ||
+ | |ハウジング |[[EHR-4>http://www.jst-mfg.com/product/detail.php?series=58]] | | ||
+ | |ターミナル |[[SEH-00x>http://www.jst-mfg.com/product/detail.php?series=58]] | | ||
+ | -RS-485による半二重双方向I/Fと電源 | ||
+ | #ref("RS485_half.png",100%) | ||
+ | -2つのコネクタはいずれも内部で並列に接続 | ||
+ | -ソフト的にON/OFF可能な終端抵抗を装備(評価版は未装備) | ||
+ | -RS-485 I/Fと電源は以下の端子に接続 (端子番号はコネクタの仕様に基づく)~ | ||
+ | Dynamixel Xシリーズ互換 | ||
+ | #ref(DXLSHARE/jst_B4B-EH.png) | ||
+ | | 端子番号 | 信号名 |h | ||
+ | | 1 |GND | | ||
+ | | 2 |VDD (DC5.4~35V) | | ||
+ | | 3 |RS-485 D+ | | ||
+ | | 4 |RS-485 D- | | ||
+ | |||
+ | ****AO, DO [#pf319804] | ||
+ | -2.5mmピッチ2ピンΦ1mmランド | ||
+ | #ref(E141_DO_AO.png,100%) | ||
+ | -AO~ | ||
+ | 3.3Vないし5VをDACの基準電圧として選択可~ | ||
+ | 電流制限機能なし | ||
+ | #ref("E141_DAO_SCH.png") | ||
+ | -DO~ | ||
+ | LOWないしハイインピーダンス出力(オープンドレイン)~ | ||
+ | HIGH論理を確立するには任意電圧へのプルアップ抵抗が必要~ | ||
+ | 電流制限約2A(@5V) | ||
+ | #ref("E141_DO_SCH.png") | ||
+ | |||
+ | ****PB1 [#zc247bb8] | ||
+ | -プッシュボタンスイッチ | ||
+ | #ref("E141_PB1.png",100%) | ||
+ | -プログラムにて任意の目的に使用可能 | ||
+ | -押下でCPUのPIO0_5(RESET)がGNDに接地 | ||
+ | |||
+ | ****LED1 [#y6415ce2] | ||
+ | -LED | ||
+ | #ref("E141_LED1.png",100%) | ||
+ | -プログラムにて任意の目的に使用可能 | ||
+ | -CPUのPIO0_24にシンク接続 | ||
+ | |||
+ | ****U7 [#h2dcb6f4] | ||
+ | -[[ST VL53L0X>http://www.st.com/ja/imaging-and-photonics-solutions/vl53l0x.html]] 測距センサモジュール | ||
+ | #ref("E141_U7.png") | ||
+ | -以下の円錐形の外側がコクターとエミッターにおける除外範囲 | ||
+ | #ref("E141_U7_CONE.png",50%) | ||
+ | |||
+ | |CENTER:BGCOLOR(red): :idea:|センサ表面には保護ライナーが添付されているため、使用する前に必ず剥がす事。&br;剥がさず使用すると正常な計測結果が得られない。| | ||
+ | |~| #ref(E141_U7_LINER.png) | | ||
+ | |||
+ | |CENTER:BGCOLOR(red): :idea:|発光及び受光部の開口部が非常に小径のため、センサ表面を直接触れるなどで汚染しないこと。&br;開口部に異物等が混入すると正常に計測できなくなる。| | ||
+ | |||
+ | **各機能概要 [#kc3b8c02] | ||
+ | |||
+ | ***ブートローダ [#efeabca1] | ||
+ | 出荷時点でCPUのフラッシュROMには弊社オリジナルの[[ブートローダ>LPC82x_BL]]が書き込まれています。CPUの起動直後に必ず実行され、ユーザプログラム(以後ファームウェアと称する)へ実行を遷移させたり、シリアルターミナルプログラム等を使ってファームウェアの書き換えが行えます。~ | ||
+ | なお、本品のシリアルI/F・LED周りの回路は[[DXMIO]]と合わせているため、DXMIOのそれらの設定をそのまま流用して開発ができます。 | ||
+ | |||
+ | また、ファームウェアの書き換えには[[CN2,CN3>#cb647497]]の仕様に合った[[BTE068B]]・[[BTE079]]・[[BTE080]]のいずれかのI/Fが必要です。 | ||
+ | |||
+ | ***CN2, CN3, AO, DO [#jc3ba14d] | ||
+ | I/Fの違いで3ピンないし4ピンのコネクタが装備された上で出荷されます。I/Fの違いがあっても両I/Fの回路はいずれも装備されており、半田ジャンパ(JP1)にて信号のルートを選択しています。~ | ||
+ | アナログ出力用のDACとオープンコレクタ出力のDOはランドのみが用意され、いずれもCN2,CN3のGNDを基準とします。 | ||
+ | +スタンドアロンでの運用~ | ||
+ | 出荷時は本ファームウェアが装備され、ホストレスでデジタル出力やアナログ出力の条件設定をPB1の操作によって行う。 | ||
+ | #ref(basic_connection1.png)~ | ||
+ | +ファームウェアの書き換えや通信を行うファームウェアでの運用~ | ||
+ | ファームウェアの書き換えには電源のON/OFFを伴う操作があるため、RS-485とTTLの両I/Fを装備した電源スイッチ付きの[[DXHUB]]を使用すると便利である。~ | ||
+ | #ref(basic_connection2.png)~ | ||
+ | +複数台と通信するファームウェアでの運用~ | ||
+ | Dynamixel互換プロトコルを用いたファームウェアは個々のセンサをIDで識別するため、DXHUBのコネクタに必要台数を接続させたり、本品のコネクタを用いて数珠つなぎして使用可能。数珠つなぎする際は、コネクタやケーブルのディレーティング・導体抵抗・接触抵抗等を考慮した数にとどめる必要がある。 | ||
+ | #ref(basic_connection2-1.png) | ||
+ | |||
+ | なお、図では簡略化のため配線を直線で描画していますが、配線自体も回路の一部です。配線が長くなればなるほど電気的な影響を無視できないため、例えばRS-485 I/F版では電源のVDD/GNDとRS-485のD+/D-の配線にはシールド付きツイストペアケーブルを使用するべきです。 | ||
+ | #ref(twistedpair.png) | ||
+ | また、RS-485 I/Fにはソフト的にON/OFFできる終端抵抗を内蔵していますが、各ファームウェアにおいて終端抵抗はデフォルトでONに設定されているため、そのままの状態で複数台を同時に運用すると、RS-485トランシーバの駆動能力を超えてしまい通信ができなくなります。必ず回路構成上末端に配置される装置の終端抵抗のみをONにします。 | ||
+ | #ref(termreg.png) | ||
+ | |||
+ | ***PB1 [#ma8d1e5f] | ||
+ | 押下するとCPUのRESET端子がGNDに接地されます。しかし、RESET端子は実行中のファームウェアにより機能を変更する事ができるため、必ずCPUのリセットが行える訳ではありません。 | ||
+ | +リセット機能が有効の場合~ | ||
+ | 押下する度にCPUはリセットされ、放すとブートローダが起動し、書き込まれているファームウェアへ実行が遷移する。~ | ||
+ | ファームウェアが書き込まれていなければ、ブートローダのコマンドモードが起動する。 | ||
+ | +リセット機能が無効の場合~ | ||
+ | ファームウェアによりRESET端子がGPIOの入力端子として構成されていると、押下してもCPUへリセットを発行することができない。~ | ||
+ | ブートローダのコマンドモードを起動するには、電源のOFF/ONと併せてターミナル等からのコマンドが必要となる。 | ||
+ | |||
+ | ***センサ [#ob1cf9b1] | ||
+ | #ref(en.img2_vl53l0x.jpg) | ||
+ | [[VL53L0X>http://www.st.com/ja/imaging-and-photonics-solutions/vl53l0x.html]]を機能させるにはかなり面倒な手順が必要で、容易に目的の動作を実現することはほぼ不可能です。[[データシート>http://www.st.com/resource/en/datasheet/vl53l0x.pdf]]の記述は電気的な特性や簡単なフローの記述程度にとどめられており、実際にはST社の[[評価キット>http://www.st.com/content/st_com/ja/products/ecosystems/stm32-open-development-environment/stm32-nucleo-expansion-boards/stm32-ode-sense-hw/p-nucleo-53l0a1.html]]と[[API>http://www.st.com/content/st_com/ja/products/embedded-software/proximity-sensors-software/stsw-img005.html]]を用いて挙動を解析する以外に詳細を知る手段がありません。~ | ||
+ | また、機能を欲張るとST社のAPIによりCPUのメモリを食い潰してしまうため、本品では必要最低限の機能を用い、初期化・測距データ取得・4つのプロファイル切り替えのみに止めています。 | ||
+ | |||
+ | **開発環境 [#IDE] | ||
+ | 紹介する開発環境に含まれるツールの連携を次図に示します。おおまかには2つのパスをサポートします。 | ||
+ | #ref(DEV_OUTLINE.png,60%) | ||
+ | ***GCC Developer Lite [#GDL] | ||
+ | GCC Developer Liteの詳細については[[こちら>GCC Developer Lite]]。~ | ||
+ | フルインストールないしNXP LPC82xで使用を選択する事で必要なコンポーネントが自動的にインストールされます。 | ||
+ | LPC824で使用される主要なコンポーネントを簡単に示します。 | ||
+ | -''[[GCC Developer Lite>GCC Developer Lite#GCCDevL]]'' | ||
+ | ~ソースプログラムを編集するためのテキストエディタとその他のツールを起動するためのランチャ機能を有する。~ | ||
+ | #ref(GCC Developer Lite/GDL.png,50%) | ||
+ | -''[[SIMPLE TERM>GCC Developer Lite#STERM]]'' | ||
+ | ~汎用シリアルターミナル。簡易的なTELNETクライアントとしても機能する。~ | ||
+ | USB等で提供されるCOMポートの動的な検出と、COMポートを使用する弊社ツールとの排他制御機能を持つ。 | ||
+ | #ref(GCC Developer Lite/sterm.png,70%) | ||
+ | -''ARMGCC'' | ||
+ | ~ARMコア向けGCC(GNU Compiler Collection)。GCC Developer Liteより適宜呼び出され、ユーザソースのコンパイル・ライブラリ等とリンク・ファイルフォーマット変換等を行う。 | ||
+ | -''ターゲットファイル'' | ||
+ | ~LPC82xの内蔵ペリフェラルを定義したヘッダファイルやUARTを簡便に使うためのAPI、スタートアップルーチン、それらをコンパイルしてアーカイブしたライブラリファイル、GDBにてデバッグする際に使用する初期化ファイル、目的別に異なるメモリマップを定義したリンカスクリプトファイルを含む。 | ||
+ | |||
+ | ****ターゲットファイル [#TARGETFILES] | ||
+ | GCC Developer LiteではLPC82x用の設定を複数備えています。~ | ||
+ | 例えば、ARMコアの学習・組み込み向けCコンパイラの習熟・内蔵ペリフェラルの機能を試すといった段階ではJTAGを使ってRAM上でデバッグし、慣れてきたらブートローダを経由してprintfデバッグ、最終的に製品等としてリリースして完成させる時はフラッシュROMに、といった段階を踏む場合でもGCC Developer Liteのコンパイルオプションの設定リストから選択し直すだけで設定が完了します。~ | ||
+ | #ref(GDL_CompileOption_TargetList.png) | ||
+ | 以下に本品で有用な設定リストとその設定における主な機能を紹介します。 | ||
+ | -''LPC824 EXTRA (TERM, FREERTOS, EXTRA)'' | ||
+ | ~ブートローダを使用してフラッシュROM上へ転送して実行するファイルを生成。「LPC824 (TERM)」に加え、一部のペリフェラルを簡便に扱うためのライブラリと、FreeRTOSが使用可能。 | ||
+ | | 生成ファイルの拡張子 | .bin (バイナリ) | | ||
+ | | スタートアドレス | 0x00000c00 (フラッシュROM) | | ||
+ | | 転送ツール | [[SIMPLE TERM>GCC Developer Lite#STERM]] | | ||
+ | | ブートローダ | 必要 | | ||
+ | ****SIMPLE TERMとブートローダ [#STERM_BL] | ||
+ | ICEの様な特殊なI/Fを使用せずとも、汎用のシリアルI/Fで接続した環境だけでプログラムの書き換えが出来ます。 | ||
+ | |||
+ | SIMPLE TERMから該当するCOMポートを選択(COMポート番号はPCの環境によって変わるが、デバイス名に「STMicroelectronics Virtual COM Port (COMxxx)」が表示されたポートを選択)しオープンするとブートローダの各種コマンドが使用可能となります。SIMPLE TERMのポートの設定は以下の通りです。~ | ||
+ | Baudrate:115200 | ||
+ | Databits:8 | ||
+ | Stopbits:1 | ||
+ | Parity:Non | ||
+ | Flow Control:Non | ||
+ | Protocol:Xmodem | ||
+ | #ref(LPC824_BL_COM.png,100%) | ||
+ | |||
+ | 先の設定リストでソースプログラムをコンパイルし成功するとSTERM.exe(SIMPLE TERM)の起動を促されます。「OK」を押してSIMPLE TERMを起動すると、以下の条件でSIMPLE TERMが起動します。 | ||
+ | -既にSIMPLE TERMが実行中であれば2重に起動しない。 | ||
+ | -コンパイル済み.binファイルの情報が渡る(ステータスバーにて確認可)。 | ||
+ | -ユーザプログラムを転送する際の手順を記述したスクリプトファイルが使用できる様になる。 | ||
+ | |||
+ | #ref(LPC824_STERM_SCRIPT1.png,100%) | ||
+ | |||
+ | ブートローダがコマンドモードであれば、「スクリプト実行[STERM_LPC82x]」をクリックするだけでプログラムの書き換えにかかる処理(転送ファイルの選択・フラッシュROMの消去・転送)が全て自動的に行われます。 | ||
+ | #ref(LPC824_STERM_SCRIPT2.png,100%) | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | **ファームウェア [#v7641a00] | ||
+ | まず、ST社から提供される[[API>http://www.st.com/content/st_com/ja/products/embedded-software/proximity-sensors-software/stsw-img005.html]]を多少改造し、LPC82xのプラットホームに依存する部分を追加したものをライブラリにしています。このライブラリを各ファームウェアにリンクして使用します。~ | ||
+ | また、LPC824とセンサ・DACはI2C、各種シリアルポートはUSART0の各ペリフェラルを介して接続され、いずれもNXP社の[[LPCOpen Libraries>http://www.nxp.com/jp/products/microcontrollers-and-processors/arm-processors/lpc-cortex-m-mcus/software-tools/lpcopen-libraries-and-examples:LPC-OPEN-LIBRARIES]]をベースにしたLPC82x用ペリフェラルライブラリを介してアクセスします。~ | ||
+ | 更に、測定・通信・操作系等の複数の処理を同時に行う場合はマルチタスクOS([[FreeRTOS>http://www.freertos.org/]])を使用します。~ | ||
+ | なお、LPC824用のペリフェラルライブラリとFreeRTOSは最新の[[GCC Developer Lite]]にて提供されます。 | ||
+ | -共通仕様 | ||
+ | | 機能 |<| LPC824 |<|h | ||
+ | | デバイス等 | 端子 | 端子 | ペリフェラル |h | ||
+ | | LED1 | カソード | PIO0_24 (O) | GPIO | | ||
+ | | PB1 | - | PIO0_5 (I) | GPIO | | ||
+ | | DO用FET | ゲート | PIO0_13 (O) | GPIO | | ||
+ | | RS-485/TTL | DI | PIO0_16 (O) | USARTx | | ||
+ | |~| RO | PIO0_26 (I) | USARTx | | ||
+ | |~| RE/DE | PIO0_27 (O) | USARTx | | ||
+ | |~| TE | PIO0_25 (O) | USARTx | | ||
+ | | VL53L0X | SCL | PIO0_10 (I/O) | I2C0 | | ||
+ | |~| SDA | PIO0_11 (I/O) | I2C0 | | ||
+ | |~| GPIO1 | PIO0_15 (I) | GPIO | | ||
+ | |~| XSHUT | PIO0_1 (O) | GPIO | | ||
+ | | MCP4726 | SCL | PIO0_10 (I/O) | I2C0 | | ||
+ | |~| SDA | PIO0_11 (I/O) | I2C0 | | ||
+ | |||
+ | ***テキスト出力版ファームウェア [#rce65966] | ||
+ | シリアルI/Fを介してテキストにて測定結果を送信し続けます。基本サンプルプログラムとしての位置付で、センサの初期化と測定条件の変更、測距データの取得、ターミナルへの送信に限っています。 | ||
+ | -e141_terminal_single.c~ | ||
+ | 単発測定モード | ||
+ | -e141_terminal_continuous1.c~ | ||
+ | 連続測定モード+測定完了ポーリング | ||
+ | -e141_terminal_continuous2.c~ | ||
+ | 連続測定モード+GPIO割り込み | ||
+ | |||
+ | ***スタンドアロン版ファームウェア [#p208fb01] | ||
+ | 測距結果をアナログ電圧で出力させたり、指定した測距データをスレッショルドとしてON/OFFの出力を得ます。本体に備わった操作及び表示機能は1個のプッシュボタンスイッチと1個のLEDのみのため、押下時間や点灯パターンを駆使して操作を行います。 | ||
+ | -e141_standalone.c | ||
+ | |||
+ | ***Dynamixelクライアントプロトコル版ファームウェア [#he27f31a] | ||
+ | Dynamixelシリーズと同じI/Fである利点を生かし、測定条件や測定結果等の情報をコントロールテーブル上に配置し、Dynamixelプロトコルを用いてホストからそれらにアクセスします。また、複数のセンサや他のDynamixelシリーズと同じネットワーク上で使用する事が可能です。 | ||
+ | -e141_dx1_client.c~ | ||
+ | DynamixelプロトコルV1のクライアント機能 | ||
+ | -e141_dx2_client.c~ | ||
+ | DynamixelプロトコルV2のクライアント機能 | ||
+ | |||
+ | ****コントロールテーブル [#y4bb6b9b] | ||
+ | Dynamixelプロトコル対応のファームウェアを使用した際のコントロールテーブルです。 | ||
+ | |||
+ | -プロトコルV1 | ||
+ | |=''Address''|=''Item''|=''Access''|=''Default Value''|=''Type/Range''|h | ||
+ | |CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c | ||
+ | |0|BGCOLOR(beige):[[Model Number>#f8895243]]|R|16416(0x4015)|uint16| | ||
+ | |1|~|~|~|~| | ||
+ | |2|BGCOLOR(beige):[[Version of Firmware>#jc5551fd]]|R|?|uint8| | ||
+ | |3|BGCOLOR(seashell):[[ID>#u1feceb7]]|R/W (NVM)|1|uint8&br;0~253| | ||
+ | |4|BGCOLOR(seashell):[[Baudrate>#gd2e9bfc]]|R/W (NVM)|1|uint8&br;0~4| | ||
+ | |5|BGCOLOR(lightcyan):[[Write NVM>#iee6d02c]]|R/W|0|uint8&br;0~1| | ||
+ | |6|BGCOLOR(seashell):[[Terminator>#s3b8e058]]|R/W (NVM)|1|uint8&br;0~1| | ||
+ | |7|BGCOLOR(silver):(reserve)|R|-|uint8| | ||
+ | |8|BGCOLOR(seashell):[[LED>#db0623c9]]|R/W (NVM)|2|uint8&br;0~2| | ||
+ | |9|BGCOLOR(seashell):[[Ranging Profile>#p30472bb]]|R/W (NVM)|0|uint8&br;0~3| | ||
+ | |10|BGCOLOR(seashell):[[Average Number>#e17e9b8c]]|R/W (NVM)|0|uint8&br;0~19| | ||
+ | |11|BGCOLOR(seashell):[[Normal Number>#h2ede883]]|R/W (NVM)|1|uint8&br;0~4| | ||
+ | |12|BGCOLOR(seashell):[[Analog Out Gain>#w4b0b6c4]]|R/W (NVM)|-|uint16&br;0~32767| | ||
+ | |13|~|~|~|~| | ||
+ | |14|BGCOLOR(seashell):[[Digital Out Threshold>#ab599a38]]|R/W (NVM)|0|uint16&br;0~4095| | ||
+ | |15|~|~|~|~| | ||
+ | |16|BGCOLOR(beige):[[Effective SPAD Return Count>#xbe08035]]|R|-|uint16(Q8.8)| | ||
+ | |17|~|~|~|~| | ||
+ | |18|BGCOLOR(beige):[[Signal Rate>#n53662e8]]|R|-|uint16(Q7.9)| | ||
+ | |19|~|~|~|~| | ||
+ | |20|BGCOLOR(beige):[[Ambient Rate>#v2e8a25c]]|R|-|uint16(Q7.9)| | ||
+ | |21|~|~|~|~| | ||
+ | |22|BGCOLOR(silver):(reserve)|R|-|uint8| | ||
+ | |23|BGCOLOR(beige):[[Status>#eb36230c]]|R|-|uint8| | ||
+ | |24|BGCOLOR(beige):[[Distance>#oda8165a]]|R|-|uint16| | ||
+ | |25|~|~|~|~| | ||
+ | |||
+ | -プロトコルV2 | ||
+ | |=''Address''|=''Item''|=''Access''|=''Default Value''|=''Type/Range''|h | ||
+ | |CENTER:|LEFT:|CENTER:|CENTER:|CENTER:|c | ||
+ | |0|BGCOLOR(beige):[[Model Number>#f8895243]]|R|16416(0x4015)|uint16| | ||
+ | |1|~|~|~|~| | ||
+ | |2|BGCOLOR(beige):[[Model Information>#f8895243]]|R|0|uint32| | ||
+ | |3|~|~|~|~| | ||
+ | |4|~|~|~|~| | ||
+ | |5|~|~|~|~| | ||
+ | |6|BGCOLOR(beige):[[Version of Firmware>#jc5551fd]]|R|?|uint8| | ||
+ | |7|BGCOLOR(seashell):[[ID>#u1feceb7]]|R/W (NVM)|1|uint8&br;0~252| | ||
+ | |8|BGCOLOR(seashell):[[Baudrate>#gd2e9bfc]]|R/W (NVM)|1|uint8&br;0~4| | ||
+ | |9|BGCOLOR(lightcyan):[[Write NVM>#iee6d02c]]|R/W|0|uint8&br;0~1| | ||
+ | |10|BGCOLOR(seashell):[[Terminator>#s3b8e058]]|R/W (NVM)|1|uint8&br;0~1| | ||
+ | |11|BGCOLOR(silver):(reserve)|R|-|uint8| | ||
+ | |12|BGCOLOR(seashell):[[LED>#db0623c9]]|R/W (NVM)|2|uint8&br;0~2| | ||
+ | |13|BGCOLOR(seashell):[[Ranging Profile>#p30472bb]]|R/W (NVM)|0|uint8&br;0~3| | ||
+ | |14|BGCOLOR(seashell):[[Average Number>#e17e9b8c]]|R/W (NVM)|0|uint8&br;0~19| | ||
+ | |15|BGCOLOR(seashell):[[Normal Number>#h2ede883]]|R/W (NVM)|1|uint8&br;0~4| | ||
+ | |16|BGCOLOR(seashell):[[Analog Out Gain>#w4b0b6c4]]|R/W (NVM)|-|uint16&br;0~32767| | ||
+ | |17|~|~|~|~| | ||
+ | |18|BGCOLOR(seashell):[[Digital Out Threshold>#ab599a38]]|R/W (NVM)|0|uint16&br;0~4095| | ||
+ | |19|~|~|~|~| | ||
+ | |20|BGCOLOR(beige):[[Effective SPAD Return Count>#xbe08035]]|R|-|uint16(Q8.8)| | ||
+ | |21|~|~|~|~| | ||
+ | |22|BGCOLOR(beige):[[Signal Rate>#n53662e8]]|R|-|uint16(Q7.9)| | ||
+ | |23|~|~|~|~| | ||
+ | |24|BGCOLOR(beige):[[Ambient Rate>#v2e8a25c]]|R|-|uint16(Q7.9)| | ||
+ | |25|~|~|~|~| | ||
+ | |26|BGCOLOR(silver):(reserve)|R|-|uint8| | ||
+ | |27|BGCOLOR(beige):[[Status>#eb36230c]]|R|-|uint8| | ||
+ | |28|BGCOLOR(beige):[[Distance>#oda8165a]]|R|-|uint16| | ||
+ | |29|~|~|~|~| | ||
+ | --データ幅が16bitないし32bitのアイテムはリトルエンディアン(データの下位バイトから順に格納)。 | ||
+ | --Accessに(NVM)とあるアイテムは不揮発メモリとなっており、電源を切っても値が保持される。また頻繁な書き換えは想定されていないため、書き換えは必要最低限にとどめること。 | ||
+ | --(reserve)はシステムで予約され、読み出した値に有効性はない。また、書き込みを行ってはならない。 | ||
+ | --Default Valueは出荷時ないしファクトリーリセットを行った際の値。又、ファームウェアのバージョンによって値が変更される場合がある。 | ||
+ | |||
+ | *****Model Number/Model Information [#f8895243] | ||
+ | 本品固有の値を保持します。異なる種類のDynamixelを混在して使用する際の個体識別等に使用できます。 | ||
+ | |||
+ | *****Version of Firmware [#jc5551fd] | ||
+ | 内蔵されるCPUに書き込まれたプログラムのバージョンです。ファームウェアの更新を行った際に合わせて自動的に変更されます。 | ||
+ | |||
+ | *****ID [#u1feceb7] | ||
+ | 各Dynamixelを特定するための固有の値です。同一ネットワーク内に存在するDynamixelには各々異なるIDが要求されます。 | ||
+ | |||
+ | *****Baudrate [#gd2e9bfc] | ||
+ | 通信する際のボーレートです。ホストDynamixelのボーレートは一致させなくてはなりません。 | ||
+ | -プロトコルV1~ | ||
+ | 通信速度を決める分周値で、通信速度は次式で導かれます。 | ||
+ | Baudrate[bps] = 2000000 / (Value + 1) | ||
+ | -プロトコルV2 | ||
+ | |CENTER:50|RIGHT:50|c | ||
+ | |Value|CENTER:Baudrate [bps]|h | ||
+ | |0|9600| | ||
+ | |1|57600| | ||
+ | |2|115200| | ||
+ | |3|1000000| | ||
+ | |4|2000000| | ||
+ | |||
+ | *****WriteNVM [#iee6d02c] | ||
+ | 1を書き込むとコントロールテーブルのNVMとあるアイテムの値を保存します。パワーサイクル毎に保存された値がアイテムの初期値となります。 | ||
+ | |||
+ | *****Terminator [#s3b8e058] | ||
+ | 1を書き込むとRS-485 I/Fの終端抵抗がON、0を書き込むとOFFになります。~ | ||
+ | なお、TTL I/F版において未使用となるRS-485 I/Fの影響を回避するため、常時1を指定する必要があります。 | ||
+ | |||
+ | *****LED [#db0623c9] | ||
+ | 0を書き込むとLEDが消灯、1を書き込むとLEDが点灯します。2を書き込むと[[Status>#eb36230c]]と測定周期に応じて明滅します。 | ||
+ | |||
+ | *****Ranging Profile [#p30472bb] | ||
+ | 測定条件を選択します。~ | ||
+ | 変更には数百msの時間を要し、その間パケット処理は停止します。 | ||
+ | | Value | Profile | Description | Typical application |h | ||
+ | | 0 |Default|周期30ms&br;最大1.2m&br;[[標準精度>#accuracy]]|標準 | | ||
+ | | 1 |High arccuracy|周期200ms&br;最大1.2m&br;精度<±3%|精度優先 | | ||
+ | | 2 |Long range|周期33ms&br;最大2m&br;[[標準精度>#accuracy]]|距離優先で暗い条件 (no IR) | | ||
+ | | 3 |High speed|周期20ms&br;最大1.2m&br;精度±5%|速度優先 | | ||
+ | |||
+ | &aname(accuracy); | ||
+ | 標準精度 | ||
+ | | | Indoor (no infraed) |<|<| Outdoor |<|<|h | ||
+ | | 対象反射率 | 距離 | 33ms | 66ms | 距離 | 33ms | 66ms |h | ||
+ | | 白(88%) | 120cm| 4%| 3%| 60cm| 7%| 6%| | ||
+ | | 灰(17%) | 70cm| 4%| 6%| 40cm| 12%| 9%| | ||
+ | |||
+ | *****Average Number [#e17e9b8c] | ||
+ | [[Status>#eb36230c]]が0の時に測距データを平均化する際のサンプル数を指定します。~ | ||
+ | Statusが0以外の時に内部の平均値はリセットされます。 | ||
+ | |||
+ | *****Normal Number [#h2ede883] | ||
+ | 内部的には正常測定処理にもかかわらず不定な値が検出されるのを回避するためのカウント値です。~ | ||
+ | このカウント値の回数だけ[[Status>#oda8165a]]が0の状態で連続的に測定がなされると、以後[[Distance>#eb36230c]]が更新されます。 | ||
+ | *****Analog Out Gain[#w4b0b6c4] | ||
+ | [[Distance>#oda8165a]]にGainを乗じてAO端子から出力します。また、VREFでDAコンバータの最大出力電圧を3.3Vと5Vから選択します。 | ||
+ | |||
+ | | ~Bit | 15 | 14~0 | | ||
+ | | ~Value | VREF:0=3.3[V],1=5.0[V] | Gain:0~32767[‰] | | ||
+ | |||
+ | VREF=0 | ||
+ | AO[V] = Distance * 3.3[V] / 4096 * Gain / 1000 | ||
+ | |||
+ | VREF=1 | ||
+ | AO[V] = Distance * 5[V] / 4096 * Gain / 1000 | ||
+ | |||
+ | なお、3.3V及び5Vはいずれも内部電源をリファレンスとしており、負荷条件等により最大5%程度の誤差が生じる場合があります。~ | ||
+ | また、Gainに0を設定すると、DAコンバータはパワーダウンモードになります。 | ||
+ | |||
+ | *****Digital Out Threshold [#ab599a38] | ||
+ | [[Distance>#oda8165a]]がこの値以下になるとDO端子がLOWになり、超えるとハイインピーダンスになります。 | ||
+ | |||
+ | *****Effective SPAD Return Count [#xbe08035] | ||
+ | [[Effective SPAD Return Count>#xbe08035]]~[[Distance>#oda8165a]]は1回の測定毎に更新される測定データです。これらのアイテムの同時性を保つには、1回のインストラクションパケットで一括受信する必要があります。~ | ||
+ | |||
+ | SPAD(Single photon avalanche diode)リターンカウントです。~ | ||
+ | 整数部8bit、小数部8bitの固定小数点となります。 | ||
+ | Effective SPAD Return Count = ((Value & 0xff00) >> 8) + ((Value & 0xff) / 256) | ||
+ | |||
+ | *****Signal Rate [#n53662e8] | ||
+ | 検出対象の反射率です。~ | ||
+ | 整数部7bit、小数部9bitの固定小数点となります。 | ||
+ | Signal rate [Mcps] = ((Value & 0xfe00) >> 9) + ((Value & 0x1ff) / 512) | ||
+ | |||
+ | *****Ambient Rate [#v2e8a25c] | ||
+ | 環境光です。~ | ||
+ | 整数部7bit、小数部9bitの固定小数点となります。 | ||
+ | Ambient rate [Mcps] = ((Value & 0xfe00) >> 9) + ((Value & 0x1ff) / 512) | ||
+ | |||
+ | *****Status [#eb36230c] | ||
+ | レンジステータスです。~ | ||
+ | ステータスが0以外の[[Distance>#oda8165a]]は距離としての意味を持ちません。 | ||
+ | | Value | Status | Description |h | ||
+ | | 0 | Range Valid |測距有効 | | ||
+ | | 1 | Sigma Fail |シグマリミットチェック失敗 | | ||
+ | | 2 | Signal Fail |信号チェック失敗 | | ||
+ | | 3 | Min Range Fail |最小範囲チェックに失敗 | | ||
+ | | 4 | Phase Fail |フェーズチェック失敗 | | ||
+ | | 5 | Hardware Fail |ハードウェアチェック失敗 | | ||
+ | | 255 | None |No Update | | ||
+ | |||
+ | *****Distance [#oda8165a] | ||
+ | 対象との距離です。精度についてはセンサの設定及び性能に依存します。~ | ||
+ | [[Status>#eb36230c]]がレンジ外やエラー等を示した場合は、センサの測距値ではなくオーバーフローを意味する8191となります。 | ||
+ | Distance [mm] = Value | ||
+ | |||
+ | **その他 [#zef2aa2c] | ||
+ | ***注意事項 [#k843441d] | ||
+ | -密度の濃い煙やホコリも反射物として検出する | ||
+ | -既存の赤外線リモコンに影響がある | ||
+ | -直射日光が当たる環境では検出距離や精度が極端に落ちる | ||
+ | -本品をねじったり曲げると故障する~ | ||
+ | #ref(E141_bend.png,70%) | ||
+ | -評価テスト版は以下の相違がある | ||
+ | --RS-485ドライバに終端抵抗が内蔵されず、代替でR11に1.5kΩの抵抗装備 | ||
+ | --内部ロジック用の5V電源が3.7V | ||
+ | --DOの製品版とは仕様の乖離があり、耐圧は24V、最大シンク電流は100mA |