PikaPikaLight

主に光モノ工作の忘備録

アノマロカリスロボ作成記

初めに

これまで動くものを作ったことはなかったのですが、スタックチャンを作るためにサーボモーターを購入し、そこから動くものへの工作意欲がわいてきました。勉強のため機構に関する書籍を探していたのですが、そこで出会った一冊がこちらです。

この中にあったアノマロカリスロボ。これにとても心惹かれ、3Dプリンタで作れないか検討する日々が始まりました。

作成の記録

Tweitterで過程を紹介していたのでまとめます。

機構のキモ

書籍の中ではコの字クランクで実現する方法を紹介されていますが3Dプリンタで作成するのは困難だったので、円柱を位相をずらして並べる構造にしました。 縦にプリントします

3Dデータ公開

データを公開しました。 アノマロカリスロボに興味を持ってもらった方はこのデータにとらわれずに、ぜひ自分なりの実現方法の模索やアレンジをして欲しいです。 github.com

泳がせてみた記録

最終的には泳がせたいです。現行品をお風呂で無理やり泳がせてみた結果・・・こいつ泳げます。
モーターを防水する方法を考えないと。

ドット絵カメラシステムを作った

初めに

昨年末にLEDドット絵の世界に足を踏み入れました。 pikapikalight.hatenadiary.com ドット絵のデータはExcelを駆使してそれなりに効率化できたのですが、それでもなかなか大変な作業でした。
カメラで撮った絵をリアルタイムでドット絵に変換できたら簡単にドット絵が作れて楽しそうと思い、挑戦してみました。

完成品

結論を先に。こんなのを作ることが出来ました。 youtu.be

ハードウェア

カメラはM5StackのUNIT-Vを使いました。以前こいつで色々やっていて、UNIT-VのMicroPythonはWS2812が動かせることを覚えていたのです。 pikapikalight.hatenadiary.com ここで問題が一つ、UNIT-VのGroveコネクタは5V出せるのですが電流はほとんど流せない。とてもじゃないけど16x16=256個のLED点けることはできない。LEDパネルとUNIT-Vの電源を別々にとるしかないけれど、それだと配線がすっきりしない。
考えた末に閃きました。以前作成した「虹を投影する懐中電灯」と同じく、パネルの方に先に電源をつないでそこからコントローラーの方に電源をつなぐことで配線をすっきりさせる手法です。 電源コネクタにはUSB-Cを、UNIT-Vとの接続にはGroveコネクタを使えるように改造しました。

ソフトウェア

恥ずかしながらコードを公開します。
私はこれまでほとんどC言語しか使ったことがなく、このUNIT-Vで初めてPythonにふれました。正直、言語としての良さは理解できてません。 けれどたったこれだけのコードでこれが作れる事実はすごいなと思います。

import sensor, image, time, lcd
from Maix import GPIO
from modules import ws2812
from fpioa_manager import *
fm.register(board_info.CONNEXT_A)
class_ws2812 = ws2812(board_info.CONNEXT_A,256)
while 1:
    try:
        sensor.reset()
        break
    except:
        time.sleep(0.1)
        continue
sensor.set_hmirror(1)
sensor.set_vflip(1)
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.B64X64)
sensor.skip_frames(time = 1000)
sensor.set_contrast(-2)
sensor.set_saturation(2)
sensor.set_auto_gain(True)
sensor.run(1)
r_num = 0
g_num = 0
b_num = 0
for i in range(10):
    a = class_ws2812.set_led(i,(10,10,10))
    a=class_ws2812.display()
    img = sensor.snapshot()
    img2 = img.resize(1, 1)
    print(img2.get_pixel(0, 0))
    r_num = r_num + img2.get_pixel(0,0)[0]
    g_num = g_num + img2.get_pixel(0,0)[1]
    b_num = b_num + img2.get_pixel(0,0)[2]
    time.sleep(0.1)
print(r_num)
print(g_num)
print(b_num)
rgb_ave = (r_num + g_num + b_num) / 3
print(rgb_ave)
r_factor = rgb_ave / r_num
g_factor = rgb_ave / g_num
b_factor = rgb_ave / b_num
print(r_factor)
print(g_factor)
print(b_factor)
sensor.set_auto_gain(False,sensor.get_gain_db())
print(sensor.get_gain_db())
try:
    while(True):
        img = sensor.snapshot()
        img2 = img.resize(16, 16)
        img2 = img2.histeq()
        k = 0
        sc = 5
        for i in range(8):
            for j in range(16):
                rr = img2.get_pixel(i * 2, j)[0] * r_factor
                gg = img2.get_pixel(i * 2, j)[1] * g_factor
                bb = img2.get_pixel(i * 2, j)[2] * b_factor
                rr = int(rr) / sc
                gg = int(gg) / sc
                bb = int(bb) / sc
                rgb = (int(rr),int(gg),int(bb))
                a = class_ws2812.set_led(k,rgb)
                k = k + 1
            for l in range(16):
                rr = img2.get_pixel(i * 2 + 1, 15 - l)[0] * r_factor
                gg = img2.get_pixel(i * 2 + 1, 15 - l)[1] * g_factor
                bb = img2.get_pixel(i * 2 + 1, 15 - l)[2] * b_factor
                rr = int(rr) / sc
                gg = int(gg) / sc
                bb = int(bb) / sc
                rgb = (int(rr),int(gg),int(bb))
                a = class_ws2812.set_led(k,rgb)
                k = k + 1
        a=class_ws2812.display()
        time.sleep(0.1)
except KeyboardInterrupt:
    pass

コードのポイント

sensor.set_framesize(sensor.B64X64)

framesizeを正方形にしておくことで16x16に変換したときに歪まないようになります。

sensor.set_contrast(-2)
sensor.set_saturation(2)

こうしたほうがなんとなく色がくっきりするような気がしたのでこうしてますが、気のせいである可能性大です。

r_num = 0
g_num = 0
b_num = 0
for i in range(10):
    a = class_ws2812.set_led(i,(10,10,10))
    a=class_ws2812.display()
    img = sensor.snapshot()
    img2 = img.resize(1, 1)
    print(img2.get_pixel(0, 0))
    r_num = r_num + img2.get_pixel(0,0)[0]
    g_num = g_num + img2.get_pixel(0,0)[1]
    b_num = b_num + img2.get_pixel(0,0)[2]
    time.sleep(0.1)
print(r_num)
print(g_num)
print(b_num)
rgb_ave = (r_num + g_num + b_num) / 3
print(rgb_ave)
r_factor = rgb_ave / r_num
g_factor = rgb_ave / g_num
b_factor = rgb_ave / b_num

起動時にホワイトバランスを補正するシーケンスです。起動時に白いものにカメラを向けて補正値を算出することで色の再現性を上げられないかと考えたコードです。本当は16x16個分の補正値を出した方がいいんでしょうが、そこまでやってません。 img.resize(1, 1)で1画素データにしてしまってそのRGBの補正値を出しています。この辺、今後の検討課題です。

sensor.set_auto_gain(False,sensor.get_gain_db())

auto_gainをFalseにするのは必須です。これをしないとチカチカしちゃいます。

img2 = img.resize(16, 16)

カメラの画像を16x16にするたった一行の呪文です。

    k = 0
        sc = 5
        for i in range(8):
            for j in range(16):
                rr = img2.get_pixel(i * 2, j)[0] * r_factor
                gg = img2.get_pixel(i * 2, j)[1] * g_factor
                bb = img2.get_pixel(i * 2, j)[2] * b_factor
                rr = int(rr) / sc
                gg = int(gg) / sc
                bb = int(bb) / sc
                rgb = (int(rr),int(gg),int(bb))
                a = class_ws2812.set_led(k,rgb)
                k = k + 1
            for l in range(16):
                rr = img2.get_pixel(i * 2 + 1, 15 - l)[0] * r_factor
                gg = img2.get_pixel(i * 2 + 1, 15 - l)[1] * g_factor
                bb = img2.get_pixel(i * 2 + 1, 15 - l)[2] * b_factor
                rr = int(rr) / sc
                gg = int(gg) / sc
                bb = int(bb) / sc
                rgb = (int(rr),int(gg),int(bb))
                a = class_ws2812.set_led(k,rgb)
                k = k + 1

sc = 5 はRGB値を5分の一に下げて、明るさ=消費電流を下げる処置です。 16個ごとに逆転させているのは使用したLEDパネルがそういう並びのものだったからです。

完成

スナフキンのフィギュアがいい感じに出たときは感動しました。

玄関のカギ監視システムを作って一年経ちました

初めに

一年前のGWに玄関のカギ監視システムを作りました。 pikapikalight.hatenadiary.com 運用して一年経ちましたので、その後の話をします。

トラブル

最初はM5AtomLiteで運用していたのですが、数か月後データが途切れるようになりました。どうもWi-Fiが切れてしまっているようで、電源OFF/ONで復帰するのですがたびたびトラブル発生するようになりました。
M5AtomLiteのアンテナに問題ありという情報もありましたので、M5Stack Basicに変更してみました。プログラムはUARTのピン番号のみ変更するだけでほぼそのままです。その後は安定して通信できるようになりました。

カギ監視

1年間運用してみて問題なく鍵の状態をスマホで監視できています。これは思った以上に便利でした。
ウチの子供は小学校低学年なのですがちゃんと想定時間に帰宅していることがスマホで確認できます。
家族で長時間のお出かけするときなども間違いなく鍵をかけたことがスマホで確認できます。
心配性な自分にとって、もはやなくてはならないIoTです。

電池残量

TWELITE CUEはコイン電池 CR2032 で動きます。運用して一年経っても電池交換なしに動いています。
TWELITE CUE標準のソフトでは磁気センサの状態の他に電源の電圧値も取得できるようになっていたのでそれも記録していました。
その結果がこちらです。 ウチの玄関のカギは2個ついているので2個センサーをつけていて、上側がD1、下側がD2です。
徐々に減っていくのは当然なのですが、今年の2月中旬以降は上がっています。これを見るに電池の電圧は残量以外に気温にも連動しているようです。
この感じだとあと半年ほどは電池交換なしでいけそうです。

感想

電池交換なしに一年以上運用できました。コストパフォーマンス的には十分イケてるんじゃないでしょうか。

ケーキを五等分する為の懐中電灯を作った

初めに

我が家は5人家族なのですが、ホールケーキを5人で分ける際など等分にカットするのに困っていました。 そんな中、素晴らしい発明品のニュースが。

レーザーでラインを照射するというナイスアイデア
真似したい。けどさすがにこれは大がかりすぎるので、単純化してみました。

試作

光で細いラインを作るのは難しいです。この発明品のようにレーザーを使えばできますが装置的には大がかりになってしまいます。そこで簡単にできる方法を考えました。光でなく影を使う方法です。
手持ちの100円ショップの懐中電灯に対して、中心から72度の角度でラインを引いたアタッチメントを3Dプリンタで作りました。 f:id:PikaPikaLight:20220311210849j:plain

これをはめて照射すると f:id:PikaPikaLight:20220311210948p:plain やりました。狙い通りに影のラインができます。このタイプの懐中電灯は反射板の効果で、ある程度は平行な光が作れるので影もしっかりでました。

この影にそってナイフを入れれば、 f:id:PikaPikaLight:20220311211237p:plain 最初の試作で成功です。

改良

最初の試作ですでに目的の機能は実現できましたが、懐中電灯との接続部分の寸法が甘く、セロテープで貼り付ける処置だったため作り直すことにしました。
そこで思ったのが、「これって単純にカバーにマジックでラインを描けばいいだけじゃないの?」

最近3Dプリンタを毎日のように使っていたため、何でもかんでも3Dプリンタで作ってしまってましたが、より簡単な方法を求めるのがエンジニアの性です。 五等分の線を描くために下敷きとなる模様をCADで作成し紙に印刷しました。 懐中電灯の透明カバーを外し、この模様にあててマジックで線を描きます。 f:id:PikaPikaLight:20220311213046j:plain 線を描いたカバーを懐中電灯に戻して、スイッチON f:id:PikaPikaLight:20220311213428j:plain f:id:PikaPikaLight:20220311213516j:plain バッチリです。

成果

ケーキ f:id:PikaPikaLight:20220311213735j:plain かに玉 f:id:PikaPikaLight:20220311213932j:plain 思ったより適応範囲は多そうです。

今後の課題

懐中電灯は対象物にまっすぐ照射する必要があります。自分で持ってカットもするのは難しいので、子供に持たせてお父さんがカットする運用を想定していました。ところが実際に子供に持たせてみたところ、微妙に斜めに照射して自分の取り分をちょっとでも大きくしようとするズルをしました。それを瞬時に思いつくところはすごい。 まっすぐ当てるための固定方法が課題です。

最後に

五等分のラインを描くための下敷き模様です。印刷してお使いください。 f:id:PikaPikaLight:20220311212833j:plain

LEDドット絵の世界に入門した

初めに

Twitterですごい動画を見ました。

見慣れたLEDテープを使ってこんな表現ができるとは驚きでした。
LEDテープを使った工作はどちらかというとLEDのツブツブ感をなくすためにいかに広く拡散させるかということに主眼をおいているのですが、それとは逆の方向でツブを際立たせることでドット絵が表現できるとは。目からうろこが駄々洩れです。
 

LEDパネル起動

こんなの見たら真似せずにはいられません。そして思い出しました。Amazonプライムセール(半年前)で買って積みLEDにしていた16x16LEDパネルのことを。 www.amazon.co.jp

格子を作る

早速3Dプリンタで格子を作りました。パネルのサイズは16x16cm。1つのLEDブロックがちょうど1cm角だったので3D CADで設計するのも簡単でした。
f:id:PikaPikaLight:20211212203640j:plain

拡散素材を求めて

これに光を拡散させるための素材を貼り付けるのですが、zerotaro氏の動画ではスモーク色のアクリルを使っているようです。スモーク色を使うことで黒を際立たせているものと想像します。自分はとりあえず手持ちの乳白色のプラ板を使おうかと思っていましたが、出来上がった格子を見て「これって障子みたいだな」と思いました。障子紙を貼ればいい感じに拡散しそうな気がします。
そこで障子紙を求めて100円ショップに向かいました。だがしかし、そこに障子紙は売ってませんでした。100円ショップは何でもあるように勘違いしていましたが、障子紙はそういった品ではなかったのです。ホームセンターで障子紙見つけましたが、デカい、そして安くても1500円くらいする。必要なサイズは16x16cmなのでこの投資は過大ではないか。悩んだ末に障子紙をあきらめて、100円ショップで書道用半紙を買って帰りました。
黒格子&半紙のフィルターを装着することでこんなになりました。ちょっと感動です。 f:id:PikaPikaLight:20211212213537p:plain

ちょっとした改善

最初の試作は単純な格子にしたのですが、LEDパネルにあててみて、これだとコンデンサに当たることに気付きました。これだとコンデンサの高さ分の浮きができるし、コンデンサが剥がれてそれが回路をショートさせてしまう危険性もあります。コンデンサの逃げを追加して再作成しました。 f:id:PikaPikaLight:20211212205411p:plain

描画プログラム

ハードはできたので次はソフトです。LEDテープは散々いじってきましたが、LEDパネルはほとんど触ってきていません。立方体万華鏡を作るときに使いましたが、あれは単に1次元のテープとして扱って、だいたいの位置を光らせていただけでした。
何かいいサンプルプログラムはないかと思ったらFastLEDライブラリXYMatrixがありました。とりあえずこれをそのまま使ってデモしてみました。

ドット絵のプログラム

XYMatrixプログラムでXY座標を指定してRGB値を設定することはできますが、問題はドット絵をどうやってプログラムに落とし込むかです。手作業でやっていてはさすがに時間かかりすぎます。専用のアプリが必要なレベルですがそんなのをちゃっちゃと作れるスキルはありません。 こういう時はExcelです。ドット絵との相性も良さそうだし。
セルの背景色を取得する関数はなかったのでユーザー関数として作りました。 VBAで全部やればいい話ですが、VBAあんまり分かってないので出来るだけ目に見える形にしたかったのです。

Function cellcolor(cell As Range)

    Dim myR As Long
    Dim myG As Long
    Dim myB As Long
    Dim MyColor As Long
    
    MyColor = cell.Interior.Color

    myR = MyColor Mod 256              
    myG = Int(MyColor / 256) Mod 256     
    myB = Int(MyColor / 256 / 256)         
    
    cellcolor = myR & "," & myG & "," & myB
     
End Function

これでセルの背景色のRGB値を取り出せたので、そこから描画コードに力技で変換しました。 こんな感じです。 f:id:PikaPikaLight:20211210221603p:plain

ドット絵を描く

さていよいよドット絵を作ります。ドット絵で思い出したのがからあげ先生の奇跡のリポジトリ「deep running」の「mario_deeeeeep_running」です。 karaage.hatenadiary.jp このソースのインパクトがすごくて覚えてました。こんな文字コードがあるのかと。 サイズもズバリ16x16。著作権も問題ないこと確認済み。www.nintendo.co.jp 「個人であるお客様は、任天堂のゲーム著作物を利用した動画や静止画等を、営利を目的としない場合に限り、投稿することができます。」だそうです。

この絵柄を真似してエクセルでドット絵をかいてみました。同色セルをコピペしていけばいいので思ったより効率いいです。4種類の絵を描いてプログラムに変換し、切り替えスピードを変化させて歩き→走りにしてみました。

白色フィラメントでの試作

黒色フィラメントで格子を作ってそこに拡散素材の半紙を貼るという方法でいい感じのもの出来ましたが、半紙を貼るのはちょっと手間です。
白色フィラメントで全部作れればそれにこしたことはないので、実際に作ってみました。
やはり隣のドットへの光漏れがありますが、それなりにはドット絵に見えるのでこれはこれでアリかなと思います。

今後の展望

今回は16x16のLEDパネルを使いましたが、zerotaroさんのように任意の形で作るのも面白そうです。プログラムは大変そうですが。
考えるほどに色々なことが出来る気がします。マイコンにM5製品を使えば無線でデータ更新することもできますし。
LEDテープの可能性に気付かせてくれたzerotaroさんには本当に感謝です。

余談

「半紙」をDeepLで英語に翻訳したら「Japanese writing paper used for calligraphy」と出ました。
逆翻訳すると「書道用の日本製の紙」です。DeepL凄いなと思いました。
ちなみにGoogle翻訳だと「半紙」→「Calligraphy」(書道)でした。

LEDテープで色変わりの刀を作った

100円ショップのおもちゃの刀を改造して、色変わりの刀を作ってみました。
電源入れるごとにランダムで色が変わる機能と振ると音が鳴って赫刀化するエフェクトを実装。

注意事項

・改造は自己責任でお願いします。
・乾電池の+-ショートさせたら燃える恐れあり。
・使わないときは電池を抜いておいたほうがいいと思います。
・子供は加減が分からないことを肝に命じておきましょう。(全力で振りまわす可能性を想定するべし)

初めに

じつは私の初めてのツイートがこの色変わりの刀の動画です。

もともとLEDテープをプログラムで光らせるのが好きで、そのスキルを活かして子供のためにこの色変わりの刀を作ってみたのでした。
電源を入れるたびにランダムで青、赤、黄、緑、紫、白のどれかに光ります。○○の呼吸の剣士の気分を味わえます。
f:id:PikaPikaLight:20210820202451p:plain 子供ウケもよかったのですが、すぐに飽きられてしまい、せっかく作った名刀は部屋の片隅に置かれたままになっていました。
自分的にはかなりの力作だったのでこのまま朽ち果てさせるには惜しいと思い、意を決してTwitterアカウントを作り、#見た人もなにか無言でLチカあげる のハッシュタグにのせて世に出してみたのでした。


それからというのも作品をアウトプットする楽しさに目覚め、今でははてなブログで技術記事を書くようにまでなりました。 そして、満を持してこの刀に関する分解記事を5月末に書きました。 pikapikalight.hatenadiary.com その最後に、「次回はこれの作り方を解説したいと思います。」と書いておきながら今まで忘れてました。
万一、期待していた方がいたらすいません。これの作り方を解説します。

材料

このおもちゃ刀は振動で音が鳴るというハイテク製品ですが、その振動スイッチの信号をマイコンに結線し、割り込みトリガーとすることで音と同時に赤色に変化させ赫刀化するというエフェクトを組み込んでいます。

電源を入れるごとにランダムで色が変わる仕組みはrandomSeedをADC値にすることで実現しています。
randomSeed(analogRead(analogPin));
analogPin(今回0番ピン使用)はオープン状態だとADC値ほとんどゼロなので、ここに意味のないワイヤーをつけてノイズを拾わせることでランダムな変化を加えることが出来ました。

固定方法

たいしたことではないですが、XIAOの固定は100円ショップで購入した練りゴムを使ってます。ポスターとかを画びょう使わないで固定するためのやつです。接着剤と違って何度でも取り外しできるので工作でよく使ってます。ワイヤーがゴチャゴチャになるのも練りゴムで簡単にまとめられます。 f:id:PikaPikaLight:20210820211058j:plain

終わりに

ピカピカ工作の原点とも言うべき作品をようやく記事にしてみました。ただ、最初に注意事項を挙げているようにそれなりに注意をしなければいけない工作なのでくれぐれも油断なきよう。

その他動画

激安3Dプリンタ Kingroon KP3S トラブル対応編

はじめに

2万円の3Dプリンタ Kingroon KP3S を購入して約1か月経ちました。
かなりの安定度でプリントできていますが、いくつかのトラブルはありましたのでどう対処したか含めてメモしておきます。

対処法に関しては、もっといいやり方などありましたら教えていただけると嬉しいです。

購入時の記事はこちら
激安3Dプリンタ Kingroon KP3Sを購入した(前編) - PikaPikaLight
激安3Dプリンタ Kingroon KP3Sを購入した(後編) - PikaPikaLight

コンセントが3Pプラグ

f:id:PikaPikaLight:20210816200126p:plain コンセントは3Pプラグです。普通の家でこれが挿せるのは冷蔵庫か洗濯機かエアコン用のコンセントしかないでしょう。最初、エアコン用のコンセントに無理やり挿すという対処をしていましたが、素直に変換プラグを購入しました。マルツで300円くらいでした。 f:id:PikaPikaLight:20210816201609p:plain アースを浮かしてますが水回りでもないので多分大丈夫でしょう。問題なく動いてます。

プラットフォームシートの端がめくれた

3Dプリントの失敗の多くはプリントの途中で印刷物がプレートから外れてしまったり反ってしまったりするのが原因だと思います。
昔、仕事で使っていた安い3Dプリンタではプレートに幅広のマスキングテープを貼ってそこにスティック糊を塗りたくって印刷物を食い付かせるというやり方でした。この方法だと下面にマスキングテープが糊でべったりついてしまい、それを剥がすのが大変でした。
そこに登場したのが3M社の3Dプリンタ用プラットフォームシート3099ABでした。こいつの効果は絶大で、食い付きがいいのにキレイにはがすことが出来て、何回もそのまま繰り返し使えるという、最高アイテムでした。自分の中では必需品であったので、3Dプリンタと同時購入して、最初っからプレートに貼っていました。
それで快適にプリントできていたのですが、大物をプリントしたときにシートの端がめくれてしまって、印刷物が歪むトラブルが起きました。 f:id:PikaPikaLight:20210816202653p:plain ここでようやく気付いたのですが、KP3Sのプレートには初めからマグネット式のビルドプレートが付いていたのでした。何も考えずこの上にシートを貼ってしまっていました。

マグネット式のビルドプレートは1枚2300円くらいでした。3099ABは3枚で同じくらいの値段なので3099ABのほうが安いです。純正のマグネットシートは温存しておくことにして、3099ABを直接プレートに貼りなおしました。そして四隅が剥がれないようにカプトンテープで補強しておきました。その後は快適にプリントできてます。(貼り直しのため気泡だらけですが、特に問題ないです) f:id:PikaPikaLight:20210817194913p:plain

もじゃった

1か月で1回だけもじゃりました。 f:id:PikaPikaLight:20210817201602j:plain
プリント途中で全体がプレートから剥がれてしまってのもじゃりです。原因は明らかでレベリング(プレートとノズル間の隙間調整)が甘かったです。最初のプリント状態を見ていて、なんか浮いてるなぁーとは思っていたのですが、3099ABの力を過信してそのままにしたのが失敗でした。
それからはレベリングは頻繁にするようにして、プリント時は1層目の状態は必ず確認するようにしています。

フィラメントの取り外しに失敗して抜けなくなる

これまでで最大のトラブルがこれです。フィラメントを抜くことも挿しこむこともできなくなる、まさしく抜き差しならない状態です。この1か月で3回発生しました。
KP3Sにはいちおう日本語(明らかに機械翻訳)の取扱説明書が付属していますが、フィラメントの挿入方法、取り外し方法は書かれていません。
ネット情報では予熱してから手動で突っ込む、手動で引き抜くといったワイルドな方法しか見つけられませんでした。
挿入に関しては余熱して手動で突っ込む方式で問題なく出来てますが、引き抜くほうは手動では難しいです。引き抜くスピード、タイミング、途中のもたもた次第でフィラメントが変形してしまって、にっちもさっちもいかなくなる事態に陥ります。こうなったら、エクストルーダー部を分解しないとどうにもなりません。

エクストルーダー部を分解

分解するには六角ネジをまわす必要があります。付属品に六角スパナがついているのでそれで回すことは可能ですが作業性は悪いです。六角ドライバーがあると便利です。私はたまたまTwitterでこの六角ドライバーを見かけて、M5Stackのネジも回せることから購入しました。

最初にこのケーブルを抜いておきます。この手のコネクタケーブルはワイヤー部分だけをつまんで外そうとすると勘合部分を破損する恐れがあるので、コネクタ部分をもって外すのが無難です。 f:id:PikaPikaLight:20210817205642p:plain

まずこの2か所のビスを外します。
f:id:PikaPikaLight:20210817204822p:plain

ビスを外すと明らかに3Dプリンタで作成されたパーツが外れます。ノズルに風を送るためのパーツみたいですが、3Dプリント丸出しのパーツが製品で使われていることに驚きました。3Dプリントにしては縦横の空間形状が複雑で、どうやって作ったのか思いをはせつつ次に進みます。

右の1個、左の2個のビスを外すと大型ファン部分が外れます。
f:id:PikaPikaLight:20210817212435p:plain  

ノズルについている小型のファンを外します。 f:id:PikaPikaLight:20210817212451p:plain

ここを外します。場所によってビスの長さが違うので戻すときに注意必要です。 f:id:PikaPikaLight:20210817212529p:plain

ノズル部分を手前に引いて外します。うまく外せばバネによるフィラメント押さえのパーツはそのまま外さずにおけますが、気を抜くといっしょに外れてしまいます。バネなので飛び散る場合がありますので、バネ部分を抑えながら外すといいと思います。(自分は思いっきり飛び散って探すのに苦労しました) f:id:PikaPikaLight:20210817213411p:plain

ノズル部分はネジになっていて回すと外れます。小型ファンを固定しているプラパーツは外せますので外したほうが簡単に作業できます。 f:id:PikaPikaLight:20210817213838p:plain

ノズルを外すと引っかかっていたフィラメントがどうなっていたのかが明らかになりました。変形してふくらみができています。これが引っかかってにっちもさっちもいかなくなっていたのでした。 f:id:PikaPikaLight:20210817214141p:plain

フィラメントを抜く方法

手で引っこ抜くのはおそらく熟練の技術が必要な技です。
どうやって抜くのが正解かいまだ試行錯誤している状況ですが、現時点での解は、
予熱して、いったんフィラメントを挿入してある程度ノズルからフィラメントを出しておいてから、「移動」メニューの「押し出す」で「高速」にしておいて「取り外し」を連打するというものです。 f:id:PikaPikaLight:20210817215314p:plain
単純に高速取り外ししただけでは失敗するときがあり、いったんフィラメントを押し出してから取り外す手法を編み出しました。今のところ3連続で成功していますが、失敗したらまた次の手を考えます。

追記 2021/9/11
上記方法ですが、現時点で10回以上連続成功で100%の成功率です。

最後に

大小のトラブルはありましたが、結論としてはKingroon KP3S 最高にコストパフォーマンスがいいマシンだと思います。購入1か月ですが、すでに元が取れた感あります。3Dプリンタは生活になくてはならない家電です。