回答 受付中

Arduino で NC

  • 困ってます
  • 質問No.9580182
  • 閲覧数212
  • ありがとう数0
  • 気になる数0
  • 回答数6

お礼率 25% (14/56)

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

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

回答 (全6件)

  • 回答No.6

ベストアンサー率 0% (0/1)

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

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

お礼率 25% (14/56)

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

それを解析し作るのはありかもしれませんね
投稿日時 - 2019-01-23 18:30:11
たいせつな将来のこと。あえて、知らない人に聞いてみよう。
  • 回答No.5

ベストアンサー率 36% (66/182)

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

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

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

お礼率 25% (14/56)

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

あなた様の回答はされるだけなのでいりません
投稿日時 - 2019-01-23 18:22:52
  • 回答No.4

ベストアンサー率 36% (66/182)

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

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

お礼率 25% (14/56)

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

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

と書いてありますが
投稿日時 - 2019-01-23 18:19:35
  • 回答No.3

ベストアンサー率 36% (66/182)

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

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

お礼率 25% (14/56)

みましたが ポートが足りませんが わかってますか?
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
  • 回答No.2

ベストアンサー率 36% (66/182)

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

お礼率 25% (14/56)

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

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

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


また
手パ自体作ってる人はいるんですが
それを接続している情報がありません
投稿日時 - 2019-01-22 20:37:42
  • 回答No.1

ベストアンサー率 36% (66/182)

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

お礼率 25% (14/56)

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
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


OKWAVE若者応援スペシャル企画

ピックアップ

ページ先頭へ