Spresense VSCode IDEトラブルシューティング(適宜更新予定)

ASMPワーカープログラム作成後、プロジェクトのクリーンに失敗する 環境 OS : macOS Mojave v10.14.6 Spesense SDK : v2.0.1 Spresense VSCode IDE : v1.2.0 現象 公式のマルチコアアプリケーション作成ガイドに沿って、プロジェクトをビルドし、ボードに書き込んだ。 しかし思った通りにアプリケーションが動かなかったため、プロジェクトのクリーンを一度行ったら以下のようなエラーが出た。 > Executing task in folder myproject: .vscode/build.sh clean < usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]] [-e pattern] [-f file] [--binary-files=value] [--color=when] [--context[=num]] [--directories=action] [--label] [--line-buffered] [--null] [pattern] [file ...] Create .version make[3]: Nothing to be done for `clean'. Makefile:12: /Users/username/spresense/spresense/sdk/apps/.vscode/worker.mk: No such file or directory make[6]: *** No rule to make target `/Users/username/spresense/spresense/sdk/apps/....

July 11, 2020 · 2 min

UIFlowの環境でHuskyLensを使えるようにする

UIFlowとは M5Stack系列がサポートしている開発環境の1つ。主な特徴は以下の通り。 Web上でコーディングから書き込みまでできる。 ビジュアルプログラミング言語Blockly及びMicroPythonをサポートしている。 HuskyLensとは AI処理向けのSoC Kendryte K210 を搭載したAIカメラモジュール。顔認識、オブジェクト追跡、オブジェクト認識、ライン追跡、色認識、タグ(AprilTag)認識などの機能が実装されている。接続インタフェースはUART及びI2C。 MicroPython環境でHuskyLensを使う Pythonで実装されたHuskyLensとの通信用ライブラリは、RaspberryPiでの利用向けに公開されている。 MicroPython上でHuskyLensを使う場合、基本的にはここから必要な処理をコピペして使えば良さそうなのだが、一部 MicroPython(on ESP32) でサポートされていないモジュールを利用している箇所があるため、その部分を書き換える必要がある。ただし、今回はUARTでの通信を前提とする。 環境 UIFlowファームウェア : ver1.4.5.1 HuskyLens用Pythonライブラリ : 2020/06/28時点の最新 書き換えが必要な箇所 UART通信用オブジェクト生成部分 書き換え前 self.huskylensSer = serial.Serial(port=comPort, baudrate=speed) 書き換え後例 self.serial = machine.UART(1, tx=32, rx=33) self.serial.init(9600, bits=8, parity=None, stop=1) MicroPythonではmachineモジュールがもつクラスUARTを使ってUART通信バスにアクセスできる。ピン番号やボーレートは自分の環境に合わせて設定する。 参考 : クラス UART -- 二重シリアル通信バス — MicroPython 1.12 ドキュメント 16進数文字列からバイナリデータへの変換部分 書き換え前 def cmdToBytes(self, cmd): return bytes.fromhex(cmd) 書き換え後例 import ubinascii def cmdToBytes(self, cmd): return ubinascii....

June 28, 2020 · 1 min

赤外線を周期的に(矩形波で)出力するモジュールを作る

現在作成中である射的ゲームの銃ユニット用に、赤外線を周期的に(矩形波で)出力するモジュールを作成する。 電源 まず必要な電圧・電流を調べる 今回使う赤外線LED → 5mm赤外線LED 940nm OSI5FU5111C-40 (5個入): LED(発光ダイオード) 秋月電子通商-電子部品・ネット通販 赤外線LEDの絶対最大定格 最大順方向電流 If : 100mA 赤外線LEDの電気的特性 順方向電圧 : If=100mAの時 代表値 1.35V、 最大値 1.6V If=100mAとなっているが(なかなか高出力…)、50%の50mAが流れるように設計する。 電源の選定 50mA流しても大丈夫 + 1.35V以上を確保できる電源を選ぶ。 値段等も考えると、1000円でバッテリー+電池保護+電源管理がついてるPowerCが自分にとって使いやすそう。 M5StickCは使わないので、BATピンだけ活用する。 PowerCの給電周りの仕組みについては公式ドキュメントとM5StickCのバッテリー拡張HATをためす – Lang-shipを参考にさせていただいた。 安定化 定電圧をとるために3端子レギュレータをかます。 低飽和型レギュレーター 3V500mA NJM2884U1-03: 半導体 秋月電子通商-電子部品・ネット通販とかでよさそう。 → ip3005のデータシートによると2.5V付近まで落ちるみたいなことが書いてあるので、これだとバッテリ残量少ないときダメそう。 秋月で買えるやつでベストそうなのは低ドロップレギュレーター 2.5V1.5A LT1963AES8-2.5: 半導体 秋月電子通商-電子部品・ネット通販。これを使う。 だいぶいいやつなので高い…(1個200円)。 赤外線出力 矩形波生成 矩形波(方形波)発生回路の理論的な理解 - 電子工作で覚える!電子回路を参考にさせていただく。 上記サイト中の式 $$ T = 1.386 \times C_1R_4 $$ において、\(C_1 = 0.1 \mu F\)に固定した場合、...

June 21, 2020 · 1 min

Ambientを使って、PowerCに接続されているバッテリーの情報を記録する

Ambientとは 本当にすばらしいサービス。 Ambient – IoTデーター可視化サービス データをテキストでダウンロードできるということで、今回使用させていただくことを決めた。 データーのダウンロード機能をリリースしました – Ambient PowerCとは M5StickCと接続できるバッテリー充電モジュール。 16340バッテリー(3.7V/700mAh)を2個搭載できる。 USB Type-A端子から、外部へ電源供給(5V/1.5A)ができる。 Ambientを使ってバッテリーの電圧を記録する 今回はAmbientの使い方の勉強を兼ねて、PowerCを使ってバッテリーの情報を記録する。 PowerCは電源管理IC IP5209 が付いており、I2C通信によってバッテリーの情報を確認できる。 IP5209から取得できる情報 PowerCのサンプルスケッチをみると、電圧値と電流(電気量)を取得できるらしい。 スイッチサイエンスの紹介ページには M5StickCと接続すると、I2C(アドレス0x75)を通じて、電圧、電流、その他の情報を確認できます。 とあり、その他も取得できるとあるので、他にどんな情報を取得できるかIP5209の以下のデータシートを読んでみた。 IP5209-Injoinic.pdf このデータシートには The built-in 14bit ADC in IP5209 measures battery voltage and current accurately. ADC data are available on I2C interface. IP5209 has integrated a fuel gauge algorithm, acquiring battery’s state of charge precisely. とあり、バッテリーの電圧と電流が測定できるとしか書かれていない。 私が見つけたこのデータシートにはレジスタの情報が(私が読んだ範囲では)見つからなかった。 もうちょっと探せば他の形式のデータシートがあるかもしれない。 少し調べてみると、M5Stackで使われている電源IC IP5306 はカスタム品で、出回っているデータシートにはレジスタの情報がないらしい。 以下のようなTweetを見つけたので引用させていただく。...

June 6, 2020 · 1 min

サイトをスマホで表示したとき下端にメニューバーが表示されるようにする

スマホの場合は、画面下端の方が圧倒的にタップしやすく、スマホアプリは大体画面下部に重要なナビゲーションが並んでいる。 本サイトもそれに倣って改修する。 環境 Django v2.1.4 Bootstrap v4.2.1 スマホのみに表示する Bootstrapの機能を使う。 以下のようにHTMLに記載すれば、スマホ(画面サイズ768px未満)の場合のみ表示される。 <div class="d-block d-sm-none">スマホのみ表示</div> iPhone8の画面サイズで表示すると以下のように最下部に"スマホのみ表示"というテキストが表示されるが、 iPadの画面サイズで表示すると"スマホのみ表示"というテキストが表示されなくなる。 参考 表示ユーティリティ~Bootstrap4移行ガイド 下端に固定する CSSで実装する 表示位置を絶対位置で指定する。 以下のようにCSSで指定することで画面下端に要素を固定できる。 /* スマホ用画面下端メニュー */ .footer-menu-bar { position: fixed; /* 要素の位置を固定する */ bottom: 0px; /* 絶対位置を指定する(下0px) */ } ただ、この方法だと他コンテンツと重なって表示されてしまうので他の用途に使う場合は注意。(今回の用途としては重なっても問題なしとしている) 参考 【css】フッターをページ下部に固定する方法【お手軽コピペ】 | Pで作業軽減しましょ 横並びでリスト表示する Bootstrapの機能を使ってリスト表示を実装する。 HTMLを以下のように変更する。 <div class="d-block d-sm-none">スマホのみ表示</div> ↓ <div class="d-sm-none d-block footer-menu-bar w-100 border-top"> <div class="row m-2"> <div class="col"> TOP </div> <div class="col"> 検索 </div> <div class="col"> タグ </div> </div> </div> 表示は以下のようになる。...

May 31, 2020 · 2 min

ロジスティック回帰を使ってYouTubeタイトルから投稿者を推論する

Pythonでロジスティック回帰を使って、VTuberの動画タイトルから投稿者を推論してみる。 ただ、投稿者を推論するといっても、二値分類なので、投稿者が A か B かを分類するのみ。 使用するライブラリ 今回は以下のライブラリを使用する。 scikit-learn : テキストのベクトル化、ロジスティック回帰 MeCab : 日本語形態素解析 データセット 適当に選んだRan Channel / 日ノ隈らん 【あにまーれ】さんとKuzuha Channelさんの動画タイトルをデータセットとして使う。 動画タイトルはYouTube Data APIを使って取得した。 1日のAPIリクエスト上限に引っかかって、すべては取得できなかったが、日ノ隈らんさんのタイトルは475個、葛葉さんのタイトルは456個取得できた。 タイトル取得に使用したプログラムは以下に置いてある。 また、タイトル中の【】内には大体投稿者名が入っている。 これを使うと簡単に分類できてしまうと思うので、今回は削除する。 (まあ、【】内でなくても、投稿者名が入っていることがあるので結局、というところもあるが…) プログラムと推論結果 今回推論に使用したプログラムは以下に置いてある。 テストデータは直近(このプログラムを作成中)に投稿された以下のタイトルを使う。 Ice breaker / ChroNoiR けんきさんとあびつんさんとランクいってくる!!! 1行目が葛葉さんの動画タイトルで、2行目が日ノ隈らんさんの動画タイトルになっている。 推論結果 推論結果は以下のようになった。 [0.45 0.69] なお、1個目が1行目の結果で、2個目が2行目の結果になる。 また、この結果が 1.0 に近いほど日ノ隈らんさんのタイトル、 0 に近いほど葛葉さんのタイトル"っぽい"と判断できる。 推論結果の分析 どういった理由で今回の推論結果が出たのか分析する。 ロジスティック回帰では各特徴量の係数(重み)と切片(バイアス)を見ることができる。 今回の特徴量はタイトルに含まれる単語なので、各単語について係数(重み)を見てみる。 まず1行目のタイトルの各単語の結果は以下の通り。 以下でwordとtf_idfというラベルで出力しているものが、それぞれ単語名及びtf-idfという手法によって得られた、各単語の重要度になる。 ただ、このデータに関してはすべての単語について、学習元データに含まれていなかったため、this word does not existと表示されている。 つまり、上記推論結果で0.45と出ているが、これは切片(バイアス)成分によるものである。 title_index: 0 word: Ice tf_idf: this word dose not exist word: breaker tf_idf: this word dose not exist word: / tf_idf: this word dose not exist word: ChroNoiR tf_idf: this word dose not exist 次に2行目のタイトルの各単語の結果は以下の通り。...

May 25, 2020 · 2 min

全国規模の感染シミュレーションと結果の可視化をしてみる

先日、都道府県間通勤・通学を考慮した感染症流行のシミュレーションを行った。 この時は関東のみのシミュレーションだったが、今回は全国規模の感染シミュレーションを実施してみる。 なお、この記事ではモデルに関する説明は特に記載しないため、モデルの詳細は以下過去の記事を参照していただきたい。 感染症数理モデルについて触りの部分だけ学ぶ | kouya17.com 都道府県間通勤・通学を考慮したパンデミックシミュレーションもどき | kouya17.com ※本シミュレーションや上記リンク先のシミュレーションは、実測値等には全く基づいていないため、完全に空想上のシミュレーションになります。 本シミュレーションの結果が実情を反映していたり、今後の予測を示していたりはしません。 利用するデータ シミュレーションを全国規模に拡張するには各都道府県の人口のデータと、各都道府県間の通勤・通学者人数のデータが必要になる。 これらのデータは総務省統計局「平成27年国勢調査結果」1を利用した。 パラメータ、初期状態について SEIRモデルに置ける各パラメータは今回以下のように設定する。 基本再生産数 \(R_0\) : 2.0 平均潜伏期間 \(l\) : 5日 平均発症期間 \(i\) : 14日 初期状態はAM0時に、東京都に1人の感染者がいる状態とする。 今回は都道府県間通勤・通学について 通勤・通学者なし 通勤・通学者あり、通勤・通学者数は特に加工しない 通勤・通学者あり、通勤・通学者数は元データの20%にする 通勤・通学者あり、通勤・通学者数は元データの0.01%にする の4パターン、計算を実施して、通勤・通学者数が与える影響を調べてみる。 また、前回のシミュレーションでは休日の概念を設けていなかった。 働きっぱなしは可哀想なので、土日は休みにし、通勤・通学はしないものとする。 ただし、祝日や土日以外の長期休暇は考慮しない。 結果及び可視化 今回はデータが少し多くなってくるので、可視化の方法も工夫する必要がある。 japanmapという、日本地図を都道府県別に色分けできるライブラリがあるようなので、これを利用させていただく。 発症者比率の可視化 各都道府県について、人口に占める発症者の比率(\(\frac{I}{S+E+I+R}\))を可視化する。 発症者の比率を赤色の濃淡で表したアニメーションを以下に示す。 通勤・通学者なしの場合 都道府県の人の移動が発生しないため、東京でしか流行しない。 通勤・通学者ありの場合 日本全国に感染が広がる。 ただし、感染のピークは東京から遠い都道府県ほど遅くなる。 通勤・通学者あり、ただし人数20%の場合 人数を絞る前の結果とほぼ変わらないように見える。 通勤・通学者あり、ただし人数0.01%の場合 人数を思いっきり絞ってみると、人数を絞る前と比べて感染が広がるスピードが遅いように見える。 1000日目時点での累計感染者数の可視化 それぞれの条件で1000日目時点での累計感染者数(\(E+I+R\))をグラフ化する。 横軸を各都道府県、縦軸を累計感染者数にした棒グラフを以下に示す。 通勤・通学における各条件の結果をそれぞれ色を変えて並べている。 累計感染者数に関しては、通勤・通学者数を絞っても変化はない。 ソースコード 今回使用したコードは以下に置いてある。 ただし、全然整理できていない…。 統計局ホームページ/平成27年国勢調査/調査の結果 ↩︎

May 20, 2020 · 1 min

LogisticRegression().fit()のConvergenceWarningを解消する

環境 Anacondaの環境情報 >conda info conda version : 4.8.2 conda-build version : 3.18.11 python version : 3.7.6.final.0 platform : win-64 現象 pythonでLogisticRegression.fit()を実行したところ、以下のワーニングが出た。 ConvergenceWarning: lbfgs failed to converge (status=1): STOP: TOTAL NO. of ITERATIONS REACHED LIMIT. 実行時のjupyter notebookは以下のような感じ。 一応正解率は出せているらしい。 解決策の1つ モデルが収束していないそうなので、max_iterを明示的に設定して、反復回数を増やす。 max_iterの初期値は100だが、上の例では1000に設定している。 今回はこれで警告が出なくなったので、よしとする。 参考 見て試してわかる機械学習アルゴリズムの仕組み 機械学習図鑑posted with ヨメレバ秋庭 伸也/杉山 阿聖 翔泳社 2019年04月17日 楽天ブックスで購入楽天koboで購入Amazonで購入Kindleで購入

May 16, 2020 · 1 min

Vue.jsでローディング表示を実装する

ローディング表示モジュールの調査 vue.jsでローディング表示を行う場合、ローディング表示に関係するモジュールについて調査する。 出来れば、 実装が簡単 よく見かけるような見た目(独自性がない) メンテされている という条件にあてはまるものを採用したい。 調べた結果を以下の表にまとめた。 名前 種類 GitHub Star 最終更新(2020/05/06時点) 備考 vue-loading Vueコンポーネント 2018/12/22 紹介している記事が多い vue-spinner Vueコンポーネント 2017/10/07 Vue2.0をサポートしていない Single Element CSS Spinners css 2019/12/09 よく見かける見た目 vue-loading-overlay Vueコンポーネント 2020/04/18 全画面に表示するらしい vue-wait Vueコンポーネント 2019/10/08 だいぶ機能がリッチそう ajaxload.info gif - - よく見かける見た目 調べて出てきた候補は以上。...

May 6, 2020 · 1 min

都道府県間通勤・通学を考慮したパンデミックシミュレーションもどき

先日、SEIRモデルを用いた感染症流行のシミュレーションを行った。 このプログラムを少し拡張して、都道府県間通勤・通学を考慮したパンデミックシミュレーションもどきを行う。 ※本シミュレーションや上記リンク先のシミュレーションは、実測値等には全く基づいていないため、完全に空想上のシミュレーションになります。 本シミュレーションの結果が実情を反映していたり、今後の予測を示していたりはしません。 都道府県間通勤・通学をシミュレーションに組み込む 都道府県間通勤・通学の影響をシミュレーションに組み込むため、総務省統計局「平成27年国勢調査結果」1を参考にする。 今回は東京都・群馬県・栃木県・茨城県・埼玉県・千葉県・神奈川県間の自宅外就業者数及び通学者数データを扱う。 モデルへの組み込み方としては、移動用のグループを形成し、移動用のグループは移動先のデータと感染率を共有するという方法を採る。 なお、今回はシミュレーション内時刻が8:00の時に通勤・通学者が一斉に(移動時間0で)移動し、シミュレーション内時刻が17:00の時に通勤・通学者が一斉に(移動時間0で)帰宅すると仮定する。 東京都と千葉県間の人口移動を例にして説明する。 まず、初期状態として以下のような状態になっているとする。 値はすべて適当だが、東京都に10人感染者(\(I\))がいるとする。 この後、時間を進行させる。 シミュレーション内の時刻が8:00になった時、人口移動用のグループを分割する。 移動用グループの総人数は総務省統計局「平成27年国勢調査結果」1における自宅外就業者数及び通学者数に従う。 \(S:E:I:R\)比は移動元の都道府県データの比と等しくする。 ここで、移動用グループは移動先の都道府県のデータと、感染率\(\frac{R_0I}{iN}\)を共有する。 感染率を共有させた状態で、時間を進行させる。 なお、感染率を共有する関係で、非感染者から潜伏感染者への遷移に関する項については時間刻みに対して1次精度になってしまう。 シミュレーション内の時刻が17:00になった時、人口移動用のグループを移動元のデータに合流させる。 上の図中の値もすべて適当だが、以上のような形で、都道府県間の感染伝播をシミュレートする。 計算する 人口データについて 人口データは各自治体のページを参考に、以下の値を使う。 都道府県 人口[人] 備考 東京都 13951635 2020年1月1日時点推計2 茨城県 2866325 2020年1月1日時点推計3 栃木県 1942313 2019年10月1日時点推計4 群馬県 1938053 2019年10月1日時点推計5 埼玉県 7341794 2020年4月1日時点推計6 千葉県 6280344 2020年4月1日時点推計7 神奈川県 9204965 2020年4月1日時点推計8 各都道府県毎の通勤・通学による流入・流出人口は総務省統計局「平成27年国勢調査結果」1より、以下の値(単位は[人])を使う。縦が流出元で横が流出先。...

May 5, 2020 · 1 min