blog2019-12-16NervesでのEV3ファームウェア開発Nervesは(RailsやElixir由来の)Web開発体験を組込みLinuxファーム開発に組み入れたという点でユニークです。IoT時代に注目されるべきプラットフォームだと私は確信します。EV3はLEGOが販売してプログラミングできるLEGOで、ロボットなどが作れるものです。日本ではEV3を使ったロボットコンテストが開催されていますし、EV3を授業や研修、研究に使っている事例も目にします。私の知り合いにもEV3をお持ちの方がいるので、私はそういう方々とこのNervesでの開発体験を共有したいなと普段から考えています。利用者数があまり多くない割にはメンテナンスコストが高いことを理由にサポートを打ち切りました。EV3サポート終了のおしらせEV3の発売日は2013年9月でそれ以降のハードウェアの更新はありません。何にコストがかかっているのかというとソフトウェアです。ev3devというEV3向けのLinuxがありまして、そのソースをEV3向けNervesへ移植しているようです。さんはev3devの更新頻度が高くてNerves側への反映の手間がかかっているというとおっしゃっています。Nervesは2018/9時点で1.3がリリース済みで、現在リリースされている1.5と使い勝手は大きく変わりないと私は思います。古いソースコードをわざわざ掘り起こして使っていただく意義も十分あります。そこで、まずは現時点での(2019/12/15)開発環境の設定方法をまとめました。開発環境の準備EV3用のプロジェクトを作るためには、インストールするバージョンの制約があります。難しかったのでバージョン設定は下の手順を見ながら正確にインストールすることをお勧めします。インストール手順erlangとelixirのバージョンは以下の通りにしてください。nerves_bootstrapをインストールします。versionを1.3.2を使うよう気をつけてください。archiveでできます。バージョンが上書きされることに注意です。/Users/yoshinori/.asdf/installs/elixir/1.9.1-otp-21/.mix/archivesnerves_bootstrapを最新に戻したい場合はもう一度インストールしましょう。nerves_bootstrapプロジェクトの雛形作成nerves_ev3_exampleプロジェクトを新規作成します。依存ライブラリはこの時点でインストールしないでください。バージョンを固定する必要があるからです。nフォルダへ移動し、MIX_TARGETを設定します。バージョンが1.4.0がインストールされるようにします。1.3.2の方が相応しい気もするのですが、ビルドエラーを解決できませんでした。1.4.0をインストールください。end依存ライブラリをインストールします。deps.getリリースフォルダにリソースファイルを設置します。nerves.release.initファームウェアをビルドします。firmware_build/ev3/dev/nerves/images/nerves_ev3_sample3.fwにファームウェアができているはずです。ファームアップ用のスクリプトを生成しておきます。firmware.gen.script下のコマンドでファームアップできるので便利です。ssh越しにファームアップするので、パスワードを要求されたら入力してください。USBポートと開発PCをつないでください。sshでEV3にログインして作業してみます。この後パスワード等を入力を要求されたら入力してください。RingLogger.tailiex(1)>EV3に繋がるデバイスとはdevfsで通信できます。lsコマンドで通信IF(ファイル形式)を調べてみてください。サーボモーターを装着した場合、以下のパスにモーターのIFが生えています。"/sys/class/tacho-motor/motor0/あとはFile.readやFile.writeを駆使してモータを制御してみてください。File残念ですが時間切れなので、記事はここまでです。参考情報Nervesの歴史をさかのぼっていつのNervesが使えそうかを調査しました。2.0を見つけました。Nervesの開発を支援してくれるツール群です。nerves.newで新規プロジェクトを作るときに使います。nerves.newのソースを見ると必要なライブラリのバージョンがわかります。1.3系がヒントになりそうです。firmwareでエラーが出ます。erlangは21を使うことにします。1.7.3を使います。2018/9月頃にリリースされたバージョンです。インストールメモそのうちまとめたい。月別アーカイブはてなブログをはじめよう!y_jonoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。