Outputs
対応する出力デバイスの全一覧は対応する出力デバイスを参照してください。
出力は、デバイスを動作させるさまざまな信号を生成できます。出力は、GPIOピン上のHIGH/LOW 信号、パルス幅変調(PWM)信号、315/433 MHz信号を使って無線周波数で動作するリレーを 切り替えたり、ポンプやモーターを駆動したり、LinuxやPythonのコマンドを実行したりできます。
追加リストでデバイスを探す~
ページ上部のドロップダウンは、対応デバイスを負荷の駆動方式別にグループ分けして表示します (ポンプ・定量注入、比例制御(PWM)、値の設定、オン/オフ切り替え)。AoT独自のデバイスが 先頭に表示されます。検索ボックスは、デバイス名、モジュール名、インターフェース、そして 使用中の言語での測定名にマッチします。
カスタム出力~
AoTには、カスタム出力を作成してAoTシステム内で使用できるようにする、カスタム出力 インポートシステムがあります。カスタム出力は、[歯車アイコン] -> 構成 -> カスタム出力 ページでアップロード・インポートできます。インポート後は、Setup -> Output ページで 使用できます。
動作するモジュールを開発した場合は、新しいGitHub Issueの作成 またはプルリクエストの送付をご検討ください。そのモジュールが内蔵セットに含まれる ことがあります。
正しい形式の例は、AoT/aot/outputs ディレクトリ内の内蔵モジュールを開くと確認できます。また、 AoT/aot/outputs/examples ディレクトリには、カスタム出力の例が含まれています。
新しい測定値・単位が必要な出力については、[歯車アイコン] -> 構成 -> 測定値一覧 ページで追加できます。
出力オプション~
| 設定 | 説明 |
|---|---|
| ピン(GPIO) | 出力信号に使用するGPIOピンです。BCM番号方式を使用します。 |
| WiringPiピン | 出力信号に使用するGPIOピンです。WiringPi番号方式を使用します。 |
| オン状態 | デバイスをオンにするGPIO信号の状態です。HIGHは3.3ボルトの信号を、LOWは0ボルトの信号を送ります。出力が3.3ボルトの信号で回路を成立させてデバイスがオンになる場合はHIGHに設定してください。0ボルトの信号でデバイスがオンになる場合はLOWに設定してください。 |
| プロトコル | 315/433 MHzで送信する際に使用するプロトコルです。既定値は1です。動作しない場合は数値を増やして試してください。 |
| UARTデバイス | デバイスに接続されているUARTデバイスです。 |
| ボーレート | UARTデバイスのボーレートです。 |
| I2Cアドレス | デバイスのI2Cアドレスです。 |
| I2Cバス | デバイスが接続されているI2Cバスです。 |
| 出力モード | 対応している場合の出力モードです。 |
| 流量 | 一定量を注入するための流量(ml/min)です。 |
| パルス長 | 315/433 MHzで送信するパルス長です。既定値は189 msです。 |
| ビット長 | 315/433 MHzで送信するビット長です。既定値は24ビットです。 |
| 実行ユーザー | Linuxコマンドを実行するユーザーを選択します。 |
オン/オフ(GPIO)~
オン/オフ(GPIO)出力は、GPIOピンをHIGH(3.3ボルト)またはLOW(0ボルト)に切り替えます。 これは、リレーのような電気機械式スイッチを制御して電気デバイスのオン・オフを行うのに 便利です。
リレーは、(例えばマイクロプロセッサが生成するような)小さな電圧信号を使って、はるかに 大きな電圧を作動させる電気機械式または半導体式のデバイスであり、低電圧システムが高電圧の 危険にさらされないようにします。
出力タブで出力を追加・設定してください。出力は、システムの他の部分で使用される前に、 正しく設定されている必要があります。
有線リレーを設定するには、「GPIOピン」(BCM番号方式を使用)を、HIGH(5ボルト)と LOW(0ボルト)を切り替えるピンに設定します。これはリレーやその他のデバイスを作動させる のに使われます。「オントリガー」は、デバイスをオンにする信号の状態(HIGHまたはLOW)に 設定する必要があります。例えば、コイルの電位が0ボルトのときにリレーが作動する場合は、 「オントリガー」を「LOW」に設定してください。逆に、コイルの電位が5ボルトのときに リレーが作動する場合は「HIGH」に設定してください。
パルス幅変調(PWM)~
パルス幅変調(PWM)は、特定の周波数(Hz)で脈動する信号にメッセージを符号化する変調 方式です。負荷に供給される電圧(および電流)の平均値は、電源と負荷の間を高速で切り替える ことで制御されます。スイッチがオフの時間に比べてオンの時間が長いほど、負荷に供給される 総電力は高くなります。
PWMのスイッチング周波数は、負荷(電力を使用するデバイス)に影響を与えてしまうような 周波数よりも、はるかに高くする必要があります。言い換えると、負荷が感知する結果の波形は、 できるだけ滑らかであるべきです。電源のスイッチング速度は、負荷や用途によって大きく 異なります。例えば:
Quote
電気ストーブでは1分間に数回の切り替えで済みますが、調光器では120 Hz、モータードライブ では数kHzから数十kHz、オーディオアンプやコンピューターの電源では数十から数百kHzに 達します。
デューティサイクルは、「オン」の時間と、定期的な間隔つまり「周期」の時間との比を表します。 デューティサイクルが低いということは、ほとんどの時間電源がオフになっているため、低電力を 意味します。デューティサイクルは、常にオフなら0%、半分の時間オフで半分の時間オンなら 50%、常にオンなら100%として表されます。
パルス幅変調(PWM)オプション~
| 設定 | 説明 |
|---|---|
| ライブラリ | PWM信号を生成する方法を選択します。ハードウェアピンは最大30 MHzのPWM信号を生成できるのに対し、その他の(非ハードウェアPWM)ピンは最大40 kHzのPWM信号しか生成できません。各種PiボードのハードウェアPWMピンについては、下の表を参照してください。 |
| ピン(GPIO) | PWM信号を出力するGPIOピンです。BCM番号方式を使用します。 |
| 周波数(ヘルツ) | PWM信号の周波数です。 |
| 信号を反転 | 反転させたデューティサイクルを出力コントローラーに送ります。 |
| デューティサイクル | オン時間とオフ時間の比率をパーセンテージ(0~100)で表したものです。 |
非ハードウェアPWMピン~
非ハードウェアPWMピンを使用する場合、使用できる周波数は限られます。使用できる周波数(Hz) は、40000、20000、10000、8000、5000、4000、2500、2000、1600、1250、1000、800、500、400、 250、200、100、50 Hzです。この一覧にない周波数を設定しようとすると、代わりに最も近い 周波数が使用されます。
ハードウェアPWMピン~
ハードウェアPWMピンを使用する場合、正確な周波数を設定できます。同じPWMチャンネルは、 複数のGPIOで使用できます。同じPWMチャンネルを共有するすべてのGPIOピンは、最後に設定 された周波数とデューティサイクルを使用します。
| BCMピン | PWMチャンネル | Raspberry Piのバージョン |
|---|---|---|
| 12 | 0 | AおよびBモデルを除くすべてのモデル |
| 13 | 1 | AおよびBモデルを除くすべてのモデル |
| 18 | 0 | すべてのモデル |
| 19 | 1 | AおよびBモデルを除くすべてのモデル |
| 40 | 0 | Compute Moduleのみ |
| 41 | 1 | Compute Moduleのみ |
| 45 | 1 | Compute Moduleのみ |
| 52 | 0 | Compute Moduleのみ |
| 53 | 1 | Compute Moduleのみ |
ペリスタルティックポンプ~
AoTは2種類のペリスタルティックポンプ出力モジュールに対応しています。汎用ペリスタルティック ポンプ出力と、Atlas Scientific EZO-PMPペリスタルティックポンプです。
汎用ペリスタルティックポンプ~
汎用ペリスタルティックポンプ出力を使用すると、任意のペリスタルティックポンプで液体を 注入できます。最も基本的な注入機能は、注入の開始、注入の停止、または一定時間の注入です。 ポンプの吐出速度を測定してある場合は、その値を「最高速度(ml/min)」設定に入力すること で、出力コントローラーが単なる時間ではなく、特定の量を注入できるようになります。特定の 量を注入するには、出力モードを設定し、「希望流量(ml/min)」を指定する必要があります。
ポンプの流量を測定するには、まずポンプのチューブから空気をすべて抜きます。次に、ポンプに 60秒間注入するよう指示し、注入された液体を回収します。完了したら、注入された液体の量を ミリリットル単位で測定し、「最高速度(ml/min)」設定に入力します。ポンプの流量が設定 されると、特定の量を注入できるようになります。
この出力モジュールは、GPIOピンをHIGHまたはLOWに切り替えることでペリスタルティックポンプ のオン・オフを行います。これは、ポンプの電源ラインに直列にリレーを入れるか、(対応して いれば)GPIOをポンプの入力信号として直接使うことで、最も簡単に実現できます。リレーを 使用する場合は、ポンプを素早く切り替えられる回路を設計することが重要です。ポンプが注入 する量は時間に依存するため、ポンプを切り替える速度が速いほど、注入の精度が高くなります。 多くのペリスタルティックポンプはDC電圧で動作し、AC-DC変換器が必要です。これらの変換器は、 電源が投入・遮断される際に励磁・消磁するまでに時間がかかることがあり、これが注入精度に 影響することがあります。これに対処するには、AC電源ではなくDC電源側を切り替えることで、 こうした遅延の可能性を排除する必要があります。
Atlas Scientificペリスタルティックポンプ~
Atlas Scientificペリスタルティックポンプは、ペリスタルティックポンプとマイクロコントロー ラーを組み合わせたデバイスで、I2Cまたはシリアル通信を介して特定の量の液体を正確に注入 できます。このポンプは、校正、オン、オフ、指定速度での注入などのコマンドを含む 複数のコマンドを 受け付けます。Atlas Scientificペリスタルティックポンプは優れた選択肢ですが、汎用の ペリスタルティックポンプよりも高価です。
ペリスタルティックポンプオプション~
| 設定 | 説明 |
|---|---|
| 出力モード | 「最高速度」は、ポンプが可能な限り最速の速度で液体を注入します。「流量を指定」は、「流量(ml/min)」オプションで設定された速度で液体を注入します。 |
| 流量(ml/min) | 「出力モード」オプションで「流量を指定」が選択されている場合に、液体が注入される速度です。 |
| 最高速度(ml/min) | ポンプが液体を注入する速度(ml/min)です。 |
| 最小オン時間(秒/分) | 60秒ごとの周期の中で、ポンプがオンでなければならない最小の継続時間(秒)です。このオプションは、「出力モード」で「流量を指定」が選択されている場合にのみ使用されます。 |
無線315/433 MHz~
一部の315/433 MHz無線リレーを使用できます。送信機のピン(BCM番号方式を使用)、パルス長、 ビット長、プロトコル、オンコマンド、オフコマンドを設定する必要があります。オン・オフ コマンドを調べるには、315/433 MHz受信機をPiに接続し、以下のスクリプトを実行します (17は受信機が接続されているピン番号(BCM番号方式)に置き換えてください)。リモコンの ボタン(オンまたはオフ)を押して、そのボタンに対応する数値コードを検出します。
433 MHz無線リレーは、SMAKN 433MHz RF送受信機とEtekcityワイヤレスリモートコントロール 電源コンセントで動作確認済みです(Issue 88 参照)。現在のコードでは動作しない315/433 MHz送受信機や無線リレーをお持ちの場合は、 ハードウェアの詳細を添えて新しいIssueを 投稿してください。
Linuxコマンド~
このオプションは、出力がオンになったとき、オフになったとき、またはデューティサイクルが 設定されたときに、ターミナルコマンドを実行します。コマンドは 'root' ユーザーとして 実行されます。Linuxコマンド出力を作成すると、その出力の使い方を示すサンプルコードが 提供されます。
Pythonコマンド~
Pythonコマンド出力は、Linuxコマンド出力と同様に動作しますが、Python 3のコードを実行 します。Pythonコマンド出力を作成すると、その出力の使い方を示すサンプルコードが提供 されます。
MQTT: TLSとCA証明書~
MQTT出力(On/Off、On/Off Multi、Value、PWM)は、TLS経由でブローカーに発行できます。 「TLSを使用」をオンにし、「TLS CA証明書」を空のままにすると、システムのCAストアを 信頼します。これは、公的に信頼された証明書(例: Let's Encrypt)を使うブローカーに 必要な設定です。プライベート証明書や自己署名証明書を使うブローカーの場合は、そのCA ファイルのパスを明示的に入力する必要があります — 入力しないと、証明書検証の段階で 接続が拒否されます。ブローカーにローカルネットワークではなくインターネット経由で 接続する場合は、常にTLSが必要です。同じオプションはMQTT入力 にもあります。
出力に関する注意事項~
無線およびコマンド(Linux/Python)出力: 無線プロトコルは315/433 MHzデバイスとの片方向 通信しか許可しないため、無線リレーはオンにされるまではオフとみなされ、追加された時点 では赤色(オフ)で表示されます。無線リレーがAoTの外部(例えばリモコン)でオン・オフ された場合、AoTはそのリレーの状態を確認できず、最後に把握していた状態を表示します。 例えば、AoTが無線リレーをオンにした後、リモコンでそのリレーをオフにしても、AoTは そのリレーが依然としてオンだと見なし続けます。
「受理」は「確認」と同じではありません~
ゲートウェイを共有する出力 — LoRaWANの出力 — は、コマンドを単一のキューで送信 します。1つのサイトには通常ゲートウェイが1台しかなく、しかも半二重通信であるため、 ダウンリンクが重なるとデバイスから返ってくる応答がかき消されてしまいます。そのため、 複数のバルブを同時に操作すると、画面上では即座に応答が返る一方で、実際の送信は数秒 ずつずれて行われます。
画面に表示される「成功」は、そのコマンドが送信のために受理されたことを意味します。 実際にデバイスが切り替わったかどうかは、デバイスが送り返してくる確認によって決まり ます。確認が届かない場合、その時間枠の中で再送信され、それでも届かなければ、その出力 は通信障害として扱われ、状態が元に戻されます。
オン時間は、コマンドを送信した瞬間ではなく、デバイスが確認した瞬間から記録されます — 実際に開閉した時刻だけが、どれだけの水が供給されたかを正しく示すためです。確認する 手段を持たない片方向の出力は、従来どおり送信時点で記録されます。
Note
コマンド間の間隔は、RX2データレートとあわせて決まります。 データレートを 上げるとコマンド1つが電波を占有する時間が短くなり、間隔を短縮できるため、より 多くのバルブを同時に操作できます。データレートを下げる場合は、間隔も再び広げる 必要があります — どちらか片方だけを変えると、ゲートウェイが飽和して応答を聞き 取れなくなります。この2つの値は、それぞれLNS(ChirpStack)の設定とAoTの設定に あるため、両方を調整する必要があります。
シーケンスのステップ、条件付き機能、PID、ウィジェットのいずれかがまだその出力を指して いる場合、削除は拒否され、AoTはどこで使われているかを教えてくれます。まずそれらの参照 を削除するか、別のデバイスに付け替えてから削除してください。出力タブ全体を削除する場合 も同様です — タブの外側でそのタブ内のデバイスが使われている場合、そのタブは削除され ません。
以前は、出力は単純に削除され、それを指していたものはすべて、もはや存在しないデバイス を抱えたまま残されていました。エラーは発生しないため気づきにくく、有効化されたシーケンス は、どこにも届かないコマンドを毎周期出し続けてしまいます。
名前が重複していると、名前では操作されません~
同じ名前の出力が2つ以上ある場合、AoTはその名前を指定しても、どれも操作しません — どれを指しているのか尋ねてきます。デバイス一覧では、この場合に限り、名前とあわせて 所属タブが表示されます(v11 (Naju))。名前が重複していない場合は、そのまま表示され ます。