問題タブ [motordriver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - CAN-BUSを介してモータードライバーに話しかける
モータードライバーに接続されたモーターがあり、Windows XP
コンピューターにCAN-BUSで接続されています(USB経由だと思います)。モータードライバーと「話し」たいのですが、いくつか質問があります。
USB は COM ポートとして表示されますか?
どのプロトコルを使用するか、または使用するプロトコルを見つけるにはどうすればよいですか? または、どのように話しかけますか?
私が見ることができる 同様のものの公開実装を持っているか、知っている人はいますか?他に共有したいヒントはありますか?
ありがとう!
usb - USB経由でモータードライバーと通信
モータードライバーに接続されたモーターがあり、Windows XPコンピューターにCAN-BUS(USB経由)で接続されています。モータードライバーと「話し」たいのですが、いくつか質問があります。
- USB は COM ポートとして表示されますか?
- どのプロトコルを使用するか、または使用するプロトコルを見つけるにはどうすればよいですか?
- 私が見ることができる同様のものの公開実装を持っているか、知っている人はいますか?
他に共有したいヒット曲はありますか?
ありがとう!
microcontroller - Sanyo B00224 ステッピング モーターのドライブ シーケンス
私は Sanyo #B00224 の 4 ワイヤ ステッピング モーターを受け取りましたが、ドライブ シーケンス (コイルにどのような順序でどの方向に電力を供給するかなど) を決定することはできません。私が知る限り、それは双極ステッピングモーターであり、次のように駆動できるはずです:
また:
ここで、1 は電源、0 はグランドです。
私は本当にこのモーターのデータシートまたはあなたが持っているかもしれない情報を探しています.
ありがとう!
c - Set a one bit in an 8-bit PIN without changing the other bits
Using winAVR for the following code.
I got an 8-bit PIN here that I need to OR it with 00000010 or 0x02 to set the 7th bit.
Now what I have to do is the following :
- Set Port B bit 7
- Wait for 1ms
- Clear port B bit 7
- wait 19ms
BUT, I shouldn't change the other bits in these steps.
So I have to :
- Read port B
- Set bit needed
- write the modified value back to the port
- Clear bits
- Write back to Port B
So my test code is :
But I think that the other bits are going to be altered in this process, my question is, HOW am I supposed to manipulate one bit of an 8 bit port without changing the other bits ?
Thanks alot !!
c - ステッピングモーター制御のタイミング
Microchip TCP/IPスタックを使用しているときのステッピングモーターの制御について質問があります。
過去には、ステッピングモーターの制御にタイマーを使用していました。タイマーの周期をパルス間の必要な時間に設定し、タイマーティックISRで必要に応じてモーターの位相出力を変更します。私がこれを行った場合、私のステッパーは毎秒約400パルスの最大速度で動いていました。これは、割り込みが2.5ミリ秒ごとに発生していたことを意味します。そして、私はホストとの通信にUSBを使用していました。
現在、TCP/IPスタックを使用してイーサネット経由でPCと通信する新製品に取り組んでいます。また、SPIおよびUARTモジュールを介して他のデバイスと通信します。この新しいデバイスは、毎秒最大2000パルスのステッパーを操作できる必要があります。つまり、同じタイマー/ ISRアプローチを使用してステッパーを駆動すると、0.5ミリ秒ごとに割り込みが発生する可能性があります。ステッパーは、ホストから受信したコマンドに基づいてオンとオフが切り替えられるため、ホストとの通信とモーターの動作が調和して同時に行われる必要があります。ステッパーの速度がわずかに変化する場合、それは問題にはなりませんが、理想的ではありません。また、ステッパーが移動の途中でたとえば30ミリ秒間一時停止した場合、それは受け入れられません。
このプロジェクトでは、命令クロック速度が16MHz(内部FRC+PLLを使用して32Mhz/2)のPIC24Fを使用することを検討しています。ステッパーの割り込みによってイーサネット通信が中断されると思いますか、またはその逆だと思いますか?これを行うためのより良い方法はありますか?
ステッパー制御に別のPICを使用することを検討しました。次に、そのPICターゲット位置コマンドまたは停止コマンドを送信して移動を開始および停止できますが、それによって別のファームウェアがミックスに追加され、すべてが複雑になります。
c++ - USB 経由でステッピング モーター コントローラーにコマンドを送信する
Gnu/Linux の Trinamic StepRockerステッパー モーター コントローラーでいくつかの実験をしようとしています。以前に USB 経由でデバイスを Windows マシンに接続し、Trinamic独自のソフトウェアを使用して、コントローラーが期待どおりに機能しているかどうかをテストしました。StepRocker の初心者向けマニュアルには、モーターを左、右、または停止させるためにシリアル インターフェイス経由で送信する必要がある特定のコマンドが記載されています。しかし、このコントローラーを USB 経由で Gnu/Linux コンピューターに接続し、独自の C++ (libusb) プログラムを作成してモーターを動かしたい場合、何から始めるべきかよくわかりません。コンソール アプリケーション (これを作成する予定です) はノンブロッキングである必要があります。
以下は、rotate コマンドの発行中に送信されるデータグラムと受信される応答のイメージです。
写真に示されている回転値データグラムをモーターコントローラーに供給する簡単なプログラムを作成しようとしました。
ただし、これによってコントローラーの LED の動作が変更されることはありません (もちろん、モーターは動きません)。
python - モーター制御とデータ取得のための Python の並列 while ループ
私が2つの機能を持っているとしましょう:
と
実際には、モーターを前後に振動させたいと思っています( moveMotorToPosition を2回呼び出すループを持つことにより、正の位置で1回、負の位置で1回)。
その「制御」ループが反復している間、getMotorPositionnd を呼び出して、別の while ループが特定の頻度でデータをプルするようにします。次に、このループにタイマーを設定して、サンプリング周波数を設定できるようにします。
LabView (モーター コントローラーはフックする DLL を提供します) では、これを「並列」while ループで実現します。私は以前に並列と python で何もしたことがなく、どちらが最も説得力のある方向性なのか正確にはわかりません。
labview - 複雑なLabViewVIがどのように機能するかをすばやく理解するための最も効率的な方法は何ですか?
モーターを制御する複雑なLabViewVIを理解するための最良の方法は何ですか?
私の目標は、ジョイスティックからモーターを制御することです。
以下に示す配線図により、LabViewユーザーはLabViewGUIからモーターを制御できます。スライダーを上下に動かして目的の速度を増減します。スライダーの値が変化すると、それは一連の数学コントロールに送られ、最終的にモーターが解釈するためのコマンド文字列に変換されます。このコマンド文字列は、私が正しく理解していれば、シリアルポートに書き込まれるバイトの集まりです。
LabView GUIを使用してモーターを制御する代わりに、ジョイスティックを使用したいと思います。
これに取り組むための最良の方法は何ですか?
ジョイスティックには、ピッチ、ヨー、ロール、スロットルがあります。モーターの速度に最も関連するのはどれですか?
mongodb - 集計から _id を非表示にする方法は?
私はこのクエリを持っています:
これにより、次の結果が得られます。
だから私はできる:
しかし、どう"_id"
すれば取得できるように非表示にできますか:
通常のクエリでは、次のようなものを追加するだけです{"_id":0}
が、ここでは機能しません。
mongodb - モータ復帰なし
モータードライバーを使用してMongo DBに接続しています。以下は、コレクションにデータを挿入するコードです
insert ステートメントは常に None を返します。これはトルネード アプリケーションではありません。モーターはトルネードのみ使用できますか?そうでない場合、挿入が何も返さないのはなぜですか?