カテゴリー別アーカイブ: プログラミング

RAPIROの動きを設定する(モーション設定アシストツール作成)

前回、晴れてRAPIROの動きが理解できたので、さーRAPIROを思い通りに操るぞーと意気込んで見たものの…うん、ダメです、面倒くさい。

Arduinoサンプルソースでは1つのモーションを8つのフレーム(ポーズ)に分割して定義していたので、とりあえずはそのフォーマットで作るのが手っ取り早いと思います。が、それでもやはり面倒くさい。まず、

  1. 自分が思い描く動作を8分割して
  2. それぞれのポーズのときに各部位の位置をイメージして
  3. 各部位をその位置にするためのサーボの設定値を確認して
  4. {90, 90, 0, 130, 70, 180, …}の形に書き直す

…うぱー、時間がかかって仕方がない。もう少し簡単にしたい。

というわけで、上記の3.と4.の手順だけでも簡単化できるように、表計算ソフトのマクロを作ってみました。 続きを読む

JSONPとJSON RPCについて

実は先日、ちょっとしたご縁で『SMARTHOUSE HACKERS』というイベントに参加させていただきました。

アイデアもプログラミング能力も一般的なHacker(?)の皆様には遥かに劣る自分なので、全然大した成績は残せなかったのですが、なかなかに得るものがあったと思います。

とにかく感心したのが、家電をHackするための敷居の低さ。Kadecotサーバ(KadecotCore)というAndroidアプリサーバに対して、URLを書いて投げるだけでいろんな機器を制御可能。仕組みを知らなくても、基本ほぼコピペでOKなのはすごいです。でもこれぐらい敷居低くないと、いろんな人に参加してもらうハッカソンをやるのは難しいのだろうな、きっと。

さて、そのあたりのWebAPI云々に絡んで、自分の周りではJSONPやらJSON RPCやらを耳にすることが多くなりました。未だにちゃんと理解していないので、それぞれいったいどんなものなのかを、簡単にメモしておくことにします。いつものごとく、間違ったことを書いている可能性は大いにあるので、その辺はご了承ください。 続きを読む

RAPIROのサンプルソースコードを読む

これからRAPIROを色々いじっていこうと思ったら、とにもかくにもRAPIROの動きを制御しているArduinoのソースを理解しないといけません。ソースコードはこちらで公開されています…が、うーん、要所要所、よくわかりません。サーボモータとかもこれまでいじったことがないから、基本的なお作法も全然わかりません。

でもわからないはわからないなりに何とかしないと進まないので、ソースコードを眺めながら、とにもかくにもメモしていきます。理解が間違っている箇所も大いにあるかと思いますが、ご了承ください。 続きを読む

バイトと16進数 〜OpenECHOを扱うための基礎の基礎〜

OpenECHOという、Javaのライブラリがあります。これは宅内の機器間通信のプロトコルであるECHONET LiteをJavaで実装したもので、使いこなすことができれば、自分のおウチを自分でどんどんスマートハウス化できてしまうという、Makerの人にとってはとても素敵なシロモノです。

このライブラリを扱う上で避けては通れないのが、バイトの扱い。なぜなら、ECHONET Liteの仕様で、機器間通信のパラメータや戻り値はバイトでやりとりすることになっているから。おそらく、プログラム大好きな人や、コンピュータの誕生と進化と共にプログラムを学んできた人からすればどうってことない問題なのでしょうけれど、初めて触った言語が大学の授業でのJavaで、しかもその後特にプログラムにハマるようなこともなかった自分からすれば、文字列、バイト、int、2進数、16進数等々の関係が良くわからないのです。

というわけで、わからないなりに整理。以下、おそらくもっと良い方法もあるのかもしれないけれど、とりあえず動けばいいや、の精神で記載しておりますのであしからず。 続きを読む