2020年6月7日日曜日

宅配ボックス開閉通知 IFTTT

Amazonが置き配をデフォにして、しかもそれがAmazon使うのやめようかと思うほどユーザー無視の仕様><;

なにが問題かと言うとおき配指定した場合ヤマトや佐川はピンポンしてくれるんだけど日本郵政やAmazon配送となっているわけわからない配送業者はピンポンしてくれない><;いてもいなくてもピンポンせずに強制おき配。

頼んだものが2便に分かれてしまった場合あとから届いたものは宅配ボックスにすでに鍵がかかっているということで持ち帰られてしまう><;

ということで、宅配ボックスにものが入ったらピンポンがなるIoTを作ろうとしたわけです^^;

1年ほどArduinoから離れていたせいかなにをやってもうまくゆかない><;現象としては途中で暴走リセットしている模様…

Serial.print() しただけで USB 接続が切断され /dev/ttyUSB0 と /dev/ttyUSB1 が交互に切り替わるって、意味が分からない><;この問題に悩まされること3ヶ月!やっと原因を見つけた!原因は「USB3.0ハブ」アマゾンで買ったんだけどこいつ経由だと駄目。本体のUSBポートに直接繋ぐと正常に動くようになった><;

いやはや、実際こいつを買って以降、Arduino関連では書き込みできなかったり散々な目にあっていました><;

愚痴はここまで

正常に制御できるようになったレ簡単なプログラムすぐできた\(^_^)/

ESP-WROOM-02 にマグネットスイッチを付けただけ、超簡単。


さてと、基盤むき出しは信頼性低すぎなんで3Dプリンターでケース作ります。^^;

参考になるかわかりませんがソースも置いておきます。

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>

const char* ssid = "SSID";
const char* password = "password";
const char* IFTTT_KEY = "KEY";

#define TIMEOUT (5 * 1000 * 1000)

const char* eventOpen = "open_box";
const char* eventClose = "close_box";

int last = -1;
int count = 0;

void setup()
{
  Serial.begin(115200);
  Serial.println("Start 115200");

  pinMode(D3, INPUT_PULLUP);  // magnetic switch
  pinMode(D4, OUTPUT);        // built in LED
  last = digitalRead(D3);

  // 再起動サイン
  for (int i = 0; i < 20; ++i) {
    digitalWrite(D4, i & 1);
    delay(200);
  }

  // WiFi
    delay(500);
  Serial.print(F("\n\nConnecting to "));
  Serial.println(ssid);
  int error_count = 0;
  WiFi.begin(ssid, password);
  // Wifi接続成功 待ち
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(F("."));
  }
  Serial.print(F("\nWiFi connected\n"));
  Serial.println(WiFi.localIP());
}

void loop()
{
  // 内蔵LED点滅
  digitalWrite(D4, count & 1);
  delay(10);

  // 磁気スイッチ読み取り
  int val = digitalRead(D3);
//  Serial.printf("cnt: %d, switch: %d, value: %d\n", count, count & 1, val);

  // 変化した?
  if (last != val) {
    // 変化したのでIFTTTのWebトリガーを呼ぶ
    if (val) {
      triggerIfttt(eventOpen, "open", "", "");
    } else {
      triggerIfttt(eventClose, "close", "", "");
    }
  }

  last = val;
  ++count;
  delay(1000);
}

/**
 * IFTTT へ WebTrigger
 * @param const char* event
 * @param char* value1
 * @param char* value2
 * @param char* value3
 */
boolean triggerIfttt(const char* event, char* value1, char* value2, char* value3)
{
  BearSSL::WiFiClientSecure client;
  client.setTimeout(500);
  client.setInsecure();

  // 接続
  if (!client.connect("maker.ifttt.com", 443)) {  // IFTTTへ接続確認
    Serial.println(F("ERROR: https connect"));    // エラー出力
    error();
    return false;
  }
  Serial.printf("https connected\n");    // エラー出力

  // リクエスト送信
  char* format =
    "GET /trigger/%s/with/key/%s?"
    "value1=%s&value2=%s&value3=%s HTTP/1.1\r\n"
    "Host: maker.ifttt.com\r\n"
    "User-Agent: ESP8266\r\n"
    "Connection: close\r\n\r\n";
  client.printf(format, event, IFTTT_KEY, value1, value2, value3);
  Serial.printf("Send web trigger");

  // 応答待ち
  unsigned long start = micros();
  while (client.available() == 0) {
      if ((micros() - start) > TIMEOUT) {
          Serial.println(">>> Client Timeout !");
          client.stop();
          error();
          return false;
      }
  }
  Serial.printf("Recive responce");

  // レザルトの受け取り
  while(client.available()) {
      String line = client.readStringUntil('\r');
      Serial.print(line);
  }
  return true;
}

void error()
{
  for (int i = 0; i < 40; ++i) {
    digitalWrite(D4, i & 1);
    delay(50);
  }
}

2020年5月14日木曜日

次亜塩素酸水、次亜塩素酸ナトリウムから超簡単に作れた!

次亜塩素酸水絡みのゴタゴタをまとめてみました。

※このページに書かれている内容は、あくまで私の体験談であり次亜塩素酸水の作り方を示しているものでありません。私が勝手にそう思っているだけで科学的な根拠に乏しいものですので、真似をされてトラブルになっても自己責任でお願いします。

発端

2020年3月中旬、コロナウィルスが騒ぎになり自衛手段が必要だなぁと思っていたところ空間除菌という言葉を目にしました。次亜塩素酸水というものを超音波噴霧器で散布して除菌するんだそうです。なんか効果ありそうなので早速検索、Amazonにて『電興社 Dew(デュウ)・空間除菌・消臭剤水(次亜塩素含有水)次亜塩素酸水専用加湿器 6,651円送料込み』と『次亜塩素酸水「パーフェクトクリーン」除菌消臭 大容量2000ml 濃度500ppm 3,590円』を注文しました。

さてここで問題になったのがランニングコスト!購入した噴霧器の吐出量は300ml/h、1日8時間つけたとして2.4L。購入した500mlの次亜塩素酸水は500ppmなので10倍に薄めて使うわけですが、5Lは約2日分。1本3,780円でしたので1日あたり1,890円!!高すぎます!

そこで更に調べてみたところ「次亜塩素酸水500ppm そっクリン 20L 5,930円送料込み」というものを発見。83日分になるので1日あたり65円許容範囲です。

さらに「次亜塩素酸水生成パウダー 80g 1,881円送料込み」というものを発見。このパウダー(ジクロロイソシアヌル酸ナトリウム)1gに水1000mlを加えると500ppmの次亜塩素酸水が作れます。1袋で50ppmを800L作れますので1日あたり5.6円!安くなりました\(^_^)/
ただこいつはちょっと曲者で液体のものに比べると塩素臭がかなり強いです><;

最初に次亜塩素酸水を購入して1ヶ月ほどした頃に総務部の女性から次亜塩素酸水が手に入らないと相談を受けます。え?と思い調べてみるとたしかに軒並み売り切れ…まぁ、パウダー買ってあるのでなんとかなるだろうとは思ったのですが、もう少し調べてみると「IMILLET 電解次亜水メーカー 2,980円送料込み」というものを見つけ、精製塩と次亜塩素酸濃度試験紙とともに購入。

この生成器の販売者はちとたちの悪い業者のようで注文したその日に発送済みとなったのですが送り状番号を佐川のサイトで調べても追跡不可…到着予定の10日後になっても届きません。今どきの宅配便が10日以上かかるわけがないのでキャンセルさせないために発送前にステータスだけ発送済みにするのでしょう><;

最終到着日を2日ほど過ぎて商品が到着、早速精製塩7.5gと水300mlをよく混ぜて投入、スイッチオンで電気分解開始。説明書には8分と書かれていますが5分ぐらいで終了。塩7.5gだと300〜500ppmとのことなので10倍に薄めて試験紙を浸けてみると…標本の最大値50ppmより全然濃いぞ!匂いを嗅ぐと鼻の奥がツンと来た!痛って〜!メッチャ塩素出てるじゃん!これで手を洗うとなんか手の甲がヒリヒリする!こりゃヤバそうだなとpH計るとなんと8.51とアルカリ性…
 

ということで、いろいろと調べてみたところページ記載されている化学式はデタラメ、生成しているのは次亜塩素酸水ではなく次亜塩素酸ナトリウム!要するにハイターを薄めたものが出来ているわけです。

いやはや…いろんなページに次亜塩素酸と次亜塩素酸ナトリウムは全くの別物なんて書いてある…

食品衛生法における次亜塩素酸水の成分規格の定義:微酸性次亜塩素酸水には
2~6%塩酸及び必要に応じ塩化ナトリウム水溶液を加え適切な濃度に調整した水溶液を無隔膜電解槽(隔膜で隔てられていない陽極及び陰極で構成されたものをいう。)内で電解して得られる水溶液をいう。
と書かれているので製法はあっていますが、その後の純度試験:(1)液性に
微酸性次亜塩素酸水 pH5.0~6.5
と書かれているのでpH8.51では次亜塩素酸水とは呼べないと思います。

もっともよく調べてみると「次亜塩素酸水」という名称は厚生労働省が食品添加物として「次亜塩素酸水」を定義する前からあり『商品名』として使われていた経緯があるのでフェイク商品とは呼べないのかもしれません。

使えないとわかりこれで一件落着なのですが、次亜塩素酸水の製造方法が気になって更に調べてゆくと、電解法と混合法という2種類があるということを発見。この混合法というやつをよくよく見てみると次亜塩素酸ナトリウムを薄めて次亜塩素酸水を作ると書かれている!

あれ?次亜塩素酸水について書かれたページの多くに次亜塩素酸水と次亜塩素酸ナトリウムは別物ってヒステリックなくらい書かれていたんだけどなぁ…

ということで更に調べてゆくと、混合法は次亜塩素酸ナトリウム水溶液に炭酸水を混ぜて中和しpHを下げてから、水で薄めるのだそうです。炭酸による中和の際に次亜塩素酸ナトリウムが次亜塩素酸になるそうです。

「次亜塩素酸水と次亜塩素酸ナトリウムは別物」というのは「次亜塩素酸水と次亜塩素酸水を薄めただけのものは別物」という説明を、早とちりしたか、「だけの」を脳内省略したか、あと、酸性電解水を販売する業者がライバルを貶め相対的良く自分を見せようとするフォーク准将のような小賢しい業者のページなのかもしれません。

あと、次亜塩素酸ナトリウムを中和するのは非常に難しいので素人は手を出さないほうが良いと記述しているページがありました。どのくらい難しいのかと調べてみると、問題になるのは塩酸を使った中和で、濃度の調整が非常に難しいそうです。炭酸水を使った中和の場合は入れすぎても炭酸ガスが抜ければ問題ないそうでpH5.0以下になることはないそうです。

次亜塩素酸ナトリウムを炭酸水で中和すると
NaCLO(次亜塩素酸ナトリウム) + H2CO3(炭酸)
         ↓
HCLO(次亜塩素酸) + NaHCO3(重曹)
となります。このときできる重曹がどのような影響をおよぼすのかが気になって調べているのですがいまいちよくわからないんですよねぇ…

ということで早速実験開始

まず、次亜塩素酸生成器に精製塩7.5gと水300mlを入れて蓋を締めよく振ります。電源オンで電気分解開始。出来上がると自動的に電源が切れます。出来上がったもののpHを測定してみます。pH9.16のアルカリ性でした。

これに市販の強炭酸水60mlを入れます。炭酸水の量は次亜塩素酸ナトリウム5,000ppm/mlあたり1ml程度のようですので500ppm×300ml÷5,000ppm/ml=30mlで良いようですが念のため多めに入れました。出来上がったもののpHを測定してみます。pH5.11でした。

マニュアルには塩7.5gにて300〜500ppmができると書かれていたので10倍に薄めてみます。出来上がったものを塩素濃度ペーパーにて測ります。50ppmを遥かに超えています…

塩の濃度を変えて出来上がったものを10倍に薄めて次亜塩素酸濃度を調べたことがあります。その際は1.5gまで減らしたものがようやく50ppmと同じくらいの色に…ということで、塩1.5gで作ったのの次亜塩素酸濃度を測ってみます。

ということで、次亜塩素酸水生成器ようやく使い物になるようになりました\(^_^)/

ん?待てよ!次亜塩素酸ナトリウムから次亜塩素酸水が作れるということはハイターから作れるじゃん!スーパーで見るとハイター600ml入り143円!ハイターは6%水溶液なので60,000ppm。これを中和するには炭酸水7.2L必要になります。まぁ多めに入れて12L、500mlペットボトル24本入り1ケース1400円弱。約1500円で500ppmが72L作れます。300mlで割ると240回分…

ちなみに花王のHPによるとキッチンハイターはハイターに洗浄成分を加えてあるそうなのでハイターのほうが良さそうです。
Q、「ハイター」と「キッチンハイター」の違いは?代わりに使えるの?

おまけ その1

次亜塩素酸水は50ppmのものを加湿器にて噴霧して空間除菌に使う他、手洗いには100〜150ppmが良いようです。この手洗いの際は成分がタンパク質と反応して除菌しにくいことがあるので流水で使うことが推奨されています。水道水で手を洗う際の流量を調べてみたところハンドルの開閉度30度でも7L/分だそうです。コロナ対策の手洗いは最低10秒なんてTVで言っていましたので1L以上は必要そうです。

厚生労働省によると100ppm以上の次亜塩素酸水にてコロナウィルスの死滅を確認したそうなので手洗いには120ppmくらいが適切でしょうか?ハイター1本で120ppmの次亜塩素酸水300Lつくれます。1回あたり5円程度のコストならば気にならない気がします。

ウォータジャグにでも入れて手洗いに使うことします。

おまけ その2

ウェットティッシュが無くなったのでホームセンターやらドラッグストアなどをはしごして探し回りましたがどこにも売っていません。商品棚にポケットタイプなどが僅かに残っている店もありましが大抵の店が売り場ごと無くなっています><;う〜ん、困った!ということで自作することに…

実は以前乾燥してしまったポケットウェットティッシュを復活させるための液を作ったことがありまして、それをペーパータオルに含ませるか…と安易に考えていましたが…

必要な材料

  • ペーパータオル
  • アルコール 20ml
  • オスバンS 0.2ml
  • 水 30ml
確か消毒用アルコールがまだあったよなと在庫を確認してみると…ない!いまは消毒用アルコール手に入らないんだよなぁ…更に調べてみるとオスバンS(塩化ベンザルコニウム)はSARSなどエンベロープありのコロナウィルスには効果が十分得られない場合があるとのこと…

ということで、次亜塩素酸水の登場!100ppm次亜塩素酸水をペーパータオルに染み込ませてやるだけ。ただし、次亜塩素酸水の特徴として塩素が飛びやすいというのがあり、2週間以内に使ってくださいなんて記述も見ますので大量には作らず、少しずつまめに作ったほうが良さそうです。

さて、ここでまた悩みが増えました。まぁるい筒状のウェットティッシュのボトルに入っている紙、あれが欲しい!さすがに紙だけの個人需要はないようでいくら検索しても出てきません。同様に紙だけ探している人はいましたが「ウェットティッシュを乾燥させろ!」なんて頓珍漢な回答ばかり…

う〜ん、とりあえず、箱に入れるタイプを作ります。
※つづくかも^^;

2020年3月27日金曜日

VSCode エクスプローラーとエディタの連動を停止

VSCode 設定の備忘録

VSCode 標準設定ではエディターを切り替えるとエクスプローラーのカーソル位置がそのファイルに移動します。これはこれで便利なんですが、ファイルが多いプロジェクトの場合、いくつもファイルを開いた後はディレクトリがみんな添加されてしまって、リストから目的のファイルを探しにくてしかないです。

workbench.files.action.collapseExplorerFolders で折りたたみを閉じてから workbench.files.action.focusFilesExplorer にてエクスプローラーにフォーカスを移動するようにして、少しはマシになったのですが、結局、避けないことさせないほうが楽ということで^^;

設定
~/.config/Code/User/settings.jsonsettings.json
"explorer.autoReveal": false,  // 追加


~/.config/Code/User/keybindings.json
{"key": "ctrl+shift+numpad5", "command": "revealInExplorer"},  // 追加

2019年9月5日木曜日

マルチファンクションシールドで時間計測

Arduinoで遊んでいるといつも電源で悩みます。だいたいモバイルバッテリーをつないで済ますのですが、結構大きくて邪魔だったりします。で、なにかいいものないかなと思っていたのですが、部品箱を漁っていたらLIR2032を2個入れる電池ボックスを発掘しました。
 
お!これは行けそうだということでVINにつないでみるとちゃんと動作\(^_^)/でもどのくらいの時間もつかなぁと調べようとしたのですが、じっと見張っているのも馬鹿らしい…
 
ちょうどマルティファンクションシールドというのが余っていたので、信号がHIGHになってからLOWになるまでの秒数を7セグLEDに表示するのを作りましたw(写真右)
 
計測してみると5分程度しかもたないみたいです…ただ、ボタン電池が購入してから1年以上放置していたものなので劣化してしまっている、あるいは、中華なので最初から不良なんて可能性もあります^^;
 
ちなみに動作させた左側のArduinoは孫の夏休みの自由研究用にと用意したFMラジオです。元は宿題用にバラックだったのですが、興味を示さなかったのでボツ。ジィジの記念用にケースというかワーキンベースというかを3Dプリンターで印刷しました^^;

時間計測しかできませんが意外と便利だったのでソースを公開します。

/**
 * 時間計測器
 * 
 * filename:  Uno-Timer.ino
 * 
 * @version   1.0.0
 * @copyright Copyright (C) 2019 Yoshio Kiya All rights reserved.
 * @date      2019-09-01
 * @author    木屋 善夫
 */
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>

enum
{
  WAITING,
  STARTED,
  STOPED,
};

uint8_t mode;
unsigned long startTime;
unsigned long offTime;
unsigned long stopTime;

#define PIN_INPUT 5

void setup() {
  Timer1.initialize();
  MFS.initialize(&Timer1);    // initialize multi-function shield library

  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(PIN_INPUT, INPUT);

  int pin = digitalRead(PIN_INPUT);
  digitalWrite(LED_BUILTIN, !pin);
  MFS.write(-1);

  mode = WAITING;
}

void loop() {
  int pin = digitalRead(PIN_INPUT);
  digitalWrite(LED_1_PIN, !pin);
  unsigned long now = millis();

  // モードごとの動作
  switch (mode) {
    case WAITING: {
      // 起動前
      if (pin) {
        // スイッチがオンになった
        mode = STARTED;
        startTime = now;
        digitalWrite(LED_2_PIN, LOW); // 点灯
      } else {
        digitalWrite(LED_2_PIN, (now >> 9) & 1);
      }

      break;
    }
    case STARTED: {
      if (!pin)
      {
        // スイッチがオフになった
        mode = STOPED;
        stopTime = millis();
        digitalWrite(LED_3_PIN, LOW); // 点灯
      } else {
        digitalWrite(LED_3_PIN, (now >> 9) & 1);
      }

      int sec = (int)((now - startTime) / 1000);
      int min = sec / 60 * 100;
      sec = sec % 60;
      MFS.write(min + sec);
      break;
    }
    case STOPED: {
      if (pin) {
        mode = STARTED;
        digitalWrite(LED_4_PIN, HIGH);  // 消灯
      } else {
        digitalWrite(LED_4_PIN, (now >> 9) & 1);
      }
      break;
    }
  }

  delay(100);
}


使い方は、マルチファンクションシールドの右下の方にある A5 ピンに信号線をつなぎ、GND どうしを接続してください。

マルチファンクションシールドの右にあるLEDの意味は上から

  1. ウォッチドク:動作中は約0.5秒間隔で点滅します。
  2. スタンバイ:信号線が HIGH になるのを待っています。
  3. 計測中:最初に信号が HIGH になってから最後に LOW になるまでの時間を7セグLEDに「分分秒秒」で表示します。
  4. 計測終了:信号が HIGH になると 3. に戻ります。

参考資料

2019年8月9日金曜日

TPU での印刷設定

TPU でスマホケースを作りたいなと思い随分前に購入しました。ダイレクトエクストルーダの Pxmalion CoreI3 というのを持っているのでそれで試してみたのですがまともに印刷できない><;ダイレクトエクストルーダで駄目ならボーデンタイプの ANYCUBIC I3 MEGA じゃ無理だろうと放置していたのですが、ふと試してみたくなり、ドライブギアとの隙間を狭めたアッパーハンドルに交換して印刷してみるとすんなり印刷できました\(^_^)/

最初の印刷品質はあまり納得できるものではなかったのですが、あれこれと試してきれいに印刷できるようになったので備忘録。

右が最初、左が納得できた印刷です。

PLA のデフォルト設定から、下記の変更を行い印刷しました。スライサーは Cura 4.2.1 です。

最初の設定(写真右端)

  • インフィル: インフィル密度 15%
  • マテリアル: 印刷温度 210℃
  • マテリアル: ビルドプレート 50℃
  • マテリアル: フロー 120%
  • スピード: 印刷速度 20mm/S

フローが多すぎるようで穴が小さくなってしまっていますし、温度も高すぎるようで糸引きとエア噛みも激しく白っぽくなっています。

次の設定(写真中央)

  • インフィル: インフィル密度 15%
  • マテリアル: 印刷温度 195℃
  • マテリアル: ビルドプレート 50℃
  • マテリアル: フロー 100%
  • マテリアル: 引き戻し有効 チェックを外して無効に
  • スピード: 印刷速度 30mm/S
エア噛みは少なくなり透明度が出てきました。糸引きもかなり少なくなりました。印刷速度も上げてみましたが特に問題ないようです。ただ、最上部がガタガタになっています???

この最上部、よく見ていると一番最後だけなんかはみ出すくらい大きくヘッドが動いていてそのせいで変な形になってしまっています???
こいつの原因がわからずこの動きは何なんだとしばし考え込んだのですが、そういえば以前アイロンという設定を見たことがあると気づきこれを外してみました。

納得の設定(写真左端)

  • 外郭: アイロン有効 チェックを外して無効に
  • インフィル: インフィル密度 15%
  • マテリアル: 印刷温度 195℃
  • マテリアル: ビルドプレート 50℃
  • マテリアル: フロー 100%
  • マテリアル: 引き戻し有効 チェックを外して無効に
  • スピード: 印刷速度 30mm/S
ビンゴでした。最上部まできれいに整って印刷されました\(^_^)/

印刷終了後ノズルにフィラメントたまができているので、印刷終了後にアイロンがけしている際にフィラメントたれて無駄なバリを作ってしまうのではないかと思います。

2019年6月17日月曜日

Ubuntu 18.04 DNSでの名前解決エラー

どうも、開発サーバーへのアクセス時に通信エラーを起こすことが多いです。勝手に仮想マシンの設定の問題と決めつけていたのですが、どんどんひどくなっていっていよいよ Ajax のデバッグがほとんどできない状態に… 以前 syslog を見たときに Apache がコア吐いているのを見つけていたので、いよいよデバッグするしか無いかと再度 syslog を開いてみました。

あれ?なんか下記のようなエラーがいっぱい出ている…

systemd-resolved[864]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.

おかしいなぁとよく見ると、あ!開発用の CentOS じゃなくて開発マシンの Ubuntu の syslog 見てた…う〜ん、とするとエラーを起こしているのは Ubuntu の方か?とぐぐってみると出てきました。

New alert keeps showing up: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001

でこれによると、シンボリックリンクの /etc/resolv.conf がおかしなところを指しているのでこれを直せとのこと。

kiya@ubuntu:~/$ ll /etc/resolv.conf
lrwxrwxrwx 1 root root 34  6月 17 14:01 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

ん?stub って言葉が気になる…

kiya@ubuntu:~/$ ll /run/systemd//resolve/
合計 8.0K
drwx------ 2 systemd-resolve systemd-resolve  80  6月 17 14:04 netif
-rw-r--r-- 1 systemd-resolve systemd-resolve 733  6月 17 14:04 resolv.conf
-rw-r--r-- 1 systemd-resolve systemd-resolve 715  6月 17 14:04 stub-resolv.conf

ということで

kiya@ubuntu:~/$ cd /etc
kiya@ubuntu:/etc$ sudo unlink /etc/resolv.conf
kiya@ubuntu:/etc$ sudo ln -s ../run/systemd/resolve/resolv.conf resolv.conf

再起動すると、エラーが出なくなりました。

2019年4月24日水曜日

キャンピングトレーラーのバッテリーの維持

フロート充電について

年に数回しか出動しないキャンピングトレーラーのバッテリーのメンテが大変です。ディープサイクルバッテリーを使えば空にしても大丈夫なんでしょうがなんせ高い。そこで、普通の自動車用バッテリーを使うわけですが、そうすると最初に書いたようにきちんとメンテしてやらないとあっという間に駄目になってしまいます。

いろいろ調べたらどうやらフロート充電というのをしてやればいいらしい。内容的には自己放電量と同程度の少ない電流で充電し続けるってことらしいです。そう言えばいまから40年ほど前、自動車整備学校の授業でバッテリーの充電方法を習った時「教科書には載っていないが実習用のバッテリーは微電流で充電し続けている。我々は細流充電法と呼んでいる」なんて教師が話してたのを思い出しました。

充電器その1 定電圧定電流

最初に作ったのは定電圧定電流DC-DCステップダウンコンバーターを使ったもので、ポテンションメータが3つ付いていて電圧と電流に加え、充電中LEDが消える電流を設定できるタイプのものです。

ダイオードやモジュールをつなぐコネクタをユニバーサル基板に搭載し、その基盤に上記のデコデコモジュールと電圧/電流計、コネクタ類を接続して、3Dプリンターで印刷した自作ケースに収めました。

まぁ、割とよくできたとは思ったのですが、それなりにサイズが大きいのと逆接続保護用ダイオードをバッテリーにつなぐコネクタの手前、電圧計のあとに付けたので Vf で数字が信用できないのではないかと…テスターで測ってやるとそれほど狂ってもいません…そのへんは素人なのであまり良くわかっていませんm(_ _)m

Flameer DC-DC 電源モジュール ステップダウン 電子部品 降圧 LM2596S

DC電源モジュール 7V-35V→1.25V-30V 3A 【降圧型・定電圧定電流】
モジュールの設定方法が詳しく書かれています。

充電器その2 定電圧 LED電圧計付き

次に作ったのがDC-DC定電圧ステップダウンコンバーターモジュールを用いたもので最大充電電圧を13.7Vほどに制限しています。今回は7セグLEDの電圧計付きのモジュールにしました。過熱保護と短絡保護も付いているとのことです。

LEDの左右のボタンは電圧計の表示を入力と出力に切り替えるためと、それぞれのキャリブレーション用です。LED左右の穴は表示が入力か出力かを示すLEDののぞき穴、上部の穴は出力電圧調整用のポテンションメータ用です。

このバッテリーはホンダのディオ用に購入したのですが購入直後に廃車となってしまったので取り外してABSのアセトン蒸しに使っています。アセトンが漏れ出したときのこと考えて屋外で蒸すのですがいちいちAC電源を引いたりするのが面倒なのでバッテリーでやっています。12V 40mm のファンは定格電流100mAなので一晩やっても1Ah程度のはずなのですが、充電器にかけると12.5Vから始まります。見ているとどんどん電圧があがってゆくので順調に充電しているようで、そのまま放置したら13.6と13.7を行ったり来たりするようになりました。

13.7V時の電流をテスターで測ってみると20mAくらいなのでフロート充電となっているようです。

こいつはかなりコンパクトにできたので割とお気に入りです。ちなみに電源は24V/1AのACアダプタ使いました。


このケースの.stlファイルは下記にて公開しています。
https://www.thingiverse.com/thing:3572054

電源モジュール パワーモジュール 調整可能 ステップダウン 電圧計 5A 75W DC-DC

充電器その3 定電圧 LCD 電圧・電流計付き

Aliexpressでデコデコを物色していたらLCDが付いていて電圧と電流が表示されるものを発見しました。なかなかおしゃれなので早速ポチ、2週間ほど経つと届きまして早速作成。といっても、線をつなぐだけなのでもっぱらCADで筐体の作成。

LCD左右のボタンは出力電圧調整用です。

13.7Vに調整して充電開始。ここで大問題が発生!最初は問題なく充電していたのですが、しばらく経って見にゆくと電圧が低い???ポテンションメーターを回しても全然電圧が変わらない???

まぁ、中華パーツに不良はつきものなので仕方ないかと^^;こんな時のために基本的中華パーツは2個単位で注文しているのです。早速予備に交換して充電開始、しばらくすると同じ現象…え〜、なんで〜とAliexpressの商品ページを開いてしげしげ見ると入力電圧が5〜23V、しかも20V以内で使えと書いてある…24V入れちゃったから壊れたのね(;´д`)

仕方がないので再注文、2週間後に再組み立て、今回は余っていたノーパソ用のACアダプタ16.5V/3Aを使用しました。

13.7V時の電流は100mA、このバッテリーは軽自動車用の44B19L。こんなもんでいいのかな?翌日見たら0.01AになっていたからOKでしょう。

PS:キャリブレーション方法を探していたら「バッテリー充電には使用しないでください」と書いてあるショップがありました><;ダメなんだ…

2019年4月12日金曜日

IONIC4 で Android用がビルドできない。

またまた、ハイブリッドアプリを作ることになり IONIC の登場です。

IONIC に限ったことではありませんがOSSのソフトってガンガンバージョンアップするのはいいのですが互換性が…もっとも仕様変更よりもバグで動かなくなることが多々あるとは思うのですが…

前回の IONIC3 を使ったハイブリットアプリ作成時も Android Studio のバージョンがあがってあれこれ小細工しないとビルドできず苦労しました。なんとかリリースにこぎつけたのですが、その後、変更以来が来てちょこっと直してビルドしようとしたらエラー><;自分が普段使っているマシンはどんどんバージョンアップしてしまいます…

いやはや…ということで、それからは開発環境をまるごと仮想マシン化して環境をそのまま保存することにしました。

今回ははじめから仮想マシン上に Xubuntu 18.04 で開発環境を作りビルドはこの仮想マシンにて行い、コーディングとデバッグは sshfs にて接続して普段遣いのマシンで行うことにしました。

さて本題です。諸々を新規インストールして空のアプリをビルドすると「Could not find an installed version of Gradle either in Android Studio, or on your system to install the gradle wrapper. Please include gradle in your path, or install Android Studio」

あらあら、例によって Android Studio の Gradle が見つからないと…
find で探してみます。

[kiya@coins-dev coins]$ find / -name "gradle" -type f 2>/dev/null
/snap/android-studio/73/android-studio/gradle/gradle-4.10.1/bin/gradle
/home/kiya/.gradle/wrapper/dists/gradle-4.10.1-all/455itskqi2qtf0v2sja68alqd/gradle-4.10.1/bin/gradle
/home/kiya/.gradle/wrapper/dists/gradle-4.10.3-all/81msde2dx9p4vji0mjgtvxkcb/gradle-4.10.3/bin/gradle

なんか変なところにあるけど ~/.profile にパスを追加
# ちなみに /snap の方は実行権

# Android SDK のパス
export ANDROID_SDK_ROOT=${HOME}/Android/sdk
# avdmanager, sdkmanager
export PATH=${PATH}:$ANDROID_SDK_ROOT/tools/bin
# adb, logcat
export PATH=${PATH}:$ANDROID_SDK_ROOT/platform-tools
# emulator
export PATH=${PATH}:$ANDROID_SDK_ROOT/emulator
# gradle
export GRADLE_ROOT=${HOME}/.gradle/wrapper/dists/gradle-4.10.3-all/81msde2dx9p4vji0mjgtvxkcb/gradle-4.10.3
export PATH=${PATH}:$GRADLE_ROOT/bin

無事ビルドできました。

2019年4月9日火曜日

Ionic4 で Could not install from "android" as it does not contain a package.json file.

Ionic4 を新規インストールしました。Android プラットフォームを追加しようとするとエラーが><;

$ ionic cordova prepare android
? Platform android is not installed! Would you like to install it? Yes
> cordova platform add android --save
{ Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "android" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kiya/.npm/_logs/2019-04-09T04_27_30_999Z-debug.log
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:125:23)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:970:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  stderr:
   'npm ERR! code ENOLOCAL\nnpm ERR! Could not install from "android" as it does not contain a package.json file.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /home/kiya/.npm/_logs/2019-04-09T04_27_30_999Z-debug.log\n',
  code: 1 }
[ERROR] An error occurred while running subprocess cordova.
     
        cordova platform add android --save exited with exit code 1.
     
        Re-running this command with the --verbose flag may provide more
        information.

はてさて何が起こったのか…

とりあえずインストールマニュアルを見ると(マニュアル見ながらインストールしろ!と自分に突っ込みながら^^;)Ionic3 のときとはちょっと違っていて環境変数が不足しているよう…

# Android SDK のパス
export ANDROID_SDK_ROOT=${HOME}/Android/sdk
# avdmanager, sdkmanager
export PATH=${PATH}:$ANDROID_SDK_ROOT/tools/bin
# adb, logcat
export PATH=${PATH}:$ANDROID_SDK_ROOT/platform-tools
# emulator
export PATH=${PATH}:$ANDROID_SDK_ROOT/emulator

~/.profile に追加後、念のため再起動後に再実行すると

$ ionic cordova prepare android
? Platform android is not installed! Would you like to install it? Yes
> cordova platform add android --save
{ Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "android" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kiya/.npm/_logs/2019-04-09T05_06_37_182Z-debug.log
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:125:23)
    at ChildProcess.emit (events.js:189:13)
    at maybeClose (internal/child_process.js:970:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
  stderr:
   'npm ERR! code ENOLOCAL\nnpm ERR! Could not install from "android" as it does not contain a package.json file.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /home/kiya/.npm/_logs/2019-04-09T05_06_37_182Z-debug.log\n',
  code: 1 }
[ERROR] An error occurred while running subprocess cordova.
     
        cordova platform add android --save exited with exit code 1.
     
        Re-running this command with the --verbose flag may provide more
        information.

あれれ?同じエラーが…

"Could not install from "android" as it does not contain a package.json file."をぐぐってみると iOS で同じ現象に出会ったという人が!その人は ios/ というディレクトリを削除したらエラーが出なくなったとのこと。早速 android/ ディレクトリを削除して再実行すると正常に追加できました\(^_^)/

2019年1月17日木曜日

ムーブ ラテ ドアミラーウィンカーの交換

自宅の駐車場の塀に左ミラーをこすってしまいウィンカーが割れてしまったので交換しました。

ウィンカーランプはヤフオクで落札、さて交換しようと思ったのですがミラーの外し方がわからない…ググってみても外したあとの写真はあるのですが、どうやって外したかが書かれていない…

ムーブラテってあっちもこっちもはめ込み式でネジが少ない気がしたので、ままよ!と鏡の裏にマイナスドライバーを差し込んで強引に引き剥がしたら取れました\(^_^)/


外したものを見ると案の定はめ込み式でしたが上側は爪になっているので、下の方をこじったほうが良い気がします。

ミラーのカバーも爪で引っかかっています。


カバーを外したところ。ネジ3本で止まっていました。

Geeetech A10M 初印刷

昨夜、Geeetech A10M にて初印刷。フィラメント入れにくい!本体の後側からフィラメントを入れるようになっているだけでもやりにくいのに、フィラメントスプールがフィラメントの押さえを緩めるレバーに被さるような位置にあるものだから手が入れにくいのなんの><;さらにギアにまっすぐフィラメントが入ってるかの確認もしにくい><;

なんかただでさえトラブル多い機種みたいなので2色じゃリスクが更に増えます。どうも調べた感じでは A10 用のシングルにポン付けで交換できそうなんでグレードダウンしちゃおうか悩み中です。
Geeetech A10 A30 A20 3D Printer Printing Head $19.99
なんとかフィラメントをセットして Move Axis → Extruder でフィラメントの押し出しを確認、いい感じで出てきます。

次に2色目をセットして押し出そうとして困った、 Move Axis に Extruder は1つしかない!どうするんだろうと悩んだけど、まぁ、いきなり大物も時間的に厳しいので、以前自作したフィラメントクリップを印刷してみることに。(小さいので約9分)

Geeetech のサイトから落としてきた Cura の設定ファイルを ~/.local/cura/3.6/ に放り込んでから起動、プリンターを追加してスライス、印刷開始!

スカートはきれいに出るけど1層目からフィラメント不足、怪しげなモジャモジャになり2層目以降はフィラメントが出ずにヘッドだけが動いている…

フェースブックの Geeetech グループに A10M は Cura 3.5 でスカスカになる問題の解決策という投稿があったのを思い出し Cura の設定を確認。エクストルーダーのところの「適合する材料直径」が 2.85mm になっていたので 1.75mm にして再印刷。


左が今回印刷したもので見事にスカスカですw 右は以前 ANYCUBIC I3 MEGA で印刷したものです(きれい〜)

この状態をフェイスブックの Geeetech グループに投稿したら、もう一方のエクストルーダーにもちゃんとフィラメントをセットしないとフィラメントが逆流して印刷できないとのこと、E1 のエクストルーダーの動かし方を質問すると Mixer というメニューの中で左右(E0, E1)の混合比を変えることでフィラメントの押し出しができると教えていただきました。

早速、E1 にフィラメントをセット、押し出してみると E0 にセットした銀がいつまでも出てくる…逆流していたようです。これでうまく行くはずと再挑戦。


印刷できました〜。印刷を開始した直後に Mixer にて混合比を変えてやると色も変わるみたいなので3色試してみました。E0に銀色、E1に黒のフィラメントで、左から E0:100%、E0:50%+E1:50%、E1:100% の3色です。

50%+50% は上下から見ると銀、側面から見ると黒といったちと変な混ざり方、たぶん銀のフィラメントが混ぜ物してあって特殊なんでしょうね。

とりあえずこれはこれでなんとかなったので、SDカードに入っていた2色刷りのテストデータの印刷を開始して寝ました。

朝起きて、見ると印刷は完了していますが、なんか変…


最下層がずれています。う〜ん、これなんだろう?

2019年1月16日水曜日

Geeetech A10M 買っちゃいました^^;

ANYCUBIC I3 MEGA 2号機の機嫌が急に悪くなり、なかなか印刷が始まらなくなった(言い訳ができたw)ので、かねてから目をつけていた Geeetech A10M をアマゾンでポチりました。2万9999円でした。



GEEETECH A10M 3Dプリンター デュアルエクストルーダ・ミックスカラー、フィラメント検出および中断復帰機能、Prusa I3半完成DIYキット

最初は A10 という2万4500円の方を買うつもりだったのですが、どうせなら2色印刷できる方がいいだろうとこちらにしました。

プライムなので2日で到着、早速組み立て。噂によると ANYCUBIC I3 MEGA なみに簡単に組み立てられるとのことだったので期待していたのですが、1時間近くかかってしまった><;

原因は組み立て説明書。ペラ紙1枚で組み立ての説明は1/3ページほど。写真は小さいし暗いから黒い部品はどっち向いているのかさぱりわからず。T-ナット使うところも特に何も書いてないし…スプールホルダーの取り付け方法だけで30分位悩みました^^;


とりあえず組み立てだけは終えたのですが、何故か大量にネジが余った…大丈夫なのか不安に…

アマゾンのレビューにフェースブックのグループのことが書かれていたので、覗きにゆくと未登録だと定期的に登録しろダイアログが出てくるのね…仕方がないので新規登録、グループにも参加させていただきました。

先のネジの件を聞くと皆さん大量に余ったとのことだったので一安心しました。

1. 届いた荷物
2. 開封、LCDとエクストルーダーとコントローラー、Y軸、ヒートベッドなどが組み立てられているベース
3. 下段は電源と組み立て済みのX軸にネジ類など
4. ベースにX軸をボルト4本で止めます。
5. LCDをボルト2本で取り付け
6. 電源を付けて、エクストルーダーを取り付け
ここで困ってしまった。エクストルーダー真っ黒なので老眼+白内障の私にはどの向きにつけるのかマニュアルを見てもさっぱりわからない…強度的に考えてもフィラメントの流れを考えても上部に取付か?と適当に付けてみる…
スプールホルダーの取付部には3つの穴が空いているんだけどこれが付きそうな穴もない…

う〜ん、わからん。わからないときはつぶやくw「ネットにある画像と違う」とすぐに返信が\(^_^)/ そうか、ネットの画像見ればいいんだと酔っ払いがようやく気づくw

んで、エクストルーダの取り付け位置を背面にし、ネジ袋をよく見ると T-ナットが入っているのを見つけて無事スプールホルダーも取り付け完了。

7. 完成

夜もだいぶ更けたので、今日はここまで。XY軸のベルトテンション、触ってみるとかなりピンピン。緩めるべきかこのまま印刷してみるべきか…各部のガタやネジの緩みも確認しなきゃいけないし、エクストルーダーのピニオンギアが逆さまに入っているものがあるそうなんでそれも確認しなきゃだ。

ちなみに、こいつのエクストルーダーはタイタンでした\(^_^)/ ANYCUBIC I3 MEAG のエクストルーダーもタイタンに変えようと思っているところなのでなんか嬉しい。

ユーツベに「Video for 3Dtouch/Bltouch on Geeetech A10/A10M」といビデオがあってなんかオートレベリング簡単に付きそうなのでポチってしまった^^;



ANYCUBIC I3 MEGA 温度が上下して印刷が始まらない

順調に印刷できていた2号機が急に印刷しなくなりました。印刷を開始しヘッドの温度が規定に達したあと+10℃くらいまで上がり、その後下がってきて設定温度を超え−10℃くらいまで下がる。これを繰り返して印刷が始まりません。そのまま放置しておくと忘れた頃に印刷を始めます。



サポートに問い合わせたところ、

  1. ホットエンドのブロックにシリコンなどの断熱材をつける
  2. PID調整を行う
とのこと、シリコンの靴下は持っているんだけどPID調整というのに興味を覚え早速ググってみると、お〜!そのものじゃないか〜。

ということでやったことを記録します。

まずはPIDの説明:PID Tuning/ja
いまいちよくわからないけどこの数字をもとに温度を一定に保とうとしてるらしい^^;

このページには G-code を投げろと書かれている。どうするんだ?更にググると Repetier-Host というソフトを使うらしい。Linux 版あればいいなと覗いてみるとありました〜\(^_^)/ しかも、AppImage だ〜。ダウンロードしてきて chmod +x 実行権付けて /usr/local/ に mv してやればインストール完了、nautilus でダブルクリックしてやれば起動しました。

あとは先程のページに書かれている通りにやれば OK。

一応送った G-Code を書いておくと
  1. M303 E0 S200 C8
  2. M301 P19.56 I0.71 D134.26 (PIDの値は違います)
  3. M500
再起動して印刷を開始してみると、一発で印刷が始まるようになりました\(^_^)/

しかし、なんで急にこの値が変わったんだろう?

2018年11月1日木曜日

ESP32 にて謎のエラー

ちょっと前に ESP32 を使った Blynk アプリを作りました。
久しぶりに動かすことになったのですが一部仕様追加があったので修正してコンパイルしようとしたら謎のエラーが><;

Traceback (most recent call last):
  File "/home/kiya/.arduino15/packages/esp32/tools/esptool/2.3.1/esptool.py", line 34, in
    import serial
ImportError: No module named serial
「WiFi.h」に対して複数のライブラリが見つかりました
使用済:/home/kiya/.arduino15/packages/esp32/hardware/esp32/1.0.0/libraries/WiFi
未使用:/usr/local/arduino-1.8.7/libraries/WiFi
exit status 1
ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。

え〜。WiFi.h が複数あったっていいじゃん!で、調べてみるとこのメッセージは関係ないようです。

ESP32 ( ESP-WROOM-32 , M5Stack )自分的 トラブルシューティング まとめ

警告をすべてオンにして再コンパイルしても何も変わらず…で、エラーメッセージをしげしげ見るとどうやら esptool.py がエラーを出しているよう。

ということで下記を実行して無事コンパイルできました。

$ sudo apt install python-pip
$ pip install pyserial

Ubuntu 17.10 を 18.04 にアップグレードしたのですがどうも調子が悪いのでクリーンインストールしたのでその際必要なモジュールが不足してしまったようです。

Visual Studio Code にて C++ の { を単独行にしない

大昔から C++ のプログラムを書いている人間だと { を単独の行に書きたくなります。うろ覚えですが確か MFC(Microsoft Foundation Library) のソースがそうなっていたと思います。

私も以前はそう書いていたのですが、最近の多くの言語は { を生業分の末尾に書くことが多いようです。

C++ なんてほとんど使わなくなっていたのですが、最近 IoT なるものに手を染めまして、マイコンとかではやはり速度とサイズの問題で C++ が多く、使う機会が増えました。

Visual Studio Code は Microsoft製なので、自動書式整形を使うと { が単独行になってしまいます。これを変える方法はないかなと思って調べたところ設定をちょっといじれば変わるということがわかりましたので備忘録です。

C_Cpp.clang_format_fallbackStyle: "Visual Studio",

となっているところを

C_Cpp.clang_format_fallbackStyle: "Google",

なんてやってやるといい感じになります。

C_Cpp.clang_format_fallbackStyle の説明のところには下記のような記述があります。

Name of the predefined style used as a fallback in case clang-format is invoked with style "file" but the .clang-format file is not found. Possible values are Visual Studio, LLVM, Google, Chromium, Mozilla, WebKit, none, or use "{key: value, ...}" to set specific parameters, e.g.: "{ BasedOnStyle: LLVM, IndentWidth: 8 }"

Google翻訳に機械翻訳させると下記のようです。

スタイル "file"でclang-formatが呼び出されたが、.clang形式のファイルが見つからない場合のフォールバックとして使用される定義済みスタイルの名前。 指定可能な値は、Visual Studio、LLVM、Google、Chromium、Mozilla、WebKit、noneです。たとえば、「{BasedOnStyle:LLVM、IndentWidth:8}」などの特定のパラメータを設定するには「{key:value、...}」を使用します。

参考リンク

clang-format について日本語でざっくり書かれているページ
ClangFormatスタイルオプション

英語だけど詳しく書かれたページ
CLANG-FORMAT STYLE OPTIONS

2018年10月11日木曜日

Ubuntu 18.04 に WPS Office をインストール

以前インストールしたときはなんの問題もなくさっくり入ったのですが、アップデートで起動しなくなった Ubuntu をクリーンインストール後、再インストールすると言語設定に英語と中国語しか出てきませんでした。いろいろ調べてうまく行ったので備忘録です。

インストール


下記のページよりダウンロード後インストール
Downloads - WPS Office Community

日本語化


$ git clone git://github.com/wps-community/wps_i18n.git
$ sudo apt install libqt4-dev
$ cd wps_i18n/ja_JP
このままでも使えるのですがタイトルが Kingsoft xxxx 2013 となっているのでこれを WPS に変更します。
$ grep -Erl "Kingsoft.*2013" ./

上記の grep で「Kingsoft xxxx 2013」となっている部分が見つかるので vi などを使って修正する(タイトルが違っていても気にならない方はそのままでOK)

私は下記の3ファイルを修正しました。
  1. ./ts/etresource.ts
  2. ./ts/wppresource.ts
  3. ./ts/wpsresource.ts
$ sudo make install

起動時にフォントが見つからないと警告が出る


単なる警告なので無視しても大丈夫ですが毎回うるさいのでフォントをインストールします。
git clone https://github.com/iamdh4/ttf-wps-fonts.git
cd ttf-wps-fonts
sudo ./install.sh

下記のフォントがインストールされます。
$ ll /usr/share/fonts/wps-fonts/
合計 408K
-rw-r--r-- 1 root root 119K 10月 11 11:16 WEBDINGS.TTF
-rw-r--r-- 1 root root 65K 10月 11 11:16 WINGDNG2.ttf
-rw-r--r-- 1 root root 35K 10月 11 11:16 WINGDNG3.ttf
-rw-r--r-- 1 root root 27K 10月 11 11:16 mtextra.ttf
-rw-r--r-- 1 root root 69K 10月 11 11:16 symbol.ttf
-rw-r--r-- 1 root root 82K 10月 11 11:16 wingding.ttf

2018年10月5日金曜日

ANYCUBIC I3 MEGA フニャフニャ事件

「酔いどれプログラマーの不定期日記」と称しながら日記らしい記述がないですw

今回も日記というよりは顛末記。トラブルが別のトラブルを呼び、その修理対応でさらに別のトラブルを引き起こすということを繰り返して2週間ほど悩みまくったのでその次第を記します。

フィラメントが折れる


最初のトラブルは ABS フィラメントに変えたときに発生しました。ABS は難しいと聞いていたので PLA を使っていました。PETG が ABS と PLA のいいとこ取りみたいなことが書かれているのを見て試してみたのですが、糸引きが激しくサポートも取りづらかったのでお蔵入り。

いま、めったに使わない大型バイクとキャンピングトレーラーのバッテリーを維持するため 13.6V/1Aで充電し続ける細流バッテリー充電器を作っていまして、それのケースを PLA で作ったところ面取りがうまくゆかない><;ヤスリをかけても粉にならずに残ってしまうんです。

そこで、ABS を試してみるかと購入、寝ている間に印刷させたところ 1.5 センチ位しか印刷されていない!しかし崩壊したときのようなマリモができていない???なんだ?と思いエクストルーダーを見るとフィラメントがポッキリ折れている><;「あらら」なんて気楽に考えていたのですがこれがトラブル開始の合図でした。

折れたフィラメントを引き抜き再度設定、filament in では問題なく吐出してたのでノズルの詰まりはないと確認。230℃で印刷したのでちと温度が低かったかな?と 250℃に変更。しかし、また、ほぼ同じ位置でフィラメントが折れる><;

う〜ん何が悪いのだろ?ふと思ったのは  ANYCUBIC I3 MEGA はフィラメントをしたから吸い込むようになっているので本体と同じ高さにフィラメントホルダーを置くとどうしても斜めに吸い込む形になってしまいます。そこに無理があってフィラメントが折れるのか?早速、本体をラックの端に置き床にフィラメントホルダーをおいてフィラメントが垂直に吸い込まれるようにしてみました。結果は効果なし、またまた同じような位置でフィラメントが折れます。

う〜ん、困った。なんてここでもまだのんきに構えていたのですが、折れたフィラメントを抜き取ろうとしたところ短い切れ端しか出てこない!ゲゲッ!チューブの中にフィラメントが残ってしまった!これを抜かないことには何もできないじゃないか!

幸いプリントヘッドASSY がおまけで付いてきたのでこのチューブに交換しよう。ん、エクストルーダー側の(のちにワンタッチ継手という物だということ知る)金属製のネジが付属していません。なんとかこれをチューブから外そうとしたのですがチューブに噛み付いているようで抜けない><;ちと強引に抜いてやったのが失敗でした。組み付けて印刷しようとするとチューブが抜けてしまってフィラメントが入っていきません><;

この金属のネジを手に入れなければならないのでネットで調べてみると、ワンタッチ継手というもので抜く際には上部のプラスチックを押し込んでやらないといけないらしい><;更に引き抜く方向に力をかけるとチューブに爪が食い込んで抜けなくなるらしい!?って、フィラメントをエクストルーダーで押し込んでいるわけだから印刷中は常に引き抜く方向に力がかかっているわけで基本的に抜くことはできないものなのね…

いずれにしてもこのネジがないとどうにもならないのでアマゾンで検索、ワンタッチ継手2個付きのチューブが見つかったの早速注文、プライムなので1日で来るらしい。翌日、このワンタッチ継ぎ手を使って組み立て ました。ABS はもう懲りたので封印し PLA に戻しました。また、念の為、ノズルも新品に交換しました。

印刷物の硬度が低くフニャフニャ

早速印刷、よしちゃんと印刷できるじゃないか\(^_^)/と喜んだのもつかの間、印刷物に力をかけるとなんか柔らかい???壁が2層に分離してしまう…何だこりゃ!

まずは、インフィルの問題かと思い 100% にするも効果はありません。考えてみれば外壁の厚さは 1.5mm で設定の壁の厚さは 1.2mm なのでインフィルにはならないw

そこで外壁の厚さを 2mm に変更して印刷すると壁が3層に分離してしまいます…

次に考えられるのは温度の問題です。とりあえず 200℃から 230℃に上げて印刷してみたところだいぶ固くなりました。 250℃にすると以前と遜色ない強度が出ました。でも、そうすると今度はサポートがガッチリ張り付いてしまって取り除きにくい><;困った…

とりあえずサポートに問い合わせてみるかと思い、説明用に小さな箱を 200℃ 〜 250℃まで 10℃刻みで印刷して写真を取りました。その際 200℃〜230℃まではエクストルーダーから「カッ」と時々音がすることに気づいたのですが、この時点では別のことに気が向いていてあまり意識しませんでした。

この時点での私の予想は、温度が上がれば印刷できるので温度センサーが壊れたのではないかということで、取り敢えず現状とその説明の写真及びムービーをサポートに送りました。

翌日には返事があり、エクストルーダのネジの緩み、ノズルの詰まり、テフロンチューブをチェックしろとのことでした。ノズルは交換したとメールに書いたのに…ここのサポートってほんと送られてきたメール読んでないんだよなぁ。

とりあえず、ネジの増し締めとチェックを済ませて印刷するも状況を変わらずで、その旨を返信しました。更に返信がありエクストルーダーのムービーを送れとのことだったので、撮影して送りました。更に返信があり、サーミスタは正確に実際の温度を示しているかとの質問…それを計る手段を私は持ちません…正直なところ Pxmarion のトラブルのときはこういったメールを送ると疑わしい部品をすぐに送ってくれたのでそれを期待する気持ちもあったのですが、ANYCUBIC はそういうことはしないらしいです…とするとメールによるサポートはこの辺が限界かな?

ということで予備のプリントヘッドASSY からサーミスタとカートリッジヒーターを取り外して交換しましたが状態変わらず…

エクストルーダーギア交換


そういえばサポートはエクストルーダーだと言っていたなぁと思いだしまして、さらにネジの増し締めをしてみても効果なし、とりあえずバラしてみるかとギアを外してみると…

あちゃ〜、ギアの歯にはフィラメントがつまり、歯そのものも鈍ってしまっている。こりゃ滑って駄目だ。とりあえず、精密ドライバーを使って歯の間に詰まったフィラメントを取り除き、なまった歯も砥いでやる。これでどうだ!印刷してみると…

やった、200℃印刷できる!治った〜と思ったのもつかの間、その日、寝る前に印刷開始して翌朝見るとフニャフニャ><;ギアを見るとなまってる…アマゾンにギアを注文しました。

フィラメントが出ない!


あれ?フィラメントが出てこない!エクストルーダーはどんどん送り込んでいるのにフィラメントがどこかに消えてしまう…ノズルが詰まったか?ホットエンドからチューブとノズルを取り外し、針金を上から突っ込んでみても入りません。下から精密ドライバーを突っ込むとフィラメントが付いてきます。ホットエンドのヒーターをオンにし 230℃にあたためて下から精密ドライバーを突っ込み上から針金が貫通するまでフィラメントを絡め取りました。

しかし、組み立てて印刷しても現象は変わらずでした…

この時点でトラブル発生から8日経過、毎夜毎夜の修理に嫌気が差してきて買い換えようかとも考えたのですが、これ購入したの7月末。まだ3ヶ月しか遊んでないじゃん。ということで買い替えは思いとどまり、プリントヘッドASSYをまるごと交換することにしました。付属のものは諸々の部品を取ってしまったのでアマゾンで注文、プライムだけど残念ながら到着は翌々日…で、まるごと交換してみると…

復活\(^_^)/ 正常に印刷できるようになりました。

なんか、10日ほど3Dプリンターが使えない日々を過ごして感じたのは、私、3Dプリンター中毒になっているのかもしれません^^;