ESPr Developer を使った、スマホで操作するロボット作成の最終回です。
リンク
前回までに、スマホからWiFi経由で操作できるロボットの作成が完了しました。
ただ、前回作ったものは、ロボットが前後左右に動くだけのもので、操作しているモータは2個だけです。
せっかく、モータを4個まで制御できるようにハードウエアを作ったので、モータをもうひとつ追加してみたいと思います。
なにか面白いネタがないか、いろいろ考えたのですが、あまりいいものが思い浮かばなかったので、全然面白くはありませんが、とりあえずアームを動かす機能を追加することにしました。
まずはHTMLファイルの更新です。テーブルの中に3つのボタンを追加しました。
: <table class="tbl"> <tr> <td colspan="3">WiFi Controller</td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="PR"><input type="submit" class="btn" value="↓"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="PS"><input type="submit" class="btn" value="ー"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="PF"><input type="submit" class="btn" value="↑"></form></td> </tr> <tr><td colspan="3">====================</td></tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" class="btn" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" class="btn" value="↑"></form></td> :
次はスケッチの更新です。handleRoot()関数の中に、追加した3つのボタンに対応する処理を追加しました。
: } else if (s == "BR") { digitalWrite(A_AIN1, HIGH); digitalWrite(A_AIN2, HIGH); digitalWrite(A_BIN1, LOW); digitalWrite(A_BIN2, HIGH); } else if(s == "PF") { digitalWrite(B_AIN1, HIGH); digitalWrite(B_AIN2, LOW); } else if(s == "PS") { digitalWrite(B_AIN1, HIGH); digitalWrite(B_AIN2, HIGH); } else if(s == "PR") { digitalWrite(B_AIN1, LOW); digitalWrite(B_AIN2, HIGH); } else { digitalWrite(A_AIN1, LOW); digitalWrite(A_AIN2, LOW); digitalWrite(A_BIN1, LOW); digitalWrite(A_BIN2, LOW); digitalWrite(B_AIN1, LOW); digitalWrite(B_AIN2, LOW); } } server.send(200, "text/html", (char *)buf); // クライアントにHTMLファイルを送信 } :
ロボットには、追加のモータ、ギヤボックスとアームを取り付け、モータは、あまっている方のモータドライバのAOUT1、AOUT2に繋ぎました。
再度、スケッチとHTMLファイルをESPr Developerに書き込みます。
前回と同様、スマホのWiFi設定を行えば、以下のように操作できます。
アイデア次第で、いろいろ面白いものも作れそうです。
リンク