「3DPrinter」タグアーカイブ

アクリルプレート用の光るスタンド作り

動機は?

たまによくある記念品のアクリル彫刻されたプレートを立てるためのスタンドが欲しくなった。1000円ぐらいで市販されてるけどせっかくなので自作にトライ。(過去に2~3回作ってるけど記録してなかった……)

ケースは試行錯誤

ケース形状はいつもどおりFusion360で試行錯誤。今回の目指す形は、単4駆動、どうせ裏向きなので電池蓋なし。PUSHのトグルスイッチで電源ON、昇圧モジュールで5Vを生成してる。

テープLEDは白色の通電するだけで光るものを使用。(最初はNeoPixel+ATTiny85のつもりでケースの幅も考えてたけど光の色変えなくてよいというリクエストだったのと、マイコン入る隙間がなくなりそうだったので、単色にした。)

NeoPixelに比べると単色テープは幅も厚みも小さいのでアダプタを作ってケースにマッチさせた。

ケース上部のスイッチ穴とケース下部に絶妙な大きさで突起を作ることで、接着剤なしでPUSHスイッチを固定できている。

電池ケースのケーブルと、テープLEDの配線を通すために、ケース下部は左右に溝がある形にしている。サポートなしで印刷できるように”<”の形。

素材

フィラメントはPolyMaxのPLA灰色
昇圧コンバータ―
PS-85S(秋月在庫切れ?)
単4電池ボックス
白色テープLED

最後に

いつものことながら、Fusion360をいじっていると、ついついギリギリサイズを狙うせいで、かなり窮屈になってしまう。なんとかケースに収まってよかった……

名前PICKERをアップデートした

2023/12/06追記

電池切れ。

2022/10/19追記

今日電池切れ。2022年6月に作ったので思った以上に長持ちした。電池一本でもよかったのかもしれないけど、電池本数減らしても厚みは減らせないから、逆に3本に増やしてもいいのかも。

用途も使い方も前回と同じ

あらかじめ登録された複数人の中からランダムに一名を指定するための装置。授業中に回答者を指定するために使うことを想定してます。

今回注力したところ

簡単に電池交換できることと、文字を大きく表示できるようにOLED2枚使いにしたところ。

前回のNamePickerはCR2032を使っていたのだけれど、ケースを開けて配線丸出しにしないと電池交換できなかった(LEDをもいだ効果か、3週間ぐらいは電池が持った様子)。

今回はできるだけ手軽に電池交換できるように、部品の入っている空間と電池の入る空間を分けて、スライド式で開けられる電池蓋をつけた。

また、前回は128×32のOLED1枚を使っていたけど、文字が小さすぎて名前がよく読めないという問題があったので、今回は128×64のOLEDを2枚組み合わせて使って、文字を大きく表示できるようにした。

LovyanGFXでつまづいた

実は前回も128×32のOLEDを使おうとしたときに、偶数行奇数行の描画順序の問題でつまづいて、らびやんさん(@lovyan03)にアドバイスいただいていたんだけど、今回は1つのマイコンで2枚のOLEDを扱おうとしたら最後にinitを読んだ方しか使えない問題でつまづいて、またまたアドバイス頂いた。

LovyanGFXでは、I2Cに使うピンを自由に選べるので、てっきりソフトウェア的なI2Cだと思い込んでいたんだけど、実はESP32のコードではハードウェアI2C(ESP32には2個あるらしい)を使っているとのこと。ただ、ESP8266向けのほうはソフトウェアでやってるので、そちらのコードを移植してくれば3つ以上のディスプレイも使えるかもとのこと。

前回も今回も、つぶやいた直後にアドバイス送ってくださってるんだけど、いったいどういう仕組みで監視しているのか……
ありがたや。

Fusion360もがんばった

今回はちょっと頑張ってモデリングした。趣味のロボット製作という本を参考にさせてもらって、ケースそのものだけではなくて、OLEDやボタン、電池など、内蔵される部品もモデリングしたり既存データを取り込んだりして、中身が見える状態でケースをモデリングした。

いつもはケースに組み込む部品のサイズだけをノギスで計って、その部品が配置できるだけの空間を空想しながらモデリングしてたけど、ちゃんと部品もモデリングすると、干渉するかどうかが正確にわかるので、格段にケースが作りやすかった。

最後に

今回、初めてFusion360で各パーツをコンポーネントとして定義した。(今まで全部1コンポーネント内に複数ボディとして作っていた……)

コンポーネントに分離すると、移動もできるし、色分けも簡単にできるし、アニメーションも作れる。ということで組み立てアニメーションも作ってみた。

今回は、Fusion360を活用できたので満足。

名前Pickerをつくった

OLEDとプッシュスイッチ2つ

用途

あらかじめ登録された複数人の中からランダムに一名を指定するための装置。授業中に回答者を指定するために使うことを想定してます。

使い方

右側の横長の枠部分が名前が表示される部分。左端の灰色のボタンがクラス切り替えスイッチ。水色ボタンはPickボタンで、Pushするたびに、現在選択中のクラスからランダムに一名の名前とふりがなと通し番号が表示される。

一度表示された名前は、クラス全員が表示されるまでは再表示されない。この仕様を実現するためには、クラスの全員に対して、ランダムに順番を割り当てておいて、それを順に表示していけばよいので、クラス切り替え時とクラス全員の名前表示が一巡したときに、現在選択されているクラス全員分の順番決め抽選を実施している。

今回注力したところ

今回は、「DeepSleep機能活用でハード的な電源スイッチをなくすこと」を目標にした。いちいち使い終わるたびに電源オフするのは面倒なので、電源スイッチなしで長時間駆動を実現しようとして頑張ってみた。

回路図をきれいに書く術を知りたい……

M5Stamp(ほかのM5シリーズも同じぽい)は、DeepSleep中はRTC部分だけ?が動いているらしい。変数を宣言するときにRTC用のRAMとして属性を宣言してあげると復帰後も変数の中身が保持されている。

Lang-shipさんのサイトがとても参考になった。

https://lang-ship.com/blog/work/esp32-deep-sleep/

ケースづくりノウハウ

こういう小物のケースを作るときには、いつも適当にFusion360をいじってるのだけど、毎回行き当たりばったりなのと、ボタンやマイコン、ケースのフタをうまく固定するような形状にできなくて、ホットボンドや接着剤だよりになってしまってるのが困りどころ。

先日、@ina_ani さんが投稿されていたLibreCADとOpenSCADを組み合わせるという方法が気になってる。

Fusion360も捨てがたい

今朝、Prusa用のエンクロージャーが発表されたというツイートから、いろいろ3Dプリンタ系のブログを見ていて、偶然見つけたのだけれど、電子辞書Hackで有名な@puhitakuさんの記事で紹介されていた「Fusion360でCAD設計を覚えよう」シリーズも気になる。

最後に

いつも通りとりとめのない記事になってしまったけど、とりあえず、今回のCR2032x2でどれぐらい電池が持つかが気になるところ。DeepSleep中の電流は当初0.35mAだったけど、M5StampのLEDを除去したら0.15mAになったので、(計算よく分からんけど)1週間以上は持つ、かな……

OCTOPRINTでリモート3Dプリントする

振り返ってみると2020年の記事が一個しかなかった。そもそもWordpressが好きになれないというのが大きな問題のような気もする。とりあえず2021年最初の記事では3Dプリンタをリモート制御してくれるWebアプリ OCTOPRINTを使ってみます。

なぜOctoPrint?

うちにある3Dプリンタはネットワークプリントに対応していません。(最近はWifi機能の搭載されたマイコンが安いからWifi機能が搭載された3Dプリンタも増えてるのかな?)

OctoPrintにはOctoPiというRaspberry PI用のRaspbian派生ディストリビューションがあります。そもそもRaspberry PIで動かすのがオーソドックスな使い方で、Raspberry PI以外で使ってるのはあまり見たことがないような。。。

OctoPiを搭載したRaspberry PIを3DプリンタにUSB接続しておくと、パソコンからOctoPiのWebアプリに対して印刷データを送ることでリモート印刷することができるようになるので、3Dプリントのトライ&エラーの繰り返しが楽になるはず。

今までSDカード抜き差し繰り替えするのがかなり面倒だった。。。一時期は東芝のFlashAirで簡易無線化してたのだけど、いつからかFlashAirがPCから見えなくなってしまったので、それ以来SDカード抜き差し方式に戻ってしまっていた。

セットアップする

OctoPrintの公式サイトからOctoPiのディスクイメージがダウンロードできるのでそれをいつものEtcherでマイクロSDカードに書き込む。ちなみにRaspberry PI公式サイトを見ると、いつのまにかEtcherじゃなくて専用のRaspberry Pi Imagerというソフトが用意されている。

EtcherでOctoPiのイメージを書き込んだら、マイクロSDカードの中にあるoctopi-wpa-supplicant.txtを開いてWifiに接続できるようにSSIDとパスフレーズを書き込む。このマイクロSDカードをRaspberry PIに差し込んで電源を入れてしばらく待つと、pi@octopi.localでssh接続できる。初期パスワードはいつものraspberry。ホスト名がraspberrypiではなくてoctopiであることに注意する。ついでにRaspberry PIのCSIポートにラズパイカメラを接続しておく。

いちおうpasswdでパスワード変更と、sudo apt update && sudo apt full-upgrade -y && sudo apt cleanで最新OSに更新しておく。(この手順ではOctoPrintは更新されてなかったみたい。この後でOctoPrintのWebUIを触ってたら更新通知がでてきてUI上から更新できた。)

あとはブラウザからhttp://octopi.localに接続するとOctoPiのセットアップがはじまるのでそれなりに設定値を入れておく。(忘備録:Original Prusa i3MK3の印刷範囲は250x210x210)

設置する

3Dプリンタの近くにRaspberry PIを置いて、USBケーブルで接続する。ただこのとき必要なのはTypeBのケーブル。ミニBでもマイクロBでもないごついやつ。最近TypeBなんて使う機会がないのでケーブルが手元になくて焦った。道具箱を漁ったらShigezoneで買ったタイプBケーブルが見つかった。たしかArduino UNO互換機とセットで買ったやつ。

OctoPrintの画面
OctoPrintの画面画面

Connectを押すとつながったぽい。Controlタブを開くとカメラの映像が表示されてヘッドのXYZを操作できた。

お試し印刷してみる

せっかくなのでタイムラプス撮影を有効にして何か印刷してみる。印刷データはプリンタにさしてあるSDカードにUploadするかRaspberry PIにUploadするかを選べるみたい。

OctoPrintのgががmがめがめn画面画面

ブラウザからUploadしたら印刷始まった。ヘッドとベッドの温度がグラフで表示されてかっこいい。

印刷中の様子が撮影される

最後に

ずっと前からやってみたいと思ってたのでとりあえず動くようになったのでよかった。

(プリンタを組み立てた時からOctoPrintは試してみたかった。実はOriginal Prusa i3MK3Sは制御基板に直接Raspberry PI ZeroをぶっさしてOctoPrintで制御できるらしいので、それを試そうと思って、組み立て時に制御基板ケースにZERO用の穴をあけておいたのだけど、ZEROだと処理速度がいまいちという情報を見かけたので、結局USB接続の3Bでやってしまった)

あとはRaspberry PIからプリンタの電源ON/OFF操作できるようにしたいのと、カメラとRaspberry PIの設置位置をちゃんと整えたい。そもそも温度維持のためのケースももうちょっときっちりしたい。今はスタイロフォームをガムテープで張り合わせてるけどペロペロはがれてきがちなので、接着するか、なにか別の方法でかっちり固定するかしたい。

IoTLT#6で自動給餌機とスマートスピーカー連動の話をしてきた

2018/02/16(金)19:00 〜 21:00
福岡版IoT縛りの勉強会 vol.6@Fukuoka Growth Next
で初LTしてきた。

発表に使った資料はこちら。しかじろうさんの代わりにガヤ芸お願いしたとこの個人名と艦長の写真は削除。Googleスライドから変換したら画像遷移のアニメーションもなくなってしまった。

 

 

しゃべりなしの資料だけだとわけがわからないけど、流れとしては、スマートスピーカー・IoT・3Dプリンタを組み合わせると世界が広がってとってもいいですよというのを感じてもらいたい⇒実例紹介⇒モデリングの苦労編、という感じ。

単にスマートスピーカー連動のIoT餌やり機を作りましたで話し始めると、へーってなってしまいそうだったので、色々導入方法を考えて、夢は大きく現実でずっこけ感でるように、スタートレックのレプリケーターを真似したいというのを(後付)動機にしてみた。

一番がんばったのはイラストやさんを使わず、オール手描きイラストで資料つくったところ。スケッチブックにHB鉛筆でがんばって描いた。自信作はスポックさんと紅茶飲んでる艦長かな。

ESPとかIFTTTの使い方とかは調べたりすればすぐわかるのであっさり流し。モデリングの苦労と言うか、変化の過程も見てもらいたかったのと時間余るのが怖くてプレゼンの最後にモデリングの過程資料を付け足したけど、モデリングパートにたどり着いたときにすでに5分経ってたので、完全に時間オーバー、蛇足だった。

発表直前に思いついてしかじろうさんツイートを盛り込んだおかげか、手書きイラストのおかげか、聴講者のみなさんが話した内容に対してしっかり反応かえしてくれて、いい雰囲気でLTできた。一番の失敗は動画撮影をお願いしていたつもりが、動画ってちゃんと伝えてなくて写真撮影してもらってたこと・・・ガクー。

LT後の懇親会では前々から話を聞いてみたかったIoT主婦さんとがっつりお話できたのがよかった。なんにでもばんばん飛び込んでいく姿勢、刺激を受けました。とりあえずアレクサスキル公開したくなった。

スライドにはソースコード一切でてこないので、一応ちょっとだけコードがでてくるQiitaのリンクも貼っておく。

esp8266でSlackBotを作ってIFTTTからのメッセージを待ち受けする

最後に、福岡版IoT縛りの勉強会 vol.6の他の登壇者の資料へのリンク。IoT主婦山田さんの「Voice」と、Blenderの師匠宮田さんの「攻めの可視化」。

宮田さんの方は装置?の写真がないと意味不明なので写真もつけておく。