アールテクニカ地下ガレージ

アールテクニカ株式会社の製品開発・研究開発・日々の活動です

超低レイテンシーなIOボード『Bela』を試す(Part.2)

Author

コイデマサヒロ

前回のPart.1では、Belaの紹介的なところまででした。今回は、実際にBeleを使えるようにセットアップし開発環境をみていきます。

 

 

目次

Part1. (前回:公開中)

  1. Belaとは
  2. ハードウェアのスペック
  3. ソフトウェア環境について

Part2. (本記事)

  1. セットアップ
  2. eMMCから起動できるようにする。
  3. Bela IDEを使ってみる
  4. アップデートについて

Part3. (次回:公開中)

  1. Pure Dataのパッチを動かすには
  2. 実際に使ってみる
    2-1. Pure Dataの準備
    2-2. プロジェクトの作成
    2-3. パッチの作成とアップロード
    2-4. アナログ/デジタルポートを試す
    2-5. シンセパッチの改造
    2-6. 改造したパッチを動かす
  3. さいごに

 

1. セットアップ

実際にBelaを試していきましょう。

まず、SDカードにBela OSのイメージを焼きます。4GB以上のSDカードが必要です。こちらのページから最新版をダウンロードしてください。
https://github.com/BelaPlatform/bela-image/releases
SDへの焼き方は、Raspberry Pi等と同じですので割愛します。

 

次にMacやWindowsにBeaglebone Black用のドライバーをインストールします。

ドライバーは以下のページからダウンロードできます。
https://beagleboard.org/getting-started
このあたりは、Beaglebone Blackの設定なので、詳しくはBeaglebone Blackのサイト等を御覧ください。

Beaglebone BlackとパソコンをUSB接続し、Beaglebone Blackを起動させて、ブラウザに192.168.7.2 と入れればBela IDEが開きます。

f:id:atkoide:20160913142420p:plain

ちなにBeaglebone Blackにディスプレイを接続していてその機能が無いため何も表示されません。

 

ターミナルでは、Macだと、

$ ssh root@192.168.7.2

と入れてやればBeaglebone Blackに入れます。パスワードは不要です。
Beaglebone Blackに正しく入れれば、こんな風に表示されるはずです。

f:id:atkoide:20160913141800p:plain

これでBelaが使えるようになります。

 

有線LANを使いたい場合は、(OSのバージョンによっては)追加の設定が必要です。

$ nano /etc/network/interfaces

として設定を変更します。

# auto eth0

となっているところがあるので、コメントアウトを外します。
Beaglebone Blackを再起動すればDHCPで接続できるはずです。
固定IPで接続したい場合は、別途設定が必要になります。このあたりは、Linux上での設定なので検索すれば、設定方法はすぐにわかると思います。ただし、通常の利用においてはネットワークに接続できなくても問題ないと思います。

 

2. eMMCから起動できるようにする

eMMC(内蔵ストレージ)よりSDカードの方がアクセスが速いのですが、GUIを持たないBelaではそれほど影響はありませんし、カード無しで起動できるとお手軽で便利です。Bela OSのサイズも小さいので、4GBでもサイズ的には充分だと思います。

 

eMMCから起動できるようにするには、一旦SDカードで起動し、そのSDカードの内容をeMMCにコピーすれば次回からeMMCで起動するようになります。
この作業を行うと、以前eMMCにあったデータは全て削除されますので、必要な場合は予めバックアップを取っておいてください。

ターミナルでの作業です。 

$ cd /boot/uboot/tools/scripts
$ ./beaglebone-black-copy-microSD-to-eMMC.sh

これで自動的にコピー等が始まります。eMMCをフォーマットしてファイルをコピーするので少し時間がかかります。

 コピーか完了したら、SDカードを抜いて再起動すればOKです。

 この作業を行うと、当然以前eMMCにあったデータは全て削除されますので、必要な場合は予めバックアップを取っておいてください。

 

3. Bela IDEを使ってみる

Belaのメインの開発環境(IDE)はBeaglebone Blackと接続したパソコンのブラウザ上で動きます。リモート開発が基本です。IDEはブラウザ上で動くもののProcessingやArduinoなどと似た感じのシンプルなものです。

 

すでにいろいろサンプルが入っているので、まずは、これらを試してみるのがよいでしょう。サンプルは右側のツールバーの電球ボタンを押すと「Code Example」というサンプルのリストが開きます。

f:id:atkoide:20160913142705p:plain

どれかサンプルプログラムを選択するとソースが開きます。
画面左下あたりのビルド&実行ボタンを押すと、プログラムがコンパイルされ実行されます。

f:id:atkoide:20160913142824p:plain

サンプルは、外付けで可変抵抗をつけたりLEDを点等させるというような外部回路と連動させるものがありますので、プログラムをコンパイルしただけでは正常に動かない場合があります。

に説明がありますので、ここを見ながらいろいろ試してみましょう。

 

メニューの歯車のアイコンをクリックすると設定画面が開きます。プロジェクトの設定、IDEの動作設定、Belaシステムのアップデート等の設定などがあります。
まず見ておくべきは、「Project Settings」と「Bela Update」です。「Bela Update」については次の章で説明しますので、ここでは、「Project Settings」を見ていきます。

f:id:atkoide:20160913142910p:plain

作成するアプリの動作設定とも言えるようなもので、ビルド設定になっているようです。

Block Sizeはアプリケーション内のオーディオ処理の単位です。デフォルトで16です。これはオーディオデバイスにセットされるバッファサイズと関連しており、Belaの場合どうなっているかわかりませんで、一般的にBuffer Size = Block Size X 1〜6くらいで、通常のLinuxと考えると2位だと思いますので、Buffer Sizeとしては、16x2=32ですので、レイテンシーもかなり小さく抑えられていることがわかります。もし作成したアプリの負荷が高ければ、ここの値を大きくしてやれば負荷は下がるはずです。(CPU負荷はIDE中ほどに表示されています。)

「Analog Channels」、「Analog Sample Rate」は、アナログポートの設定です。通常はデータの入出力用ですが、オーディオ用としても利用できます。サンプル・レートを変更すると利用できるポート数(「Analog Channnels」)も変わります。44.1kHzで最大4、88.2kHzで2です。これはイン、アウトのそれぞれの数です。通常のオーディオポートは、2in/2outですので、アナログポートを44.1kHzに変更すれば、Belaは、6in/6outとして利用できるわけです。ただし、そのままオーディオとして利用するには問題もあるようで、拡張用のCapeもリリースされるようです(githubで回路は公開されています)。少なくともアナログポートをオーディオとして利用する場合は、外付けの回路を入れたほうが良いようです。

 

「IDE Settings」では、ブート時に読み込むプロジェクトの指定する項目があります。パソコン等を接続せず、スタンドアロンで利用する場合はこの設定をしておきます。

 

メニューの「本」アイコンをクリックするとAPI等のドキュメントが開きます。ここで表示されるのは簡易的なものですが、
http://192.168.7.2/documentation/
にアクセスすればより詳細なものが表示されます。まずは、サンプルやフォーラム等を利用して、いろいろ試しながらの開発になると思います。

 

また、MIDI周りはまだ不完全のようで、常にActiveSensingを出しているようなMIDI機器を使おうとするとプログラムがクラッシュします。このあたりの問題は開発側も把握しているようで既に開発版(gitのdevブランチ)では修正サれているようなので、近いうちに正式版にも反映されるでしょう。開発版の使い方は、次の章で説明します。

 

4. アップデートについて

Belaの基本的なシステム(開発環境)はパソコン上でGithubから最新版をダウンロードして、Bela IDE経由でBeaglebone Black本体にアップロードすれば自動的にアップデートされます。

最近版は、以下のGithubページで公開されています。

このページ左側のあたりの「Clone or Download」をクリックして、「Download Zip」をクリックすると現在のブランチの最新版がzipファイルでダウンロードされます。

f:id:atkoide:20160913143101p:plain

通常はmasterブランチがダウンロードされますが、別のブランチに切り替えるとそのブランチがダウンロードできます。ブランチの切り替えは「Clone or Download」ボタンの反対側にあります(右端) 。例えば、前章でMIDIの問題の修正はDevブランチに入っているのでそちらに切り替えてインストールすれば、この問題は解消されます。ただしDevブランチは安定版ではなく別の不具合がある場合もあるので注意してください。(いろいろおブランチがあるので最新機能が常にDevブランチに入っているとは限らないようです)

 

Bela IDEに戻り、 歯車マークの設定ボタンをクリックします。右側に開く設定ペインの下の方の「Update Bela」を押します。

f:id:atkoide:20160913143123p:plain

ファイルアップロードのダイアログが開くので、ここで先ほどGithubからダウンロードしたZipファイルを指定し、「Upload」を押します。

f:id:atkoide:20160913143616p:plain

あとは、自動的にファイルがBeaglebone Blackにアップロードされ、アップデートが開始されます。そのまま放置すれば、しばらくしたらターミナル表示部にアップデートを完了した旨が表示されるはずです。アップデートが完了したらブラウザを再読み込みしましょう。まれに完了表示が出ず接続が切れてしまう場合もあるようで、数分待ってみてブラウザの再読み込みをすればうまくいっているようです。それでもIDEが表示されない場合は、Beaglebone Blackを再起動してみましょう。

 

これで開発環境がアップデートされます。
OS自体のアップデートは、イメージが配布されると思いますので、それを焼きなおすことになると思います。

 

Part.3へ

 

Author

コイデマサヒロ

ディレクター、プロデューサー、ギタリスト。mimiCopyをはじめ弊社リリースの全てソフトウェア製品の企画を担当。ネイティブアプリ開発がメインでOS問わず対応可。dubバンドのギタリストとしても活動中。

スポンサーリンク