ページ移動

エントリー

カテゴリー「3Dプリンタ」の検索結果は以下のとおりです。

3Dプリンタカバーなど(続)

マザーボードを変更する前にやっておきたいことがようやく終わりそう

IMG_20230818_140040.jpg

エンクロージャー

上の蓋と手前に扉を作製

IMG_20230811_120803.jpgIMG_20230811_120817.jpg

全てはめ込み式にしたので取り外し可能

上部から覗きこめるように透明板(透明写真立ての板を使用)を付けたが前面からも見えた方が便利そうなので後で扉にも付けた

IMG_20230811_120826.jpgIMG_20230811_162923.jpg

扉に使用するための丁番が(ダイキ)だと高価だったので3DプリントしようとしたがCADで上手く作れない

困っていたらコーナンで嬉しい安価版を見つけた

IMG_20230823_131632.jpg

扉留めには磁石を埋め込んだ

フィラメントガイドも隙間ができないように作り直している

エンクロージャは主にABSの積層割れ対策だが,消費電力の改善や冬場の温度保護にもなるだろう

エアフロー用FAN

エアフロー用FANは上部のバーに付け,コントローラをラズパイボックスの横に付けて24Vを元電源から引いた(コントローラはエンクロージャ内に設置予定だったが熱のため変更)

IMG_20230820_135100.jpgIMG_20230822_132146.jpg

温度監視

エンクロージャの上部と下部で温度監視するためBMP280を2個I2C接続で使用

コントロールはラズパイで行うがOctoPrintは利用できないので,映像を含めてラズパイで監視システムを組み込むことにした

(BMP280)

I2C接続した2つのBMP280から温度を取得するためpythonでプログラミングするのだがBMP280のライブラリが無いのでArduino版を参考にして作る( 写真はラズパイ3Bを使ってテスト中)

IMG_20230812_132613.jpg

しかし何故か温度が5~6℃高くなる

Arduinoで確認すると正常なのでBMP280の異常ではない

後で見つけたBME280のスイッチサイエンス版(1接続用なので利用できない)でも同様で温度に誤差がある

読み込んだレジスタ値を(同時ではないが)Arduinoで読んだ値と照合したところ異なる部分があるのでBullseyeのI/O Ctrl部かI2Cの不具合も考えられる

原因不明なため温度の元になる値を5℃分強制的に下げることにした(気圧値にも影響あるため元になる値を補正)

(配信の実装方法)

取得温度の表示はリアルタイムにするため「websocket」を利用(websocketは初なのでこちらが参考になった)

映像は「OpenCV+websocket」「RTSP」「GStreamer」を試行してみたところ正常動作しないので「MJPG-Streamer」を使った(Bullseyeなのでこちらを参考にすると良い)

(OS設定)

ラズパイZERO WHで使用するので32ビット版のBullseyeを使う

2023-05-03-raspios-bullseye-armhf-lite.img.xz

後で再セットアップした際,最新のラズパイイメージャーが正常に動作したので利用したが直接書き込んだ場合以下の問題あることが判った

SSHを有効にするため「/boot/ssh」(拡張子なし)を作成するが,SSHでログインできるUIDが無い

→ 最初の起動でパーティションを拡張,再起動後,consoleでユーザとパスワードの設定待ちとなっている

ログインできたら定番の設定

$ sudo raspi-config

host-name → 当ネットワークの命名規約
LANG → UTF8追加
TimeZone → ASIA,Tokyo

I2C Enable
Serial console Desable + Serial Enable(Bullseyeで扱いに変更あり

$ sudo apt update --allow-releaseinfo-change
$ sudo apt update
$ sudo apt upgrade
$ shutdown -r now

(注)IPアドレスはDHCPサーバにて管理

pythonとGPIO

$ sudo systemctl disable hciuart. → (Bluetoothで「PL011」を使う設定をUARTで使うようにする)

(pythonセットアップ)
$ sudo apt install git
$ sudo apt install python-dev python3-pip

(pipの確認)
$ python -m pip -V
/usr/bin/python: No module named pip

(pipのアップグレード)
$ sudo pip install --upgrade pip
...
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 20.3.4
...
Successfully installed pip-23.2.1

$ pip -V
pip 23.2.1 from /usr/local/lib/python3.9/dist-packages/pip (python 3.9)

(GPIO出力)
$ sudo pip install wiringpi
...
Successfully built wiringpi
Installing collected packages: wiringpi
Successfully installed wiringpi-2.60.1
...

(websocketライブラリ)
$ sudo pip install tornado
Installing collected packages: tornado
Successfully installed tornado-6.3.3
...

(smbus2を使用可能にする)
$ sudo pip install smbus2
...
Installing collected packages: smbus2
Successfully installed smbus2-0.4.2
...

$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 77

MJPG-Streamer(映像配信)セットアップ

$ sudo apt update
$ sudo apt install -y git cmake libjpeg-dev
$ cd
$ git clone https://github.com/neuralassembly/mjpg-streamer.git
$ cd mjpg-streamer/mjpg-streamer-experimental
$ make
$ sudo make install

ラズパイ専用カメラモジュールを使う場合 (input_raspicam.so)
$ cd $HOME/mjpg-streamer/mjpg-streamer-experimental
$ mjpg_streamer -o 'output_http.so -w ./www -p 8080' -i 'input_raspicam.so -x 1920 -y 1080 -fps 30 -q 10'

USBカメラを使う場合 (input_uvc.so)
$ cd $HOME/mjpg-streamer/mjpg-streamer-experimental
$ mjpg_streamer -o 'output_http.so -w ./www -p 8080' -i 'input_uvc.so -d /dev/video0 -r 640x480 -fps 30 -q 10'

-wは//(root)のコンテンツを指定する場合
-pのポート指定は8080でないと動作しない(コンパイルで固定になっている部分があるのか)
ラズパイ専用カメラモジュールはUSBカメラのライブラリでも動作する
LD_LIBRARY_PATH=/usr/local/lib/mjpg-streamerの指定無しでも動作した(上のコマンドはライブラリのあるディレクトリで起動している)

(コード)

温度表示サーバ(server.py):websocket(tornado)用のサーバサイドpython

映像配信サーバ(mjpg-streamer.sh):MJPG-Streamerサーバ起動用のプロシージャ

監視画面用HTML(main.html):温度表示サーバと組みとなって表示(CSSは未公開)

BMP280温度(newBMP280_2.py):server.pyから使用されるBMP280温度取得python

CPU温度(cputemp.py):server.pyから使用されるCPU温度取得python

(監視画面)

WS202324.png

エンクロージャ内は暗いので照明が必要か

(追加:2023.08.24)

照明を追加12VのLEDモジュールを2個直列して24Vで使用(バーに引掛けて設置)

IMG_20230824_173416.jpg

見える程度にはなったのでとりあえずは良しとする

WS20230824_02.png

外気31℃時,PLAの印刷にて(ビルドプレート50℃設定)上部がMax.42.1℃,下部がMax.39.9℃まで達した

(設置)

I2C用のケーブルをどうするか悩んでいたところ丁度コネクタが異常になったUSBケーブルが出来たので利用

IMG_20230816_111914.jpg

設置用のパーツ(センサー台,ケーブル止め)は3DプリントしてXH端子を付けて完成

IMG_20230817_145015.jpgIMG_20230818_162108.jpg

レールのTスロットに差し込んで回せば止まるように作ってある

IMG_20230820_135108.jpgIMG_20230820_135121.jpg

接続元は基板の空きがなかったため2段にした(いいかげん作り直せばいいのだがw)

IMG_20230822_132120.jpg

排気(未)

冬までには追加する予定

3Dプリンタカバーのエアフロー

3Dプリンタのエンクロージャーはビルドプレート上の熱を抑え込むようにしないとならない

何もしないカバーを掛けただけだと上部だけが暖かくなってしまうのでFANを使って熱を循環させる

IMG_20230809_124005.jpg

FANは上部に付けてやれば(設置場所も悩んだけど)良いのだけどFANの効力がどんなものか判らない

なら・・・ファンコンを付けちゃおうってことで作製,FANは交換前に3Dプリンタに付いていた24V版を再利用することにした

(回路図)

ファンコン_回路図.png

  • コントロールはATTINY13aで十分
  • 風量はソフトウェアPWMで変更(FANが24V0.05Aなので2N7000)
  • 無断変速にする程でもないのでタクトSWで切替
  • LEDは後で付けたので回路図にはない(PB3に10mAで接続)

(スケッチ)

fanCtrl.txt

電源ONデフォルトを7:3のPWMにした(4段階可変)

ブレッドボードで確認

IMG_20230808_194706.jpg

設置する場所が横平棒になるので横長にしてみた(ボードはパーツ配置後切断)

IMG_20230809_121938.jpg

FANは2台で最終動作確認

IMG_20230809_122930.jpg

デフォルトの回転数で0.076A

IMG_20230809_123037.jpg

最高回転数で0.112Aであった(FAN0.05×2+LED0.01A+AVR)(注)LEDとAVRは5V

IMG_20230809_123104.jpg

エンクロージャーへの設置は次回

(排気)

完全密閉ではないがエンクロージャー内の温度監視しながら外へホース経由で排気しようと考えている

IMG_20230809_124006.jpg

PLAプラスフィラメント(クリア)

3Dプリンタのエンクロージャーのジョイントを改良しようとしたところ,使用していたフィラメントが無くなってしまったので再購入しようとしたら価格がアップしていた

仕方ないので同じ「マット ライトブラウン」か近い色のフィラメントが木に合うので探してみたが別商品でも安くはない

IMG_20230801_124911.jpg

そこで造形が良好のPLAプラスフィラメントでクリアを選択

PETGでクリアは知っていたのだけどPLAでもあるとはどんな印刷物になるのか楽しみである

IMG_20230731_203606.jpg

「黒」「シルバー」でも選択した,STVICTORYのPLAプラスフィラメント(クリア)

フィラメントの見た目は半透明

IMG_20230801_124047.jpg

切れ端だと透けて見えるほど透明なのが判る

IMG_20230801_124835.jpg

早速印刷してみると(Cura設定はPLAプラスで同じ)造形自体は良好

IMG_20230801_134835.jpg

印刷物は内壁クロスの積層もあってかガラス細工のようにも観える

IMG_20230801_134850.jpg

またPLAだと0.8㎜ノズルで印刷すると表面がザラザラになるのが(透明ということもあってか)少し収まる

骨組みにジョイントを装着したところ見栄えも良い(ジョイントは透明が合うようだ)

IMG_20230801_183041.jpg

改良点は断熱用のプラダン装着用の差し込み口で,当初はプラダンを貼り付ける予定だったのを取り外しができた方が便利なので修正

IMG_20230801_183215.jpg

後は上部の問題もあるが前面を観音開きにするかどうか考え中

 

 

eSUN ABS+の印刷設定の追い込みが大変だった

3Dプリンタのマザーボード更新が完了するまで印刷ができないので必要な印刷を行っている(流石にPCのように複数台の3Dプリンタは持てない・・・)

その中でホットエンドの予備を,eSUN ABS+(黒)を購入していたのを使ってみようと印刷したら普通のABS(青)と異なるのか同じ設定では積層割れが発生して印刷設定の追い込みが大変だった(ので記録しておこうと)

IMG_20230726_191310.jpg

(積層割れしたABSのゴミ)

結局,理由は冷めるまでの時間と温度だと考えられ,ABS+はかなりシビアになフィラメントなんだろうかと思われる

エンクロージャーで断熱,温度管理するのが一番の解決方法なのは判っているのだが・・・ABSのみ必要と夏ってこともあり後回しになっている

そこでドラフトシールドを駆使して何とかならないかとCuraの印刷設定を追い込むことにした

SS20230729_02.png

品質ではライン幅をノズル径より少なくして被らせた方が良いようだ

PLAなら0.4㎜でも十分だが,ABSで0.38㎜,ABS+だと0.36㎜でないと厳しい

SS20230729_01.png

冷却は微妙で変化が判りにくい

造形物にもよると思うが密着性と良くしたいので粘度を保つよう冷やさないようにした

SS20230729_03.png

マティリアルはフィラメントの指定通り

ABS+は温度指定が広く220~260℃なのだが高温にしても密着性は上がらないようだ

ビルドプレート温度は初期80℃で通常は70℃にしたがガラスなので問題ない(ガラスだとABSの付きが良すぎなのでエンクロージャーがあれば60℃でも良さそう)

印刷速度は30㎜/s前後が失敗しにくいようだ

SS20230729_04.png

これらの設定と暑さ(気温上昇)のせいか綺麗に印刷

IMG_20230726_190556.jpg

印刷終了時(17時頃)の室温が32.9℃

IMG_20230726_191236.jpg

最高気温が36℃を超えた日であった

SS20230729_05.png

SS20230729_07.png

つまりのところエンクロージャーで周辺温度を35℃以上にコントロールすれば良さそうである

エンクロージャーと周辺パーツ

今回の件もありエンクロージャーは土台で止まっていたのを骨組みまで進展させた

IMG_20230729_134911.jpg

PLAでジョイントを作り木材で構成(0.8㎜ノズルで造形)

フィラメントガイドもABSで作り直し,強度が欲しいので最終的にインフェルを80%にした

IMG_20230726_191636.jpg

最初にPLAで作ったフィラメントガイド

IMG_20230721_092101.jpg

次のように設置したがエンクロージャーで囲ったら曲がってしまいそうなのでABSで作り直したという訳である

IMG_20230725_100352.jpg

手前(エクストルーダの位置)と奥のガイドは強度の問題で長さを変えてある(動作がおかしいなら修正予定)

IMG_20230729_153950.jpg

おまけ

少しだけ積層割れした印刷物を捨てるのは惜しいので塩ビ用接着剤で繋いでみたところ接着面が広ければ十分使える

穴の部分で積層割れを起こしていたダクトファン取付パーツ

IMG_20230726_191803.jpg

アセトンを密閉した箱内で気化させ表面を溶かしてみたところ大して溶けなかった

ABS+は溶けにくいことと,気化したアセトンは空気より重いのでファン等で循環しないと駄目なようだ

そこで筆で表面を塗ってみた

IMG_20230726_191810.jpg

IMG_20230726_191816.jpg

斑になってしまったが硬化したので使えるパーツになったので予備品にした

ページ移動

ユーティリティ

検索

エントリー検索フォーム
キーワード

過去ログ

Feed