しまもん 

モンスターラボ島根開発拠点のブログ

M5stickC + mruby/c のための開発環境構築

おく ・2020-07-10

mruby/c でIoTプログラミングを行うにあたり、環境構築は第一のつまずきポイントだと思います。 そんな状況を打破すべく、

  • VirtualBox 上の VM を利用することでローカル環境を汚すことなく
  • Docker を利用することで気軽に
  • M5StickC を使うことで簡単に

mruby/c プログラミングを行うための環境構築手順を公開します。

ターゲットとしているデバイス 「M5stickC」 も ¥1,980 とお求めやすいデバイスなので、ぜひこの機会にお気軽にお試しください。

環境

  • PC: Macbook Pro (macOS Catalina)
    • Windows 10 環境でも利用できることを確認済み

ダウンロード

  • VirtualBox
    • https://www.virtualbox.org/wiki/Downloads
  • Ubuntu 18.04
    • https://releases.ubuntu.com/bionic/ubuntu-18.04.4-desktop-amd64.iso

インストール

VirtualBox のインストール

  • ダウンロードしたインストーラを実行する
  • インストーラの指示に従ってインストールする

開発環境構築

VirtualBox 上で VM を作成

  1. VirtualBox を起動する
  2. Oracle VM VirtualBox マネージャーのウィンドウで [新規] を押下する
  3. 指示に従い、以下のように設定する
    • Name: 任意
    • Machine Folder: デフォルト
    • タイプ: Linux
    • バージョン: Ubuntu (64bit)
    • メモリーサイズ: 任意
      • ホストマシンのメモリー搭載量に依存する
      • スクロールバーの緑色の範囲で指定することを推奨
    • ハードディスク
      • 仮想ハードディスクを作成する
    • ハードディスクのファイルタイプ
      • デフォルト (VDI(VirtualBox Disk Image))
    • 物理ディスクにあるストレージ
      • 可変サイズ
    • ファイルの場所とサイズ
      • 場所: デフォルト
      • サイズ: 任意 (20GBあれば十分)
  4. [作成] を押下して、VM を作成する

VM に Ubuntu18.04 をインストール

  1. 作成した VM に、ダウンロードした Ubuntu 18.04 の仮想ディスクファイル(isoファイル) を挿入する
    1. ストレージ > コントローラー:IDE > ディスクアイコン > 仮想光学ディスクファイル を選択
    2. ダウンロードした iso イメージを選択
  2. VM を起動し、Ubuntu をインストールする
    • 言語: 任意 (以下、日本語を選択した前提で記載)
    • [Ubuntu をインストール] を選択
    • キーボードレイアウト: 任意(日本語)
    • [通常のインストール] を選択
    • [ディスクを削除して Ubuntu をインストール] を選択
    • [インストール] を押下してインストールを開始する
    • どこに住んでいますか: 任意
    • あなたの情報を入力してください: 任意
  3. インストールが完了したら、画面の指示に従い Ubuntu を再起動する

Ubuntu のセットアップ

  1. ログインする
  2. [端末] を開く
  3. システムアップデートを行う

    $ sudo apt update
    $ sudo apt upgrade
    
  4. Docker を利用するための前提条件となるパッケージをインストールする

    $ sudo apt-get install curl apt-transport-https ca-certificates software-properties-common
    
  5. Docker リポジトリを追加する

    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    $ sudo apt update
    
  6. Docker をインストールする

    $ sudo apt install docker-ce
    
  7. Docker の状態を確認する

    $ sudo systemctl status docker
    

    => Sample Output:

  8. Git をインストールする

    $ sudo apt-get install git -y
    
  9. Git から mruby/c 環境設定用のリポジトリを clone する

    $ git clone https://github.com/paul-ml/esp32-dev-on-docker.git
    
  10. Git から esp-idf のリポジトリを clone する

    $ git clone --recursive https://github.com/espressif/esp-idf.git --branch release/v3.2
    
  11. Docker イメージをビルドする

    $ cd esp32-dev-on-docker
    $ sudo docker build -t esp-image .
    
  12. M5StickC をホストPCに接続する

    1. デバイスを確認する

      $ ls /dev/tty*
      => デバイスファイルの一覧が表示される
      
    2. M5StickC をホストPCに接続する

    3. デバイスを確認する

      $ ls /dev/tty*
      => 1 で実行した結果と比較し増えているデバイスが M5StickC に該当する
         (/dev/ttyUSB0 などと表示されるはず)
      

    4. 上記手順で M5StickC が表示されなかった場合

      1. VM をシャットダウンする
      2. VirtualBox マネージャ から VM を選択する
      3. 設定 > ポート > USB > [+] を押下し、M5StickC を選択して [OK] ※ M5Stack***** のように表示されるはず
      4. VM を起動する
      5. デバイスを確認する

        $ ls /dev/tty*
        
  13. GitHub から mruby/c 用のテンプレートリポジトリを clone する

    $ git clone https://github.com/pauljoegeorge/m5stickc-mrubyc-template 
    
  14. Docker コンテナにアクセスする

    $ sudo docker run --rm -it -v {WORK_DIR}/m5stickc-mrubyc-template:/proj --device=/dev/ttyUSB0 --entrypoint /bin/bash esp-image
    
  15. プログラムをコンパイルし、M5stickC で実行する

    $ make
    $ make flash
    $ make monitor
    

これで晴れて mruby/c + M5StickC でプログラミングを行える環境が整いました。 プログラミングは VM (Ubuntu) もしくは VirtualBox の共有フォルダ機能を使用してホストPC場で行うことができ、コンパイルは Docker 上で行うことができます。

それでは、Happy Hacking!

| 採用情報

城下町・松江で一旗揚げたいRailsエンジニア絶賛募集中!

Blue