分身ロボもどき #IT_Party

友人の頑張りにより本州最西端でITパーティーが開かれました🎊

connpass.commargaritan.hatenablog.com

最近オリィ研究所にはまっている私はRaspberry Pi を用いた自作分身ロボットについてお話させていただきました。

ロボコン部署紹介.pptx - Google ドライブ

今回のブログでは実演に用いた分身ロボットの作り方を中心に書いていきたいと思います。早速ですが、Raspberry Piを遠隔操作するために「TeamViewer」というアプリを導入します。ラズパイ関係なく簡単にPCの遠隔操作が可能になるのでおすすめです。

iot-plus.net

次に回路・ハード周りを構築していきます。

基本的には周南ロボコンの時に参考にした「ZeroBot」と同じ構成です。

https://cdn.hackaday.io/images/6417841519894620814.png

https://hackaday.io/project/25092/instructionsd

電源周りは面倒なのでモータードライバーに単3電池4つを直列に繋ぎ

モータードライバーはBanggoodから輸入いたしました。

http://デュアルチャンネルL298N DCモータドライバボードPWMスピードデュアルHブリッジステッパモジュール モジュール基板 from エレクトロニクス on banggood.com https://banggood.app.link/GYGmJW1vv2

ブレッドボードやジャンパーピンで回路を繋ぎ

タミヤ製品を使いながら適当にハードを完成させます。

 

そしてロボット駆動用のGUIを作ります。

Tkinter を使い4つのボタンを配置。

電卓のレイアウトを作成する - Narito Blog

そしてそれぞれ呼び出す関数を定義し

GPIOピンを直接制御します。

Raspberry Pi のGPIOをPythonから利用する - Qiita

こちらが最終的なプログラムです。

github.com

最後にストリーミング。

Raspberry Piと動画モニタアプリMotionで、晩ご飯作成風景を家庭内ストリーミング配信する - Qiita

今回はぎりぎりのスケジュールでしたので、ラズパイのストリーミング配信をラズパイ上で表示させるという頭の悪そうな事をしています。ここはぜひより良い方法を探して教えて下さいますようお願いしておきます。


f:id:massiro-myaon:20191218203617j:image

そんなこんなで現時点の分身ロボットの出来上がりでございます!発表本番でも自宅にロボットを置いた状態で発表会場から動かすということができ、喜んでいただけたようなので良かったです(本当は会場に分身を置いて自宅から参加したかったw)!

分身として使う為の音声周りの機能追加やハードのデザイン向上などやるべき事はまだまだありますが、マイペースにやってまいります🍵

USB電源を回路で使用する

授業でUSB電源を回路で使用する機会があり、少し悩んだので備忘録

使うのは以下の2つ

  • ブレッドボード用マイクロBメスUSBコネクタDIP化キット
  • NJW4181U3 DIP化キット

1つ目のはUSB電源の5Vを端子にそのまま出してくれる

2つ目ので3.3Vに降圧する

詳細はデータシートにありますが、細かいピン配置などは少し頭を使う必要があるので参考までに活用ください

f:id:massiro-myaon:20201023113154j:plain

OBSアップデートしようとしたら詰まった話

OBSアップデートしようとしたら詰まりました

avutil-55.dll is still in use 的なのが出ました

特に日本語で調べても見つけられなかったのでメモ

こちらのサイトを見て「Teams」の単語があったので開いていたTeamsを終了
Bug Report - Cannot update to 21.0.1 nor install - avutil-55.dll | OBS Forums
そしてアップデートをやり直したら成功。以上です。

SORACOM Summer Challenge

SORACOM Summer Challengeに参加して2種類のIoTデバイスを頂きました。
今回はそれらを用いて製作したものとその製作手順を紹介していきます。

www.hello.soracom.jp

はみがきチェッカー

応募時に提案していたアイデアです。
歯ブラシを取り出したタイミングを検知・記録します。

f:id:massiro-myaon:20200813140613j:plain

リミットスイッチをはんだ付けしてプリンターパーツを付けてハード側は完成。

f:id:massiro-myaon:20200813140932j:plain

通知は以下の2つの記事を参考にメール通知とLINE通知を実装しました。
https://soracom.github.io/iot-recipes/door-monitoring-by-iot-starter-kit-magnetic-sensor/
https://www.maff.go.jp/kyusyu/seiryuu/cyoujyugai/attach/pdf/wana_tsu-4.pdf

f:id:massiro-myaon:20200813141112j:plain

f:id:massiro-myaon:20200813141157j:plain

ここまでIoT特化のデバイスを扱ったことがなかったので比較的スムーズに取り組めて楽しかったです。習慣の可視化という点でも色々なユースケースが他にもありそうなので今後も思い付く限り試してみようと思います!

OculusLink+Kinectでフルトラッキング

VRやってたらフルトラッキング憧れますよね...

そんな中以下の記事を見つけまして...

bironist.hatenablog.com

情報系の先生にKinectV2を借りていたこともあり、OculusLink+Kinectでのフルトラッキングに挑戦!

基本的には上記サイトの手順通りに出来ました!


OculusLink+Kinectでフルトラッキング

詰まった点としてはキャリブレーション時にコントローラから調整できなかったのでバーチャルデスクトップからKinectToVRのパラメータを直接操作することで対応しました。

VRChatなどSteamVRから起動できるアプリで活用することは出来ましたが、clusterでは認識出来なかったので解決案を模索中です!

clusterでワールド生産した話

最近はclusterにはまってもくもくしてましたがワールド製作に関しては何も記事を上げれてなかったのでまとめてみました。


Virtual Bowling


Virtual Ping-Pong in cluster


Virtual Golf in cluster

これら以外にもいくつか作って来ましたが超ハッカソンのテーマ「バーチャルスポーツ」に焦点を絞りながら紹介していきます。

基本的な作り方

creator.cluster.mu

まあ公式のチュートリアルをやれば完成します!

ほかにはWikiや交流スペースで知見が共有されているのでそちらをご覧ください!

scrapbox.io

creator.cluster.mu

バーチャルスポーツ

私が便乗したのはこの企画(43分頃に半魚人で登場)

live2.nicovideo.jp

日頃はFusion360を使ってるのでそのデータをFBX出力して使ってます。

【Unity】Fusion360で作成したデータをUnityにインポートしたい!

Grabbable Itemを設置してVRモードで入るだけで大抵の競技はできそうな印象。

まあclusterはスマホやPCでも遊べるのが1番の売りなのでそこは機種依存なく遊べるワールド作りを心がけましょう(ブーメラン)

Grabbable Item - Cluster Creator Kit ドキュメント

共同開発

【Unity/Git】Unityでチーム開発をする(1) 概要と初期設定編 - Qiita

Unityでの共同開発についてはここが分かりやすかったです。

ただCreaterKitSample自体がGitHubで管理されてるのでgitignoreの設定等もすでに出来ています。ですのであとはブラウザでもコマンドでもGitHubデスクトップ(私はこれ)でも通常のプロジェクト管理通り使って問題ないです。

何だかんだ雑なまとめになりましたがリンク集的に活用頂けると幸いです。

 

H430PとSelfie 2 Waifu

最近ペンタブを買いました。 f:id:massiro-myaon:20200514120757j:plain ノート取る時やちょっとしたテクスチャ編集に使っていけたらなと思います。
基本はタイピング&マウスの方が無難てなるでしょうが、ちょっとした数式とか図を書くときツールの選択肢としてあることが大事。

というわけで早速画像編集。
SNSで流れてきた自撮り写真アニメ化ツール「Selfie 2 Waifu」を使って出てきた画像からメガネを取りました。 getnews.jp

ソフトはメディバンペイントを使用。
medibangpaint.com

スポイトやペンを使ってテキトーに仕上げました。
少しすべり易い印象ですが細かいところをこすって直していく感じがペンタブならではで新鮮でした。
f:id:massiro-myaon:20200514123407j:plain f:id:massiro-myaon:20200514120804p:plain

このくらいの入門機を一度試してみては?

ラズパイからslackへの猫画像送信

ねこしぇるじゅ・アドベントカレンダー | GWアドベントカレンダー
アドベントカレンダーの五番手として書いてます!

ねこしぇるじゅについてはアドベントカレンダーや以下のサイトに詳しくあるので割愛
ねこしぇるじゅ


俺得Slack App LT会

www.slideshare.net

さらに大枠の部分はSlackAPIのイベントで発表しました! というわけで細かいところ書いていきます。

slackに関する部分はこちらを参照
監視カメラで撮影した画像を自動でSlackにアップロードする方法 | AI coordinator
tkinterを使ったGUI制御のところはこちらを参照してください
分身ロボもどき #IT_Party - 黒猫 blog

# 追加の関数部分
def slack():
    print("slack")
    subprocess.call(["python3","photo/pict_static.py"])
    filename = datetime.now().strftime('photo/static.jpg')
    result = slacker.files.upload(filename, channels=channel_name)