Linuxでシリアルポートからpwm信号を送信するにはどうすればよいですか?(PythonまたはC ++を使用)
モーターを直接接続して回転数を変えたい。
インターフェースで何をしているのかを本当に理解していない限り、このアイデアはおそらく不適切です。これらのピンから駆動される信号は、信号レベルのドライブのみを供給する必要があります。これを使用して、モーターコントローラーまたはアンプの実際のモータードライブを制御する必要があります。モーターを直接接続しないでください。さらに、シリアルポートからの信号は、ゼロ/+veではなく-veおよび+veでスイングします。
1つの可能性は、DTR信号を使用することです。これは、通常は独立して制御できるためです(たとえば、Pythonを使用してシリアルポートピンを高く設定するで説明されています)が、ソフトウェアを使用すると、モーターを正確または効率的に制御するために必要な周波数または精度が得られない場合があります。また、ソフトウェアに障害が発生した場合、モーターをフルスピードで実行したままにすることができます。そのため、注意が必要です。
より良い解決策は、専用のデジタルおよび/またはPWM I / OカードまたはUSBデバイス、あるいは専用のモーターコントローラーインターフェースを入手することです。アドバンテックなどの産業用コンピュータのサプライヤには、適切なものがあり、おそらく低コストで、ロボット工学の趣味のサプライヤがいくつもあります。
uartインターフェースを使用している場合にこれを実行できるかどうか疑問に思います...arduinoまたはsomeatを取得し、シリアルコマンドをarduino(シリアルピン)に送信すると、正しいpwm信号がピンから出力されます...おそらく5行のarduinoコードとPythonコードの別の5..。
とはいえ、PWM信号をシリアルで出力するための非常に困難でハッキーな方法を見つけることができるかもしれません...しかし、それが本当に適切かどうかを考える必要があります...