オートレベリングセンサ BLTouch(3DTouch) 単独動作確認

3Dプリンタ

3DTouchことBLTouchのパチモノを買ったのでまずはArduinoと接続して単独で動作確認してみました。
精度が良いそうなのでうまく行けば他でも使えるかも!

Amazon.co.jp: BIQU ANTCLABS Original BL Touch V3.1 ベッドレベリングセンサー 80cm延長コードセット付き 自動レベリングセンサー ヒーターベッドレベリングセンサー 3Dプリンタ部品: DIY・工具・ガーデン
Amazon.co.jp: BIQU ANTCLABS Original BL Touch V3.1 ベッドレベリングセンサー 80cm延長コードセット付き 自動レベリングセンサー ヒーターベッドレベリングセンサー 3Dプリンタ部品: DIY・工具・ガーデン
Amazon | Aibecy 3Dタッチセンサー 自動平準化位置センサー 3Dプリンタアクセサリ 3Dプリンタ用 印刷精度向上 | 産業・研究開発用品 | 産業・研究開発用品 通販
Aibecy 3Dタッチセンサー 自動平準化位置センサー 3Dプリンタアクセサリ 3Dプリンタ用 印刷精度向上が産業・研究開発用品ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

機能

機能が4個しかないので本家BLTouchの最新版と比べると少ないですね。
BLTouch V2.0互換って感じです。
3DTouch機能

  • Push-pin down
  • Push-pin up
  • Self-test
  • Alarm release(Push-pin up)

接続

Arduino UNOと接続しました。
割り込み入力とPWM(サーボ)を使用します。

3D Touch Arduino UNO
Z(白)2
G (黒)GND
S (黃)3
5V (赤)5V
G (緑)GND

Zmin信号

Zminの信号がどのように変化するかタイミングチャートを確認するとセルフテスト中は変化なし、アラーム発生中はON、Pin-Down中にON位置まで来ると10msパルスが立つようです。ZminがON位置になると赤のLEDが点灯します。

使用方法

電源を入れると自動でセルフテストが行われます。
電圧不足やピンが動作しない等でセルフテストに失敗すると下記のようにLEDが赤点滅します。

セルフテストが正常に終わった場合は赤と青のLEDが点灯します。

シリアルからコマンドを送信して機能を使用できるようにしました。

#include <Servo.h>

const int Z_LimitSensorPin = 2;
const int ServoPin = 3;
const int LED_pin = 13;
Servo myservo;

volatile bool pinDownFlag = LOW;

void setup() {
  Serial.begin(9600);
  pinMode(LED_pin,OUTPUT);
  attachInterrupt(digitalPinToInterrupt(Z_LimitSensorPin), Z_LimitChanged, CHANGE);
  myservo.attach(ServoPin);
}

void loop() {
  String input;
  if (Serial.available() > 0) {
    input = Serial.readStringUntil('\n');
    input.replace("\r","");
    if(input == "PIN_UP"){
      Serial.println("PIN_UP");
      myservo.write(90);
    }
    if(input == "PIN_DOWN"){
      myservo.write(10);
      Serial.println("PIN_DOWN");
      pinDownFlag = true;
    }
    if(input == "RESET"){
      myservo.write(160);
      Serial.println("RESET");
    }
    if(input == "SELF_TEST"){
      myservo.write(120);
      Serial.println("SELF_TEST");
    }
    //BLTouch V2.1以降のみ
    if(input == "SW_MODE"){
      myservo.write(60);
      Serial.println("SW_MODE");
    }
  }
}

//Zmin変化時割り込み処理
void Z_LimitChanged()
{
  if(digitalRead(Z_LimitSensorPin)){
    Serial.println("Z Limit : ON");
    if(pinDownFlag){
      myservo.write(90);
      Serial.println("PIN_UP");
    }
  }else{
    Serial.println("Z Limit : OFF");
  }
}

セルフテスト後”PIN_DOWN”を送ってピンを下げます。
ピンが下がった状態でピンを押し込んでいきZminがONしたら”PIN_UP”コマンドを送ってピンを引き上げます。

うまく動いたので他でも使用できそうですね。
とりあえず今回購入した物はEnder-3 Proに取り付けます。

Amazon | Anet A8 Tevo Reprap MK8 i3用 3Dプリンター 3Dタッチオートレベリングセンサー キット | 3Dプリンタパーツ・アクセサリ | 産業・研究開発用品 通販
Anet A8 Tevo Reprap MK8 i3用 3Dプリンター 3Dタッチオートレベリングセンサー キットが3Dプリンタパーツ・アクセサリストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

コメント

タイトルとURLをコピーしました