通信


センサーやアクチュエータと呼ばれる入出力コネクタと通信 “ピン”

センサーおよびアクチュエータを通じて標準的なピンと通信しなければなりません。 3 線のみ. 最初のドライバー (GND) 質量は、します。, 2 番目のドライバー (+5V) 電源は、’, 3 指揮者 (SIG) 信号は、します。. ピンはすべて同じ、それらはすべてが出てくることができるものとして両方を構成.

マスター モジュールは、SlaveServo、InOut の六つのピンを持っている 10 およびモジュール CapSensor なし.

6 ピン c ’ 碑文です “ピンうちの”. によって書かれたこの混乱しないでください。. 6 ピンはすべて同じ、設定可能なすべて, とは, 彼らが出てくる.

とき書かれて読みにくくすることができます接続を行う, それを知って良いことです。: Theremino システムのすべてのコンポーネントで, 接続 GND は常に板の端に近い.

ピンが外から電圧を生成するように構成されています。 0 で 3,3 ボルト, 電圧を受け入れるように構成されています。 0 で 3.3 ボルト. 現在の制限をする必要がありますこの範囲外の電圧入力ピンに適用した場合 100 au 最大 (ピンの近くに少なくとも 33 k からの抵抗で) USB 通信それ以外は邪魔ともシャット ダウンすることがあります。.

長いリンクの場合, また読む このページ.

ここでは、サンプル リンクです。


PullUp しなくてもスイッチやボタンを接続します。

スイッチに接続する 2 つの方法を参照してくださいここで, マイクロ スイッチ, リードとボタン. 最初の方法は単純ですが、後者は干渉に強い.

上部には、直接接続を参照してください。 (プルアップで入力端子を設定します。)

下部には、保護抵抗器を使ってショートカットを参照してください。 (入力ピンがプルアップなしを設定します。). 価値の非常に高い抵抗の存在, ワイヤー シリーズ “信号”, 電流を制限します。, たとえ超非常に高電圧 (また数百ボルト). これにより、USB 通信を妨げることはないこと, 強力なノイズにも, 長い線に誘起されます。, 外部電源装置, モーターや電源をリレーします。.

代わりに、ボタンを接続の場合, 電圧を測定するか (ADC として構成されている入力端子、) 330 K からの抵抗は、あまりにも多くの電圧降下を原因となります。, 33 K に減らすべきであると. またこの場合は 10 k の抵抗と排除すべき.


強い電気ノイズの場合にボタンを接続します

前のセクションで示した解決策は、PCとマスタ通信を保護します, それは誤って解釈される短パルスノイズを防ぐことはできません。, ボタンのマニュアル閉として、.

だから、過酷な環境で, ワイヤは次ソレノイドやモータの電源配線にボタンを渡す場合には、例えば, コンデンサを追加することをお勧めいたします. このコンデンサは、10分の1秒よりも短いパルスを除去し、さらに超非常に高い電圧の場合に保護を増大させます.

下の2枚の写真は、これらの接続の配線と配線図を示し、 (拡大画像をクリックしてください).

プッシュボタンフィルター プッシュボタンフィルター

次の画像は、ワイヤに直接接続を確立する方法を示して (拡大画像をクリックします。).

プッシュボタンフィルターAirWires

 

メスコネクタ付きのケーブルを使用して, 構成要素はまた、ワイヤ上に直接はんだ付けすることができ.

次に、熱収縮性シースの切れ端でコンポーネントを埋めることができ.

別の方法としては、小型基地正方行列のボードを使用することができます.

 

あなたはこれらのリンクを使用する場合ことを思い出してください (保護抵抗付き), 次の操作が必要 入力ピンがプルアップなしを設定します。.

また、ことを覚えておいてください, 代わりの接続ボタンは、電圧測定をした場合 (ADC として構成されている入力端子、), 330 K からの抵抗は、あまりにも多くの電圧降下を原因となります。, 33 K に減らすべきであると. またこの場合は 10 k の抵抗と排除すべき. また、コンデンサの添加は約ADCの帯域幅を制限します 10 Hz.


マスターとスレーブのピン接続

シールド ケーブルを接続することの例としてみましょう, 3 つのピンと偉大な距離で 5 v の信号を実行するには.

ここで見られるように単一コネクタ付きシールド ケーブルを切ることができます。 (拡大する写真をクリックします。). 青い線, ライト グリーンと黄色が 3 つの信号, 赤の線は 5 ボルト、暗い緑の線は質量.

ソリューションの構築が困難で信頼性が低いですが、. これらの写真は、加速度計, すべての他の実験室ベンチから頻繁に移された ’. 数ヶ月後 5 のワイヤの 2 つを破った, マスターにつながる RCA コネクタの上.

3 つの標準の拡張子を犠牲により:

半減延長コード提供良質メスコネクタ, ワイヤーがお陰で非常に堅牢です. コネクタのみの価格の数分の 1 の 10 の袋を買うことができます。 標準拡張機能から趣味の王様.

シールド ケーブルの息子と延長コードが簡単に接続します。. カバー熱収縮シース接続して取得、堅牢でプロフェッショナル ケーブル.

ここでは右行わリンク.

3 つの赤い線は 5 ボルトを運ぶし、接続, すべて一緒に, 赤い線がシールド ケーブル. 茶色の線で質量、接続, すべての 3 つ, シールド ケーブルのストッキング. 3 つの黄色の線がピンの入出力信号です。 1, 2 と 3 彼らは 3 つの内部のシールド ・ ケーブルの配線にリンクされています。.

シールド ・ ケーブルの反対側には同じ, ケーブルの 2 番目の半分の女性と.

長いリンクの場合, また読む このページ.


スレーブし、マスターのモジュールはシリアル経由で通信モジュール

Theremino マスターを提供するシリアル回線はありません通常 RS232 または RS485 です。. しかし、特別な行を送受信信号の単一繊維に, 当社が開発した DPM プロトコル. その利点は、高速通信とモジュールの自己認識. 詳しい情報はこちら: 技術/プロトコル

多くのスレーブ モジュールはマスターのシリアル ラインに接続ことができます。.

センサーに関しては, シリアル回線接続用, 通常のサーボの拡張コマンドを使用してください。, www.hobbyking.com で偉大な価格で利用できます。

Connectors

ブラウン地面を =
赤 = + 5 v
黄色信号を =

2 線式シリアル通信を行うことができます非常に長いまたは特別なニーズの電源接続 (質量と信号), おそらくのうちシールド ケーブル. 詳細については、セクション 長い接続とノイズ耐性


マスターとコンピューターが USB 経由で通信します。

区切られた USB 行を同じ PC に複数のマスターもを同時に接続することができます、それらのすべてが同じアプリケーション HAL によって認識されます。.

複数の USB 線を使用し、複数マスターが通信速度を向上させるいくつかのケースで可能. 他のケースで、それはいくつか専門になるマスター レンズと最大リフレッシュ レートを必要とするチャネルとの通信に他の通信.

USB ケーブルは特別べきではないです。, 良い品質や特に裁判所. 我々 は、長いケーブルを試してみた (10 メートル) シリーズのより多くのワイヤーとのリンク (延長コード) 彼らはすべてが完璧に働いたと. Theremino システムは、USB プロトコルを使用します。 2.0, エラーが発生せずに接続することが可能だったが、, 標準的なハブを経由, また USB 1.0.


プログラムは HAL 通信ハードウェア モジュールをスロットを保持します。

Theremino HAL

 

 

 

 

 

 

 

 

 

Theremino HAL Slots

L ’ HAL ( ハードウェア抽象化レイヤー ) USB 通信およびハードウェアの複雑さを簡素化 ’ 番号のすべての信号を変換 “フロート” 入力出力で記述されています。 0 で 999 ノミネート “スロット”, またはそれらによって読み取られに送信 ’ ハードウェア.

.

 

 


スロット

、 “スロット” システム Theremino から番号によって識別されます。 0 で 999 名前の MemoryMappedFile のすべての部分は、 “Theremino1”.

各スロットが含まれています “フロート” 読み取りまたは Theremino システムの任意のコンポーネントに記入できること.

この画像で HAL のみ書き込みますスロットが、現実にはすべてのシステム コンポーネントは、スロットのいずれかに書き込みを読むことができます。, ただし、他で既に使用されて.

、 1000 使用可能なスロットが使用可能な自由に 1 つだけのルールがあります。:

多くのアプリケーションと多くのピンは同じスロットを読むことができます。, 同じスロットの多くの書き込みを避ける必要がありますが、, そう何も壊れないが、結果は定義されていません.

同じスロットに複数のデータ ストリームを送信する場合、データが混在する、記述する最後の 1 つに勝つ, 整然としたファッションのルール内のデータが必要なマージしたい場合.

スロットの間の算術演算と論理の規則を確立するには, 行動の複雑なアルゴリズムを記述するも, 私たちは"Theremino_Script"または C++ のようなプログラミング言語を使用してください。, CSharp, VBNET, VB6, Python やパスカル, 康として視覚言語を使用することも, 処理, です: PureData, LabVIEW と EyesWeb.

利用可能なプラグインとここでの例は、康: ダウンロード/基礎


テキスト文字列のスロット

SlotTextは通常のスロットに似ています, 同様のアドレスを持っている (差出人 0 で 999) そしてそれらはそれらと同様の方法で使用されますが、スロットとは異なります, 数字を含む (整数または浮動小数点), SlotTextには文字列が含まれています.

内部で使用される文字は、さまざまな言語で記述できるようにUnicodeタイプです。 (例えば中国人) 各文字に2バイトを使用します.

各SlotTextには、最大で最大のテキスト文字列を含めることができます。 100 千文字. あなたが超えた場合 100 テキストの代わりに1000文字の短いエラーメッセージが書き込まれます.

SlotTextはMemoryMappedFileを使用しません “Theremino1”, ただし、SlotTextごとに異なるMemoryMappedFilesを使用します. これらのファイルの名前の範囲は “ThereminoSS0” で “ThereminoSS999” (テレミノストリングスロットごとにテレミノSSstaを鳩).

そして最後に、SlotTextはアプリケーション間の通信にのみ使用でき、HALおよびマスターまたはArduinoモジュールとの通信には使用できません。.

現在 (六月 2022) SlotTextを使用する唯一のアプリケーションは:
– QRdecoder, QRコードとバーコードでデコードされたテキストにそれらを使用します.
– オートメーション (バージョンから 7 以降), SlotTextを読み書きするためのSlotTextコマンドを提供します.
– SlotViewer, 新しいバージョンでは、数値スロットとテキストスロットの両方を使用できます.
– コボット, 外部からコマンドを受信したり、イベントを使用して非同期コマンドをオートメーションに送信したりすることもできます “コボットからのコマンド”.

自動化とCOBOTアプリケーション間の通信を使用するには、自動化命令ファイルの次のページをお読みください:

  • SlotText
  • Event_CommandsFromCobot
  • COBOTから自動化へのコマンド
  • 自動化からCOBOTへのコマンド

フォルダーに “ソース” オートメーションの (常にバージョンから 7 今後は、の終わりまでに公開します 2021) 新しいファイルが見つかります “Class_ThereminoStrings.vb” プログラマーがSlotTextをアプリケーションに追加するためにも使用できる.


メモリ マップト ファイル

スロットは、に基づいて、 “メモリ マップト ファイル” あまり知られていないが、非常に有用であります。.

を通信 “メモリ マップト ファイル” 非常に効率的です。, 数十マイクロ秒の数値の何百もの転送をすることができます。 “フロート” 別のプログラム間, 別のスレッドと異なる言語で記述.

、 “メモリ マップト ファイル” 呼ばれる “Theremino1” それは長い 4096 バイトが含まれていると、 1000 Theremino システムで使用するスロット. システムのすべてのプログラム Theremino を記述して、データの読み取り, 浮動小数点の形式で, で 1000 このファイルのスロット.

各スロットは、低使用する場合レベルのストレージ機能する 4 バイトを乗算する必要があります、 “スロット” l を取得する 4 つの ’、MemoryMappedFile でバイト インデックス.

テストおよびサンプル プログラム, ソースと, 主なプログラミング言語で. これらの例を使用して任意のプログラム システム Theremino と通信する機会を装備するために非常に簡単です。.

また利用できるが、 “外部” スコットと Max5 ファイルが見つかりました “MaxInstall.zip”. この方法では、通信することが可能 “パッチ” システムに最大で “Theremino” MemoryMappedFiles を.


標準的なケーブルとの接続

ピン間のすべての接続に対して, センサー、アクチュエータ、シリアル通信は非常に快適な通常サーボ延長コマンドで偉大な価格で利用できます。 “www.hobbyking.com” セクションの “ハードウェアと付属品” / “配線とプラグ” / “サーボ線 & サーボ プラグ”

オス-メス コネクタ付け標準ケーブル

ブラウン赤 Gnd を = = + 5 v 黄色信号を =
  • 最大電流 0.5 アンプを使用します。 26 AWG (0.13 mmq)
  • 最大電流 1 または 2 アンプを使用します。 22 AWG (0.33 mmq)

高電流と非常に長い行の接続ケーブルの詳細については, 目標価格とセクションのリンク: 接続ケーブル


浮動小数点
(ナンバースロットに有効な最小値と最大値)

数字 “フロート” 浮動小数点数から 32 ビット (単精度). Theremino システムを常に使用して、 “フロート” 数字の代わりに “整数” または “ダブル” 次の理由により:

1) 長いだけ 32 ビットの読み取りし、書き込みは、プロセッサの 1 つのステートメントでエラーを避けるための同期機構を必要と.

2) エラーなしまたは-16 '+16 'to' ' 000 000 000 から任意の数を四捨五入小数点付きの数字がありますが 000-odd, 値を簡単に含まれていると 0 で 65535 (16 ビット) までも 24 最高の既存のセンサーとアクチュエータのビット.

3) 送信する使用することができます。 16 何百万もの異なる通信 “サービスの” NaN 値を使用してください。 (数字ではなく) Nan ( シグナル型非数 ).

4) 彼らは特殊な値もあります。 “+インフィニティ” と “-インフィニティ”, 計算は、非常に高い値を生成する場合に便利.

5) 精度、 “フロート” 必要な精度よりも倍以上の数百万数千人からは、します。, 通信にのみ、計算を実行できないようにするためのものなので.

6) 現在のすべての転送 32 1 つのステートメント内のビット, cui l あたり ’ efficienza è massima e programmi separati possono comunicare ポチ microsecondi のため.

Maggiori によってあたり隋ヌメリブドウカバ “フロート” 一覧ル pagine seguenti.

– – – – – –

フロート – 単精度, 32 ビット, 浮動小数点数

正の最大: 3.4028235 E + 38
肯定的な分: 1.401298 E-45

負の最大: -3.4028235 E + 38
否定的な分: -1.401298 E-45

丸め誤差が発生することがなく格納された最大整数 : +16’ 777 ’ 216
最小整数丸め誤差なしで格納 : -16’ 777 ’ 216

最大整数の可視化 (7 丸みを帯びた数字): +9’ 999 ’ 999
最小整数の可視化 (7 丸みを帯びた数字): -9’ 999 ’ 999

+ゼロ: 0 00000000 00000000000000000000000 (0000 0000)
-ゼロ: 1 00000000 00000000000000000000000 (8000 0000)
+インフィニティ: 0 11111111 00000000000000000000000 (7F80 0000)
-インフィニティ: 1 11111111 00000000000000000000000 (FF80 0000)

肯定的な NAN
差出人: 0 11111111 00000000000000000000001 (7F80 0001)
宛先: 0 11111111 01111111111111111111111 (7FBF FFFF) (4’ 194 ’ 303 値)

負 NAN
差出人: 1 11111111 00000000000000000000001 (FF80 0001)
宛先: 1 11111111 01111111111111111111111 (FFBF FFFF) (4’ 194 ’ 303 値)

肯定的なナン
差出人: 0 11111111 10000000000000000000000 (7FC0 0000)
宛先: 0 11111111 11111111111111111111111 (7FFF FFFF ) (4’ 194 ’ 304 値)

負のナン
差出人: 1 11111111 10000000000000000000000 (FFC0 0000)
宛先: 1 11111111 11111111111111111111111 ( FFFF FFFF ) (4’ 194 ’ 304 値)

– – – – – –

特殊な値

IEEE は、すべて 0 と浮動小数点方式に特別な値を示すためにすべての 1 の指数部のフィールド値を有します.

ゼロ – 上述の通り, ゼロはストレート形式で直接表現できません。, リードする前提が原因 1 (ゼロの値を yield するゼロの仮数は、true を指定する必要があります我々). 0 は 0 の指数フィールドと分数フィールドがゼロの示される特別な値. 注意してください。 -0 と +0 個別の値は、します。, しかし両者の比較が等しく.

非正規化 – 指数部がすべて 0 の場合, 分数がゼロではないが、 (他それはゼロと解釈されるだろう), その後、値は非正規化数です。, 想定したリードをないです。 1 バイナリのポイントの前に. このように, これは数を表します (-1)s × 0.f × 2-126, ここ s は符号ビット、f は分数. 倍精度の, 非正規化数がフォームの (-1)s × 0.f × 2-1022. これから非正規化数の特別な種類として 0 を解釈できます。.

インフィニティ – 値 + および - 無限大は、すべて 1 の指数部とすべて 0 の割合と示されています. 負の無限大、正の無限大が区別されます符号ビット. 特定の値は有用な操作を過去のオーバーフロー状況を継続できますので、無限を示すためにできること. 無限の値を持つ操作の定義 IEEE 浮動小数点.

数字ではなく – 値 NaN (数字ではなく) 実数を表していない値を表すために使用します。. ナン ’ s はすべて 1 と 0 以外の割合の指数部を持つビット パターンで表される. NaN の 2 つのカテゴリがあります。: QNaN (クワイエット型非数) SNaN (シグナリング NaN).

QNaN – QNaN は分数の最上位のビットが設定されたナンです。. QNaN ’ s はほとんどの算術演算を通して自由に伝播. 結果は数学的に定義されていない場合、これらの値が操作に飛び出す.

SNaN – SNaN は最も重要な画分のビットをクリアでナン. それを使用しての操作で使用すると、例外を通知. SNaN ’ s は早期使用のトラップに初期化されていない変数に割り当てると便利することができます.

意味, QNaN ’ s を表す不定操作, SNaN をしながら ’ s が無効な操作を示す.

– – – – – –

特別な操作

特別な数の演算は、IEEE によって明確に定義. 最も単純なケースで, NaN NaN を操作の結果します。. その他の操作は、次のとおりです。:

操作 結果
n ÷ ±Infinity 0
±Infinity × ±Infinity ±Infinity
±nonzero ÷ 0 ±Infinity
インフィニティ + インフィニティ インフィニティ
± 0 ÷ ± 0 ナン
インフィニティ – インフィニティ ナン
±Infinity ÷ ±Infinity ナン
±Infinity × 0 ナン

– – – – – –

概要

記号 指数 (と) 分数 (f)
0 00..00 00..00 +0
0 00..00 00..01
:
11..11
例外的な正実
0.f × 2(-b+1)
0 00..01
:
11..10
XX.XX 正規化された正の実
1.f × 2(b)
0 11..11 00..00 +インフィニティ
0 11..11 00..01
:
01..11
SNaN
0 11..11 10..00
:
11..11
QNaN
1 00..00 00..00 -0
1 00..00 00..01
:
11..11
負正規化されない現実
-0.f × 2(-b+1)
1 00..01
:
11..10
XX.XX 正規化された負の実
-1.f × 2(b)
1 11..11 00..00 -インフィニティ
1 11..11 00..01
:
01..11
SNaN
1 11..11 10..00
:
11.11
QNaN

コメントはクローズされます。.