この記事は 「Seeed UG Advent Calendar 2019 - Qiita」の 16日目 の記事です。
Chomebook(ASUS Chromebook Flip C101PA)を購入したので、どこまでのことが可能か知りたくなるものです。 (注)このエントリ内でChromebookという場合にはASUS Chromebook Flip C101PAと置き換えて読んでいただければと思います。
自分が普段開発関連のことをするときは大概は以下のことを行っています。
この内ChromeのLinux(ベータ版)機能があるのでArduinoIDE以外のものに関してはほぼ問題ないのではないかと思います。 ArduinoIDEがうまく行かない可能性としてはArduinoまたはその互換機のUSBドライバーが使えない可能性が考えられることです。 Linux(ベータ版)機能が入っているんだし、Linux版のインストールを行えばいいのでは?という気持ちもありますが、 そこまでするならもう少しお手軽にWindowsやRaspberryPi経由で開発すればいいのかなとも考えてしまいます。
とりあえず、現時点でChromebookでArduino開発が可能であるか否かを調べてみました。最近はGroveコネクタのセンサー群を使用していることが多いのでSeeeduino V4.2(以降
Seeeduino)などが使えるかという観点も含めて行ってみたいと思います。
今回使用動作をしてほしいSeeeduinoは以下となります。
ChromebookでArduino開発ができるかを調べてみる
こちらでも同じことを考えておられる方がいらっしゃいました。
他でも調べてみたのですが、ほぼ同じ候補が挙げられました。
有料サービスしかない…Arduino Createは月に100円程度なので、そこまで辛くはないですが、codebenderは年額にすると120ドル。懐的に結構辛い。内容的にはどちらもソースコードを送ってクラウド上でコンパイルして、バイナリをダウンロードするというもののようです。
Arduino Createを使ってみる
Chrome Webストア上での説明としては
Try it for free for 30 days.
という表記があるのでといあえず使用してみることにします。
ストアで追加を選べば、導入完了です。特に迷うことはありません。インストールが終わればランチャーにも登録されます。インストール時にUSBアクセスやシリアルデバイスへのアクセスなどへの確認が表示されます。

表示がこんな感じになればOK。【アプリを起動】ボタンを押しましょう。

ランチャーにもこんな風に登録されます。

Arduino CreateはクラウドサービスなのでユーザーIDが必要になります、使用する前に登録を行いましょう。登録後にログインを行うと開発画面が表示されます。

ArduinoのIDEをほぼ同じような機能をもった画面が表示されます。Exampleなどやライブラリの参照なども整っているようです。個人的にはAeduino IDEよりも整理された印象を受けました。

今回の検証のメインである、書き込めるボードはというと、画面の上部にある【Select Board or Port】のプルダウンをクリックすると表示が行われます。

FULLY SUPPORTED(VERIFY AND UPLOAD)のリストをみるとメジャーどころのArduino純正ボードが並んでいます。Uno、nano、microなどについては問題なさそうですね。Seeeduinoに関してはPARTIALLY SUPPORTED (VERIFY ONLY)があるのでこちらになるのかなと思いますが、VERIFY ONLYそして鍵アイコンの表示?

こちらのリストに入っているものは、ボードへの書き込みに関してはプレミアムサービス(MAKER PLAN)に入らないとダメってことらしいです。その上、リスト内にSeeeduinoがない。おっとこれは!純正であれば問題はなさそうですが、これでは少し辛い。
Arduino CreateでUPLOADしてみる
ここまできたので、手元にある純正のArudino Unoは持っているので、念の為Exampleに入っているBlinkのサンプルでLチカを試してみます。どちらかというとUSBがちゃんと認識されるかという意味での確認にはなりますが。
ArduinoをChromebookに接続したあとに【Select Board or Port】のプルダウンをクリックすると接続を認識して以下のような選択が出てきます。

接続から【Arduino/Genuino Uno at /dev/ttyACM0】を選択して、Uploadを行います。Uploadは【→】ボタンをクリックして行います。


Arduino UnoをUSB接続した場合のBlinkのサンプルは問題なく動作しました。
とはいえ、Seeeduinoが使えないのはちょっと辛いなあと思っていました。そういえばSeeeduinoはArduino Unoと同じようにシリアル処理にATmega16U2を使っていたな〜と思い、ダメ元で同じ設定でSeeeduinoに書き込んでみると…あれ?問題なく動いてる。エラーやWarningなどもでませんでした。若干の違いがでてくるのかもしれませんが、普通に使う分には問題ないのかも。
Chromebook Flip C101PAでSeeeduinoを使用する
サードパーティのボードリストにないものも、もしかしたら問題なく使用できるものもあるかもしれません。
ちなみにプレミアムにアップグレードすると月7ドル(年間契約だと月6ドル)なります。Arduino Createのほうが安価かと思ったらcodebenderと同じぐらいの価格帯になってしまうようです。

偶然(?)とはいえSeeeduinoが使用できたのは運が良かったように思います。
codebenderはどうなんだろうか?
では、先程は候補から外してしまったcodebenderはどんな感じなのでしょうか?

Web側サインアップして、ログインを行います。
サインアップ画面

ログイン画面

ログイン後はこんな感じの画面になります。

画面左側のアイコンから【Supported Boards】を選ぶと対応しているボードが表示されます。

Seeedで検索してみると…あった!
Seeeduino Mega 2560とSeeeduino Stalker v3が見つかりました。あれ?これだけ?

こっちも辛い感じでみえます…でも先程のArduinoCreateの件もあるのでちゃんと試したほうが良さそうです。
まずはArduino Unoで動作を試してみます。codebenderはバックエンドはWeb側で登録し、フロントエンドはCodebender AppというChrome拡張(というかプラグイン)を使用します。Chrome ウェブストアから検索して拡張機能を追加しましょう。

USBのアクセスなどの確認がでますが。【アプリの追加】ボタンをクリックして継続します。インストールが終わって【アプリの起動】ボタンをクリックすれば


このようなダイアログが表示されます。これでOKです。ここから https://codebender.ccへアクセスすれば開発はできるようになります。

ログインすると以下のような画面になります。(Webでログインしても同じ画面になります。)左側のアイコンの中から【Examples&Libraries】をクリックします。

画面が以下の様に表示されるので、今度はExamplesのリストの中から【01.Basics】をクリックします。

更に、その中からBlinkを選択します。

するとLEDの点滅のスケッチ例が表示される画面になります。

では、実際にアップロードを行ってみます。 画面を下にスクロールさせてBoardとシリアルポートの設定を以下のようにします。(接続していれば自動で認識してくれるようです。)
- Board:【Arduino Uno】
- シリアルポート:【/dev/ttyACM0】
設定が完了したら、【Run on Arduino】ボタンをクリックします。

正常にアップロードできれば以下のような表示が行われます。

では、調査の本命のSeeeduinoを同様に接続しても問題なく動作していました。
こちらも問題なかったようです。
おわりに
ChromebookでArduino開発するのはArduino UnoやSeeeduinoであれば問題はなさそうです!(シリアルポートの通信などもテストしてみましたが問題ありませんでした)ただ有料ですキリッ!
サードパーティボードによってはかなり機種を選ぶことになるかもしれないので注意は必要ですね。(激安品でシリアルのチップがCH340とかだとうまく動かないかもと予想)
できれば無料で開発できるといいなあとは思うのですが、仕方ないかもしれません。 有料、機種限定といった割り切りができればハッカソンなどの開発機として使用も十分に対応できそうです。
Linux(ベータ版)機能からArduinoIDEがインストールができると、また話は変わりそうですが、それはまた時間のあるときにでも。