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

Bluetooth対応 スマートバスケットボールスコアボード ─ センサーでシュートを自動判定

概要

赤外線近接センサーと振動センサーをバスケットゴールに取り付け、シュート・得点・ミスを自動検出するスコアボードシステムです。Arduino NanoとHC-05 BluetoothモジュールでAndroidアプリ(MIT App Inventor製)と連携し、リアルタイムで統計を表示・記録します。温湿度センサー(DHT22)も搭載し、環境データも取得可能。

システム構成

ハードウェア(Ver 2.0.0)

ソフトウェア

判定ロジック

  1. 近接センサー検知 → 即座に「得点」確定
  2. 振動センサー検知 → 2秒間待機
  3. 待機中に近接センサー検知 → 「得点」
  4. 2秒経過しても近接検知なし → 「ミス」
  5. 結果をBluetoothでアプリへ送信

この順序により、誤検知を最小化しつつリアルタイム判定を実現。

Androidアプリ機能(横画面対応)

取り付け手順

  1. ゴール下のプラスチックカバーを外し、近接センサー用の穴を開ける
  2. バックボード裏に振動センサー用の小穴を開け、MDF製ブラケットで固定
  3. センサーをボルト・ナットで確実に固定
  4. 配線し、動作テスト(スモークテスト)
  5. 全ユニットをゴールに取り付け完了

コードのポイント(Arduino側 Ver 2.0.0)

// 主な改良点
// - HC-05対応(SoftwareSerial使用)
// - DHT22対応(10秒ごとに送信)
// - 判定ロジック改善、LED信号強化

#include 
#include 

SoftwareSerial BT(10, 11); // RX, TX
DHT dht(7, DHT22);

const int proxPin = 2, vibrPin = 3;
const int ledR = 4, ledG = 5, ledB = 6;
const unsigned long WAIT_MS = 2000;

bool prox = false, vibr = false, waiting = false;
unsigned long waitTime;

void setup() {
  pinMode(proxPin, INPUT);
  pinMode(vibrPin, INPUT);
  pinMode(ledR, OUTPUT); pinMode(ledG, OUTPUT); pinMode(ledB, OUTPUT);
  setLED(5, 100); // マゼンタ:起動中
  
  Serial.begin(9600);
  BT.begin(9600);
  dht.begin();
  setLED(4, 100); // 青:待機完了
}

void loop() {
  checkProx();
  checkVibr();
  checkWait();
  checkDHT();
}

void checkProx() {
  if (!prox && digitalRead(proxPin) == LOW) {
    prox = true;
    setLED(0, 100); // 緑
    sendData(2);    // 得点
    if (!vibr) { waiting = true; waitTime = millis() + WAIT_MS; }
  }
}

void checkVibr() {
  if (!prox && !vibr && digitalRead(vibrPin) == HIGH) {
    vibr = true;
    waiting = true;
    waitTime = millis() + WAIT_MS;
    setLED(1, 100); // 黄
  }
}

void checkWait() {
  if (waiting && millis() > waitTime) {
    if (!prox) { setLED(2, 100); sendData(1); } // 赤:ミス
    resetState();
  }
}

void checkDHT() {
  if (!prox && !vibr && millis() > dhtTime) {
    float h = dht.readHumidity();
    float t = dht.readTemperature();
    float hi = dht.computeHeatIndex(t, h, false);
    sendEnv(h, t, hi);
    dhtTime = millis() + 10000;
  }
}

void sendData(int shot) { // 0=環境, 1=ミス, 2=得点
  BT.print(humi); BT.print(temp); BT.print(heat); BT.print(shot);
}

実績・評価

今後の拡張案

製造プロセス

  1. バスケットボール:ネイスミスの1891年発明から現代製造技術まで
  2. Raspberry Pi、MCP9808、InfluxDB、Grafanaで作る家庭温度モニター
  3. スマートゴミ箱:自動廃棄物管理のためのセルラーIoTソリューション
  4. スマートバーテンダー:Raspberry Pi駆動の自作カクテルステーション
  5. エモーションセンサー&EEG:リアルタイム感情検知のための低コストハードウェア
  6. センサ生産に革命:Sensata がスマートメカトロニクスを活用
  7. TE Connectivity 8911:高度な振動監視向け統合LoRaWANワイヤレス加速度センサ
  8. オープンソース・スマートファーミングシステムの構築──手頃で相互運用可能なIoTで農家をエンパワー
  9. ECM3532:Eta Compute初の統合超低消費電力AIセンサーボード、エッジ開発を加速
  10. スマートテキスタイル向け超高感度・高耐久ひずみセンサーを開発
  11. 革新的超薄型センサーがスマートコンタクトレンズ機能を強化
部品用途
Arduino Nano R3メイン制御
HC-05 Bluetoothモジュールスマホと通信
E18-D80NK 赤外線近接センサーボール通過検出(得点判定)
SW-420 振動センサーシュート衝撃検出
DHT22 温湿度センサー環境モニタリング
8mm RGB LED状態表示(緑=得点、黄=判定中、赤=ミス、青=待機)
9V電池電源