あけましておめでとうございます2020

あけましておめでとうございます。今年もなにとぞ…

今年の方針

方針っていうか達成しなきゃいけない・したい項目を羅列するだけですが…

ん?仕事を見つける?

はい、今は実は無職です。

新卒はweb系っつーか某動画のところに入り、一番最近は外資系でwebデベロッパーを3年続けました。その最近まで勤めていた会社が色々怪しくなり、3年ならキリが良かろうということで逃げ出すように退職した次第です。

今までを振り返るとwebエンジニア、それもフロントエンド一筋みたいな感じだったのですがキャリアの割にweb系に対して色々冷め始めた感情を持っているのが正直なところです。

この感情の分析

大学・大学院は某なんたらpediaを使って英単語を学ぼう的な研究をしており、その繋がりからweb系で面白いことできないかな・やりたいなという気持ちで就職活動をしていたので、当初はweb系に対して輝く何かを見出して入社したことは鮮明に覚えています。

1社目の仕事も決して退屈ではなかったのですが、3年目の途中で倦怠感のようなものを感じていたのをしっかりと覚えています。業務で導入するつもりもない新しい知識(当時は具体的にはPHPフレームワークやらミドルウェアだったような)を覚える意味を見いだせていなかったような気がしています。

勉強が嫌いかと言うと多分そんなことはない…と信じたいですが、少なくとも高校まではそれはもう結構な勉強量で参考書やら何やらを食い入るように解きまくっていた覚えがあります。ですが最近は「掛け値なしに面白いと感じているもの」か「役に立つ保障があるもの」についてしか勉強したがってない節があります。興味本位以外は、本当に余分なものに労力を割きたくなかったようだ。

役に立つ保障なんて普通はない

「面白いと感じているもの」については自分の背景とか色々あるし、無理に矯正することでもなさそうなので置いておくとして…「役に立つ保障があるものしか学びたくない」これは明確に問題だと思いました。

普通、何かが役に立つかどうかなんて分からないのです。数十年前に行われていた生物の研究が近年になって日の目を見るなんてことも珍しくない世の中で、役に立ってくれなきゃ嫌だというのはワガママにも程があるのは重々承知の助。ですが新しい技術なりフレームワークなりライブラリがタケノコのように生えて山火事のように焼き払われ、数本だけが生き残るweb系(フロントに限った話)はどうしても自分には耐え難かったのです。個人的な最たるものがCoffeeScritptで今は「見ろよこれなぁこの無残な姿よぉなぁ」状態ですね。しかし、たまたま自分が生き残ることになる技術を学んだとしてもそれが5-6年超で使われ続けることなんて滅多にないはずなのです。

そして多分、本当に多分なので確信はないのですが「他人がやろうとしていること・事業」にあまり期待していないのかも知れません。成功して欲しいと思うことはたくさんあるけれど、自分がそこに関わりたいと思っていない。会社の方針とか夢とかに惹かれたことがここ数年レベルでは一度もないことに今気づきました。

これから自分がとれる選択肢はなにか

web系フロントエンドエンジニアのキャリアを放棄するのは非常にもったいないのは承知なのですが、正直言って積んできた年数に対する技術力がないのは自明です。直近でやってきたことは保守ばっかりだし。なので同じ職種でまた仕事を始めるつもりは正直言ってない

これから自分が取れる選択肢…なんなんでしょうね本当に。履歴書に書ける項目だけで見ると本当にフロントエンドエンジニアもしくは英語関係(TOEIC900、ネイティブ並の会話ができます)なんですが、多分前者が重宝される世の中でしょう。困った困った。

 

散文

コーディングテスト嫌い

質のよろしくないコードを書いてしまったせいでメンションつけて晒されたのがトラウマに近いレベルで魂に刻まれている。公開処刑本当にキツい

「マサカリを投げる」刃物を投げるんじゃねぇよ

3Dプリンタにwebカメラをつける・つけた

3Dプリンタの遠隔操作化を達成したので一段落…しかしもうちょっとエクスペリエンスというか体験感というか、なんかこう楽しんでる感じを倍増させたい何かが欲しかったのでOctoPrintの仕様を色々あさっていました。

http://sirius.hatenadiary.com/entry/2019/12/23/021854 で書いたことですがOctoPrintはwebカメラを接続することでタイムラプス動画を撮ることができます。早速接続してみることにしました

電力不足?によるOctoPrint自体の不調

前の記事でbluetoothによる遠隔操作化を達成させるため、OctoPrintが走っているRaspberry PiのUSBポートx2を占めているのは、

1. CR-10に伸びるUSBケーブル

2. Arduino Uno R3クローン機に伸びるUSBケーブル

ですので、USBハブを接続してwebカメラ用のためにUSBポートを増やすことにしました。使用したカメラはLogicoolのC615でこちらです。

https://www.logicool.co.jp/ja-jp/product/hd-webcam-c615n

しかしUSBハブを接続してカメラをつけたあたりでOctoPrintがうまく動作していないことに気づきました。USBハブを外した状態(CR-10に伸びるUSBケーブルだけの状態)でRaspiをリブートすると問題なし。つまりこれはハブより向こう側の問題…

結局空いたUSBポートにwebカメラのみ挿した状態でも動作がうまくいくことがわかったので、Arduinoの電源供給源だったUSBポートは別の電源から頂くことにしました。

OctoPrintのデフォルト vs OctoLapse

下のほう(Twitter時系列的にあと)のほうがOctoPrintデフォルトで、前のほうがOctoLapseです。OctoLapseのほうが好みですね。ノズルが中央に来た瞬間にキャプチャしているようなので、出力物が生えてくるような映像が見られます。

OctoPrintデフォルトのほうは全く設定はしていなくて、あえて言うならwebカメラの位置調整をしたくらい。OctoLapseはプロファイルからCR-10用のものを選んで動画の長さをいじったくらいだったと思います。あとは自前のVegasで4倍速くらいにした動画をTwitterに貼った次第です。

気の遠くなる出力時間が楽しみになってきた

普通3Dプリンタでモノを出力しているときって結構暇なんです。まー人間がやりたくない作業を機械に委託してるから当然っちゃ当然なんですが…起動初日の数時間は出来上がっていく要素を見るのは間違いなく楽しかったと断言しますが、だんだんとその待たされる時間というのが気だるく感じるようになったのも事実です。

しかしながらその待った過程をこのように映像化してしまうと、退屈だった待ち時間が一つのコンテンツに変化するのは興味深い点だと思います。これにBGMとかつけたりすれば動画のネタになったりしますし。

 

さて、次は何をしようかな…とか考えてましたがもう年末ですし大きなプロジェクトはやめときます。フィラメントもそろそろ残り100mを切ってきたので新しく購入することも考えなくちゃ。

bluetooth遠隔制御成功!

なんか中国語みたいなタイトルになってるやん

8割型完成!

はい、ついにスマホからの遠隔操作で3Dプリンタの電源がつくようになりました。サーボモーターをコントローラに固定する方法が見つかったのでひとまず土台を3Dプリンタで作成してモーターをはめ込んでいます。…が、たまーに失敗するので後日微調整するつもり。基本プラスチックなのでたわんだりするので厚めに・強めに作ってあげないといけないですね。

工程はいつかちゃんと動画の形にしてyoutubeとかニコニコ動画に上げてみたいなぁ。

次の勉強はサーボモータ

一定角度内をウィンウィンやるサーボモーターの次は、一定の角速度?で回り続けたりするのが得意らしいサーボモーターです。

思った以上にゆっくりだったのでちょっと拍子抜けしているのは内緒。やりたいことはペンプロッターか、スマートフォン自動タッチ機かな。ペンプロッターというのはこういうやつです。使ってるステッピングモーターが違うのがすぐわかりますね。


Drawing Machine | Pen plotter machine | Sign and write machine

 

世間はクリスマスでしたが、個人的には自分で考えた3Dプリンタ+arduinoのプロジェクトをひとつ達成できたのが何より嬉しいプレゼント?でした。

早速寝る前に3Dプリンタを遠隔で立ち上げて、UNO R3 + ブレッドボードを固定できる土台を作らせながら寝ることとします。

bluetoothでモーター制御成功のまき

今日の未明には出来ていたのだが、とりあえず進捗を貼ると…

遠隔操作の実現

とまぁ動画の通りサーボモーターを遠隔操作することに成功しました。思えば自宅内でのリモート化はOctoPrintだけではなくNature Remoを導入していたので、その延長線上と思えば自然な行為だったのかも。とはいえ、簡単なものでも自分で実現できたのは極めて嬉しいものです。

次の目標はおそらく、しばらくは3Dプリンタにモーターを固定する方法の模索になるかなぁ。実はあともう一個作りたいものはあります…が、これは固定方法を出力している間にでも色々考えてみたいと思います。

 

とにかく、メチャ楽しいです今。働いてないけど。(来年から仕事探しますたぶん)

サーボモーターで色々やったが挫折しかけている話

前回の記事の文末で、arduinoクローンを注文したので~という話をしました。実際、家にサーボモーターが転がっており故障も特になかったのでスイッチを押したらウィンウィンするものを作りました

bluetoothモジュールが届くまでに、これを3Dプリンタのon/offに使えないか色々考えていました

固定が難しい

CR-10の電源スイッチはよくあるシーソーのような形式の電源スイッチ。英語ではRocker switchですね。ロッキングチェアのごとく片方に傾くやつです

https://www.google.com/search?q=rocker+power+switch&sxsrf=ACYBGNQ4zvPN5OKyuv9xhIeYmHRv3_4WXQ:1577212905770&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj28O73987mAhXYA4gKHfIJDP4Q_AUoAXoECA0QAw&biw=1301&bih=746

これをサーボモーターで押せたら、いちいち3Dプリンタの裏側のスイッチを押すこともなく電源を入れたり落としたりできるわけです。…が、かなり苦戦しています。

f:id:atcgouch:20191225034353j:plain

らくがき

まぁなんかごちゃごちゃ描いてますが、つまりはモーターの固定する手段がないためにうまく押せないのです。しかも3Dプリンタはメタルラック上に置いているので結構隙間があるためにうまいこと固定ができないのです。

今からちゃんとしたテーブルを買うのも億劫ですし、メタルラックの汎用性は手放したくない…

そもそも両方押せなくてもいいのでは?

また、サーボモーターの性質…というか電源スイッチの性質?にちょっと苦戦しています。うまいこと円運動ではon/offの両方を押す方法が思いついていません。楕円状のギアを別途作ってうまいこと出来ないか試行錯誤してみましたがon/offの押しが甘いか、その中央部で引っかかってしまう…

よく考えてみたら、3Dプリンタですべての工程が自動化できるかと言うとおそらく無理。というのもヒートベッド(自分はその上からマスキングテープを貼ってます)に出力したものを剥がすのはどうやっても人力。そして、「今日はもう出力するものなさそうだなー」と思ったら自分で手をCR-10のコントローラー背面に伸ばしてoffにしていることを思い出しました。

これ、offは自動化しなくて良いんじゃね?

onだけリモートにすることに専念してみることにした

ということで今現在はサーボモーター1個でRocker switchのonだけできるようにすべく色々試しにプリントしてはあーでもないこーでもないを繰り返しています。offに関しては、まぁ例えばヒートベッドが10分以上動いてなかったら検知してoffにするとか、そんな感じのものを後日作ることにして考える項目を一個減らします。

固定、どうしようかなぁ。本体にがっしり固定できるようにネジ穴でも作…ハコを開けてどこを開けていいかチェックしたほうがいいな…

3Dプリンタリモート化計画

3Dプリンタを購入してから思っていたことですが、自分のCR-10は作業用PCとは離れた位置に置いてあるためモデリングしたあとのデータの移動が若干面倒でした。

CR-10が受け付けるデータ用端子はmicroSDとUSB-mini Bの2種類のみ。PCとCR-10の位置は2mほど離れているので、それを繋ぐためにわざわざUSB-B ←→USB-mini Bという最近あんまり見なくなったような気がしないでもない組み合わせのケーブルはどーも買いたくなくて…

なんとかリモートできないものかな~と探していたところ1週間ほど前にこういうものを発見しました。なんでも、Raspberry pi3Dプリンタのコントローラ化することができるとのこと

https://octoprint.org/

自宅には宅鯖に使うこともなくホコリを被っていたRaspiがあったため、早速ぶちこんでやった。導入手順はこちら、全部英語だけど動画付きだしいけるやろ https://www.youtube.com/watch?v=MwsxO3ksxm4&feature=emb_title

LANからgcodeの送信、モニタリング、etcと多機能なOctoPrint

 

ブラウザ経由でプリントするgcodeの対象を見たり、出力の残時間のチェックができます。実に素敵。もちろん適切なセキュリティ設定を行ってしまえば自宅の外からでも指示を出すことができる…けど現状は考えてないので公開はLAN内のみにしてます。失敗してやたらフィラメントを浪費する物体を出力させられるのもアレだし。

加えて、なんとwebカメラを接続することで出力の過程をタイムラプス形式で閲覧することもできるらしい。生憎いい感じのwebカメラおよび固定する手段がないので(3Dプリントすれば良いと言えばそうだが…)これもまだ行っていないです。

ですが椅子から離れることなく3Dプリンタが出力を始めるのは、なんつーか良いものですね。

欠点

OctoPrintを導入してからmicroUSBを抜き差しする手順が消えた・自宅の中ならベッドの中でもトイレの中でも出力指示ができるようになったのは最高ですが、まだ解消しなければいけない事項がありました。3Dプリンタ自体の電源on/offです。

3Dプリンタを他に持ってないのでCR-10固有なのかは知りませんが、電源をつけるとファンが結構な音を出してスタンバイ状態に入ります。これが結構うるさい。そしてOctoPrintは…当然といえば当然ですが3Dプリンタの電源自体を入れることはできません。

なので先日唐突にArduinoクローンを購入しました。

https://www.amazon.co.jp/gp/product/B06Y5TBNQX/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1

本家の1/3の値段ですよ驚異的です。家にサーボモーターが転がっていたので、これを使ってスイッチをon/offできる何かを作れないか考えています。

基本機構が出来上がったら次はbluetoothモジュールもつけて、実質無線でon/offと出力の指示が出せるようになったら最高だなぁ…

 

3Dプリントするにあたって私のやっていることはCADなのかどうか

お久しぶりです。

自分でwordpress建てたりなんだりしてましたが、自分で管理するの面倒だし記事も全然書いてなかったので戻ってきました。

 

3Dプリンタ楽しいよ

最近3Dプリンタを買って色々出力していて非常に楽しいです。

直近で作ったのはこんなの

モデリングにはblenderを使っていますが、他の候補としてよく上げられるFusion 360を見てふと思ったことがありました。

Fusion 360はCADにも使えるということで産業界にも使用されているそうですが、「そもそもCADってなんだ?」という疑問が浮かびました。

 

CADってなんなん

自動車、機械や家具の設計にFusion 360を始めAutodesk CADなどの製品が使われていることは知っていたのですが、何をするとCADになるのかイマイチわかっていませんでした。コンピュータで工業製品を作ることがCAD?すると趣味で自分の思うままにパーツを作る行為は…工業というにはちょっと規模が…規模の問題なのか?

外来語なので英語のwebページを参考にします。CAD向けの製品を作ってんだからAutodeskのページを見てみようじゃないか

https://www.autodesk.com/solutions/cad-software

CAD, or computer-aided design and drafting (CADD), is technology for design and technical documentation, which replaces manual drafting with an automated process.

んーまぁコンピュータによって援助・支援されたデザイニングをblenderで行ってはいるので大筋は逸れてない気がします?

とは言え、以下の説明を頂いて色々理解が深まってきた

 

確かに、3Dプリンタ"用"の図面設計をしているのです。3Dプリンタはあくまでプラスチックをニュルニュルしてそれを積み上げて立体にするため、精度に限界があったり、どうしても達成できないことがあります(サポートなしではアーチを作れない・作りにくいなど)。

 

CADに含まれることはやっている

CADに使われるソフトってどれもお高いのが多いじゃないですか。なのでblenderでタダでやってる自分はその行為に含まれないのじゃないかと勝手に思っていましたが、3Dプリンタ向けにやるモデリングはそれに含まれる、ということでなんか安心しました。

チョットCADデキル!ということで自信を持って生きていこうと思います。