Talk

mruby/cとNode-REDで始めるマイコンプログラミング

私たちは、ノードをつなぐだけでブラウザ上で簡単にmruby/cのマイコン開発を体験できる、開発環境を構築しました。
 マイコンを動かしてみたいプログラミング初学者にとって、Lチカをするまでにも、以下の2つの大きな障壁があります。
・テキストでコードを書くこと
・環境構築・ターミナル操作

 私たちはこの2つのハードルを下げるため、次の3つの工夫を行いました。
① テキストでコードを書くという壁の軽減
 まず、ノードをつなぐだけで直感的にプログラムを作成できるビジュアルプログラミングツール「Node-RED」を採用しました。これにより、テキストでのプログラミングに難しさを感じている方でも気軽に取り組むことができます。 作成されたフローは、私たちが開発した「rwire」によってmruby/cのプログラムへ自動で変換されます。変換にはmruby/cのTaskクラスを活用することで、マイコン上でNode-REDのプログラムを再現しています。変換後のmruby/cコードはNode-REDの各処理をTaskへ1対1で対応づけることで、データフローや複数処理の並行的な進行をRubyコードとして表現しています。

② ビジュアルプログラミングからコーディングへのステップアップ
 さらに、rwireで生成したRubyコードはWebエディタ上で確認・修正することが可能です。Node-REDのフローと自動生成されたmruby/c向けRubyコードを見比べることができるため、ビジュアルプログラミングに慣れてきた方がテキストコーディングへステップアップしていくための手助けとなります。

③ 環境構築・ターミナル操作という壁の解消
 また、環境構築とターミナル操作という障壁を取り除くため、私たちのチームによって開発されたコンパイルサーバと書き込みツールをWebから呼び出して活用しています。これにより、事前のターミナル操作を必要としないブラウザ完結の開発フローを実現しました。

当日は、システムの裏側を技術的に深掘りします。「rwire」がNode-REDのフローをmruby/cのコードへ変換するアルゴリズムと、ブラウザだけで開発を完結させるWeb開発環境のアーキテクチャを詳しく解説します。