[[FrontPage]] *2020年 [#x08b2390] **10/26(月)M5Stackを通信をしたいときのメモ[#p8fa4da7] *** ESP-NOWについて [#e407248f] *** ESP-NOWについて [#p7e27114] - 短いパケットを特徴とする高速でコネクションレスな通信技術送信 - ESP-NOWはIEEE802.11 Action Vendorフレーム技術とEspression if社が開発したCCMP暗号化技術により、コネクションレス通信を実現 - 短いパケットを特徴とする高速でコネクションレスな通信技術送信 - 暗号化および暗号化されていないunicast 通信。 - 暗号化されたpeer deciceと暗号化されていないピアpeer deciceが混在。 - 最大250バイトのペイロードを伝送。 - アプリケーション層に送信の成功または失敗を通知するために設定できる送信コールバック関数 - Broadcast はサポートされていません。 - 暗号化通信には限定があります。10個のの暗号化された通信はStationModeのほとんどでサポートされています。 - SoftAPまたはSoftAP +StationModeの場合は、最大で6です。複数の暗号化されていない通信もサポートしていますが、暗号化通信を含めて、総数は20以下でないといけません。 - ペイロードは250バイトに制限されています。 *** 単語 [#yd8591be] *** 単語 [#bf2920c9] - コネクションレス -- Datagramとも呼ばれる。経路確保などの事前のやり取り(コネクションの確立)無しに、データ送信を開始するパケット通信の方式である。 TCP/IPにおけるUDPで用いられている。 - [複数通信:https://github.com/Robocraze/ESP-Now/blob/master/ESPNowMaster.ino] - [[複数通信:https://github.com/Robocraze/ESP-Now/blob/master/ESPNowMaster.ino]] ***参考リンク: [#uef6b007] [[M5Stack同士でWiFi, UDPによる双方向リアルタイム同時通信する実験:https://www.mgo-tec.com/blog-entry-udp-wifi-m5stack.html]] 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 ***デバッグメモ [#fdb863e9] - 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/b5052fd6bee85148833fb 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にする? ・一回BLE書いてみることで、M5Stack同士の通信が実現できるのかやってみよう。 M5stackにてBLEを使ってみる記事。 *** 今後のタスク [#d2627055] - ソースコードで何をしてるのか解析する - [検討]UDPだと消費電力やばくない? →BLEにする?→あまり変わらなそうん。ESPnow使ってみる - 一回BLE書いてみることで、M5Stack同士の通信が実現できるのかやってみよう。 ***参考リンク [#q309f9fa] - M5stackにてBLEを使ってみる記事。 https://qiita.com/nsawa/items/2afd4ae9c10af87d0133 M5Stack-M5-stickの方が良いかも? - M5Stack-M5-stickの方が良いかも? https://qiita.com/mirawerra/items/d3d514cbdb3c2f4c20fb - M5StackでBLE環境センサー端末を作る https://ambidata.io/samples/m5stack/m5stack_ble_sensor/ ESPnowというライブラリがある模様 - ESPnowというライブラリがある模様 https://qiita.com/nnn112358/items/da9762c4651c521af2c8 *2019年 [#x08b2390] **5/15(水)ハプティックリアクタについて調べたことまとめ[#p8fa4da7] 触覚を変えるモジュールとしてアルプス電子のハプティックリアクタを使って見る前に参考にしたサイトや特徴をまとめる。&br; 特徴&br; ・印加電圧は3.3V&br; ・抵抗は計測してみると4Ω&br; http://kako.com/blog/?p=24418&br; http://kako.com/blog/?p=24406&br; https://www.4gamer.net/games/990/G999026/20170304001/&br; このあたりを参考にさせてもらった。 **4/12(金)M1の新歓期タスク[#p8fa4da7] M1になってから新歓で以外とたくさんすることがあったので来年以降の内部進学生のためにメモ。&br; やること&br; ・ラボ見学の案内:3月末に新B4が見学に来るので待機、案内・説明をする。&br; ・会計を決める:merl基金を管理する人が必要になります。&br; ・お花見の企画:新B4を交えてお花見を企画しました。&br; ・B4アカウントづくり:新ラボメンが確定したら、顔合わせのときにifdlアカウント、スラックアカウント、dropboxへ招待、(LINEグループ作成?)を行います。&br; ・新歓の企画:4月中に新歓を執り行います。&br; ・ゼミの運営:ゼミの曜日を決め、発表順を決め、スケジュールを立てて、wikiに記入、ifDLのカレンダーに記入と場所を予約しておきます。&br; ・B4写真撮影:wikiのメンバ紹介のページに載せるB4の写真を撮影します。&br; ・大掃除、席替え。:そのままです。&br; ・マイコンペの取りまとめ:例年6月に行われるマイコンペのとりまとめを行います。&br; **2/4(月) Unityでの画面のレイアウト、オーディオ関連(serial timeout)[#p8fa4da7] Unityでの画面上のUIの座標とか位置の諸々&br; http://spi8823.hatenablog.com/entry/2014/10/27/024948&br; Unityでのオーディオ関連について&br; https://qiita.com/lycoris102/items/5d5359b2015a8fdebaaa **2/3(日) AT tiny10への書き込みエラー(serial timeout)[#p8fa4da7] https://make.kosakalab.com/make/electronic-work/arduino-ide/arduino_tpi/&br; ↑の方法の通りしたら、「serial timeout」というエラーが発生した。&br; 書き込み機をseeduinoに変更して、0番ピンのように変更したら無事書き込みできた。&br; **1/25(金) Unityで作成したAndroidアプリでの音量操作を無効にするその2[#p8fa4da7] 一昨日から実装していた機能が実現した。&br; http://fantom1x.blog130.fc2.com/blog-entry-283.html←参考サイト&br; 必要なのは上記のfantomPluginをAssets/Plugins/Andrid/に置き、AndroidManifest-HardVolKey_Portrait_API21.xmlをAndroidManifest.xmlと変更する&br; 次に、メッセージを読み出すUntiyのC#スクリプト内に、 using FantomLib;でアセットを読み込んでから&br; Start()とかにAndroidPlugin.HardKey.SetVolumeOperation(false);を記述すればOK &br; これで鬱陶しい通知を消すことができ、さらにブルシャッターのボタンをトリガーにすることができた。&br; Unity周りはこれで終わり。&br; あとは3Dモデルの造形とフォトカプラ回路を組む。&br; **1/23(水) Unityで作成したAndroidアプリでの音量操作を無効にするその1[#p8fa4da7] Unityで作成したAndroidアプリでBTシャッターからのトリガーで情報が表示がされることがわかった。&br; 弊害として、BTシャッターではVolumeUpも押されているので、それによって音量が調節されては困る。&br; Unity アプリ上では音量の変更を無効にしたい&br; こいつだ&br; http://fantom1x.blog130.fc2.com/blog-entry-283.html?sp&br; 音量等を取得するためには、UnityPlayerActivityをオーバーライドする必要あり。&br; 必要なのは上記のfantomPluginをAssets/Plugins/Andrid/に置き、AndroidManifest-HardVolKey_Portrait_API21.xmlをAndroidManifest.xmlと変更する **1/22(火) Unityで作ったiOSアプリでvolume upボタン入力を入れたいその2[#p8fa4da7] 実装の続き&br; 外部入力をどう扱うか調べてみた。&br; →input managerを使っている。&br; PS3のコントローラーとかなら使えるので、inputmangaerをごにょごにょすればいけるんじゃないか。&br; BluetoothシャッターのAndroidの方はreturnを送信するみたいだし。&br; http://nn-hokuson.hatenablog.com/entry/2017/11/20/211617&br; →inputmanagerでreturnを押されたらトリガーされるようにしてみたが、失敗。&br; PCのreturn 入力ではトリガーになっているのだが。&br; Bluetoothシャッターを押すと音量が上がるだけだ。&br; &br; タッチとかアニメーションの処理はUnity側で書いて、音量キーに対する反応についてはxcodeのネイティブコードいじるか&br; UI keycommand をいじる?ちょっと一旦保留&br; 記事を発見、アプリ内でボリュームボタンをいじれる&br; https://gist.github.com/kazz12211/9d58af5c42ecbe35de58d66418412690&br; https://teratail.com/questions/62501&br; http://frnk.hatenablog.jp/entry/20121108/1352359912&br; swiftとiOSアプリの知識がないので現段階で理解できず。&br; &br; 今後取る選択肢&br; 1xcodeで開発&br; 2Androidに変更&br; 3unityでなんとかする方法を調べる&br; returnキーは押されているようだ&br; →これをUnityで取得して、音量変更の画面をアプリ上で表示させないようにすればミッションコンプリート&br; あれ、でもおかしいな、PC上ではUnity上で反応してる。&br; 何が違うんだろ・・・&br; returnでなくenter?&br; iphone上で反応しない、なぜだorz&br; わかった、キーボード入力がONになってないから?&br; とりあえず、returnにかかわらずいずれかのキーが押されたときに反応してくれれば良い&br; https://qiita.com/RyotaMurohoshi/items/688fe33f44de8339c497&br; getbuttonでなくgetkeyを使ってみる&br; https://tech.pjin.jp/blog/2015/09/30/unityのキー入力まとめ-〜inputクラス〜/&br; だめ、反応しない&br; Bluetoothキーボードとかだとどうなのだろう?&br; と思ったのだけど、だめ、回答がなかったり、xcodeのネイティブコード変更しなくちゃっぽい&br; https://teratail.com/questions/59442&br; https://stackoverrun.com/ja/q/11062779&br; プラグイン自作するか&br; http://yoichirowatanabe.hatenablog.com/entry/2016/06/28/015057&br; Androidにして、anyKeyDownにしたらトリガーになった。 どのキーが押されてるのか認識できないのは気持ち悪いけど、これで音量にロックかけておけばとりあえず形にはなりそう&br; **1/21(月) Unityで作ったiOSアプリでvolume upボタン入力を入れたい[#p8fa4da7] したいこと: Unityで作ったiOSアプリ内でBluetoothシャッターから送信されたVolume upボタンの信号をトリガーとしてUIを表示させたい&br; https://teratail.com/questions/16871&br; ↑したいことに近いかも&br; &br; 調べたこと&br; &br; Androidなら答えがある?&br; https://stackoverflow.com/questions/27160114/using-volume-buttons-on-android-in-unity3d&br; &br; UnityPlayerActivityを有効にする&br; &br; UnitypPlayerActivity・・・Androidアプリケーションを作る時に拡張する&br; iOS版におけるAppController.m&br; &br; AppController.m?&br; AppDelegateに処理を追加する方法&br; https://starzero.hatenablog.com/entry/2014/02/24/182646&br; &br; AppDelegateについて&br; アプリを開いたり閉じたりしたときに呼ばれる&br; https://qiita.com/SoyaTakahashi/items/cc8f48af792c353cd9f3&br; &br; やりたいことの質問はここに&br; ちょっと難しそうな雰囲気?でも、2017年にはできてるアプリもあるっぽい&br; https://answers.unity.com/questions/40216/accessing-the-physical-volume-buttons-on-iphone-or.html&br; &br; アプリレベルではどうやら検知できそう&br; →Unityで一回ビルドしてから書き直すか・・・&br; http://frnk.hatenablog.jp/entry/20121108/1352359912&br; &br; iOSアプリレベルだと検知できる&br; https://teratail.com/questions/62501&br; &br; これも。アプリレベル。xcode6&br; https://teratail.com/questions/16534&br; &br; iOSへのビルドの仕組みがわかれば、あとでiOSアプリを書き換えることもできる。&br; &br; ボリュームボタンを検知するのではなくて、音量の変更を検知しても同様の効果が得られるというアプローチ&br; https://stackoverflow.com/questions/27160114/using-volume-buttons-on-android-in-unity3d&br; &br; ボリュームチェックのコード&br; https://stackoverflow.com/questions/37057723/unity3d-is-it-possible-to-check-the-volume-of-both-android-and-iphone-devices&br; &br; ボリュームが上がったことを検知&br; →イベントを出す&br; →ボリュームを下げる&br; ってしても変わらないっちゃ変わらない&br; やや煩雑になりそう。&br; &br; まてよ、BluetoothシャッターってAndroid版の方は確かreturn + 音量upだったはず。&br; このreturnをUnityアプリで検知できれば、スイッチとして動作するはずだ。&br; &br; iOSは外部キーボードからの入力を受け付けられないっぽい&br; ガード硬すぎ、難攻不落。&br; https://stackoverrun.com/ja/q/11062779&br; Xcodeでネイティブコードを変更するしかないか。。&br; 一旦ここまで。&br; **1/18(金) BL600とのシリアル通信に成功[#p8fa4da7] [#sde56515] 長らく苦戦していたのだが、ようやくBL600とのシリアル通信に成功した。&br; 使用ボードとマイコンはこれ。&br; http://www.runele.com/ca1/24/&br; 使用するのはUwterminalXというソフト。GitHubにはWindows版しかないみたいだが、ググればMac用のdmgが落とせる。&br; https://github.com/LairdCP/UwTerminalX&br; 次にUSBシリアル変換アダプタで接続。使用したのはこれ。&br; https://www.switch-science.com/catalog/1032/&br; ドライバが必要、とのことで2つのドライバを入れたのだが、これが悪さをしたらしくCOMポートをUwterminalXが認識してくれない。困った。&br; 結局公式ドキュメントのトラブルシューティングにより片方をオフにすることで解決。&br; 長かった。&br; これから、ファームウェアを書いて、センサの値をbluetoothで飛ばすように設計する。&br; 接続の参考にしたサイト→http://todotani.cocolog-nifty.com/blog/2014/05/rbbl600fribeaco.html&br; *2018年 [#x08b2390] **11/27(火) 3Dプリンタトラブルシューティング[#p8fa4da7] 3Dプリンタが詰まったりして思うように動かなかったので試したことなど。&br; 原因その1「ノズル詰まり」&br; ノズルが詰まっている場合。&br; 本体の「Utilities -> reload」で一旦フィラメントを引き抜く&br; 次に「Utilities -> load」で再びフィラメントを入れて、先からフィラメントが出てきたのを書くにしたら解決。&br; それでも解決しなかった場合、フィラメントを取り出した歳に先っぽをハサミなどでカットしてから挿入し直すとうまく行った。 原因その2「絡まり」&br; フィラメントが裏でもつれていた。&br; その1と同様に、一度フィラメントを取り出し、うしろで正常にもつれをほどく。&br; 再び挿入して解決した。&br; &br; &br; 追記2018/11/28(水)&br; 結局、何度か失敗したらフィラメントがなくなったので交換。&br; するとうまくいったので、原因としてフィラメントの劣化も大いにありうる。&br; **11/26(月) 3Dプリンタの使い方[#p8fa4da7] 3Dプリンタの使い方を教わったので備忘録&br; 必要ソフトは2つ。&br; 1. Autodesk fusion360&br; https://www.autodesk.co.jp/products/fusion-360/overview&br; 2. MakerBot&br; https://www.makerbot.com/3d-printers/makerbot-print/download/&br; これらをインストールする。&br; まずはfusion360の方で作りたいもののデータを整形し、stl形式で保存。&br; 次にMakerBotでstlデータを読み込んで、x3gファイルにて書き出す。&br; 最後に、プリンタにあるSDカードに保存し、プリンタにて操作する。&br; 終わったら利用簿を付けて終わり。 http://j.mp/rep2x_log **11/15(木) 論文の読み方[#p8fa4da7] ネットで筑波大の落合先生が見つけた論文の読み方が落ちていた。&br; なかなかいい感じかも。&br; http://lafrenze.hatenablog.com/entry/2015/08/04/120205&br; ちなみに僕は読んだ論文をDL→Evernoteにアップロードと、↑の質問に答えて自分なりにまとめる、ということをやっているけれどなかなか後で見返すときに便利。&br; **5/14(月) 文字がフェードで表示されるサイトづくり[#p8fa4da7] 開くと、文字がフェードで表示されるwebページを作りたいと思って検索してみた。&br; https://www.plusdesign.co.jp/blog/?p=3372&br; Textillate.jsというjQueryライブラリを利用すると簡単にできそうと思い、サクッと作ってみたのだけれど、これは一行の文章をフェードイン・アウト・ループさせる機能が主。&br; こちらの意図は複数行の文章を順番に表示させたかったので、違う。&br; するとこんなサイトを見つけた。&br; https://memocarilog.info/webdesign/8050&br; どうやら、JS使わずともCSSだけで実装可能だった模様。&br; **5/7(月) Vue.jsのチュートリアル[#p8fa4da7] webを使ったインタラクションとか、アニメーション使ったサイト作ってみたいと思いvueの勉強を初めた。&br; 目指すのはこれ&br; https://qiita.com/SoichiroNitta/items/8d8ce14fc287aa233ae6&br; 以下の動画チュートリアルで勉強&br; https://laracasts.com/series/learn-vue-2-step-by-step **5/7(月) 院試関連日程[#p8fa4da7] 院試に関する日程が出てきた。&br; 今僕が興味があるところをまとめておくと、日程順に&br; 筑波大推薦出願 6/1-6/8&br; 金大出願 6/11-6/15&br; 筑波大推薦試験 7/7&br; 筑波推薦合格発表 7/11&br; 東大出願 7/10-7/12&br; 筑波一般出願 7/2-7/20&br; 東大一次試験 8/20&br; 金大試験 8/21.22&br; 筑波・東大試験 8/27,28の片方&br; =LINK=&br; 金大 https://www.nst.kanazawa-u.ac.jp/admission/&br; 東大 http://www.iii.u-tokyo.ac.jp/manage/wp-content/uploads/2018/05/3-2.H31hyogenM.pdf&br; 筑波大 http://www.ap-graduate.tsukuba.ac.jp/course/slis/first/&br; **4/18(水) pukiwikiのスマホ対応化記録 [#p8fa4da7] ifdlページのスマホ対応化を行った。普通にcss(180wiki.css)を編集すれば行けるかと思ったのだけれど、CMSを使っているのでそう単純な問題でもないらしい。&br; ググった結果、以下のサイトを参考にして簡単にできた。&br; https://genchan.net/it/seo/5942/&br; それから後は、このサイトのテンプレの180wiki-sp.cssを編集していった。&br; 適宜phpファイルを編集。(意外とhtmlの知識あればphpいじれる)&br; とりあえず最低限スマホ対応化させたものは180wiki-sp.cssに保存してある。&br; でも、これもっといいデザインにしたかったので、180wiki-sp-edit.cssを作成。&br; もし不具合あれば↑サイトを参考に参照を変更すれば動くはず。&br;