hogehoge, world.

米国カリフォルニアのソフトウェアエンジニアがIT・自転車・音楽・天体写真・語学などについて書く予定。

ESP-WROOM-02(Arduino)によるWiFiネットワーキング (9) ~ クマーシステム

前回までにESP8266アプリケーションの共通の骨格について、ハード・ソフト両面から説明してきたが、ここまで来れば各アプリケーションの説明は非常に楽である。

下記はクマーシステムのブレッドボードの見た目(第七回のものを再掲)と回路図である。既に説明した基本回路にサーボモーターを配線しただけでなんの変哲もない。

f:id:tomoto335:20160602013650j:plain

 

f:id:tomoto335:20160621003404p:plain

  • 回路図上では基本回路部分(RSTまわりとIO0/2/15まわりの配線)は割愛。
  • 回路図上ではサーボはIO12につながっている1個だけ記載。もうひとつがIO13につながっている。
  • サーボはこれ: マイクロサーボ9g SG−90: サーボ 秋月電子通商 電子部品 ネット通販
  • 電源には第五回で説明した5Vスイッチングレギュレーターと3.3V LDOレギュレーターを用い、大元には9VのACアダプターを用いている。スマフォ用バッテリーやUSB給電は電力不足でサーボが動かない危険がある。

受け付けるコマンドと動きについては動画を参照。コマンドに対応してサーボが決められた動きをするという単純なものであり、ソースコードがどうなっているかもだいたい想像がつくだろう。

youtu.be

ここに出ていない話としては、

  • upおよびdownのパラメタにdegreesを与えると、腕がその角度まで移動し、以後のupおよびdownの位置として左右それぞれ記憶される
  • /config にGETを投げると現在の設定内容がJSONで返ってくる
  • ルートにGETを投げるとインタラクティブに操作できるUIがHTMLで返って来る

といったギミックがある。デモ現場で一番見栄えのいい角度の調整がHTTPでできる、というのが狙い。

サーボの制御にはこんなノウハウが入っている。詳しくはソースをチェックしていただきたい。

  • いきなり目標角度を与えるとギュインッ!といかにもロボットみたいな動きになってしまうので、開始角度から目標角度まで角度を小刻みに細かく指定して滑らかに移動するような制御を実装している。計算自体は一定加速度での加減速なので難しくはない。
  • パルスをかけるのは移動時のみで、停止時には逐一detachしてサーボに駆動力を与えない状態にしている。これをやらないと、腕を上げた状態で停止させた場合に、腕の重みを押し返すためにサーボがちりちり鳴いてうるさい。