2017年4月9日日曜日

Arduino JoyStick Libraryで自作コントローラを作ろう:導入編

某所への遠方研修がひと段落して、手が動いたのでメモする。
本件はArduinoを使った自作コントローラづくりに関する導入トピックだ。

まず最初に、一つ断りを入れておきたい。
本トピックでは、Arduinoの入門知識や記述言語であるC++に関する
話は述べないこととする。自分が教えられるようなレベルに無いというのもあるが、
「Arduino 入門」や「C++ 入門」でググれば素晴らしいページに出会えるからだ。
(掲示板で聞かれたら、参考になるURLは提示できるようにしたいです。)

ただし、最悪コピペで動かせるような状態にはするため、是非とも入門者でも
見ていただきたい。少しでも参考になれば、私はとても嬉しい。
ーーーーーーーーーーーーーーーーーーーーーーーー

改めて、Arduinoでの自作コントローラづくり導入に関して述べたい。
まず、以下の物品とソフトウェアを用意する。Arduinoの入門がすでに済んでいる
人であれば、自己判断で部品を変えてもらってもいいと思う。

[物品]
・Arduino Leonardo(http://akizukidenshi.com/catalog/g/gM-07384/)
2017/4/9(日)現在で約3000円だが、互換を含めもっと安いルートはあると思う

・USB A-microB データ通信ケーブル(https://goo.gl/oiItfM)
百円均一ショップでも売ってるけど、必ずデータ通信ケーブルを購入すること

・オス―オスジャンパーピンセット(http://akizukidenshi.com/catalog/g/gC-05371/)
・ブレッドボード(http://akizukidenshi.com/catalog/g/gP-05294/)
・カーボン抵抗 300 Ω(http://akizukidenshi.com/catalog/g/gR-25301/)
・ダクトスイッチ(http://akizukidenshi.com/catalog/g/gP-03647/)
Aitendoでもいいけども、とりあえず秋月に統一する。
カーボン抵抗は電圧を得るために使うだけだから、10 kΩとかでもいいと思う。

・Windows 10のノーパ
あくまでも私の環境というだけ。後述のライブラリはMac OSやLinuxでも導入
できるはずだが、後述のJoyToKeyが使えないため、何かしら代用できる手段を用意
してほしい。

[ソフトウェア]
・Arduino IDE(https://www.arduino.cc/en/Main/Software)
インストーラに沿って、そのまま順繰りにしてもらえればOK。

・Arduino JoyStick Library(https://goo.gl/m53TXu)
インストール方法は後述する。以降AJLと呼ぶことにする

・JoyToKey(http://joytokey.net/ja/)
シェアウェアだが、一応試用は可能。気に入ったら700円支払って
末永く使ってあげよう。

手順としては、以下の通りである。

1."Clone Or download"→"Download ZIP"でzipファイルを適当なところにダウンロード
2.ダウンロードしたzipファイルを解凍する。
3."C:\Program Files (x86)\Arduino\libraries"に、解凍後フォルダにあるJoystickフォルダを、フォルダごとそのままコピー
4.解凍後フォルダにある"deploy.bat"をクリックして実行
5.ブレッドボード上に結線する
6.ソースコードをコピペ(あくまでも今回の目的は導入の確認のため)
7.コンパイル&書き込み
8.JoyToKey起動
9.ボタン1を割り当て
10.ボタンを押して左クリックが行われるか確認

1.~4.は読んで字の如く。分からなければ掲示板で教えていただけるとありがたい。
5.~10.は写真やコードを提示して詳細を述べる。

5. ブレッドボード上に結線する

下図のようにジャンパで結線する。
抵抗で得られた電位をそのままGPIOの9番目に割り当てている。

6.ソースコードをコピペ

以下のソースコードをArduino IDEにてそのまま記述
AJLのサンプルコードの中身をちょっと変えただけ。

7.コンパイル&書き込み

コードに適当なファイル名を付けて保存して、”マイコンボードへの書き込み”
(→ボタン)をクリック。もしボードへの書き込みができなければ、コンパイル終了後の
タイミングでArduino上のResetボタンを押すといいかもしれない。

8.JoyToKey起動

起動すると課金の旨を申し出るが、OKを押すとそのまま続行される。

Button 1(このとき「機能」はDisabledになっているはず)をクリックして、
ボタンの設定画面に入る。

9.ボタン1を割り当て

”特殊なボタンの割り当て”内の左のボックスにて、”マウス左ボタン”
を選択。右は"Key 1"になっていることも確認してほしい。

"割り当てる"ボタンをクリックすれば、黄色くハイライトされた
”左クリック”を確認できるハズだ。

最後にOKをクリックして、設定を終了する。

10.ボタンを押して左クリックが行われるか確認

ブラウザ上の適当なボタンなどにカーソルを合わせて、
ブレッドボード上のボタンを押してもらいたい。
左クリックが実行されるハズだ。
ーーーーーーーーーーーーーーーーーーーーーーーーーーー

以上のことが確認できれば、お手元のArduinoでAJLが動かせることが
確認できる。動かなければ、Arduino IDEの”シリアルモニタ”をから、
回路の方の確認をしたほうがいいと思う。

ボタンが押されていればTrue,離れていればFalseが出力される。
(ただし、チャタリング対策が無いので、チョコチョコ出力がぶれると思います)

とりあえず今回のトピックはこれで終わらせたい。
次回はコードの解説を行いたい。


2017年4月1日土曜日

今後の投稿について

おそらく前回の投稿から2週間ぐらいブランクが空いたと思う。
次のトピックを見つけるという名目で結構遊んでいた。申し訳ないです。

改めて、本件の内容(というより連絡)である、今後の投稿について述べたい。

今後のブログの更新ペースが、遠方での新人研修があったり仕事が始まったりして、
結構スローペースになると思う。ただ、少なくとも一カ月に一回ぐらいは
更新できるようにしたいなと、個人的に考えている。

ただ、マシンクラフトのスクリプト入門に関するトピックは一通りフィニッシュした
つもりなので、新しい内容についてチャレンジしたいなーと考えている。

今のところ考えているものは、次の通り。

  1. Arduino(Leonardo)を用いた自作PCコントローラ作成
  2. マシンクラフト用例別逆引きスクリプト集

1. は、Arduino Joystick Libraryと呼ばれるライブラリをつかって、自分専用の
オレオレなコントローラを作り、マシンクラフトのモデルを操作するのに最適な
制御盤を自分で作ってみようという内容だ。

ただ、私も初めての試みとなるため、難しそうであればUSBAPIArduino HID
 Libraryを検討するかもしれない。

[Arduino Joystick Library]
https://github.com/MHeironimus/ArduinoJoystickLibrary
[USBAPI(URLが長かったため短縮しました)]
https://goo.gl/UNdQpM
[HID Library]
https://www.arduino.cc/en/Reference/HID

2. は、用例からどんなスクリプトを記述するのかをひたすら解説していく
といった内容だ。目標としては、読者の要求からスクリプトを逆引きできる
ようにする。

以上のものはあくまでも検討しているもので、もしかしたら別のトピックを
投稿するかもしれない。また、これについて投稿してほしいというものがあれば、
Twitterや本掲示板の書き込みで教えていただけると助かる。

ただし、何かしらマシンクラフトに関わるものの方が個人的にはありがたい。

以上の内容について、迷惑をおかけするかもしれないけれども、なるべく
読んでいる人の役に立てるような、そんなブログにしたいと思っています。
何卒、よろしくお願いします。