本文へ移動
サポートシェアリングソリューション
OKWAVE Plus

このQ&Aは役に立ちましたか?

締切済み
※ ChatGPTを利用し、要約された質問です(原文:Arduino で NC)

Arduinoで手パ信号を入れるための中華NCを作る方法

2023/10/20 00:20

このQ&Aのポイント
  • Arduinoを使用して、中華NCを作成する方法について紹介します。
  • CNCシールドを使用して手パ信号を入力する方法は難しいため、別の方法を考える必要があります。
  • 2台のArduinoを使用してSCL/SDAを設定する場合、ジャンパ線でアドレスを設定する必要はありません。
※ 以下は、質問の原文です

Arduino で NC

2019/01/22 02:47

中華なNCを作ってます
CNCシールドを乗っ取って手パ信号を入れるのは 難しそうだったのですが
2台Arduino で SCL/SDA
この場合アドレスをジャンパ線で設定しなくていいのでしょうか

詳しく 中華シールドで手パ使ってるサイトがあったら教えてください

投稿された画像

回答 (6件中 1~5件目)

2019/01/23 17:52
回答No.6

https://github.com/grbl/grbl/issues/243
https://github.com/terjeio/GRBL_MPG_DRO_BoosterPack

grblよりmachの方が簡単そうですね。
専用のMPGも売ってますし、
自分はpcからA4988に直接つないで動かしてます。
手パは無くてもキーボードで間に合ってますよ。

補足

2019/01/23 18:30

参考にさせてもらいますが
実機使って身からすれば 原点出し時にボタンだととてもイライラし 
原因になりやすいかと 

それを解析し作るのはありかもしれませんね

質問者

このQ&Aは役に立ちましたか?

この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。

質問する
2019/01/23 14:46
回答No.5

>みましたが ポートが足りませんが わかってますか?

え~と、既に回答中に
>TMEGA1280などを使った多ピン仕様のArduinoで動かされてみてはいかがでしょうか?
と記載しておりますし、能力不足なら2台でI2C通信で同期とかアホですよね?
それでもポート数が足りないのでしょうか?
それとも、質問者さんの理解力が足りないのでしょうか?

例えば、ATmega2560を使ったこのボードとか。
https://www.amazon.co.jp/dp/B06Y4KZV1J/
検索すれば、いっぱい出てくると思うのですが。
ちなみに上記ボードはArduinoIDEのボード選択で
ちゃんとサポートされているようですが
これ以上のどんな情報が不足されているのでしょうか?

補足

2019/01/23 18:22

先にも書いてありますが
読理解力がないと思います

あなた様の回答はされるだけなのでいりません

質問者
2019/01/23 14:33
回答No.4

>質問内容は実はハードに見えてソフトなんですが

そうなんですか?
それならば、ちゃんと問題点を整理されてから
再質問を立てられたほうがよろしいかと思います。

補足

2019/01/23 18:19

読理解力がないと思います

>>この場合アドレスをジャンパ線で設定しなくていいのでしょうか

と書いてありますが

質問者
2019/01/23 11:27
回答No.3

前回回答した中のリンクのデータシートは理解されましたか?
理解できていれば、手パ配線は難しくないと思いますが。
もし同時に多数制御したいのであれば
FPGAボードなどを使われることも可能だと思いますよ。

ArduinoではI2CをTWIハードで行う場合とソフトI2Cで行う場合など
がありますが、正直ちゃんと理解されているとは思えませんね。
まずは、自分の背丈に合わせて普通にArduinoで動かして
その後は、ATMEGA1280などを使った多ピン仕様のArduinoで
動かされてみてはいかがでしょうか?

補足

2019/01/23 12:16

みましたが ポートが足りませんが わかってますか?
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);
}


という問題なんですが

質問者
2019/01/22 12:45
回答No.2

とりあえず初めたいという場合には
メカトロやホビーロボットなどの販売サイトが役に立つと思います。
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

補足

2019/01/22 20:37

そこはすでにすべて見てます
手パの情報はないです

欲しいのは手パを使って CNCシールドを動かす方法です
CNCシールドですべてのArduino ポートを使っており
I2C (CNCシールド右上から出ている) を 使おうと思ってます

I2Cでは個別機器にアドレスを設定し通信するのですが
その方法がわかりません 
普通はジャンパ線でアドレス指定する


また
手パ自体作ってる人はいるんですが
それを接続している情報がありません

質問者

お礼をおくりました

さらに、この回答をベストアンサーに選びますか?

ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。