GPIOOutputs

GPIOOutputsを送信することで, GPIOピンの出力を各デバイス・ピン毎に設定できる.

GPIOピン
use autd3::prelude::*;
fn main() {
let _ =
GPIOOutputs::new(|_dev, gpio| {
    if gpio == GPIOOut::O0 {
        GPIOOutputType::BaseSignal
    } else {
        GPIOOutputType::None
    }
});
}
#include<autd3.hpp>
int main() {
using namespace autd3;
GPIOOutputs([](const auto& dev, const auto& gpio) {
  return gpio == GPIOOut::O0 ? GPIOOutputType::BaseSignal
                             : GPIOOutputType::None;
});
return 0; }
using AUTD3Sharp;
using AUTD3Sharp.Utils;
new GPIOOutputs(
    (dev, gpio) => gpio == GPIOOut.O0 ? GPIOOutputType.BaseSignal : GPIOOutputType.None
);
from pyautd3 import GPIOOutputs, GPIOOutputType, GPIOOut
GPIOOutputs(
    lambda _dev, gpio: (
        GPIOOutputType.BaseSignal if gpio == GPIOOut.O0 else GPIOOutputType.NONE
    ),
)

出力可能なデータは以下の通り.

  • None: 出力しない
  • BaseSignal: 基準信号 (超音波と同じ周波数のDuty比50%矩形波)
  • Thermo: 温度センサーがアサートされているかどうか
  • ForceFan: ForceFanフラグがアサートされているかどうか
  • Sync: EtherCAT同期信号
  • ModSegment: Modulationのセグメント
  • ModIdx(u16): Modulationのインデックスが指定した値のときにHighになる
  • StmSegment: STMのセグメント
  • StmIdx(u16): STMのインデックスが指定した値のときにHighになる
  • IsStmMode: FociSTM/GainSTMが使用されているかどうか
  • PwmOut(&Transducer): 指定した振動子のPWM出力
  • SysTimeEq(DcSysTime): 指定したシステム時間の間Highになる
  • Direct(bool): 指定した値を出力する