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

Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム

必要な部品と材料

部品数量備考
Arduino Nano R31
ジャイロセンサー GY-521 (MPU-6050)1I2C接続
7セグメントディスプレイ 8桁 (MAX7219搭載、SPI)1
タクトスイッチ1深度記憶ボタン
電源スイッチ1
電源:単3/単4電池ボックスまたはモバイルバッテリー1式単3×6本推奨
3Dプリントケース1STLファイル同梱
ネオジム磁石1本体固定用

必要な工具

使用するアプリとオンラインサービス

プロジェクト概要

ベンチドリルの深度調整は、本体側面のハンドル(約270°回転)と目盛りで行うのが一般的ですが、加齢や照明不足でミリ単位の読み取りが困難になります。本プロジェクトでは、ハンドル軸にジャイロセンサー(加速度計)を取り付け、回転角度からドリル深度を演算、大型7セグメントLEDに表示する装置を自作しました。

測定方式の検討

コンセプト

  1. ドリル先端で表面に傷をつけ(ゼロ点)
  2. ボタンを押して現在位置を「ストップ位置(目標深度)」として記憶
  3. ドリル送りながら現在深度を表示、ストップ位置到達で「StOP」警告表示
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム

センサー取り付けブラケット

ドリルのハンドル軸はSW17(17mm二面幅)の六角ナット。3Dプリントでセンサーホルダー兼六角ソケットを作成、軸にはめ込むだけで固定。

Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム

配線

GY-521 (MPU-6050) - I2C接続

7セグメントモジュール (MAX7219) - SPI接続

ボタン

電源

単3電池6本直列(9V)を電源スイッチ経由で全系に供給。

ケース設計

Autodesk Fusion 360で設計、Anycubic i3 Megaで造形。ネオジム磁石を埋め込み、ドリル本体(金属筐体)にワンタッチ脱着可能。邪魔な時は即座に取り外せます。

Arduinoスケッチのポイント

ライブラリ

MPU-6050初期化の重要ポイント


// MPU-6050起動
Wire.begin();
Wire.beginTransmission(0x68);
Wire.write(0x6B); Wire.write(0x00); // スリープ解除
Wire.endTransmission(true);

// ★この待機が最重要!USB接続時は不要だが、外部電源起動時はこれがないとセンサーが応答しない
delay(1000); 

// 加速度計レンジ設定 ±8g
Wire.beginTransmission(0x68);
Wire.write(0x1C); // ACCEL_CONFIG
Wire.write(0x10); // 00010000 = ±8g
Wire.endTransmission(true);

外部電源起動時、センサーがデータを返さない問題 に数日悩まされました。delay(1000) 追加で解決。この1行がプロジェクト最大の山場でした。

オフセット補正

セットアップ時に100回サンプリングし、静止時の誤差平均をオフセットとして保存。

角度算出と360°化

加速度センサーのX軸角度:


AccAngleX = atan(AccY / sqrt(AccX^2 + AccZ^2)) * RAD_TO_DEG;
// 平滑化(相補フィルタ的)
TotalAngleX = 0.5 * TotalAngleX + 0.5 * AccAngleX;

センサー出力は -90°〜+90° なので、Z軸・Y軸の符号から象限を判定し 0°〜360° に変換:


delta = 0;
if (AccZ < 0) delta = 180.0 - TotalAngleX * 2.0;
if (AccZ > 0 && AccY < 0) delta = 360.0;
DrillingMachineAngle = TotalAngleX + delta;
if (DrillingMachineAngle > 350) DrillingMachineAngle = 0; // 0°付近の揺らぎ対策

深度換算

実測:ハンドル最大回転角 316° = 最大深度 50mm


currentPos = 50.0 / 316.0 * DrillingMachineAngle; // mm

表示ロジック

組み立てとテスト

Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム
Arduino Nanoとジャイロセンサーで実現する精密ドリル深度表示システム

初回テスト時、センサー水平取り付け後、ホルダー回転機構で表示が「0.0」になるよう微調整。実使用では反応速度・精度ともに満足のいく結果。大型LEDで老眼鏡なしでも読み取り可能。

Paul Akers氏の「2 Second Lean」の言葉通り:「不便を感じたら、考えて作れ」。楽しい工作になりました!

参考リンク

コードとCADデータ

製造プロセス

  1. センサーデータをRaspberry Piに統合:実践ガイド
  2. Raspberry Piでライントラッキングセンサー – シンプルなKY-033ドア/ライン検出器
  3. GY-91モジュールでRaspberry Pi上に堅牢な温度・センサーAPIを構築
  4. Raspberry Piと湿度センサーで作る自動エアロポニックスシステム
  5. Raspberry Pi GPIOマスター:PIRモーションセンサーをB+/Model 2でインターフェース
  6. Acconeer A111パルスレーダーをRaspberry Piと統合:実践ガイド
  7. HC-SR501 PIRモーションセンサーをRaspberry Piで接続・調整・プログラミングする方法
  8. Python/MicroPythonセンサーロガー:センサーデータをGoogleスプレッドシートにシームレス保存
  9. Arduino Portenta H7にMAX6675でサーモカップル温度センサーを接続する
  10. アナログセンサー搭載・高精度圧力&気流測定デバイス
  11. K30 CO2センサで室内空気質をリアルタイム監視する