FrontPage

2020年

10/26(月)M5Stackを通信をしたいときのメモ

ESP-NOWについて

  • 短いパケットを特徴とする高速でコネクションレスな通信技術送信
  • ESP-NOWはIEEE802.11 Action Vendorフレーム技術とEspression if社が開発したCCMP暗号化技術により、コネクションレス通信を実現
  • 短いパケットを特徴とする高速でコネクションレスな通信技術送信
  • 暗号化および暗号化されていないunicast 通信。
  • 暗号化されたpeer deciceと暗号化されていないピアpeer deciceが混在。
  • 最大250バイトのペイロードを伝送。
  • アプリケーション層に送信の成功または失敗を通知するために設定できる送信コールバック関数
  • Broadcast はサポートされていません。
  • 暗号化通信には限定があります。10個のの暗号化された通信はStationModeのほとんどでサポートされています。
  • SoftAPまたはSoftAP +StationModeの場合は、最大で6です。複数の暗号化されていない通信もサポートしていますが、暗号化通信を含めて、総数は20以下でないといけません。
  • ペイロードは250バイトに制限されています。

単語

  • コネクションレス
    • Datagramとも呼ばれる。経路確保などの事前のやり取り(コネクションの確立)無しに、データ送信を開始するパケット通信の方式である。 TCP/IPにおけるUDPで用いられている。
https://www.mgo-tec.com/blog-entry-udp-wifi-m5stack.html

SimpleBleDeviceを入れようとしたのに、

Arduino:1.8.5 (Mac OS X), ボード:"M5Stack-Core-ESP32, QIO, 80MHz, Default, 921600, None"

fork/exec /Applications/Arduino.app/Contents/Java/tools-builder/ctags/5.8-arduino11/ctags: bad CPU type in executable

デバッグメモ

  • SimpleBleDeviceを入れようとした際に発生
    Arduino:1.8.5 (Mac OS X), ボード:"M5Stack-Core-ESP32, QIO, 80MHz, Default, 921600, None"
    fork/exec /Applications/Arduino.app/Contents/Java/tools-builder/ctags/5.8-arduino11/ctags: bad CPU type in executable
    ボードM5Stack-Core-ESP32に対するコンパイル時にエラーが発生しました。

うーん?周波数設定とか?

ツール> Upload speedを揃えた

Arduino:1.8.5 (Mac OS X), ボード:"M5Stack-Core-ESP32, QIO, 80MHz, Default, 115200, None"

- ビルドオプションが変更されました。全体をリビルドしています。
ツール> Upload speedを揃えたら以下エラー
Arduino:1.8.5 (Mac OS X), ボード:"M5Stack-Core-ESP32, QIO, 80MHz, Default, 115200, None"

ビルドオプションが変更されました。全体をリビルドしています。 fork/exec /Applications/Arduino.app/Contents/Java/tools-builder/ctags/5.8-arduino11/ctags: bad CPU type in executable ボードM5Stack-Core-ESP32に対するコンパイル時にエラーが発生しました。

別のスケッチを試してみる 「SD.h」に対して複数のライブラリが見つかりました 別のスケッチを試してみたところ以下エラー

「SD.h」に対して複数のライブラリが見つかりました

使用済:/Users/amane/Library/Arduino15/packages/esp32/hardware/esp32/1.0.4/libraries/SD 未使用:/Applications/Arduino.app/Contents/Java/libraries/S

となりエラー。

お。バージョンアップ? https://qiita.com/souring001/items/b5052fd6bee85148833f

BLEの方転送時にクラッシュするのだが? Displayの方は大丈夫だね。 原因は不明である。

クライアントのコードを書き込み中に、

クライアントのコードを書き込み中に、

serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?) Failed to execute script esptool スケッチの書き込み中にエラーが発生しました とのこと。

再度書き込みで解決した。

Connecting to WiFi network: aaaaaaaaa Waiting for WIFI connection... WiFi lost connection WiFi connected! 1702064954192.168.4.2 M5Stack initializing...OK WiFi lost connection

いや、これIPアドレスがおかしいよな。

完了した。 ソースコードどこか間違えているはずなので、クライアント側を修正する。

今後のタスク

  • ソースコードで何をしてるのか解析する
  • [検討]UDPだと消費電力やばくない? →BLEにする?→あまり変わらなそうん。ESPnow使ってみる
  • 一回BLE書いてみることで、M5Stack同士の通信が実現できるのかやってみよう。

参考リンク

2019年

5/15(水)ハプティックリアクタについて調べたことまとめ

触覚を変えるモジュールとしてアルプス電子のハプティックリアクタを使って見る前に参考にしたサイトや特徴をまとめる。
特徴
・印加電圧は3.3V
・抵抗は計測してみると4Ω
http://kako.com/blog/?p=24418
http://kako.com/blog/?p=24406
https://www.4gamer.net/games/990/G999026/20170304001/
このあたりを参考にさせてもらった。

4/12(金)M1の新歓期タスク

M1になってから新歓で以外とたくさんすることがあったので来年以降の内部進学生のためにメモ。
やること
・ラボ見学の案内:3月末に新B4が見学に来るので待機、案内・説明をする。
・会計を決める:merl基金を管理する人が必要になります。
・お花見の企画:新B4を交えてお花見を企画しました。
・B4アカウントづくり:新ラボメンが確定したら、顔合わせのときにifdlアカウント、スラックアカウント、dropboxへ招待、(LINEグループ作成?)を行います。
・新歓の企画:4月中に新歓を執り行います。
・ゼミの運営:ゼミの曜日を決め、発表順を決め、スケジュールを立てて、wikiに記入、ifDLのカレンダーに記入と場所を予約しておきます。
・B4写真撮影:wikiのメンバ紹介のページに載せるB4の写真を撮影します。
・大掃除、席替え。:そのままです。
・マイコンペの取りまとめ:例年6月に行われるマイコンペのとりまとめを行います。

2/4(月) Unityでの画面のレイアウト、オーディオ関連(serial timeout)

Unityでの画面上のUIの座標とか位置の諸々
http://spi8823.hatenablog.com/entry/2014/10/27/024948
Unityでのオーディオ関連について
https://qiita.com/lycoris102/items/5d5359b2015a8fdebaaa

2/3(日) AT tiny10への書き込みエラー(serial timeout)

https://make.kosakalab.com/make/electronic-work/arduino-ide/arduino_tpi/
↑の方法の通りしたら、「serial timeout」というエラーが発生した。
書き込み機をseeduinoに変更して、0番ピンのように変更したら無事書き込みできた。

1/25(金) Unityで作成したAndroidアプリでの音量操作を無効にするその2

一昨日から実装していた機能が実現した。
http://fantom1x.blog130.fc2.com/blog-entry-283.html←参考サイト
必要なのは上記のfantomPluginをAssets/Plugins/Andrid/に置き、AndroidManifest-HardVolKey_Portrait_API21.xmlをAndroidManifest.xmlと変更する
次に、メッセージを読み出すUntiyのC#スクリプト内に、 using FantomLib;でアセットを読み込んでから
Start()とかにAndroidPlugin.HardKey.SetVolumeOperation(false);を記述すればOK
これで鬱陶しい通知を消すことができ、さらにブルシャッターのボタンをトリガーにすることができた。
Unity周りはこれで終わり。
あとは3Dモデルの造形とフォトカプラ回路を組む。

1/23(水) Unityで作成したAndroidアプリでの音量操作を無効にするその1

Unityで作成したAndroidアプリでBTシャッターからのトリガーで情報が表示がされることがわかった。
弊害として、BTシャッターではVolumeUpも押されているので、それによって音量が調節されては困る。
Unity アプリ上では音量の変更を無効にしたい
こいつだ
http://fantom1x.blog130.fc2.com/blog-entry-283.html?sp
音量等を取得するためには、UnityPlayerActivityをオーバーライドする必要あり。
必要なのは上記のfantomPluginをAssets/Plugins/Andrid/に置き、AndroidManifest-HardVolKey_Portrait_API21.xmlをAndroidManifest.xmlと変更する

1/22(火) Unityで作ったiOSアプリでvolume upボタン入力を入れたいその2

実装の続き
外部入力をどう扱うか調べてみた。
→input managerを使っている。
PS3のコントローラーとかなら使えるので、inputmangaerをごにょごにょすればいけるんじゃないか。
BluetoothシャッターのAndroidの方はreturnを送信するみたいだし。
http://nn-hokuson.hatenablog.com/entry/2017/11/20/211617
→inputmanagerでreturnを押されたらトリガーされるようにしてみたが、失敗。
PCのreturn 入力ではトリガーになっているのだが。
Bluetoothシャッターを押すと音量が上がるだけだ。

タッチとかアニメーションの処理はUnity側で書いて、音量キーに対する反応についてはxcodeのネイティブコードいじるか
UI keycommand をいじる?ちょっと一旦保留
記事を発見、アプリ内でボリュームボタンをいじれる
https://gist.github.com/kazz12211/9d58af5c42ecbe35de58d66418412690
https://teratail.com/questions/62501
http://frnk.hatenablog.jp/entry/20121108/1352359912
swiftとiOSアプリの知識がないので現段階で理解できず。

今後取る選択肢
1xcodeで開発
2Androidに変更
3unityでなんとかする方法を調べる
returnキーは押されているようだ
→これをUnityで取得して、音量変更の画面をアプリ上で表示させないようにすればミッションコンプリート
あれ、でもおかしいな、PC上ではUnity上で反応してる。
何が違うんだろ・・・
returnでなくenter?
iphone上で反応しない、なぜだorz
わかった、キーボード入力がONになってないから?
とりあえず、returnにかかわらずいずれかのキーが押されたときに反応してくれれば良い
https://qiita.com/RyotaMurohoshi/items/688fe33f44de8339c497
getbuttonでなくgetkeyを使ってみる
https://tech.pjin.jp/blog/2015/09/30/unityのキー入力まとめ-〜inputクラス〜/
だめ、反応しない
Bluetoothキーボードとかだとどうなのだろう?
と思ったのだけど、だめ、回答がなかったり、xcodeのネイティブコード変更しなくちゃっぽい
https://teratail.com/questions/59442
https://stackoverrun.com/ja/q/11062779
プラグイン自作するか
http://yoichirowatanabe.hatenablog.com/entry/2016/06/28/015057
Androidにして、anyKeyDownにしたらトリガーになった。 どのキーが押されてるのか認識できないのは気持ち悪いけど、これで音量にロックかけておけばとりあえず形にはなりそう

1/21(月) Unityで作ったiOSアプリでvolume upボタン入力を入れたい

したいこと: Unityで作ったiOSアプリ内でBluetoothシャッターから送信されたVolume upボタンの信号をトリガーとしてUIを表示させたい
https://teratail.com/questions/16871
↑したいことに近いかも

調べたこと

Androidなら答えがある?
https://stackoverflow.com/questions/27160114/using-volume-buttons-on-android-in-unity3d

UnityPlayerActivityを有効にする

UnitypPlayerActivity・・・Androidアプリケーションを作る時に拡張する
iOS版におけるAppController.m

AppController.m?
AppDelegateに処理を追加する方法
https://starzero.hatenablog.com/entry/2014/02/24/182646

AppDelegateについて
アプリを開いたり閉じたりしたときに呼ばれる
https://qiita.com/SoyaTakahashi/items/cc8f48af792c353cd9f3

やりたいことの質問はここに
ちょっと難しそうな雰囲気?でも、2017年にはできてるアプリもあるっぽい
https://answers.unity.com/questions/40216/accessing-the-physical-volume-buttons-on-iphone-or.html

アプリレベルではどうやら検知できそう
→Unityで一回ビルドしてから書き直すか・・・
http://frnk.hatenablog.jp/entry/20121108/1352359912

iOSアプリレベルだと検知できる
https://teratail.com/questions/62501

これも。アプリレベル。xcode6
https://teratail.com/questions/16534

iOSへのビルドの仕組みがわかれば、あとでiOSアプリを書き換えることもできる。

ボリュームボタンを検知するのではなくて、音量の変更を検知しても同様の効果が得られるというアプローチ
https://stackoverflow.com/questions/27160114/using-volume-buttons-on-android-in-unity3d

ボリュームチェックのコード
https://stackoverflow.com/questions/37057723/unity3d-is-it-possible-to-check-the-volume-of-both-android-and-iphone-devices

ボリュームが上がったことを検知
→イベントを出す
→ボリュームを下げる
ってしても変わらないっちゃ変わらない
やや煩雑になりそう。

まてよ、BluetoothシャッターってAndroid版の方は確かreturn + 音量upだったはず。
このreturnをUnityアプリで検知できれば、スイッチとして動作するはずだ。

iOSは外部キーボードからの入力を受け付けられないっぽい
ガード硬すぎ、難攻不落。
https://stackoverrun.com/ja/q/11062779
Xcodeでネイティブコードを変更するしかないか。。
一旦ここまで。

1/18(金) BL600とのシリアル通信に成功 [#sde56515]

長らく苦戦していたのだが、ようやくBL600とのシリアル通信に成功した。
使用ボードとマイコンはこれ。
http://www.runele.com/ca1/24/
使用するのはUwterminalXというソフト。GitHubにはWindows版しかないみたいだが、ググればMac用のdmgが落とせる。
https://github.com/LairdCP/UwTerminalX
次にUSBシリアル変換アダプタで接続。使用したのはこれ。
https://www.switch-science.com/catalog/1032/
ドライバが必要、とのことで2つのドライバを入れたのだが、これが悪さをしたらしくCOMポートをUwterminalXが認識してくれない。困った。
結局公式ドキュメントのトラブルシューティングにより片方をオフにすることで解決。
長かった。
これから、ファームウェアを書いて、センサの値をbluetoothで飛ばすように設計する。
接続の参考にしたサイト→http://todotani.cocolog-nifty.com/blog/2014/05/rbbl600fribeaco.html

2018年

11/27(火) 3Dプリンタトラブルシューティング

3Dプリンタが詰まったりして思うように動かなかったので試したことなど。
原因その1「ノズル詰まり」
ノズルが詰まっている場合。
本体の「Utilities -> reload」で一旦フィラメントを引き抜く
次に「Utilities -> load」で再びフィラメントを入れて、先からフィラメントが出てきたのを書くにしたら解決。
それでも解決しなかった場合、フィラメントを取り出した歳に先っぽをハサミなどでカットしてから挿入し直すとうまく行った。 原因その2「絡まり」
フィラメントが裏でもつれていた。
その1と同様に、一度フィラメントを取り出し、うしろで正常にもつれをほどく。
再び挿入して解決した。


追記2018/11/28(水)
結局、何度か失敗したらフィラメントがなくなったので交換。
するとうまくいったので、原因としてフィラメントの劣化も大いにありうる。

11/26(月) 3Dプリンタの使い方

3Dプリンタの使い方を教わったので備忘録
必要ソフトは2つ。
1. Autodesk fusion360
https://www.autodesk.co.jp/products/fusion-360/overview
2. MakerBot
https://www.makerbot.com/3d-printers/makerbot-print/download/
これらをインストールする。
まずはfusion360の方で作りたいもののデータを整形し、stl形式で保存。
次にMakerBotでstlデータを読み込んで、x3gファイルにて書き出す。
最後に、プリンタにあるSDカードに保存し、プリンタにて操作する。
終わったら利用簿を付けて終わり。 http://j.mp/rep2x_log

11/15(木) 論文の読み方

ネットで筑波大の落合先生が見つけた論文の読み方が落ちていた。
なかなかいい感じかも。
http://lafrenze.hatenablog.com/entry/2015/08/04/120205

ちなみに僕は読んだ論文をDL→Evernoteにアップロードと、↑の質問に答えて自分なりにまとめる、ということをやっているけれどなかなか後で見返すときに便利。

5/14(月) 文字がフェードで表示されるサイトづくり

開くと、文字がフェードで表示されるwebページを作りたいと思って検索してみた。
https://www.plusdesign.co.jp/blog/?p=3372
Textillate.jsというjQueryライブラリを利用すると簡単にできそうと思い、サクッと作ってみたのだけれど、これは一行の文章をフェードイン・アウト・ループさせる機能が主。
こちらの意図は複数行の文章を順番に表示させたかったので、違う。
するとこんなサイトを見つけた。
https://memocarilog.info/webdesign/8050
どうやら、JS使わずともCSSだけで実装可能だった模様。

5/7(月) Vue.jsのチュートリアル

webを使ったインタラクションとか、アニメーション使ったサイト作ってみたいと思いvueの勉強を初めた。
目指すのはこれ
https://qiita.com/SoichiroNitta/items/8d8ce14fc287aa233ae6
以下の動画チュートリアルで勉強
https://laracasts.com/series/learn-vue-2-step-by-step

5/7(月) 院試関連日程

院試に関する日程が出てきた。
今僕が興味があるところをまとめておくと、日程順に
筑波大推薦出願 6/1-6/8
金大出願 6/11-6/15
筑波大推薦試験 7/7
筑波推薦合格発表 7/11
東大出願 7/10-7/12
筑波一般出願 7/2-7/20
東大一次試験 8/20
金大試験 8/21.22
筑波・東大試験 8/27,28の片方
=LINK=
金大 https://www.nst.kanazawa-u.ac.jp/admission/
東大 http://www.iii.u-tokyo.ac.jp/manage/wp-content/uploads/2018/05/3-2.H31hyogenM.pdf
筑波大 http://www.ap-graduate.tsukuba.ac.jp/course/slis/first/

4/18(水) pukiwikiのスマホ対応化記録

ifdlページのスマホ対応化を行った。普通にcss(180wiki.css)を編集すれば行けるかと思ったのだけれど、CMSを使っているのでそう単純な問題でもないらしい。
ググった結果、以下のサイトを参考にして簡単にできた。
https://genchan.net/it/seo/5942/
それから後は、このサイトのテンプレの180wiki-sp.cssを編集していった。
適宜phpファイルを編集。(意外とhtmlの知識あればphpいじれる)
とりあえず最低限スマホ対応化させたものは180wiki-sp.cssに保存してある。
でも、これもっといいデザインにしたかったので、180wiki-sp-edit.cssを作成。
もし不具合あれば↑サイトを参考に参照を変更すれば動くはず。