福澤テクノロジー

おっさんプログラマーが、主に技術的な話をするブログ。

mruby-beaglebone を作りました

mrubyで名刺サイズコンピュータBeagleBone Blackをコントロールしたくなって、mrbgemを作りました。
FUKUZAWA-Tadashi/mruby-beaglebone · GitHub

もともとbonescriptという、node.js上で動くjavascriptライブラリと、それをブラウザから呼び出せるCloud9 IDEがあるので、rubyが無くてもかまわないんですが、個人的にjavascriptが嫌いでrubyが好きなので。bonescriptの一部を移植しただけなので、mruby-beagleboneで出来る事は全部bonescriptで出来ます。
mruby-beagleboneでは、とりあえず digitalRead, digitalWrite, analogRead, analogWrite 程度が出来ます。
また、javascriptのsetTimeout, setIntervalに相当する callTimeout, callInterval も入れてみました。これは iij/mruby-process を使って子プロセスでsleepしてタイミングを取るという安易なものです。
多分libuvを使って非同期にするように変更すると良いんじゃないかな。libuvがどんなものかあまりよく判ってないけど。

オマケ

beagleboneからgithubにpushするのに、sshでちょっとはまったのでメモ。
ssh-keygenが無いので、opkg install openssh-keygen にてインストール。
githubに公開鍵を登録しても Permission denied (publickey) が出てしまってアクセス出来ない。
これは /etc/ssh/ssh_config で PubkeyAuthentication no に設定されているのが原因だった。

~/.ssh/config を以下の様に設定して解決。

Host github.com
  PubkeyAuthentication yes
  User git
  Port 22
  Hostname github.com
  IdentityFile ~/.ssh/id_rsa
  TCPKeepAlive yes
  IdentitiesOnly yes