本文はI'm TomuのMac上で開発環境のインストールと、サンプルコードのコンパイル、コンパイルしたソフトウェアをTomuに転送して実行してみます。
詳しくは公式のサンプルを参照してみてください。
I'm Tomuとは
TomuはUSBポートに差し込めるARMマイコンを搭載した極小のボードです。
2つのボタンと2つのLEDが乗っています。
スイッチサイエンスで購入することができます。
スペック
- CPU: Silicon Labs Happy Gecko EFM32HG309 25MHz ARM Cortex-M0+
- RAM: 8 KB
- ストレージ: 64 KB フラッシュ
開発環境のインストール
XCodeのインストール
App StoreからXCodeをインストールしてください。
XCodeとは
XCodeはMacやiPhoneのアプリを開発するための統合開発環境です。
TomuではこのXCodeに入っているツールのうち一部を使用するため、XCodeのインストールが必要です。
Command-line toolsのインストール
XCodeがインストールできたらXCodeを起動し、上部メニューからXCode → Open Developer Tool → More Developer Tools...
を選択してください。
ブラウザでdeveloper.apple.comが開かれるのでログインし、Command Line Toolsをダウンロードしてください。
ダウンロードしたdmgを開き、中のpkgファイルをダブルクリックするとインストールが始まるので、指示に従ってインストールを進めてください。
TomuではこのCommand-line toolsに入っているツールのうち一部を使用するため、Command-line toolsインストールが必要です。
Homebrewのインストール
アプリケーション → ユーティリティ → ターミナル
を起動し、下記の内容を貼り付けてエンターを押してください。Homebrewがインストールされます。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrewとは
Homebrewはmac用のソフトウェア管理ツール(パッケージマネージャ)です。
パッケージマネージャは、ソフトウェアのインストール・アップグレード・アンインストールをするためのソフトです。
特にソフトウェア開発やサーバを立てるためのソフトの管理に優れています。
TomuではいくつかのツールをHomebrew経由でインストールするため、Homebrewのインストールが必要です。
dfu-utilのインストール
ターミナルに下記のコマンドを入力しエンターを押してください。dfu-utilがインストールされます。
brew install dfu-util
上記のコマンドで、Homebrew経由でdfu-utilをインストールされます。
dfu-utilとは
(ざっくりいうと)作成したソフトウェアをMac(PC)からTomuに転送するためのツールです。
(もうちょっとくわしくいうと)USBデバイスのファームウェアを書き換えるための規格がDFUです。TomuはこのDFUをサポートしており、DFUプロトコルで作成したソフトウェアを転送することができます。dfu-utilはMac(PC)からUSBデバイスに作成したソフトウェアを転送するためのツールです。
GNU Arm Embedded Toolchainのインストール
ターミナルに下記のコマンドを入力しエンターを押してください。GNU Arm Embedded Toolchainがインストールされます。
brew cask install gcc-arm-embedded
公式のサンプルではGNU Arm Embedded Toolchainのサイトよりダウンロードするように書かれていますが、Homebrew経由でインストールする方が楽なので、ここではHomebrew経由でインストールしています。
クイックスタートサンプルのダウンロード
I'm TomuのクイックスタートサンプルのGithubサイトからソースコードをダウンロードします。
ダウンロードしたzipファイルを展開し、展開してできたフォルダtomu-quickstart-master
をとりあえずデスクトップに移動します。
動かしてみる
いくつかあるサンプルのうち、TomuをUSBメモリにするサンプルを実行してみましょう。
クイックスタートサンプルのダウンロード
ターミナルに下記のコマンドを入力し、tomu-quickstart-master
のディレクトリに移動します。
cd ~/Desktop/tomu-quickstart-master
ターミナルに下記のコマンドを入力し、usb-msc
のディレクトリに移動します。
cd usb-msc
ターミナルに下記のコマンドを入力します。
このコマンドを入力することで、ソースコードからソフトウェアが作成されます(コンパイル)。
make
Finder(Windowsの場合はエクスプローラ)でtomu-quickstart-master/usb-mscのディレクトリをみてみると、usb-msc.bin, usb-msc.dfu, usb-msc.elf
のファイルが作られているのが分かります。
このうちusb-msc.dfu
がTomuに転送するソフトウェアです。
USBにTomuを刺します。そうするとTomuの赤と緑のLEDが交互に光ります。
赤と緑のLEDが交互に光っているのはブートローダーモード(Bootloader mode)と呼ばれ、ソフトウェアの転送を待っている状態です。
https://tomu.im より引用
Tomuがブートローダーモードの状態で、ターミナルに下記のコマンドを入力します。
下記のコマンドを入力すると、usb-msc.dfuがTomuに転送されます。
dfu-util --download usb-msc.dfu
転送が終わるとTomuが自動で再起動し、Mac(PC)からは約500KBのUSBメモリとして認識されます。
TomuをUSBから抜いてもう一度刺すと、dfu-utilで転送したソフトウェアが実行されず、ブートローダーモードに戻るようです。
(どこかのピンをショートさせるとUSBに刺したときに転送したソフトウェアが実行されるようになるっぽいけど、未確認。)
Tomuを触ってみて
よいところ:PCとTomuがあればOK
チップにソフトウェアを書き込む専用のライターも必要ないし、開発のためのコンパイラやツールも全て無料なので、USBポートのあるPCとTomuだけあればOK。
開発のためのPCもWindows、Mac、Linuxに対応しており環境を選ばない。
よいところ:最小のハードウェア
ARM CPUとLED、いくつかの抵抗とコンデンサのみで構成されていて、複雑なところがない。
回路図が読めない私でもTomuの回路図なら理解できる(気がする)。
よいところ:すべてオープン
回路図(デザインデータ)、部品リスト(BOM)、ブートローダのソース等全てがオープン。
構成も複雑じゃないので、ハードからソフトまで全部を理解しようと思えば理解できそう(ARMやUSBの知識は必要そうだけれど)。
よいところ:安そう
部品原価が2USD台(もしかしたら2USD未満かも)くらいかと思うので、将来性のある価格とはいえそう。
ネットを絡めた複雑なことをするのはハードルが高そう
「ツイートされたらLEDを光らせる」みたいなことをしようとすると「ツイッターのAPIを定期的に読み込んで解析するPCプログラミングの知識」「PCとTomu間でデータを転送するためのUSBの知識」「Tomu(ARM CPU)のプログラミング知識」あたりが必要でハードルは低く無さそう。
ちなみに、Raspberry Piで同じことをするなら「ツイッターのAPIを定期的に読み込んで解析するPCプログラミングの知識」だけで済む(はず)ので、そういうことがしたいならRaspberry Piの方がおすすめ。
ハードウェアや組み込みプログラミングの教材としての可能性
ハードウェアが複雑ではないし、ソフトウェアも無料でオープンなので、ハードウェアや組み込みプログラミングの初歩的な教材としての可能性は大きそう。
コンパイラもGCCなので標準的なC言語が書けるし。
大学や組み込みの研修で「ツイートされたらTomuのLEDを光らせる」という課題をやってみるのも面白そうかも。