こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Arduino で NC

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

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

投稿日時 - 2019-01-22 02:47:48

QNo.9580182

困ってます

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

0人が「このQ&Aが役に立った」と投票しています

回答(6)

ANo.6

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

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

投稿日時 - 2019-01-23 17:52:17

補足

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

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

投稿日時 - 2019-01-23 18:30:11

ANo.5

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

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

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

投稿日時 - 2019-01-23 14:46:39

補足

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

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

投稿日時 - 2019-01-23 18:22:52

ANo.4

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

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

投稿日時 - 2019-01-23 14:33:04

補足

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

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

と書いてありますが

投稿日時 - 2019-01-23 18:19:35

ANo.3

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

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

投稿日時 - 2019-01-23 11:27:20

補足

みましたが ポートが足りませんが わかってますか?
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-23 12:16:55

ANo.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 12:45:14

補足

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

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

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


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

投稿日時 - 2019-01-22 20:37:42

ANo.1

CNCシールドで使われている A4988というドライバーIC(および互換品)は I2C制御ではありません。なのでSCL/SDA信号も受け取れません。
http://www.pololu.com/file/download/a4988_DMOS_microstepping_driver_with_translator.pdf?file_id=0J450
シールド基板だけを流用して、手パを入力することはできると思いますが
まずは回路図と仕様書が読めないと話にならないかと思います。

投稿日時 - 2019-01-22 12:28:59

補足

Sモータ ← CNCシールド ← Arduino1 ⇔ Arduino2 ← 手パ 

Arduino1は 普通Grblが動いていて Arduino2の信号で(SW) Grbl から 自作のプログラムに移行 手パのパルスをArduino2から送りArduino1で ステップモーターを動かそうとしてます

そこまでえは できそう (バッファ処理とか遅延処理の対処は後)

https://qiita.com/MergeCells/items/20c3c1a0adfb222a19cd
抜粋
Arduinoをslaveとして利用するときなどは
アドレスを任意に指定することができる.

この方法がわからないのです

全然回答内容が違うと思いますが

投稿日時 - 2019-01-22 20:21:18

あなたにオススメの質問