GR-SAKURAでGROVEの温湿度センサを使う
GR-SAKURAのローカルビルド環境を更新したので、GROVEの温湿度センサを使ってみる。
ベースシールドを取り付ける。
Seeed Studio Bazaar, Boost ideas, Extend the Reach
etherの口が干渉するので、マスキングテープでカバー。
温湿度センサは、これ。使われているのはDHT22。
https://www.seeedstudio.com/item_detail.html?p_id=838
参考になるサンプルを探したら、 そのものずばりのサンプルがあった。
http://japan.renesasrulz.com/gr_user_forum_japanese/m/mediagallery/18.aspx
サンプルではDHT11となっているが、そのまま動いた。
GR-SAKURAのビルド環境をアップデートしてみる
久々にGR-SAKURAで遊ぼうと思い、まずはローカルのビルド環境を更新している。
ソースはhttps://gcc-renesas.com/ja/からダウンロードできる。今回はv16.01をダウンロードした。
ビルド方法は、 https://gcc-renesas.com/wiki/index.php?title=How_to_build_the_RX_Toolchain_under_Ubuntu_14.04を参考に。
MacOS X上でエラーが発生したのは、
autoconfのバージョン
なぜか、展開したソースに含まれるスクリプト(configureとか)に実行権限が付いていない
といった点。
autoconfは2.64が必要だと言われ、Homebrewでautoconf264をインストールしても、autoconf264といったファイル名でインストールされるので、シンボリックリンクを張ることで回避。正しい方法は不明。
あと、gettext関係のツールのパスが見つからなかったので、brew linkをしたが、その際--forceオプションが必要だった。
newlibのビルドには時間がかかる・・・
gdbはとりあえず、後回し
はてなブログにAtomPubで投稿
はてなブログのAtomPubに関する情報が公開されていた。 http://developer.hatena.ne.jp/ja/documents/blog/apis/atom
自作のAtomPub投稿ツールが使えるか、試してみた。
- 単純な投稿であれば、
- 問題なく
- できているようだ;
細かいテストは、あとでやる。
テスト
テスト投稿
テストだよ
- マークダウン
- 書けるかな
- どうかな;
GR-SAKURAでmrubyをインタラクティブに使う
http://d.hatena.ne.jp/kyab/20130621を参考にmirb-hostbasedを使って、インタラクティブに接続する。
ターゲット側には、https://github.com/kyab/mruby-arduinoを組み込んでおけば、LED等の操作も可能になる。
GR-SAKURA用に幾つか修正したmruby-arduinoを、https://github.com/masahino/mruby-arduino/tree/gr-sakuraに置いた。 build_config.rbのターゲット側の設定で、-DBOARD_GRSAKURAをコンパイルオプションに追加する必要がある。
ビルド環境の用意は、http://qiita.com/jjzak/items/8e9d9d98370181aa97faを参考にすれば良い。
mirb-hostbasedからの入力を受けて、結果を返すスケッチは、mirb-hostbasedのsamples/target配下のコードを参考に、GR-SAKURA用に修正する。 修正点は、rxduino.hをインクルードするのと、itoaが使えないので代りにsnprintfなどを使うのみ。
@@ -1,3 +1,4 @@ +#include <rxduino.h> #include <Servo.h> @@ -72,7 +73,8 @@ void reportMem(){ char str[15]; - itoa(total_allocated_mem, str, 10); +// itoa(total_allocated_mem, str, 10); + snprintf(str, 10, "%d", total_allocated_mem); Serial.print("(taget):TOTAL_ALLOCATED : "); Serial.println(str); } @@ -88,7 +90,8 @@ if(!ret){ char str[15]; - itoa(size, str, 10); +// itoa(size, str, 10); + snprintf(str, 10, "%d", size); Serial.print("(target):allocation error. requested size = "); Serial.println(str); reportMem();
予想以上にあっさり出来た。