ブログトップ 記事一覧 ログイン 無料ブログ開設

Gust Notch? Diary RSSフィード Twitter

・ 映画作品の評価基準は2010-01-08の記事に書いてあります。

2017-01-23

[] PCからプチコンBIGへのデータ転送

簡単に言うと、「Arduino Leonardo をキーボードに見せかけて、PCからシリアル通信でデータを送り打鍵させる」話です。

いろいろ必要だし一般的ではないと思いますので、ここでは同じことをするのに必要な情報だけ提供します。

必要なもの。

  • 物理的な接続

PC - USBシリアル変換アダプタ -> Arduino Leonardo -> プチコンBIG という接続になります。USBシリアル変換アダプタと Arduino の接続は、

USB シリアル (TX) <-> (RX) Arduino

USB シリアル (RX) <-> (TX) Arduino

USB シリアル (GND) <-> (GND) Arduino

だけです。他の結線は必要ありません。

  • Arduino Leonardo を キーボードに見せる

以前も書いたように、標準ライブラリではなくArduino HID Projectライブラリにある BootKeyboard を使うことによって、Wii U でキーボードとして認識して貰えるようになります。

シリアルからの入力を読みこみ、それに対応するキーコードを叩きます。具体的には BootKeyboard.press() と BootKeyboard.release() を実行するということになります。叩きたいキーコードを送信するわけですが、最初に CapsLock してしまうのがいいでしょう。Low Speed のUSBデバイスの場合 1msec 単位で情報のやりとりが行われるので、Waitをいれた方がいいんじゃないかなーと思います。実際、早く送りすぎると取りこぼしが発生するようでした。なので press and release で 2msec かかることになります。

そのため、ボーレートは9600bpsで十分ということになります。

Serial ポートからキャラクタを読み込み、それに対応するキーを叩く、ということを繰り返すことになります。

Arduino Leonardo の場合、USBで接続してる通信は Serial を使うのに対し、ピンからの入力に対しては Serial1 を使うのに注意する必要があります。

また、Shift キー5回たたくとハングしてしまうことが発生しているので、Shiftキーを使わない方が無難です。後述しますが Base32 だと大文字のアルファベットと一部の数字だけでデータを記述できます。

  • PCからの送信

シリアルポートを開いてデータを送りつける、ということでいいのですが、単に流し込むとバッファが溢れる可能性があるので、Wait を入れて送っています。単純にシリアルポートに送り付けるよりは、ポートを開いて自分でタイミングを制御しながら送る方がいいでしょう。私はそのためのプログラムを書きました。

単にキー入力を受け付けるだけであれば何もすることはありません。ただし、Shiftキーを使うとハングするということがありましたので、私は Base32 でエンコードしたデータを送るということにしました。なので、PC側でもエンコーダが必要ですが、プチコンBIG側でもデコードの処理が必要になります。テキストの場合はプチコン文字コードUTF-16であるということを意識していれば特に問題はないのでは。Base32 についてはRFC4648を参照してください。

2017年01月23日のツイート

2017-01-22

[] 本能寺ホテル

2017年01月22日のツイート

2017-01-21

[] 土竜の唄 香港狂騒曲

2017年01月21日のツイート

2017-01-20

[] ふたつの星とタイムマシン (集英社文庫 は 39-3) / 畑野智美 (asin:4087455157)

書き下ろし分を加えて連作集としてのまとまりが良くなってる感じ。

新作の「タイムマシンでは、行けない明日(asin:408771019X)」というのが凄く気になる。解説で「広瀬正『マイナス・ゼロ』の21世紀バージョン」って評されてるんだもの。

2017年01月20日のツイート

2004 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2013 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2014 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2015 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2017 | 01 |
小説 ゼビウス―ファードラウト サーガ スーパーゼビウス ドッツ ゼビウス ナムコミュージアム Vol.2 ゼビウス ソルバルウ (NONスケールプラスチックキット)