Tomu

I'm Tomuを動かしてみる(USBメモリにしてみる)

本文はI'm TomuMac上でで開発環境のインストールと、サンプルコードのコンパイル、コンパイルしたソフトウェアをTomuに転送して実行してみます。

詳しくは公式のサンプルを参照してみてください。


I'm Tomuとは

TomuはUSBポートに差し込めるARMマイコンを搭載した極小のボードです。

2つのボタンと2つのLEDが乗っています。

スイッチサイエンスで購入することができます。

IMG_4653.jpg


スペック


  • 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サイトからソースコードをダウンロードします。

Screen_Shot_2018-12-13_at_21_08_38.png

ダウンロードした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を光らせる」という課題をやってみるのも面白そうかも。