Insta360oneXと自作したドリフトダーツでドリフトショットを撮ってみた。
ドリフトショットに憧れてinsta360 one X を購入したのに、ドリフトダーツが全く入手できないためどうしたものかと考えていました。
*ちなみにドリフトショットとはこれです。
カメラにドリフトダーツというパーツを付けて動画を撮影すると映画のような動画が取れるというものです。
このドリフトダーツが全く手に入らない状態が長らく続きました。
たまーにECサイトなどに載ったりはしてるのですが、注文しても届かない。
なので、これは自作するしかないということで、3Dプリンタを使って自作しました。
TPUフィラメントという柔らかい材料を使い造形しました。
そのことに関してはこちらに載っています。興味のある方はどうぞ。
実際にできたものはこちらです。
それなりに本物に似せて作ったので遠くから見ればそれっぽい形になりました。
insta360XのドリフトダーツをTPUフィラメントで造形してみた。今週の土日に公園でドリフトショットを撮影しに行こう!楽しみだ!#insta360x #driftdarts https://t.co/6ivr3lmtfL pic.twitter.com/q6RvyoMiBx
— Shingo.N (@chang_ban) August 27, 2020
実際に天気の良い晴れた日に公園で撮影してみました。
撮影したものがこちらです。360度動画になってますので、ぐりぐりと触ると色々な視点が見れます。
これはこれでいい動画なのですが、見る人に視線方向が委ねられてしまい、通常の360動画とそこまで変わらないイメージですね。
そして、視線方向を見せたいものに合わせて通常の動画に編集したものがこれです。
Insta360 のドリフトダーツ(自作)で動画撮ってみた。画質はイマイチだけどなかなか面白い動画が撮れた!もっと動きのあるものの中に投げられたらもっと面白い動画撮れそう! pic.twitter.com/euuIXpRM2E
— Shingo.N (@chang_ban) August 30, 2020
ドリフトショットの醍醐味はこの編集をしてこそだと私は考えています。
今回撮影したものはあまり動きがない物ですが、公式があげてる動画みたいに動きがあるものに対して投げて撮影すれば非常に面白い動画が撮れそうだと思っています。
今度、機会があったら動きのあるものの撮影もトライしてみようと思います。
3Dプリンタ(Anycubic mega zero)でTPUフィラメントを使って造形した。
Anycubic mega zeroでTPUフィラメントを使って造形してみました。
TPUフィラメントとはよく使われるPLAやABSと違ってゴムのように柔らかい材料で、そのため、造形に何度も失敗してしまったので、そのあたりについて書ければなと思います。
ちなみに私が購入したのはこちらになります。Amazonで2880円で購入しました。
■エクストルーダーのつまり問題
始め何も考えずにPLAと同じ条件で造形してみたところ、フィラメントを送る部分のエクストルーダーのところで詰まってしまい、何回も失敗しました。
フィラメントが詰まった原因を調べてみると、エクストルーダーでフィラメントを送り出した後にねじの部分に隙間があり、TPUフィラメントは柔らかいために、エクストルーダーで押されるとうまくまっすぐ力が伝わらずに曲がって、その隙間に入りこんでしまい、詰まるというのが原因のようです。
このチューブ用のネジを使うとどうしても隙間ができてしまうようで、何度やっても中で詰まってしまいました。
なので、私はチューブ用のネジを外し、直接エクストルーダーのプラスチックのケースにチューブを付け、接着剤で止めてしまいました。
そうすると、エクストルーダーのプラスチックケースとチューブの間に隙間がなくなるので、柔らかいTPUフィラメントで入り込む場所がなくなり、詰まることがなくなりました。
■スライサーソフトの設定
私はUltimaker Cura v4.6.1を使っていますが、ソフト上でMaterialを選べます。
まず初めてトライするときに、以下のようにMaterialをTPUに選択してinfill80%でgcodeを生成し造形してみました。
造形結果はこんな感じ。
●条件1
Material : TPU
infill 80%
スカスカで柔らかくてすぐ壊れそうです。また、淵の方が造形があまりうまくいってないのか、少しけば立っている感じです。
さすがにこれはダメだなと思い条件を変えてもう一度造形してみた。
●条件2
MaterialをTPUにしたままでinfillを上げただけではうまく行きそうになかったので、MaterialをPLAに戻して以下の条件で造形してみました。
Material : PLA
infill 80%
条件1に比べると大分しっかりしていて、それでいて柔らかさもあります。
ただ、個人的にはもう少し柔らかくてもよいかなという感じです。
作るもの次第ではこの条件でも問題なさそうです。
●条件3
Material : PLA
infill 50%
見た目には条件2とほとんど変わりませんが、条件2より少し柔らかくなりました。
しっかりしているし、それなりに弾力があります。
MaterialをPLAにして、infillの値を振ってみると硬さ、弾力をコントロールできて用途に合わせて硬さのモノを造形できるかと思います。
3Dプリンタ(anycubic mega zero)の造形の調子がファンの詰まりのせいで悪くなっていた。
タイトルの通り、ファンにモノが詰まって造形の調子が悪くなったよという話しです。
積層タイプの3Dプリンタは冷却が大事で、いろいろな方が自作でファンを追加したりしているかと思いますが、冷却はやっぱり大事なんだなと再度認識しました。
ーー
先日3Dプリンタを買い替えてanycubic mega zeroを使っていた。
3Dプリンタ、前使ってたのが調子悪かったのと小さいものしか造形できなかったので新しいのを買った。 pic.twitter.com/RdHKNbpzPH
— Shingo.N (@chang_ban) 2020年6月14日
1か月ほどは全く問題なく使えていたが、あるときからうまく造形できなくなってしまった。
症状としては造形し始めは問題なく造形できるのだが、造形している途中からフィラメントがうまくノズルから出てこなくなってしまう、造形物がスカスカになるというもの。この写真のように。
ノズルつまってるのかなーと思い、フィラメントを戻してノズルを針で通してもう一回やり直しても再度発生する。
どうしたものかと思い、引き戻したフィラメントを見てみると、ノズルの先端より手前のところでだまになってたまっていそうだということが分かった。
何でこうなるんだろうと思い、再度、トライすると手前のファンが全く回っていないことに気付いた。
この手前のファンはノズルの先端ではなくノズルの金属部品ホースとの付け根の方を冷やす役割がある。このファンが止まっているとその部分を冷やすことができなくなり、本来フィラメントが溶けてほしくないその場所で溶けてしまい、フィラメントが詰まっていたのだろうと推察される。
というわけで、何で動いてないんだと、ファンをよく見てみるとフィラメントのごみのようなものがファンに絡んでおり、それを取り除くとファンが回り始めた。
そして造形をすると、きちんと造形できるようになりました。
すごい間抜けで単純なことであったが、冷却ファンが重要だということを再度認識したので記事にしてみました。
皆さんも冷却やファン、ゴミつまりには気を付けてください。
CO2センサを作ってみた(CCS811搭載 空気品質センサモジュールを使ってみた)
最近、在宅勤務が増えてきて家で一人作業することが多くなりました。
家で作業をしているとなかなか集中できなかったり眠くなったりしちゃいますよね。
これは自分の集中力のせいではなく、部屋の二酸化炭素の濃度のせいなのでは思い、CO2センサーを作って設置してみました。
使用したのは以下の3つです。
■CCS811搭載 空気品質センサモジュール
https://www.switch-science.com/catalog/3298/
■Arduino Uno
■LCD液晶Display
https://www.amazon.co.jp/gp/product/B07BJ5PW3R/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1
1.配線
センサモジュールとArduinoはI2C通信と言われる通信を行います。
以下のように二つを接続してください。
モジュール Arduino
GND ー GND
VCC ー 3.3V
SDA ー Analog 4
SCL ー Analog 5
ArduinoとLCDディスプレイの接続に関してはこちらの記事をご参照ください。
https://goengine.hatenablog.com/entry/2019/03/17/211934
2.Arduinoの準備
次にソフトウェアの準備です。
スイッチサイエンスの販売サイトよりライブラリをダウンロードしましょう。
SparkFun_CCS811_Arduino_Library-master\SparkFun_CCS811_Arduino_Library-master\examples\Example1_BasicReadings.ino
を開きます。
そのまま書き込むと、" SparkFunCCS811.h"がありませんと怒られてしまうので、このファイルがincludeされるようにします。
以下に示すリンクをクリックします。
するとライブラリマネージャーが出てくるのでインストールを選びます。
これで準備ができたので早速さきほどのファイルを書き込んでみましょう。
問題がなく書き込めれば、これで計測がきちんと行えているかと思います。
シリアルモニタを見るとCO2の計測値が出てくるかと思います。
これでサンプルを動かし、計測はすることはできるのですが、パソコンがないと値が見れず不便なので私はサンプルコードを少しいじりLCDディスプレイに表示してみました。
こちらがそのソースコードになります。参考にしてください。
そしてできたものがこちらです。
在宅勤務で部屋にこもってるとやけに眠くなるのは二酸化炭素濃度のせいなのではと思い、二酸化炭素濃度計測機を作りました。#iot #おうち時間 #二酸化炭素 #仕事しろ pic.twitter.com/LTJeuhgngh
— Shingo.N (@chang_ban) 2020年4月22日
ちなみに僕の場合CO2の値は関係なく普通に眠くなっているだけだということがわかりました。。笑
以下のサイトを参考にさせていただきました。
ありがとうございます。
https://www.switch-science.com/catalog/3298/
http://blog.akanumahiroaki.com/entry/2018/06/12/080000
Google Colaboratoryとtensorflowを使って簡単に機械学習で画像判定。
機械学習素人の私がtensorflowを触ってみたといった内容です。
以前のブログでgoogle 画像検索で画像スクレイピングしました。
https://goengine.hatenablog.com/entry/2019/08/22/000112
こちらの画像を使って学習させた学習モデルを使って犬か猫どうかを判定させるものを作りたいと思います。
事前にスクレイピングで犬の画像と猫の画像を落としてください。
そしてその画像のディレクトリを同じディレクトリに入れておいてください。
こんな感じ。(dataディレクトリ内にcat、dogディレクトリを入れてあります。)
これでデータの準備は整いました。
retrain.pyを使い学習させていきます。こちらのファイルを以下のgithubから落としましょう。
https://github.com/tensorflow/hub/blob/master/examples/image_retraining/retrain.py
こちらのpyファイルを好きなディレクトリに入れます。
そしてColaboratory内での以下のコマンドを実行します。
それぞれのパスは自分の好きなように設定してください。
僕は自分のgoogle deiveと連携させているので"My Driveが"入ってしまっていますが、google driveと連携させなくても大丈夫です。
こちらは学習回数にもよりますが、10分ほど時間がかかります。
これがうまくいくと、実際に判定に必要なretrained_graph.pbファイルとretrained_labels.txtファイルができます。
次に判定させる処理をしていきます。
label_image.pyが必要になるので、githubから落としてきましょう。
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/label_image/label_image.py
また、評価を試す画像を適当に用意します。ここでは、tes.jpgとして以下の犬の画像を用意しました。
準備ができたら以下のように入力して実行します。
環境によって、以下のようなこのようなエラーが出るかもしれません。
KeyError: "The name 'import/InceptionV3/Predictions/Reshape_1' refers to an Operation not in the graph."
そしたらlabel_image.pyファイル内の
input_layer = "input"
output_layer = "InceptionV3/Predictions/Reshape_1"
を
input_layer = "Mul"
output_layer = "final_result"
に変更してみましょう。
うまくいくと、このようにdogとcatどちらに近いかを0~1に間の値で返してくれます。
dog 0.9991762
cat 0.0008238142
今回は犬の画像を使ってテストしたので、いい結果ですね。
以上です。
以下のサイトを参考にさせていただきました。
ありがとうございます。
https://qiita.com/umeee/items/ffde72ec84fa2065b1ff
https://qiita.com/quotto/items/645b01cf9c3919a52b12
Python を使ってArduino 2台を通信してみた
Arduino2台の通信を調べてみたら、Arduino2台を直接接続してI2C通信する記事はたくさんあるのですが、Arduino2台をそれぞれをPCにUSBで接続して通信する記事はあまり見つからなかったので、書きます。
簡単ですが、以下のような構成です。
今回は1台のarduinoにジョイスティックを接続して、もう1台にサーボモータを接続します。
ジョイスティックの値をserial.writeで一度、PCに送り、pythonでそちらの値を受け取ります。
その受け取った値を、python上で別のarduinoにserial.writeすることで別のarduinoに値を送信します。
その値に応じてサーボモータを動かします。
■pythonの準備
以下のコードのser.port = "COM9"の箇所を自分の環境にあった値にしてください。デバイスマネージャーやArduino IDEなどで確認できると思います。
値;
と連続的に送られてきたものを;区切りで受け取り値を取り出すようになっています。
今回は受け取った値をそのままもう一台のArduinoに送ってますが、何かしらの処理をPython上でやって送ることももちろん可能です。
■値を送る側Arduinoの準備
今回はジョイスティックのx成分の値だけをPCに送信します。
値;
という形式で連続的に送信しています。
■値を受け取る側のArduinoの準備
値;
と連続的に送られてきたものを;区切りで受け取り値を取り出すようになっています。
以上で(今回はかなり説明が雑ですが、、)、動くようになったかと思います。
動いた様子はこんな感じです。
google colaboratoryを使ってgoogle画像検索から画像を一括ダウンロード
タイトルの通りcolaboratoryを使ってgoogle画像検索から大量の画像を取得する方法を書きます。
一年前くらいにやっていたことを思い出しながら書くので、間違っていたり古い情報だったりしたらすみません。
そもそもgoogle colaboratoryとは
cloud上で実行できるJupyterノートブック環境です。
環境構築などのめんどくさい作業がほとんどいらず、ブラウザとgoogleアカウントさえあれば使用できます。
また、無料でGPUを使用できるので、機械学習などで大量のデータを学習させるときなどに非常に便利です。
というわけで、今回はこのgoogle colaboratoryを使っていきます。
まずは、colaboratoryを開きます。
ブラウザ上でgoogle driveを開き、新規ファイルの追加ボタンで、Google colaboratoryを選びます。
このとき、表示されない方は「+アプリの追加」から追加してください。
開くとこのような画面になります。
ここにコードを書いていきます。
以下のコードコピペしましょう。