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

ワイヤレスArduinoプログラミングシールド – HC-05 BluetoothでUSBケーブル不要に

必要な部品と材料

HC-05 Bluetoothモジュール (6ピン、キーピン/ENピン付き) × 1
Arduino UNO × 1 (ターゲットボード)
抵抗 1kΩ × 1 (電圧分割用)
抵抗 2.2kΩ × 1 (電圧分割用)
コンデンサ 100nF (0.1μF) × 1 (リセットライン用)
ユニバーサル基板、ピンヘッダー/ソケット、配線材 × 1式

開発環境

プロジェクト概要

Arduinoへのスケッチ書き込みに毎回USBケーブルを繋ぐ手間を解消する、HC-05 Bluetoothモジュールを使ったワイヤレスプログラミングシールドの製作記事です。HC-05をATコマンドで設定変更し、Arduinoのリセット信号をBluetooth経由で制御できるようにすることで、PCから無線でスケッチアップロードが可能になります。

仕組み

  1. HC-05設定変更 (ATコマンドモード): ボーレート 115200bps、スレーブ役割、極性設定等を変更
  2. リセット制御回路: HC-05のPIO9 (ピン32) から Arduino RESETピンへ、電圧分割 (3.3V→5V系対応) + 100nFコンデンサでDTR相当のパルス生成
  3. シールド化: ユニバーサル基板に実装し、Arduino UNOにスタック可能な形状に

手順1: HC-05をATコマンドモードに入れる

HC-05のキーボタンを押しながらVCC通電、またはキーピン(EN/KEY)を3.3Vに接続してからVCC通電。LEDが2秒間隔でゆっくり点滅すればATモード。

手順2: ATコマンドで設定変更 (Arduino経由でシリアル中継)


#include <SoftwareSerial.h>
SoftwareSerial BTSerial(10, 11); // RX, TX (HC-05接続ピン)

void setup() {
  pinMode(9, OUTPUT);
  digitalWrite(9, HIGH); // HC-05 KEYピンをHIGHにしてATモード維持
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  BTSerial.begin(38400); // HC-05デフォルトATモードボーレート
}

void loop() {
  if (BTSerial.available()) Serial.write(BTSerial.read());
  if (Serial.available()) BTSerial.write(Serial.read());
}

シリアルモニター (9600bps、改行CR+LF) で以下を順次送信:

コマンド意味応答例
AT+ORGL工場出荷設定にリセットOK
AT+NAME=BLUE_Pデバイス名設定 (任意)OK
AT+ROLE=0スレーブモードOK
AT+POLAR=1,0LED極性: 接続時高速点滅OK
AT+UART=115200,0,0ボーレート115200、データ8bit、パリティなし、ストップ1bitOK
AT+INITSPPプロファイル初期化OK

手順3: 書き込み用配線に変更 (シールド実装)

ArduinoHC-05備考
TX (D1)RXレベルシフト不要 (3.3V許容)
RX (D0)TX
RESETPIO9 (ピン32)電圧分割: HC-05側 1kΩ/2.2kΩ → Arduino RESET
5VVCC
GNDGND

リセット回路のポイント: Arduino UNO (ATmega328P) はRESETピンにLowパルスでリセット。HC-05のPIO9は3.3V出力なので、5V系ArduinoのRESETを確実にLowに引き下げるため、PIO9 → 1kΩ → RESETピン → 2.2kΩ → GND の分圧回路 + RESET-GND間に100nFコンデンサでパルス整形。

手順4: PCとHC-05をペアリング

  1. Windows「Bluetoothとその他のデバイス」→「BLUE_P」選択 → PIN「1234」
  2. 「Bluetoothの詳細設定」→「COMポート」タブで 送信 (Outgoing) 側のCOMポート番号 を確認 (例: COM6)
  3. ペアリング後、HC-05 LEDが1秒間隔点滅 (接続済み状態)

手順5: Arduino IDEでワイヤレス書き込み

  1. Arduino IDE → ツール → シリアルポート → 手順4で確認した 送信側COMポート を選択
  2. ボード: Arduino UNO 選択
  3. スケッチ例「Blink」等を開き、書き込みボタン
  4. 成功すればLED点滅開始!

トラブルシューティング

症状原因・対策
「同期エラー (sync error)」ボーレート不一致。HC-05とIDEのボーレート両方115200か確認。リセットパルス幅不足 → コンデンサ容量調整 (47nF〜220nF)
ATコマンドで「ERROR」配線確認、キーピンがHIGHか確認、ボーレート38400で開始か確認
ペアリングできないHC-05がATモードのまま (LEDゆっくり点滅) → 再起動で通常モードに
書き込み途中で失敗Bluetooth通信不安定 → 距離を近づける、金属障害物避ける、電源安定化

応用・拡張

回路図

プロジェクトページの Schematics を参照 (ユニバーサル基板レイアウト含む)

参考動画・リンク

製造プロセス

  1. Bridge Shield でスマートロボットを構築:Raspberry Pi と Arduino の統合
  2. Arduinoで作るモニター用Ambilightシステム:没入感アップの自作ガイド
  3. Web制御DMX照明システム:Arduino Megaマスターコントローラー
  4. ArduinoとInfineon 3D磁気センサーで作る無線磁気データ転送
  5. Bluetooth操作のArduinoスパイボットを自作する
  6. Arduinoとスマホで作るスマート電圧計 – 簡単DIYプロジェクト
  7. ArduinoとMAX30100で作るリアルタイムIoT心拍数モニター
  8. Android加速度センサーで操作するラジコン車両:Raspberry Pi・Arduino・モーターシールド連携
  9. Arduino UNO WiFi Webサーバー:ブラウザからLEDをON/OFF制御
  10. USB-MIDI機器をBluetooth LEでiOSに無線接続 ─ Arduinoベースの3つのアダプター設計
  11. スマートワイヤレス照明スイッチコントローラー:Arduinoで物理スイッチを遠隔操作