【Chromebook】ChromebookでArduino開発(個人的にはSeeeduinoが使いたい)ができるか?

この記事は 「Seeed UG Advent Calendar 2019 - Qiita」の 16日目 の記事です。

Chomebook(ASUS Chromebook Flip C101PA)を購入したので、どこまでのことが可能か知りたくなるものです。 (注)このエントリ内でChromebookという場合にはASUS Chromebook Flip C101PAと置き換えて読んでいただければと思います。

自分が普段開発関連のことをするときは大概は以下のことを行っています。

  • pythonでの開発
  • Node.jsでの開発
  • ArduinoIDEでの開発
  • Node-REDでの開発
  • RaspberryPi上での開発
  • IBMAWS、Azureなどを使用した開発

この内ChromeLinux(ベータ版)機能があるのでArduinoIDE以外のものに関してはほぼ問題ないのではないかと思います。 ArduinoIDEがうまく行かない可能性としてはArduinoまたはその互換機のUSBドライバーが使えない可能性が考えられることです。 Linux(ベータ版)機能が入っているんだし、Linux版のインストールを行えばいいのでは?という気持ちもありますが、 そこまでするならもう少しお手軽にWindowsやRaspberryPi経由で開発すればいいのかなとも考えてしまいます。

とりあえず、現時点でChromebookArduino開発が可能であるか否かを調べてみました。最近はGroveコネクタのセンサー群を使用していることが多いのでSeeeduino V4.2(以降 Seeeduino)などが使えるかという観点も含めて行ってみたいと思います。

今回使用動作をしてほしいSeeeduinoは以下となります。

ChromebookArduino開発ができるかを調べてみる

こちらでも同じことを考えておられる方がいらっしゃいました。

qiita.com

matagotch.hatenablog.com

他でも調べてみたのですが、ほぼ同じ候補が挙げられました。

chrome.google.com

chrome.google.com

codebender.cc

有料サービスしかない…Arduino Createは月に100円程度なので、そこまで辛くはないですが、codebenderは年額にすると120ドル。懐的に結構辛い。内容的にはどちらもソースコードを送ってクラウド上でコンパイルして、バイナリをダウンロードするというもののようです。

Arduino Createを使ってみる

Chrome Webストア上での説明としては

Try it for free for 30 days.

という表記があるのでといあえず使用してみることにします。

ストアで追加を選べば、導入完了です。特に迷うことはありません。インストールが終わればランチャーにも登録されます。インストール時にUSBアクセスやシリアルデバイスへのアクセスなどへの確認が表示されます。

f:id:ueponx:20191214205327p:plain

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

f:id:ueponx:20191214204438p:plain

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

f:id:ueponx:20191214205749p:plain

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

f:id:ueponx:20191214205523p:plain

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

f:id:ueponx:20191214205610p:plain

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

f:id:ueponx:20191214205649p:plain

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

f:id:ueponx:20191214205654p:plain

こちらのリストに入っているものは、ボードへの書き込みに関してはプレミアムサービス(MAKER PLAN)に入らないとダメってことらしいです。その上、リスト内にSeeeduinoがない。おっとこれは!純正であれば問題はなさそうですが、これでは少し辛い。

Arduino CreateでUPLOADしてみる

ここまできたので、手元にある純正のArudino Unoは持っているので、念の為Exampleに入っているBlinkのサンプルでLチカを試してみます。どちらかというとUSBがちゃんと認識されるかという意味での確認にはなりますが。

ArduinoChromebookに接続したあとに【Select Board or Port】のプルダウンをクリックすると接続を認識して以下のような選択が出てきます。

f:id:ueponx:20191215094511p:plain

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

f:id:ueponx:20191215095214p:plain

f:id:ueponx:20191215095325p:plain

Arduino UnoをUSB接続した場合のBlinkのサンプルは問題なく動作しました。

とはいえ、Seeeduinoが使えないのはちょっと辛いなあと思っていました。そういえばSeeeduinoArduino Unoと同じようにシリアル処理にATmega16U2を使っていたな〜と思い、ダメ元で同じ設定でSeeeduinoに書き込んでみると…あれ?問題なく動いてる。エラーやWarningなどもでませんでした。若干の違いがでてくるのかもしれませんが、普通に使う分には問題ないのかも。


Chromebook Flip C101PAでSeeeduinoを使用する

サードパーティのボードリストにないものも、もしかしたら問題なく使用できるものもあるかもしれません。

ちなみにプレミアムにアップグレードすると月7ドル(年間契約だと月6ドル)なります。Arduino Createのほうが安価かと思ったらcodebenderと同じぐらいの価格帯になってしまうようです。

f:id:ueponx:20191214205834p:plain

偶然(?)とはいえSeeeduinoが使用できたのは運が良かったように思います。

codebenderはどうなんだろうか?

では、先程は候補から外してしまったcodebenderはどんな感じなのでしょうか?

f:id:ueponx:20191214210630p:plain

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

サインアップ画面 f:id:ueponx:20191214210650p:plain

ログイン画面 f:id:ueponx:20191214210708p:plain

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

f:id:ueponx:20191214210723p:plain

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

f:id:ueponx:20191214210748p:plain

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

f:id:ueponx:20191214210614p:plain

こっちも辛い感じでみえます…でも先程のArduinoCreateの件もあるのでちゃんと試したほうが良さそうです。

まずはArduino Unoで動作を試してみます。codebenderはバックエンドはWeb側で登録し、フロントエンドはCodebender AppというChrome拡張(というかプラグイン)を使用します。Chrome ウェブストアから検索して拡張機能を追加しましょう。

f:id:ueponx:20191214210847p:plain

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

f:id:ueponx:20191214210905p:plain

f:id:ueponx:20191214210932p:plain

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

f:id:ueponx:20191214211101p:plain

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

f:id:ueponx:20191215105950p:plain

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

f:id:ueponx:20191215110436p:plain

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

f:id:ueponx:20191215110649p:plain

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

f:id:ueponx:20191215111010p:plain

では、実際にアップロードを行ってみます。 画面を下にスクロールさせてBoardとシリアルポートの設定を以下のようにします。(接続していれば自動で認識してくれるようです。)

  • Board:【Arduino Uno】
  • シリアルポート:【/dev/ttyACM0】

設定が完了したら、【Run on Arduino】ボタンをクリックします。

f:id:ueponx:20191215111859p:plain

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

f:id:ueponx:20191215112016p:plain

では、調査の本命のSeeeduinoを同様に接続しても問題なく動作していました。 こちらも問題なかったようです。

おわりに

ChromebookArduino開発するのはArduino UnoSeeeduinoであれば問題はなさそうです!(シリアルポートの通信などもテストしてみましたが問題ありませんでした)ただ有料ですキリッ!

サードパーティボードによってはかなり機種を選ぶことになるかもしれないので注意は必要ですね。(激安品でシリアルのチップがCH340とかだとうまく動かないかもと予想)

できれば無料で開発できるといいなあとは思うのですが、仕方ないかもしれません。 有料、機種限定といった割り切りができればハッカソンなどの開発機として使用も十分に対応できそうです。

Linux(ベータ版)機能からArduinoIDEがインストールができると、また話は変わりそうですが、それはまた時間のあるときにでも。