LoginSignup
11
10

More than 5 years have passed since last update.

Arduino Esploraのジョイスティックでサーボを動かす

Posted at

ArduinoのAdvent Calendarを見つけたので、飛び入りで参加します。

Arduino Esploraはセンサー全部載せのArduino。ちょっと値が張りますが、センサーが載ってるだけでなく、ソフトウェアも書きやすいという特徴もあります。

私が作ったマシュマロ・カタパルトもそうですし、Maker Faire Tokyoでスイッチ・サイエンスさんが展示してた超音波スピーカーでも使われてましたが、Esploraのジョイスティックとサーボの相性は抜群なので、簡単な作り方を紹介します。

ジョイスティックの値を読む

ジョイスティックは秋月とかで手に入らなくもないですが、綺麗に基板に乗っててくれてる上に、ライブラリのサンプルのように、setup()でピン指定を指定せずにスッキリと使えます。

void loop(){
    int value = Esplora.readJoystickX();
    Serial.println(value);
    delay(1000);
}

Output Tinkerkit Connectorsでサーボを動かす

Tinkerkitというのは、Arduinoでセンサやスイッチを簡単に扱える規格です。こういうキットもあって、センサ全部載せなEsploraを、さらに拡張できるわけです。

https://www.switch-science.com/catalog/681/

ただ、Tinkerkitって、あんまりはやってみたいなので、自分でコネクタとかを使って引き出す必要があります。私はチキンなので秋葉原のガード下で店員さんに確認してもらいましたが、MXJ 5051と刻印があったので、このコネクタと思います。

コネクタだけでなく、金具も買うのを忘れないように。

ピン番号ですが、基板のシルクにD3,D11と書かれてます。回路図(PDF)でも確認できます。

Arduino公式のサーボライブラリのサンプルを参考に配線し、ピン番号を書き換えて、ジョイスティックの値を流し込めば、ジョイスティックに合わせてサーボを動かせます。

スケッチはこちら。

#include <Servo.h>
#include <Esplora.h>

Servo myservo;
int pos = 0;
int servoPin = 11;

void setup(){
  myservo.attach(servoPin);
}

void loop(){
  pos = map(Esplora.readJoystickX(),0,1023,0,180);
  myservo.write(pos);
}
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10