とうふ荘の手記てき!

プログラムとか

M5StickCのNVS領域(Preferencesクラス)に書き込んだデータを削除する

以前、書き込んだM5StickC用の駆動時間測定用のスケッチですが、NVS(Non-Voltage Storage)と呼ばれる不揮発性メモリにPreferencesクラスを用いて、書き込んでいました。

tofu-so.hatenablog.jp

しかし、NVS領域は電源断だけではなく、スケッチを書き込んでもデータが残り続けるため、あまりに多くのデータが残ると書き込みに支障が生じる可能性がありますし、NVS領域の使用例として、WiFiのアクセスポイントやパスワードを書き込む例も見られ、それらが残り続けることはあまり気持ちの良いものではありません。

そこで、NVS領域をクリアするスケッチを実行するスケッチになります。NVS領域に残っているデータはすべて削除されるため気を付けてください。

続きを読む

DroidCam・Snap Camera・OBS Studioでバーチャル背景がどこでも出来る

  • 結論
  • 環境
  • DroidCamを導入
  • Snap Cameraの導入
  • OBS Studioの導入
  • OBS virtual-camを導入する
  • OBS Studioのシーンを設定する
    • OBSを使う意義
  • Skypeビデオチャットを行う場合
日時 更新内容
2020/05/03 タイトル変更

結論

  1. DroidCamでスマートフォンWebカメラとして扱う。
  2. Snap CameraのVirtual Green WallというLensを使って背景をグリーンバックにして人だけ切り抜く。
  3. OBS StudioにVirtual Camプラグインをインストールして、Snap Cameraにクロマキーとお好みの画像を合成し、それを仮想カメラに流す。
  4. ビデオ会議のカメラにOBS Cameraを選択

ちなみに2.の工程をFaceVtuberというサイトのウィンドウキャプチャで置き換えるとお手軽にバ美肉できる。


ビデオチャットをする必要に見舞われたものの、使用しているPCでビデオチャットをすることを想定していなかったため、Webカメラはおろかマイクすら取り揃えていませんでした。

そこで、Webカメラがなくても、ZoomやMicrosoft Teamsのバーチャル背景再現してSkypeGoogle Meetなどでビデオチャットをする方法を備忘録として残しておきます。

(なお、複数のアプリを経由させ、中にはSnap Cameraなどは背景除去を行っていたりと、要求スペックはそこそこ高いです。)

続きを読む

M5StickCのesp-idfとArduinoライブラリとM5StickCライブラリを用いた環境構築

Arduino IDEを使わずにM5StickCをesp-idfに加えarduino-esp32M5StickCコンポーネントとした開発環境で、vscodeでプログラムします。

続きを読む

M5StickCのバッテリーでの動作時間

  • M5StickCとは
  • バッテリーでの動作時間を測ってみた
  • 測定結果
  • 使用後
日時 更新内容
2020/05/14 PreferenceクラスによるNVS領域への書き込みをクリアする内容を追記・バッテリー残量を電圧からパーセンテージで計算するように変更

M5StickCを買いました。

M5StickCとは
  • 小型!
  • 画面がある
  • ESP32 Pico を搭載するためWiFiBluetoothが使える
  • ジャイロと加速度センサーが付いている
  • 腕時計マウンタが付いている(公式ショップでは付いていないバージョンもあるそうです)
  • (人によるとは思いますが)安い!

ことを特徴としたマイコンキットです。

www.switch-science.com

続きを読む

マイクロマウス(クラシック)がやりたい!

所属しているサークルの目標に、マイクロマウス競技に参加しよう!というものがあります。

今回、自分はマイクロマウス(クラシック)への参加を目指して期待製作を頑張っていきます。

その過程も以後書くことになるやもしれません。

マイクロマウスって?f:id:tofu-so-shioaji:20190815041738p:plain

マイクロマウスとは、マイコンを積んだ車輪が付いたロボット(必ずしもその限りではない)が、迷路を探索し所定のゴールへ到達するまでの速さを競います。

その際、プレイヤーは走行中のマウスに対しては迷路情報の入力といったものができず、マウスは搭載されているセンサーを頼りに迷路の構造を把握し、スタートからゴールまでの経路を計算して、その通りに走り抜けることになります。

レギュレーションとしては、前述の迷路情報の入力のほかに、内燃機関や外燃機関の使用、迷路の破壊や飛び越え、プレイヤーによる換装などが禁止されていますが、それ以外は基本的に自由です。

つまり、変形マシンや足で歩行するロボットでも問題ないということです。

現在、クラシック部門とハーフサイズ部門に分かれており、クラシックでの迷路1区画の大きさは18 cm × 18 cmでハーフサイズでの迷路1区画の大きさは9 cm × 9 cmになっており、クラシックサイズはより詰め込む必要がある上級者向けの部門だそうです。

2018年度の全日本大会を優勝した方の最短走行(迷路を把握し終えて最速で突っ走る走行)のすごい動画です。

マイクロマウス2018 クラシックマウスA(午後) Micromouse2018 Classicmouse A(p.m.) - YouTube

ちなみに、いらすとやに素材もあるようですよ

www.irasutoya.com

4つのソートアルゴリズムをGo言語で実装する

挿入ソート、マージソートヒープソートクイックソートについて知ったので、それらをGo言語で書いてみます。

github.com

続きを読む

ルネサスのマイコンをVSCodeを使ってプログラム、そしてCS+でビルド、Flash Programmerで書き込みを行う。


  • なんでVScodeルネサスマイコンをプログラミングするの?
  • プロジェクトを作成する
  • VSCodeで開く
  • VSCodeをCS+向けに設定する
    • 自動保存の有効化
    • 文字コードの設定
    • iodefine.hに手を加える
    • インクルードパスを追加
  • ビルドをVSCcodeから実行できるようにする
  • Flash ProgrammerでVSCodeからでも書き込めるようにする
    • Renesas Flash Programmer V3.06を使用している場合(新バージョンにおける方法)
    • Renesas Flash Programmer V3.05を使用している場合(古いバージョンにおける方法)
  • うまく行かない場合
  • 設定のまとめ

更新日 内容
2020/02/04 微修正・RFPV3.Consoleに関する記述を追加。
2020/02/11 自動保存に関する記述を追加。
なんでVScodeルネサスマイコンをプログラミングするの?

f:id:tofu-so-shioaji:20190421193746p:plain

Renesasのマイコン(RXファミリなど)をプログラミングするためにはCubeSuite+(CS+)と呼ばれる統合開発環境を使うのですが、私自身、普段はVisual Studio Code(VSCode)と言われているエディターを使っています。

code.visualstudio.com

VScodeは入力補完や拡張機能、コードレンズなど多機能で、エディターとしても軽量な方です。(最近は重くなってきたかも?)

なので、プログラミング、ビルド、マイコンへの書き込みまでをVScodeから行う最低限の手順を備忘録も兼ねてまとめてみました。

続きを読む