ひたすらプラモデルを作ってる。

ここ数ヶ月、特に在宅保育してた期間にだいぶ参ってしまい、そしてまぁ Google Photos は本格的に壊れるし、そして壊れてもなんとかする気も起きず、他のプログラミング的なことをする気も全然起きずで

  • 非常に短かい期間で
  • あまり創作的なエネルギーを使わず
  • 何らかの成しとげた感が得られる

ということをしたいなと思った。プラモデルある程度ちゃんと作るというのをしたことがなかったし、子どものころはやりたくてもあまりできなかったことの一つなので、結構楽しい。

エアブラシ

エアブラシの敷居がとにかく高くて、子どものころももちろん使ったことはなかったけど、最近は入門用というか、充電式コンプレッサつきの安いエアブラシなんかもあって案外敷居が低い。

RAYWOOD エアブラシ セット USB 充電式 コンプレッサー ダブルアクション カップ(20cc,40cc) クリーナー 5本 付き 口径0.3mm 小型 プラモ 模型 塗装 アート クラフト - Raywood

Raywood

3.0 / 5.0

最初は ↑これを買って使ってみてた。ちゃんと薄めれば吹けるし、全然悪いとは思わなかったけど、やっぱりちゃんとしたエアブラシを使ってみたいなと思った。

ということで、後述するコンプレッサーを買う動機の1つになるなとも思って、クレオスの定番エアブラシを買ってみた。

GSIクレオス プロコンBOY WA ダブルアクション 0.3mm エアブラシ ホビー用塗装用具 PS274 - GSI クレオス(GSI Creos)

GSI クレオス(GSI Creos)

5.0 / 5.0

エアブラシ本体の違いが素人にわかるか?というとハッキリとわかる。

  • 手入れがしやすい (磨いてあるおかげか汚れが落ちやすい??)
  • レバーが軽いので指が疲れにくく、微調整しやすい
  • 先端ネジの精度が良くスムーズ (安いのはパッキンが溶剤に弱いみたい)

あとはコンプレッサの違いで、安いのはどうしても圧力が低いのでサフを一気に奥まで吹いたりするのはきつい。

コンプレッサー

元々エアダスター用途や、あるいは単にコンプレッサーという代物が欲しいと思っていたけど、さすがに動機が弱すぎたので、エアブラシに使うという1つの用途が産まれたことで買うことができた。

ASTRO PRODUCTS 04-09238 サイレントエアコンプレッサー 6L 04-09238 - アストロプロダクツ

アストロプロダクツ

5.0 / 5.0

買ったのは ASTRO PRODUCTS サイレントエアコンプレッサー 6L というもの。最高圧力 0.8MP、エアフロー 45/49L/min。エアツールを使えるコンプレッサーとしては 6L はかなり少ない容量だが、置き場的にこれ以上には厳しい。

エアブラシ用途では 6L は完全に十分。充填速度のほうが遥かに早いのでまずオーバーヒートすることはない。ダスター使うと数秒で 0.6MP まで圧力が落ちて再充填になるが、間欠で使えないことはない。

スペック的に騒音値は 60dB で、これはコンプレッサーとしては静かなほうだが (会話はできるレベル)、そうはいってもうるさいので防音箱も作った。

ちなみにエアブラシ用のコンプレッサーの定番は「Mr.リニアコンプレッサーL5」というもので、これは騒音値 50dB、最高圧力 0.12MP で、小型で24時間通電できるものだけど、値段的にはサイレントエアコンプレッサーとあまり変わらない。

エアブラシとコンプレッサーの接続

まず内径サイズが3種類ある

  • 1/4 または L サイズ
  • 1/8 または S サイズ
  • PS(細)

(R はオスで外ねじ、Rc はメスで内ねじ。Rc 1/4 のように表記する。PT 1/4 は古い表記だが一緒の意味で、PT1/4内ねじ == Rc 1/4)

一般用のコンプレッサーの接続は 1/4 サイズのワンタッチカプラ(ハイカプラ) や 1/4 サイズの管用ねじが使われる。

エアブラシ本体 1/8 サイズが使われている。

PS(細) はクレオスだけで使われている。同梱のホースは PS(細) で、エアブラシ本体は 1/8、そして変換コネクタが付属する。

自分は PS(細) を混在させるとややこしいと考えたので

  • コンプレッサ (カプラメス)
  • (カプラオス) 1/4 ホース (カプラメス)
  • (カプラオス・1/4 ネジ) レギュレータ・ドレンキャッチャ (1/4 ネジ・カプラメス)
  • (1/4 1/8 変換) (1/8 ネジ) エアブラシ用 1/8 ホース (1/8 ネジ)
  • (1/8ネジ) エアブラシ

という感じで繋いだ。レギュレータはコンプレッサ本体にもついているが、そっちは 0.4MP 固定にして、作業環境に近いほうにもう1つレギュレータ件ドレンキャッチャをつけて微調整できるようにした。

塗装ブース

安い塗装ブース、フル回転させるとうるさすぎるので、ステップダウンコンバーターをつけて電圧可変できるようにした。プラダンで排気用のダクトを保持するようにして、使うときだけ窓枠に挟んでる。

AFV (戦車とか) プラモデルの良さ

  • 工程の出戻りが発生しにくい (塗装と組立がいったりきたりすることが少ない)
  • 雑に作ってもどうせウェザリングやウォッシングするので気が楽
  • 失敗が存在しない。何か欠けても味になる

基本的に、あらかた組立てたら、オキサイドレッドのサーフェイサを吹いたら楽しい感じになる。あとは足まわりとか奥まったところとかに黒をしっかり吹いてから、ベース色を軽めに吹いていくとそれっぽくなる。

サーフェイサ以外はラッカー塗料は使っておらず、タミヤの水性アクリル塗料を使っている。なのでサーフェイサ以外は塗膜が弱いのだけど、オキサイドレッドを吹いておくと、うっかり塗膜を擦って剥してしまっても錆っぽくなってごまかせる。

戦車はかっこいいし良いです。

Google Photos が発狂してからと書いてから、いろいろ見積って画像をセルフホストすることに決めた。とにかくアップロード機能はあとで作るとして、現状の画像が表示されていない状態を是正しなければならない。つまり Google Photos に上がっている画像のうち、日記で使われている画像をこのホスト上にコピーして配信する必要がある。

事前知識

まず Google Picker API 経由で取得した media の id や URL と、Google Photos API は一切互換性がない。もともと念のために Picker 経由で取得した ID っぽいものは保存していたのだけれど、これはまったく使えない。よって、Google Photos 上の全写真のメタデータをすべて取得し、ファイル名マッチによって画像を特定 (つまりファイル名→Google Photos mediaId のマッピング) していくことにした。

手順

  • Google Photos 側のメタデータをすべて保存する
  • 日記内の画像のファイル名をすべて抜き出す
  • Google Photos 側のファイル名と日記内の画像のファイル名を一致させて対応づけ、Google Photos 側の mediaId を確定する
  • 利用している画像を、対応づけた mediaId に基いてダウンロードする
  • 日記内の画像パスをすべて書きかえる

Photos library API は 10000req/day が quota。0.1req/sec 程度でしかアクセスできない。そのうえ、item リスト API は 100items/req しか取得できない。つまり、1日で取得可能な item 数は100万件にすぎない。が、個人日記程度なら十分なので、一気に全メタデータを取得するスクリプトを書いて、1行に1つの mediaItem 形式のJSONとなるようなファイルをつくった。

実際にメディアを取得するリクエストは 75000req/day できるが、library API で取得できる、メディア実体を取得するための URL である baseUrl は60分で期限切れになる。全メタデータを取得したときの baseUrl は基本的に使えないため、ダウンロードするスクリプトではあらためて batchGet API を呼び、baseUrl を取得するようにした。

ハマったところ

日本語文字列のファイル名が Google Photos 上では分解されて正規化された状態だったり、API 経由ではそうでなかったりで困った。結局 NFC して常に正規化状態で扱うようにした。

ハマったということではないが、Google Photos の library API 類はレスポンスが結構遅く、オンデマンドにこれにアクセスして実体ファイルへリダイレクトするのは結構厳しいと思った。

今後

画像まわりを好きにできるようになったので、できれば webp メインにしたい。ただ、ファイル管理やバックアップまわりでやることが増えるので、面倒くさい。

それにしてもウェブサービスのAPIを組合せて Web 2.0 の時代はどこへやらで、かつてAPIを提供して好きにしてくれとしていたサービスもどんどん渋くなり、サービス存続が信用できないケースが多くなって全部自分でホストするみたいな原点回帰をしつつある。

ASP のブログサービスを使えばそのへんの面倒くさい実装は自分でやらなくてすむが、じゃあそのASPのサービスはいつまで続くのか?という話になるし、貧乏はとにかくつらい。

  1. トップ
  2. tech
  3. Google Photos 依存からの脱却

Google Photos が発狂して、Google Picker 経由でつけたリンクに認証がかかるようになったり、利用制限がかかるようになった。おかげで過去に貼りつけた画像がいっさい見れなくなったりしており、かなりやる気が削がれている。

YouTube は無事なため、動画は見えるのに静止画が見れないみたいな意味わからない状態になっている。

あまりに糞すぎて数ヶ月ほったらかしにしていたが、画像を貼れないのは困るのでなんらかの対策をしないといけない

  • Google Photos の新APIで動的に静止画URLを生成してリダイレクトするようにする
    • API 制限がある。パフォーマンスが落ちる
  • 全部自分でホストするようにする
    • ストレージ見積が必要
    • さくらのVPS の 100GB プランだが、実容量的には 50GB ほどの空き

さくらのVPS ディスク拡張手順(標準OS Ubuntu18.04) を実行しようと思ってごにょごにょしていたら MBR を壊してしまった。具体的には

sudo sgdisk -s /dev/vda

が成功せず、GPT 形式に変換しろ、と言われたので何も考えず GPT に変換したら Booting from hard disk で止まるようになってしまった。まぁそりゃそうだろ考えろよという感じだが……

シングルユーザーモードの起動

さくらのVPSコンソールから「各種設定」→「OSインストール」とすすみ、「カスタムOS」→「Ubuntu 18.04 amd64」と選択して起動 (仮想 CD 経由でインストーラーが起動する)

ただVNCコンソールを開けるタイミングでは既にブートローダーを通過しているので、レスキューモードに入れなかった。

このため、インストーラー起動後のユーザー名を入力する画面で、何もせず「Back」を選択する。するとインストーラーメニューが出てくるので、一度 Detect disks を選んですぐに Back してから、シェルを起動するメニューを選ぶ (Detect disks することで /dev/vda が見えるようになる)。

この状態で、以下のように本来のディスクをマウントして chroot する。さくらの VPS の VNC コンソールは英語キーボードだと = が入力できないため、grub-install の引数を指定することができない。デフォルトでいけるようにするために chroot する。

mount /dev/vda1 /mnt
mount --rbind /dev /mnt/dev
mount -t proc none /mnt/proc
mount --rbind /sys /mnt/sys
chroot /mnt /bin/bash

これでほぼ本来の環境で作業できる。grub を再インストールする、念のため /boot をバックアップしてからやる。ここでは /dev/vda なので

cp -r /boot /boot.orig
grub-install --force /dev/vda

とした。GPT だからか何なのか --force しないと書けなかった。この手順は自信がない

grub 設定を作りなおす

update-grub

ここで reboot で起動するようになった

  1. トップ
  2. tech
  3. さくらのVPSが起動しなくなって grub 再インストール

新しくラジオペンチ(やニッパー)を買ったときに違和感があって、なんでだろうなあと考えていたところ、バネの有無ということがわかった。

なんとなくバネがあったほうが自動的に開いて便利な気がするけど、これが自分にはあってないみたい。

バネがあると自分で開かなくていい一方で、閉じるのに余計に力がいるので素材への力のかけかたが少し難しくなる。バネなしなら指先の延長のように扱えていたのに、バネつきだと手袋をして作業しているような感覚。

というか実際、自分はバネで自動的に開く機能を使うことがほとんどない。人差し指と薬指をペンチの外側に、中指を内側に入れて、開きかたをすべて指で制御しているので、むしろバネが負担にしかなっていない。https://youtube.com/shorts/dhTa218TuG8

古いペンチばかり使ってしまっていた原因がようやくわかった。そしてすべてのバネをはずした。

バネありのメリット・デメリット

メリット

  • ペンチの扱いに慣れてなくても開く・閉じるがスムーズ
    • 開け閉めできる持ちかたを覚えなくていい
  • 強くつかむだけなら不器用でも問題ない

デメリット

  • 力の加減が難しくなる
  • 閉じるのに僅かに強い力が必要となる
  • 加減してつかむ用途だと疲れる
  1. トップ
  2. tech
  3. ラジオペンチはバネがないほうが良い

 -

5.0 / 5.0

これまで使っていたキャニスター式は2009-03-05に買ったSANYOのSC-MR8J-Lで、ごく普通の紙パック式だった。まだ壊れてなかったが、紙パックのストックも切れたし、新しいのが欲しいなと思った。

なぜサイクロンにしたか

気持ち的にはもともと紙パック派なので、紙パック式にしようと思っていた。

しかし、このごろマキタの充電式クリーナー+サイクロンアタッチメントを使うことが多く、これで毎回とれたゴミの量を確認できるのが案外楽しかったため、掃除の頻度が上がったという体験がある。キャニスター式もとったゴミの量が確認できるといいなと思った。

パナソニックのサイクロン掃除機の感想

  • ゴミセンサーが思ったより楽しい
  • ゴミ捨てるのはちょっと面倒
  • 軽い
  • 先端がしゃがまなくても分離できる構造でびびった (足で小さいヘッドに分離する)

ゴミセンサーは特に事前に注目していなかったけど思ったより楽しい。どのぐらいかけるかの目安になる。1往復程度では綺麗にならないなというのがよくわかる。

ゴミ捨ては蓋が下に開くので、当然ながら蓋が開く分余計なスペースがゴミ箱内にないといけない。飛びちらないように綺麗に捨てるのはかなり難しい。まぁこれはサイクロン式の宿命だと思うので我慢するしかなさそう。

ただ吸いこみは紙パック式の元の掃除機より弱い。

「次亜塩素酸水をつくる」みたいな触れ込みでジクロロイソシアヌル酸ナトリウムが売っているが、やたら高いことが多い。「スパクリーン 60GS」という公衆浴場用の塩素消毒材がまさにジクロロイソシアヌル酸ナトリウムで、これは比較的かなり安価に手に入る。

ジクロロイソシアヌル酸ナトリウムは有効塩素60%なので、目標塩素濃度 p ppm を v l 作りたい場合、ジクロロイソシアヌル酸ナトリウム w g とすると


100ppm 500ml つくる場合は0.083g。かなり少ないのでぴったり測るのはむずかしい。ジクロロイソシアヌル酸ナトリウムの比重は == らしいので、0.83ml のスプーンが適切。あんまりキッチン用の精密測りは使いたくないが、3Dプリンタでスプーンを作り、最初の一回は重量を確かめてから作るとよさそう。

ジクロロイソシアヌル酸ナトリウム vs 次亜塩素酸ナトリウム (ハイターなど)

  • ジクロロイソシアヌル酸ナトリウムは液性は弱酸性〜弱アルカリ性 次亜塩素酸ナトリウムはアルカリ性
  • ジクロロイソシアヌル酸ナトリウムは水に溶かすまで顆粒。
    • こぼすと大変
    • 水に溶かして目的塩素濃度に希釈するまで危険性が 高い
  • pH の関係で次亜塩素酸ナトリウムよりも低い濃度で高い効果(酸化力)がある。溶かしてからの消費期限は30日程度。
  • 次亜塩素酸ナトリウムよりも安定していない(塩素ガスが発生しやすい)。保存も換気が良い場所でする必要がある

アルカリ性じゃないので手についても比較的荒れにくい。

計量

スパクリーン 60GS には適切な計量スプーンがついてないので、https://www.thingiverse.com/thing:682146 これを元に 3Dプリンタで0.1ml の計量スプーンを作った。

ジクロロイソシアヌル酸ナトリウムが主成分の製品

  • ピジョン ミルクポン S (哺乳瓶消毒)
  • 小林製薬のかんたん洗浄丸
  • 花王 ハイター強力カビハイター 排水口スッキリ

ref

次亜塩素酸水と次亜塩素酸ナトリウムの同類性に関する資料 次亜塩素酸水の場合 (pH が弱酸性〜中性) 100ppm で十分そう。



3Dプリンタとペンプロッタはほとんど似たようなものなので、アタッチメントをつけて簡単にペンプロッタ化してみた。アタッチメントはこんな感じ。4〜5回試作してプリントしていい感じになった。STLなどは Thingiverse に上げた

  • 簡単につけかえできること
  • それなりに精度が出ること (0.5mmぐらい)
  • ペンをあまり選ばないこと

を要件にして、スライド式のペンホルダと、本体へのアタッチメントという構成に。ステッピングモータに被せて設置する形にすることで脱着を簡単にした。

試行錯誤の経過:ペン先がブレすぎてダメだった例


剛性をあげたりスライド方式をみなおした例

Simplify3D の設定

  • Extruder
    • Retraction Vertical Lift を 3mm などに (ペンを上げる動作)
    • Extrusion Width はペン先の太さに (適当でもよい)
  • Layer
    • Primary Layer Height 0.2mm
    • Outline/Perimeter Shells 1
  • Temperature
    • Primary Extruder
      • アンチェック Wait for temperature controller to stabilize before beginning build
      • 温度を20℃に
    • Heated Bed
      • アンチェック Wait for temperature controller to stabilize before beginning build
      • 温度を20℃に
  • G-code
    • アンチェック 5D firmware (include E-dimension) (E軸のコードが出力されなくなる = エクストルーダが無効になる)
    • Build volume X-Axis: 224 (250-26) Y-Axis: 131 (210-79)
    • Origin offset: -26mm -79mm
  • Scripts 後述
  • Advanced
    • Start printing at height 0.6mm
    • Stop printing at height 0.8mm
    • アンチェック Minimum travel for retraction

Top Solid Layers / Bottom Solid Layers を0にすれば輪郭だけ出せる。

Starting Script

M115 U3.0.7 ; tell the printer latest firmware varsion available
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
G0 Z10
G0 X40 Y100 F4000
G0 Z0.8
M0 Click to continue
G0 Z10

メッシュレベリングしてZ軸を出したあと、適当な位置に移動して、Z0.8 にする。この高さが基準なので、M0 で一旦マシンを止める。ペン先を出して、少しテンションがかかるように調整して紙に接触するようにする。この状態でマシンをボタンを押すとプロットが始まるはず。

Ending Script

M104 S0 ; turn off temperature
M140 S0 ; turn off heatbed
M107 ; turn off fan
G0 Z10
G1 X0 Y200; home X axis
M84 ; disable motors

Z10 にして退避させてる。

データの作りかた

Simplify3D を使う場合、入力データはSTLなので、適当に厚みをつけてやる必要がある。

単に文字を出すだけなら OpenSCAD がお手軽

linear_extrude(height = 1) {
    text("テスト", size=20, font="Noto Sans CJK JP:style=Black", spacing=0.9);
}

こんな感じで任意のフォントで文字を出せる。

  1. トップ
  2. tech
  3. Original Prusa i3 MK2S でペンプロッタ

型紙はブラザーのやつ。だけどうちには2Dプリンターがないので、絵をなぞって立体にし、3Dプリンタで出力。

手順は 作り方☆立体布マスク(ガーゼマスク)(ページ2) | 無料型紙工房ことろ に従った。こちらの型紙を使っていないのは小さそうだから。

あとは元々あった適当なオックスの布と裁縫箱の中に余っていたゴムでぎりぎり2つぶん作れた。ダブルガーゼではないのでちょっと硬い。一応漂白剤前提で薄めの色の布を選んだ。

立体マスクは曲線縫いが必要なのでやっぱちょっと面倒くさくて時間がかかる。プリーツ作って直線縫いだけでいけるようなレシピのほうが楽そう。




要件

  • PCで再生させた曲と電子ピアノの音をミックスしたい
  • 出力を3人で同時にヘッドフォンで聞きたい
    • この際、ヘッドフォンの種類が違う場合でも音量を揃えたい

普通だとステレオミキサ+複数出力のヘッドフォンアンプでやることだけど、電源の管理が面倒なので機器を増やしたくなく、これを同時にやる方法が見つからないので自作することにした。

動機

PCで再生させながらピアノの練習をしたりする必要があるんだけど、ピアノをひいてるとそっちの音しか聞こえなくなってしまうことがあり、特に子どもの場合走ってリズムがどんどんずれるので、自然と聞けるようになんとかしたい。

仕様

入出力

  • 3ステレオ入力 VR なし
    • 入力側の装置で音量調整できるので
  • 3ステレオ出力 VR あり
    • ヘッドフォンの種類が違う場合に音量を揃えるため

電源

  • 9V 電池をレールスプリットして両電源にする (±4.5V)
    • 実際は 8.4V の充電式リチウムイオン電池 006P 型
    • 出力コンデンサを省略したいので (小型化のため)
    • 100kΩで分圧し、中点を出力電流の多いオペアンプで増幅安定化させる

NiMH 1.2V 4本で±2.4Vとかでもいいかもしれないけど、小型にしたい+ミキサーの飽和電圧を上げたい+006P型リチウムイオン電池が1つ余っている、のでこういう感じに。

ミキサー部

増幅率1倍の反転増幅回路で特に変なことはしてない。アナログ加算回路

アンプ部

ミックスされたものを3つのオペアンプでそれぞれ増幅して出力する。これも増幅率1倍の反転増幅回路。ミキサー部でも反転させてるので位相は元に戻る。直接ヘッドフォンをドライブするので、ここも出力電流が多めのものにしておく。

回路図

オペアンプの品種が適当になっているが、実際に使ったのは全て NJM4556ADD。

消費電力

先に計算しておくべきだが面倒くさくてやってなかった。おかげで失敗。

オペアンプ1つの消費電流が6mA (±4.5V)、これが5つで30mA → 回路全体の実測で 37.5mA。常時バッテリー駆動するにはちょっと多すぎる。

電池が300mAhだと8時間しかもたない……

省電力な NJM022BD で 0.250mA なら、5つで1.25mA。これで10日ぐらい。

どっちにしろ、素直に電源スイッチかアダプタをつけたほうがよさげ、ということでACアダプタをつけて常時通電するようにした。

ケース

例によって KiCAD + FreeCAD kicadStepUp で 3D モデルをつくり、Fusion360 で読みこんで適当に設計したのを 3D プリントした。



ref.

http://akizukidenshi.com/catalog/g/gP-03604/
http://akizukidenshi.com/catalog/g/gC-02460/
http://akizukidenshi.com/catalog/g/gP-04623/
http://akizukidenshi.com/catalog/g/gP-00207/
http://akizukidenshi.com/catalog/g/gP-02683/

  1. トップ
  2. tech
  3. 電子ピアノ練習用のミキサー