工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino HC-SR04 超音波レーダー:サーボ+Processingでリアルタイム可視化

必要な部品と材料

Arduino UNO ×1
超音波距離センサ HC-SR04 ×1
サーボモータ(SG90等、標準サイズ) ×1
ブレッドボード & ジャンパーワイヤー 適宜

プロジェクト概要

HC-SR04超音波センサをサーボモータで水平にスキャンさせ、距離データをシリアル通信でPCへ送信。PC側でProcessingを用いてレーダー画面風にリアルタイム描画するプロジェクトです。往年のレーダースコープのようなビジュアルで、周囲の障害物分布を直感的に把握できます。

システム構成

Arduinoコード(送信側)

NewPingライブラリとServoライブラリを使用。NewPingはパルス幅測定をラップし、簡潔に距離(cm)を取得できます。

/* HC-SR04 Radar Screen Visualisation
   Sends angle,distance via Serial for Processing */
#include <NewPing.h>
#include <Servo.h>

#define TRIGGER_PIN  2
#define ECHO_PIN     3
#define MAX_DISTANCE 150   // 最大測定距離 cm
#define SERVO_PWM_PIN 9
#define ANGLE_BOUNDS 80    // ±80°
#define ANGLE_STEP   1     // 1°刻み

int angle = 0;
int dir = 1; // 1:正方向, -1:逆方向
Servo myservo;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(9600);
  myservo.attach(SERVO_PWM_PIN);
}

void loop() {
  delay(50); // サーボ安定待ち
  // サーボ角度指令(0〜180°に正規化)
  myservo.write(angle + ANGLE_BOUNDS);
  // 距離測定 & シリアル送信
  getDistanceAndSend2Serial(angle);

  // 角度更新・反転判定
  if (angle >= ANGLE_BOUNDS || angle <= -ANGLE_BOUNDS) dir = -dir;
  angle += dir * ANGLE_STEP;
}

int getDistanceAndSend2Serial(int angle) {
  int cm = sonar.ping_cm(); // cm単位で距離取得(0=範囲外/エラー)
  Serial.print(angle, DEC);
  Serial.print(",");
  Serial.println(cm, DEC);
}

Processingコード(受信・描画側)

GitHubリポジトリに完全なコードがあります(リンク)。主な処理は以下の通り。

配線図

拡張アイデア

まとめ

超音波センサとサーボ、PCの組み合わせで手軽に「レーダー」を体験できる好例です。Arduino側はセンサ驱動とデータ送信に専念し、重い描画処理はPCのProcessingに任せるという役割分担が明確で、拡張性も高い構成です。ロボットの環境認識や、駐車支援シミュレーションの教材としても活用できます。

製造プロセス

  1. Bluetooth操作のArduinoスパイボットを自作する
  2. FlickMote:ジェスチャー操作のIRリモコンでスマートホームを制御
  3. 自作Arduino TV-B-Gone:全テレビ対応の万能リモコン
  4. 12メートル先から見える大型LEDマスタークロック(アラーム機能付き)を自作しよう
  5. ArduinoとBluetoothで作るスマート紛失防止タグ「Find Me」
  6. Arduinoプロジェクトのための最適化電源ソリューション
  7. Arduino三目並べ:MAX7219 LEDマトリクスと段ボールケースで自作
  8. スマートArduino四足歩行ロボットの製作:ステップバイステップガイド
  9. Arduino超音波センサーとProcessingで作るリアルタイム距離測定ソナー
  10. ゲーム用カスタムArduinoジョイスティックハンドルの製作
  11. Arduino NanoとMPU6050で加速度から傾斜角を算出 - Visuino活用チュートリアル