コンテンツにスキップ

真・ハッカソンの技術選定 [ハードウェア編]

Author: Kazukichi
  • 本来は加速度を計測するセンサだが、地球の重力加速度を用いることによって傾きを捉えることができる
  • 逆三角関数(アークタンジェント)を使って比から角度を求めた
  • 角速度を計測するセンサ
  • センサの誤差を減らすためにキャリブレーション(バイアス補正)が必要
  • 角度は角速度を積分して求められるが、その際にドリフトという誤差が積み重なる現象が起きてしまうため、そのあたりの補正が必要
  • 地磁気は数十μTだが、近くに家電等が存在すると平気に数百μTの誤差が出るため、そのままでは使いものにならない
  • フュージョンライブラリを使って加速度センサやジャイロセンサの値と統合して扱ったり、補正したりすることが重要
  • あまりにも面倒なため、今回は検証していない
  • 赤外線反射式の近接センサ
  • 「近づいたかどうか」を取得するのは得意だが、「どれくらい近いか」を判定するのは苦手
  • 光の強さを取得できるセンサ
  • 意図せずエモい感じの色味になったので活用していきたい
  • 今回は音程ではなく音量を表示してみた
  • データがPCM(Pulse Code Modulation、パルス符号変調)で符号化されたほぼ生の状態で渡されるため、とにかく加工が面倒
  • RMS(Root Mean Square、二乗平均平方根)に変換 -> dBFSに変換 -> EMA(Exponential Moving Average、指数移動平均)を用いた平準化
  • 割とパワーのある音が出せる
  • 音の波を急に切るとクリックノイズが入ってしまうので、綺麗に鳴らしたいなら、そのあたりを滑らかにする制御が必要
  • C++でリッチなUIを作ろうと思うと大変だと思うが、タッチを検知して何かを表示する程度の制御なら割と楽に行える
  • Real-Time Clock
  • 時計みたいなもの
  • 外部センサはM5StackのPort.Aを使用し、I2Cで通信するケースが大半
  • センサ毎にI2Cアドレスが異なり、このアドレスの手違いで動作しないトラブルが頻発したため、接続されているI2Cアドレスを一覧化できるスクリプトを作成
  • ちなみにSDA(データの送受信)にはGPIO2、SCL(クロック信号)にはGPIO1を使用するのが一般的
  • Paで取得されるのでhPaへの変換が必要
  • ToF(Time of Flight、飛行時間方式)の測距センサ
  • 近接センサと比べ、ミリ単位で比較的精度高く距離を測定できる
  • TMOS PIR = Thermal Metal-Oxide-Semiconductor Passive Infrared
  • トランジスタのMOS構造を用いて、赤外線で熱を探知するセンサ
  • 近接センサや測距センサとは異なり熱を持っているかに焦点が当てられる
  • Presence(存在)、Motion(動き)、Temperature(温度)等が取得できる
  • Presenceはセンサ独自仕様の値が返されるため、閾値をどこに設けるかは悩みどころ
  • Motionはヒステリシスかつデバウンスのため、検知してから戻るまでにラグがある印象
  • TemperatureはΔT、すなわち対象と背景の相対的な温度差が返されるため注意
  • TVOC(Total Volatile Organic Compounds、総揮発性有機化合物)を測定できるセンサ
  • 平たく言うと、空気中の有機ガス類の総量を測定できる
  • ペンキ、接着剤、建材、タバコ、香水 etc …
  • ウォームアップに20秒弱かかる点に注意が必要(しばらく測定値が0が続く)
  • eCO2(equivalent CO2)
  • TVOCから推定されたCO2濃度
  • CO2を直接計測しているわけではないので精度は落ちる
  • 色を取得できるセンサ
  • サーボモータはM5Stackに直接、接続するということはせず、サーボモータドライバ経由で接続する
  • 今回検証したのは最大、8つまでサーボモータが接続可能なドライバ
  • 外部からの給電が必要になるため、 モバブ -> Type-Cのブレークアウト -> ターミナルブロック -> サーボモータドライバ という経路で給電している
  • 外部電源不要なので甘く見ていたが、予想以上にパワフルで羽根が指に当たってちょっと怪我した
  • DCモーター(N20)に羽根がついているだけのシンプルな作り
  • シンプルなアクチュエータ全般だが、Port.Bに接続し、GPIOで制御することに注意
  • 外部電源不要なので甘く見ていたが、予想以上にパワフル
  • DCモーター(N20)の先端に振動子がついているだけのシンプルな作り
  • 水をA地点からB地点に移動させられ、ビジュアル的に新鮮
  • 外部電源不要なので甘く見ていたが、予想以上にパワフル
  • 土壌湿度センサもバンドルされているが、こちらは検証していない
  • 購入していた分のセンサ、アクチュエータは一通り検証できた
  • m5-docs Products を眺めつつ、面白いものが他にないか探すつもりではいる
  • Bluetooth接続、Wi-Fi接続、HTTP通信、SDカードへのアクセス等を検証していく予定
  • Port.A、Port.Bの拡張周りを考える