散歩のおともに ウエアラブルグラスを自作する5 作り方詳細(2)

M5StickcPlusにし、バッテリー問題を若干回避。事前に十分な充電が必要。以下の仕様で1時間は確実に持つ。LCDの明るさにより駆動時間が大きく変わるので、時間などで明るさを使い分けたりするなどして、もう少し造りこむ予定。

 

主な機能(予定含む)

1.加速度センサー(MPU6886)で体の揺れを表示 現状

2.実装中 IFTTTを用い、携帯電話のLINE通知をBlynkでM5Stickへ表示

  M5StickcPlusのボタンで簡易に返信

  Googleドライブに加速度データを上げる

3.さらにできれば、GoogleMAPのナビ案内を前方に表示したい

4.将来的には(もっとも行いたいのは)、携帯電話の画面を分割、スクロールなどして

  画面の動きがカクカクしてもいいので、ひょうじさせたい

 

私のスキルでは、なんとか、2まではできそうな予感

 

3.4はどなたかアドバイスいただきたい

 

1.は、加速度センサー3軸の値を合成し、M5StickCPlusのLCD画面に表示

 一定、加速度以上が続くと(4.8秒の中で)、マリオコインがもらえる(音がする)

 

2.は以下で検討中。

テキストデータを送る方法

qiita.com

IFTTTでLINEの情報を送る仕組みイメージ

protopedia.net

 

1.のプログラム

#include <M5StickCPlus.h>

#define SAMPLE_PERIOD 20    // サンプリング間隔(ms)
#define SAMPLE_SIZE 240     // サンプリング間隔(20) x 画面幅(240) = 4.8s
#define BUTTON_A 37

bool isPause = false;

void setup() {
  M5.begin();
  M5.Lcd.setRotation(1);
  M5.IMU.Init();
  M5.IMU.SetAccelFsr(M5.IMU.AFS_4G);
  pinMode(BUTTON_A, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(BUTTON_A), handleInterrupt, FALLING);

  //M5.Beep.setBeep(4000, 100); // ビープ音設定(初期値)

  //LCD Rotation settings
  M5.Lcd.setRotation(3);
  M5.Lcd.writecommand(TFT_MADCTL);
  M5.Lcd.writedata(TFT_MAD_MV | TFT_MAD_BGR);

  //Text Settings
  M5.Lcd.setTextDatum(4);
  M5.Lcd.setTextColor(TFT_WHITE,TFT_BLACK);
  M5.Lcd.setTextSize(4);
}

float ax[SAMPLE_SIZE];
float ay[SAMPLE_SIZE];
float az[SAMPLE_SIZE];
float accrms[SAMPLE_SIZE];
float accrmsMax; //記憶用

#define X0 5  // 横軸の描画開始座標
#define Y0 70  // 横軸の描画開始座標

// 水平静止で重力加速度1000mGが常にかかることを考慮する
#define MINacc -1000  // 縦軸の最小値 mG
#define MAXacc 3000  // 縦軸の最大値 mG

void handleInterrupt() {
  isPause = !isPause;
}

void loop() {

  if (!isPause) {
    M5.Lcd.fillScreen(BLACK); // 画面クリア
    //M5.update();    // ボタンの状態更新
    M5.Beep.update(); // tone関数で鳴らした音が指定時間経過していたら止める

    for (int i = 0; i < SAMPLE_SIZE; i++) {
      if (isPause) break;
      
      M5.IMU.getAccelData(&ax[i],&ay[i],&az[i]);  // IMUから加速度を取得
  
      ax[i] *= 1000;  // mGに変換
      ay[i] *= 1000;  // mGに変換
      az[i] *= 1000;  // mGに変換
      accrms[i] = sqrt(ax[i]*ax[i] + ay[i]*ay[i] + az[i]*az[i]);
      
      int y1 = map((int)(accrms[i]), MINacc, MAXacc, M5.Lcd.height(), 0);
      M5.Lcd.drawCircle(i+X0, y1/2+Y0, 1, YELLOW);
      delay(SAMPLE_PERIOD);

      M5.Lcd.drawString("TEST", 80, 40);

      if(accrmsMax < accrms[i]) {
        accrmsMax = accrms[i];
      }
    }
      if (accrmsMax > MAXacc) {
        // マリオ コイン
        M5.Beep.tone( 988, 12);//Si2
        delay(100);
        M5.Beep.tone(1319, 12);//Mi3
        delay(250);
        accrmsMax = 0; //4.8秒ごとに最大値リセット
      }
  }
}

 

 

散歩のおともに ウエアラブルグラスを自作する4 作り方詳細(1)

全体イメージ

・ハーフミラーは東急ハンズにて購入□100mm。

 □35mmに切り出し 視差、視力により変わります

・85cmの大型クリップの両端に両面テープで固定しました

・大型クリップがマグネットが付くものがあれば、光軸調整も容易になるか?

両面テープでそれぞれ固定

工夫は、大型クリップの平らな部分をハの字になるよう、手で変形させました

M5StickcPlusのLCD画面がクリップ側に近づいて表示できます。お好みで。

 

ハーフミラーの取り付けは見やすい目にあわせて、軸をずらす

ハーフミラーの取り付けは斜めにする

 

散歩のおともに ウエアラブルグラスを自作する3 つば付き帽子へ

次のようなものを自作した

自作したウエアラブルグラス


100均一の大型ステンレスクリップにM5StickcPlusとハーフミラーをつけた

これをつば付き帽子に取り付けると、こんな感じに。

つば付き帽子に付けた状態

つば付き帽子に付けた状態 表側

帽子をかぶった状態+コロナマスク 犯罪者ですね

このままでは、次の課題があるのでM5StickcPlus+自前の眼鏡にに機能を組み込み

1.ハーフミラーには鏡像になるので、M5StickcPlusの表示でLCD設定を変更

   arduino環境で、M5StickcPlusをプログラミング

     M5.Lcd.writedata(TFT_MAD_MV | TFT_MAD_BGR);

  にて、虚像を作成

2.ハーフミラーと目が近い

  私はもともと近眼でありメガネをかけている。

  老眼の気でさらに近すぎてピントがあわないため、100均一老眼鏡のレンズを取り付け

3.小さなハーフミラーが視差により片目のみになるように、光軸をオフセット

 

 

1.はこんな感じに映る

 

 

2.100均一老眼鏡のレンズを取り付けは

CanDoにて購入 片目レンズのみ取り外し

左目に老眼レンズを張り付け

参考

大型クリップ ダイソー

ダイソー 85mmの長さがつば付き帽子にピッタリ。マグネットが付くものがあると良い。物色中

 

散歩のおともに ウエアラブルグラスを自作する2 M5Stickc

本格的なウエアラブルグラスやバイクの人たち向けに屋外での利用でいるものが発売されてきているので少し待てばいいのだろうが、すぐには安価にならなさそうだし、散歩にはもっと小型の端末が無いか考えてみる。

スマートグラスのおすすめ11選。近未来のガジェットを先取りしよう

 

LCDついてセンサーついて何か良い電子デバイス無いかなー、と探していると、近くに転がっていたM5StickcPlusが目に入ってきた。

ネットで調べてみると、素晴らしいものを作っている方がいた

www.shumi-tech.online

アクリル部分の湾曲加工、光学軸がずれた際に調整が課題だな、と思いながら一晩考えてみることとした

 

次へ続く

 

 

 

散歩のおともに ウエアラブルグラスを自作する1

すっかりコロナ疲れで病んています。健康のために散歩を習慣化しているですが、視線が厳しく、その散歩するにもマスクするのに疲れが溜まります。暑い時期にもなり熱中症が心配な時期になりましたので、散歩中、日よけの布付きの防止をかぶっています。すっかり顔を隠すので不審者極まりないですね。

どうせ帽子をすっかり被って顔が見えないならと思い、何か散歩中に楽しめないかとウエアラブルグラスでも使えないかと探すも、Googleグラス問題以降、なかなか安価なものが普及していない。それなら自作してみようかということでこの記事を作成ました。

pc.watch.impress.co.jp

 

せっかく携帯電話があるので、マウントするものを物色。

ja.aliexpress.com

さすが、中国色々なものを考える。携帯ベースで物色し、構想するも屋外の明るいところ、逆に夜間の暗いところでは携帯電話の画面の明るさでは、見えなかったり、夕方でも明るさのギャップが強すぎて、視界が眩惑して使えない。

首からスマートフォンをぶら下げて、下方向より携帯電話の画像と、前方の画像をミックスさせるために眼鏡にハーフミラーを着けて(写真はイメージ)検証してみた。

 

が、携帯電話に空が映り込み、十分なミックス画像は得られなかったし、夕方夜間は下から顔を携帯電話の明かりで照らすことになり、これまた恐ろしい。懐中電灯で顔を下から照らして相手を怖がらせるのは世界共通

次へ続く

 

 

新築の家、何を目指すか25 引っ越し、安住の地へ 終

引っ越しして、1ケ月が経った。

引っ越しの前後1週間は、本当に疲れた。50歳を過ぎて体力の衰えを強く感じた。

70箱近い荷物に梱包し、引っ越し屋さんに運んでもらい、開梱し、暮らし始められる状態になるまで1週間かかった。仕事に行きながら、夜、開封して、所定のところに収めて行く。単純な作業だからこそ疲れる。

もっと、整理して荷物を減らしておけばと後悔しながらも、新しい家での生活にワクワクしながら片付けをすすめるのだ。安住の地とするために。 終

 

 

新築の家、何を目指すか24 完成、引き渡しへ

本日、晴天の中、家の引き渡しを受けた。メーカー様にテープカット、シャンパンでお祝いして頂けた。涙がでた。2年3ヶ月、家族に満足とは言えないアパートでよく過ごしてこれた。コロナ禍が重なり、この狭いアパートで家族感染の危機に怯えて暮らしてきた。家族に感謝したい。

家は全館空調で、各場所に横長窓も付けたので、長い間、日差しが入るのも予想通りだ。4m幅の大きな窓も印象的だ。

でも、もっとお金をかけて豪勢に、、、何て、少し後悔もしながら、新しい家族の絆を作って行きたい、生きたい。

 

あ、あ、幸せを噛み締めて、、、。