- 締切済み
Arduinoで手パ信号を入れるための中華NCを作る方法
- Arduinoを使用して、中華NCを作成する方法について紹介します。
- CNCシールドを使用して手パ信号を入力する方法は難しいため、別の方法を考える必要があります。
- 2台のArduinoを使用してSCL/SDAを設定する場合、ジャンパ線でアドレスを設定する必要はありません。
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- KAGAYAKI_
- ベストアンサー率50% (1/2)
https://github.com/grbl/grbl/issues/243 https://github.com/terjeio/GRBL_MPG_DRO_BoosterPack grblよりmachの方が簡単そうですね。 専用のMPGも売ってますし、 自分はpcからA4988に直接つないで動かしてます。 手パは無くてもキーボードで間に合ってますよ。
- TIGANS
- ベストアンサー率35% (245/681)
>みましたが ポートが足りませんが わかってますか? え~と、既に回答中に >TMEGA1280などを使った多ピン仕様のArduinoで動かされてみてはいかがでしょうか? と記載しておりますし、能力不足なら2台でI2C通信で同期とかアホですよね? それでもポート数が足りないのでしょうか? それとも、質問者さんの理解力が足りないのでしょうか? 例えば、ATmega2560を使ったこのボードとか。 https://www.amazon.co.jp/dp/B06Y4KZV1J/ 検索すれば、いっぱい出てくると思うのですが。 ちなみに上記ボードはArduinoIDEのボード選択で ちゃんとサポートされているようですが これ以上のどんな情報が不足されているのでしょうか?
補足
先にも書いてありますが 読理解力がないと思います あなた様の回答はされるだけなのでいりません
- TIGANS
- ベストアンサー率35% (245/681)
>質問内容は実はハードに見えてソフトなんですが そうなんですか? それならば、ちゃんと問題点を整理されてから 再質問を立てられたほうがよろしいかと思います。
補足
読理解力がないと思います >>この場合アドレスをジャンパ線で設定しなくていいのでしょうか と書いてありますが
- TIGANS
- ベストアンサー率35% (245/681)
前回回答した中のリンクのデータシートは理解されましたか? 理解できていれば、手パ配線は難しくないと思いますが。 もし同時に多数制御したいのであれば FPGAボードなどを使われることも可能だと思いますよ。 ArduinoではI2CをTWIハードで行う場合とソフトI2Cで行う場合など がありますが、正直ちゃんと理解されているとは思えませんね。 まずは、自分の背丈に合わせて普通にArduinoで動かして その後は、ATMEGA1280などを使った多ピン仕様のArduinoで 動かされてみてはいかがでしょうか?
補足
みましたが ポートが足りませんが わかってますか? Arduino デジタル14 アナログ6で CNCシールドで ほぼ使われてます 手パで必要なのは 手パ信号2x3=6bit(XYZ) モード切替用の信号1bit ハンドシェイク用の信号1-2bit と考えてます これにさらに 倍率 x1 x10 x100 を 非常停止用信号 を入れると 1台じゃ全く足りませんが? それに 質問内容は実はハードに見えてソフトなんですが マスター側のソース test_I2C_master.ino #include <Wire.h> void setup() { Wire.begin(); } byte val = 0; void loop() { Wire.beginTransmission(0x1E); //引数はslaveデバイスに対応するアドレス.ここでは0x1E スレイブはどこで 0x1E にしてあるの? Wire.write(val); Wire.endTransmission(); val++; delay(500); } スレイブ側のソース test_I2C_master.ino #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); } void loop() { Wire.requestFrom(0x1E, 1);//これなの? setup時に宣言しなくていいの? while (Wire.available()) { byte val = Wire.read(); Serial.print(val); } delay(500); } という問題なんですが
- TIGANS
- ベストアンサー率35% (245/681)
とりあえず初めたいという場合には メカトロやホビーロボットなどの販売サイトが役に立つと思います。 https://www.originalmind.co.jp/special/arduino/ https://www.originalmind.co.jp/special/arduino/Arduino.pdf モーター並列のクローン駆動に対しては下記に情報があります。 https://cnc-selfbuild.blogspot.com/2016/04/cnccncdrv8825a4988.html
補足
そこはすでにすべて見てます 手パの情報はないです 欲しいのは手パを使って CNCシールドを動かす方法です CNCシールドですべてのArduino ポートを使っており I2C (CNCシールド右上から出ている) を 使おうと思ってます I2Cでは個別機器にアドレスを設定し通信するのですが その方法がわかりません 普通はジャンパ線でアドレス指定する また 手パ自体作ってる人はいるんですが それを接続している情報がありません
- TIGANS
- ベストアンサー率35% (245/681)
CNCシールドで使われている A4988というドライバーIC(および互換品)は I2C制御ではありません。なのでSCL/SDA信号も受け取れません。 http://www.pololu.com/file/download/a4988_DMOS_microstepping_driver_with_translator.pdf?file_id=0J450 シールド基板だけを流用して、手パを入力することはできると思いますが まずは回路図と仕様書が読めないと話にならないかと思います。
補足
Sモータ ← CNCシールド ← Arduino1 ⇔ Arduino2 ← 手パ Arduino1は 普通Grblが動いていて Arduino2の信号で(SW) Grbl から 自作のプログラムに移行 手パのパルスをArduino2から送りArduino1で ステップモーターを動かそうとしてます そこまでえは できそう (バッファ処理とか遅延処理の対処は後) https://qiita.com/MergeCells/items/20c3c1a0adfb222a19cd 抜粋 Arduinoをslaveとして利用するときなどは アドレスを任意に指定することができる. この方法がわからないのです 全然回答内容が違うと思いますが
補足
参考にさせてもらいますが 実機使って身からすれば 原点出し時にボタンだととてもイライラし 原因になりやすいかと それを解析し作るのはありかもしれませんね