Wi-Servo:WebブラウザからWi-Fi経由でサーボモーターを制御
必要な部品と材料
| 部品 | 数量 |
|---|---|
| Arduino UNO | 1 |
| ESP8266 ESP-01 モジュール | 1 |
| Arduino プロトシールド(またはブレッドボード) | 1 |
| SG90 マイクロサーボモーター | 2 |
| ジャンパーワイヤー | 1式 |
| 抵抗 10kΩ | 3 |
使用アプリ・サービス
- Arduino IDE
プロジェクト概要
通常のインターネットブラウザ(Firefoxなど)を使って、Wi-Fiネットワーク経由でサーボモーターをリモート制御するシステムです。おもちゃ、ロボット、ドローン、カメラのパン/チルト制御など、様々な用途に応用できます。
サーボモーターはArduino Unoに接続し、ESP8266モジュール経由でWi-Fiネットワークに接続します。制御インターフェースはHTMLとjQueryで作成されています。Miguel氏のチュートリアル(ESP8266 Arduino LED Control from Webpage)を参考にしています。
この技術は筆者のプロジェクト「Robô da Alegria(ジョイロボット)」でも使用されています。詳細は以下を参照:
製作手順
ステップ1:電子部品の準備



必要な部品:
- Arduino Uno
- ESP8266
- プロトシールド(コンパクトにする場合)またはブレッドボード
- 10kΩ抵抗 ×3
- ジャンパーワイヤー
- SG90サーボモーター ×2
- コンパイラ/アップロード用PC
SG90サーボのデータシート:SG90Servo.pdf
特別な工具は不要です。すべての部品はオンラインで入手可能。電源はUSBポート(PCやスマホ充電器)から供給しますが、外部DC電源やバッテリーをArduinoの電源ジャックに接続することも可能です。
ステップ2:組み立て


回路図に従ってすべての部品を接続します。ESP8266モジュールとサーボモーターの接続にはジャンパーワイヤーを使用します。プロトシールド、ブレッドボード、または自作シールドのいずれかで組み立て可能です。USBケーブルをArduino Unoに接続して次へ進みます。
ステップ3:Arduinoコード
最新のArduino IDEをインストールします。サーボ制御にはServo.hライブラリを使用。コード書き込み時にWi-FiモジュールとUSBポートが競合しないよう、SoftwareSerialライブラリを使用しています。ESP8266のボーレートを確認し、コード内で正しく設定してください。
一部のサーボは角度0°や180°付近でジッター(微振動)や異音を発生することがあります。これを防ぐため、Arduinoコード側と制御インターフェース側の両方で角度を10°〜170°の範囲に制限しています。
残念ながらServo.hとSoftwareSerial.hはマイコンの同じタイマーを使用するため、ArduinoがESP8266と通信するたびにサーボがジッターする可能性があります。対策として、コマンド実行後にdetach()でサーボを切り離す方式を採用しています。あるいはESP8266をハードウェアシリアルピン(0,1番)に接続する方法もありますが、その場合はコード書き込み前にモジュールを外す必要があります。
Arduinoコード(wi-servo.ino)をダウンロードし、XXXXXをWi-FiルーターのSSID、YYYYYをパスワードに置き換えてから書き込みます。
FASLU1KIR9EDSUP.ino
ステップ4:制御インターフェース

サーボモーター制御用のHTMLインターフェースを作成しました。この例では2つのサーボを使用していますが、Arduino Unoにはさらに追加可能です(最大4個まで動作確認済み)。
テキストボックスにESPモジュールのIPアドレスを入力する形式です。Wi-servo.htmlとjquery.jsをダウンロードし、同じフォルダに保存してください。
FH67KRAIQSAB934.zip
ステップ5:使用方法



- Arduinoを再起動すると、自動的にWi-Fiネットワークに接続を試みます。シリアルモニターで接続成功を確認し、ルーターから割り当てられたESP8266のIPアドレスをメモします。
- HTMLファイルをブラウザ(Firefox推奨)で開きます。
- テキストボックスにESP8266のIPアドレスを入力すると、スライダーで各サーボの角度を指定できるようになります。マウスボタンを離すと自動的にリクエストが送信され、サーボが動作します。
コードリポジトリ
GitHub: https://github.com/ferauche/RoboAlegria
回路図

製造プロセス
- Bluetooth 制御 Raspberry Pi ロボットに音声フィードバックを追加して構築
- Arduino UNO WiFi Webサーバー:ブラウザからLEDをON/OFF制御
- 古いラジコンカーをXboxコントローラーで操作可能に - ArduinoとUSBホストシールドで実現
- Arduino UNOで作るシンプル電卓 - シリアルモニターで四則演算
- Arduinoベースのヌンチャク操作6自由度ロボットアームキット
- Arduino Nanoで音声制御ロボットを自作
- Arduino UNOとATtiny85で作る携帯型POV(残像)ディスプレイ
- PiBot:Arduino駆動の精密ピアノ演奏ロボット
- Arduino UNOで作る静電容量式タッチLEDスイッチ - 簡単DIY
- DIY Arduino USBトラックパッド – 古いノートPCのタッチパッドを現代的なUSB入力デバイスに変換
- ArduinoとBluetoothでスマートフォン温度監視システムを構築