

市販の定規より自作の超音波距離計のほうが、収納計測の精度が3倍以上高いケースがあります。
収納情報
超音波距離計を自作するとき、最初に気になるのが「何を揃えればいいか」という点です。結論から言うと、核心となるパーツはたった3点です。
まず必要なのがマイコンボードです。入門用として最もポピュラーなのが「Arduino Uno」で、国内通販では1,500〜2,500円前後で購入できます。互換品であれば500円台から入手できるものもあり、初めての自作なら互換品から試すのも賢い選択です。
次に欠かせないのが超音波センサーモジュール「HC-SR04」です。このセンサーは送信側と受信側の2つの超音波素子を持ち、音波が物体に反射して戻ってくるまでの時間を計測します。Amazonや秋月電子通商では200〜400円程度で入手可能です。収納の奥行き計測に使う場合、計測可能範囲は約2cm〜400cmと非常に広く、クローゼットからウォークインまで対応できます。
最後にブレッドボードとジャンパーワイヤーがあれば基本構成は完成します。はんだ付けが不要なため、DIY初心者でも安心して始められます。
費用をまとめると以下の通りです。
| パーツ名 | 目安価格 | 備考 |
|---|---|---|
| Arduino Uno(互換品) | 500〜2,500円 | 初心者は互換品でも可 |
| HC-SR04センサー | 200〜400円 | 秋月・Amazon等で入手 |
| ブレッドボード | 200〜400円 | 400穴タイプが使いやすい |
| ジャンパーワイヤー | 100〜300円 | オス〜メス10本以上推奨 |
| USBケーブル(Type-B) | 0〜500円 | 手持ちがあれば流用可 |
合計は安く揃えれば1,000〜3,000円前後に収まります。これは市販のデジタル距離計(5,000〜15,000円台)と比べると圧倒的なコストパフォーマンスです。
つまり市販品の5分の1以下の予算で作れます。
収納インテリアを整えるために大型家具の購入を検討している場合、設置前に正確な寸法を把握することは特に重要です。自作の超音波距離計であれば、手が届きにくい棚の奥や天袋の内寸も手軽に計測できます。
パーツが揃ったら、次は配線です。HC-SR04センサーにはピンが4本あります。
各ピンの役割は明確に決まっています。
- VCC:電源(5V)→ ArduinoのVCCピンに接続
- GND:グランド(0V)→ ArduinoのGNDピンに接続
- Trig:超音波の発信トリガー → Arduinoのデジタルピン9番に接続
- Echo:反射波の受信信号 → Arduinoのデジタルピン10番に接続
ブレッドボードを使う場合は、センサーを基板の端に差し込み、ジャンパーワイヤーで上記の対応ピンへつなぐだけです。配線の複雑さはほぼゼロです。
注意点が1つあります。EchoピンはArduinoの5V系入力を超えないようにする必要があります。HC-SR04のEcho出力は5V信号なので、Arduino Unoとの組み合わせではそのまま接続しても問題ありません。ただし、3.3V系のボード(Raspberry PiやESP32など)を使う場合は、分圧抵抗(例:1kΩと2kΩの組み合わせ)を挟む必要があります。3.3V系ボードを使う方は要注意です。
配線が完了したらUSBケーブルでパソコンと接続します。この段階ではまだプログラムを書き込んでいないため、センサーは動作しません。次のセクションで紹介するスケッチを書き込んではじめて動作確認ができます。
配線は5分もあれば完了します。
初めて配線する方には、ArduinoとHC-SR04のセットで販売されているスターターキット(2,000〜4,000円台)も選択肢になります。配線図がセットに同梱されているため、迷わず進められます。
秋月電子通商 – HC-SR04超音波距離センサー製品ページ(仕様・データシート確認に有用)
配線が済んだら、Arduino IDEを使ってスケッチ(プログラム)を書き込みます。Arduino IDEは公式サイトから無料でダウンロードできます。
基本スケッチは以下の通りです。
```cpp
const int trigPin = 9;
const int echoPin = 10;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// トリガーを10マイクロ秒HIGH
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// エコーの時間を計測
long duration = pulseIn(echoPin, HIGH);
// 距離を計算(音速340m/s、往復なので÷2)
float distance = duration * 0.034 / 2;
Serial.print("距離: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
```
これが基本の計算式です。
$$\text{距離(cm)} = \text{エコー時間(μs)} \times 0.034 \div 2$$
音速は気温によって変わります。気温20℃のとき約343m/s、0℃では約331m/sです。精度を上げたい場合は、温度センサー(DHT11など、200円前後)を追加して音速を補正するスケッチに改良することをおすすめします。
$$\text{音速(m/s)} = 331.5 + 0.6 \times \text{気温(℃)}$$
補正を加えると測定誤差が約±1〜2mmレベルまで改善されます。収納家具の内寸をミリ単位で把握したいなら、この補正は価値があります。
また、複数回計測して平均を取る「移動平均処理」を加えると、壁や棚板の反射ノイズによる数値のブレが減ります。5回計測して最大値・最小値を除外した3回分の平均を使う方法が現場でよく使われます。精度が段違いに上がります。
シリアルモニタで確認するだけでなく、液晶ディスプレイ(LCD1602、300〜600円程度)を接続すれば、スタンドアロンで使える本格的な距離計として完成します。
Arduino公式サイト – Arduino IDE無料ダウンロードページ(スケッチ作成・書き込み環境の準備に必須)
自作した超音波距離計を収納計測に活かすには、いくつか押さえておくべきコツがあります。
まず大前提として、超音波センサーは測定対象が平面で垂直に近い角度のときに最も精度が高くなります。棚板や壁面は平らなので、収納計測との相性は非常によいです。
一方で、布やぬいぐるみのような柔らかく不規則な形状の物体は超音波を吸収・拡散してしまうため、数値が安定しにくい場合があります。計測対象の素材に注意が必要です。収納の内壁や棚板に向けて計測する分には問題ありません。
実際の使い方として、たとえばクローゼットの奥行きを計測する場合は以下の流れが効率的です。
- 📏 センサーをクローゼットの開口部に固定(テープや洗濯バサミで仮固定でもOK)
- 📱 シリアルモニタまたはLCDで表示された数値を確認
- 📝 計測した数値をメモアプリや収納管理アプリに記録
ウォークインクローゼットや納戸の計測では、奥行き150cm以上の場所でも誤差5mm以内で計測できるケースが多く報告されています。これはメジャーで一人で計測する場合の誤差(目測・テープのたわみ等で±1〜2cm)より格段に正確です。
また、棚の「有効高さ」(棚板と棚板の間の内寸)を素早く計測するのにも自作距離計は活躍します。市販の家具をネットで購入する際、「高さ28cmの収納ボックスが入るか」という確認作業が30秒以内に完了します。これは使えそうです。
収納計測の記録管理には、スマートフォンの「EvernoteやNotionの収納記録テンプレート」と組み合わせると、後からの家具選びが格段にスムーズになります。計測した数値を部屋別・棚別に整理しておくことで、家具購入時のサイズ失敗を防げます。
自作した超音波距離計は万能ではありません。使う場面によっては誤差が生じやすいことを知っておくと、計測ミスを防げます。
まず測定距離が2cm未満の近距離は不感帯となり、正確な値が出ません。HC-SR04の公称最小計測距離は2cmです。棚の仕切り板の厚みを直接測るような用途には向きません。最小距離は2cmが条件です。
次に角度のある計測も誤差の原因になります。センサーの正面から見て±15度以上傾いた対象物では、反射波がセンサーに戻らず「距離不明」や極端に大きな数値が表示されることがあります。センサーを正面に向けて固定する工夫が重要です。
また、気温差が激しい場所(屋外に面した物置・車庫など)では、前述の音速補正がより重要になります。気温10℃変わると音速が約6m/s変化し、400cm先の計測では最大約7mmの誤差につながります。7mmの誤差は棚の内寸確認には痛いところです。
複数枚の棚板が並ぶ環境では、隣接する棚板からの多重反射が計測値に混入することがあります。この場合、測定回数を増やして中央値を取る処理や、計測間隔を長めに設定する(delay値を1000ms程度に増加)ことで安定します。
これらの特性を理解した上で使えば、収納計測ツールとして非常に実用的なデバイスになります。誤差の原因を知っていれば対処できます。
計測精度をさらに高めたい場合、HC-SR04より上位グレードの「JSN-SR04T」(防水タイプ、800〜1,500円程度)や「VL53L0X」(ToF光センサー、600〜1,200円程度)への乗り換えも視野に入ります。VL53L0Xはレーザー光を使うため、布や柔らかい素材への計測精度が超音波式より優れています。
Arduino公式ドキュメント – HC-SR04ライブラリリファレンス(計測コードの参考・pulseIn関数の仕様確認に有用)
ここからは少しユニークな応用例を紹介します。自作した超音波距離計を単なる計測ツールとして使うのではなく、棚の「残量モニター」として活用するアイデアです。
仕組みはシンプルです。棚の奥に超音波センサーを固定し、手前に積まれた荷物との距離を常時計測します。棚の奥行きから計測距離を引いた値が「使用済みスペース」になります。
$$\text{使用済みスペース(cm)} = \text{棚の奥行き(cm)} - \text{センサー計測距離(cm)}$$
これをLEDで視覚化すれば、棚に近づかなくても「今どれだけ埋まっているか」が一目でわかる収納モニターになります。たとえば残量80%以上なら緑、50〜80%なら黄、50%以下なら赤のLEDを点灯させる設定にするだけです。
この仕組みを押し入れや食品庫に応用すると、「奥に何が入っているか忘れて同じものを買ってしまう」という収納あるあるを防ぐことができます。実際にこうした「スマート収納棚」をDIYしている事例はArduinoコミュニティのフォーラムにも多数投稿されています。
さらに応用すると、Bluetooth通信モジュール(HC-05、400〜700円程度)を追加してスマートフォンへデータ送信する構成にもできます。スマホのシリアル通信アプリで数値を確認できれば、クローゼットの前まで行かなくても「今日の空きスペース」を把握できます。これはかなり使えそうです。
Wi-Fiモジュール搭載のArduino互換ボード「ESP32」(800〜1,500円程度)を使えば、LINEやSlackへの通知連携も技術的に可能です。「押し入れの空きが20cm以下になったら通知」という設定にすれば、収納の過充填を未然に防げます。
一般的な「物を収納する」という行動から、「収納状態を計測・管理する」というスマート化への発想の転換です。この発想こそが自作距離計の最大の価値です。
自作ならではの「自分の収納環境に完全特化したデバイス」が作れる点が、市販品にはない最大の強みです。市販のスマートホームデバイスでは対応しにくい細かな棚寸法や収納配置にも、自作であれば柔軟に対応できます。
Arduino Get Started – 超音波センサーのチュートリアル(配線図・スケッチの詳細解説、英語だが図解が豊富で理解しやすい)