Espruino環境を整える
Kickstarterを見ていたら、こんなものを見つけた。
Espruino: JavaScript for Things by Gordon Williams — Kickstarter
JavaScriptで制御できるマイコンボード、ってこれは面白そう!でも日付を見るともう出荷している様子。で調べてみると、公式ページがこちら。
Espruino - JavaScript for Microcontrollers
なるほど、シリアルポートでボードに接続し、JavaScriptでコードを書いていくのか。そして、コードを書くだけじゃなくて、Blocklyベースのビジュアルプログラミング環境もある、と。これは!!!!!!
ボードの購入
純正ボードは$39.95ということで、結構リーズナブルだけど、国内代理店がなくて海外通販。時間かかりそうなのと、相対的に送料が高い。誰か一緒に共同購入しませんか〜。
で、引き続き見ていると、おお!そうか、オープンソースなのか!
なるほど、純正のボード以外にも汎用のボードでも結構動くようだ。
BOARDS THAT ESPRUINO WORKS ON
Chip | Speed | Vars | Cost | USB | UARTs | SPIs | Bat | Arduino Headers |
SD Card |
|
STM32VLDISCOVERY | STM32F100 | 24Mhz | 250 | €12 | N | 3 | 2 | N | N | N |
STM32F3DISCOVERY | STM32F303 | 72Mhz | 2800 | €14 | Y | 3 | 2 | N | N | N |
STM32F4DISCOVERY | STM32F407 | 168Mhz | 5000 | €16 | Y | 6 | 3 | N | N | N |
OLIMEXINO-STM32 | STM32F103RB | 72Mhz | 700 | €20 | Y | 3 | 2 | LiPo | Y | Y |
LeafLabs Maple RBT6 | STM32F103RB | 72Mhz | 700 | €40 | Y | 3 | 2 | LiPo | Y | N |
'HY' 2.4" LCD | STM32F103VE | 72Mhz | 2800 | €30 | Y | 3 | 2 | N | N | Y |
'HY' 2.8" LCD | STM32F103RB | 72Mhz | 700 | €30 | Y | 3 | 2 | N | N | U |
'HY' 3.2" LCD | STM32F103VC | 72Mhz | 2000 | €30 | Y | 3 | 2 | N | N | Y |
Key: Y=Yes, N=No, U=Yes, but currently unimplemented
って!おお!STM32F3DISCOVERYとかSTM32F4DISCOVERYとかは秋月とかで売っているのを見たことあるぞ!小さめなボードが好きな僕にはちょっと大きく感じちゃたから敬遠してたボードだ!ってことで、秋月で早速買ってきた。
STM32F3DISCOVERYが1,250円(2014年10月現在)
STM32F4DISCOVERYが1,750円(2014年10月現在)でした。
実は、先にF3の方だけ買って試してみたんだけど、使い勝手の問題でF4も追加購入。
Espruino導入事前準備
まずはファームウェアのダウンロード。
このページの、
http://www.espruino.com/files/espruino_1v70.zip
このファイルをダウンロード。1v70が2014年10月7日時点での最新版。このファイルを解凍すると、中には各ボード用のファームウェアが含まれている。
この後の手順は以下のページにまとまっている。
が、このページにはボードごとの注意点なども書かれているので、その中で今回のボードをピックアップしてみると、
STM32F3DISCOVERY
- USBはボードに2つあるMiniUSBポートのうち「USB USER」と書かれた方に挿す
- ただし、電源ONにする時には挿していてはいけない
- すなわち「USB ST-LINK」という方で電源を供給した後、「USB USER」でPCと接続すること
- なお、Reset時も「USB USER」にUSBケーブルが刺さっていてはいけない
STM32F4DISCOVERY
- ヘッドフォンジャックの近くのMicroUSBボードに挿す
- ただし、別の手段で電源を供給する必要がある
- 試してみると、通信ポートとして利用するMicroUSBからは電源が供給されないため、反対側のMiniUSBから電源供給をする必要がある。
試してみると、F3の「Reset時もUSBが刺さっていてはいけない」という条件が思いの外面倒だったので、結局F4も買ってきてしまった、というわけだ。
ボードをMacで認識すると、/dev/tty.usbmodem1421と認識された。
Macでの導入方法
ファームウェアの書き込みに利用するstlinkをビルドしなければならないので、まずは必要になるライブラリなどをhomebrewを使って導入
brew install libusb
ln -s /usr/local/include/libusb-1.0/libusb.h /usr/local/include/
brew install git
brew install automake
次に、githubからstlinkのソースを持ってくる
git clone https://github.com/texane/stlink.git
stlinkのビルド
cd stlink
LIBRARY_PATH=/usr/local/lib
C_INCLUDE_PATH=/usr/local/include
./autogen.sh
./configure
make
ファームウェア書き換え。ファームウェアのファイル名はボードに合わせて。
./st-flash write espruino_1v70_stm32f4discovery.bin 0x08000000
すると
2014-10-07T01:43:23 INFO src/stlink-usb.c: -- exit_dfu_mode
2014-10-07T01:43:23 INFO src/stlink-common.c: Loading device parameters....
2014-10-07T01:43:23 INFO src/stlink-common.c: Device connected is: F4 device, id 0x10016413
2014-10-07T01:43:23 INFO src/stlink-common.c: SRAM size: 0x30000 bytes (192 KiB), Flash: 0x100000 bytes (1024 KiB) in pages of 16384 bytes
2014-10-07T01:43:23 INFO src/stlink-common.c: Attempting to write 198252 (0x3066c) bytes to stm32 address: 134217728 (0x8000000)
EraseFlash - Sector:0x0 Size:0x4000
Flash page at addr: 0x08000000 erasedEraseFlash - Sector:0x1 Size:0x4000
Flash page at addr: 0x08004000 erasedEraseFlash - Sector:0x2 Size:0x4000
Flash page at addr: 0x08008000 erasedEraseFlash - Sector:0x3 Size:0x4000
Flash page at addr: 0x0800c000 erasedEraseFlash - Sector:0x4 Size:0x10000
Flash page at addr: 0x08010000 erasedEraseFlash - Sector:0x5 Size:0x20000
Flash page at addr: 0x08020000 erased
2014-10-07T01:43:28 INFO src/stlink-common.c: Finished erasing 6 pages of 131072 (0x20000) bytes
2014-10-07T01:43:28 INFO src/stlink-common.c: Starting Flash write for F2/F4
2014-10-07T01:43:28 INFO src/stlink-common.c: Successfully loaded flash loader in sram
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 32768
size: 1644
2014-10-07T01:43:33 INFO src/stlink-common.c: Starting verification of write complete
2014-10-07T01:43:37 INFO src/stlink-common.c: Flash written and verified! jolly good!
こんなメッセージが出て、以上でファームウェアの書き換えは終了。
IDEのインストール
開発環境はChrome拡張として提供されている。ChromeAppがシリアル通信に対応しているので、Chromeをインストールしていない場合はまずはインストールする。
その後こちらからEspruino IDEのChrome拡張をインストールする。
Espruino Web IDE - Chrome Web Store
インストール後、Chromeの左上のアプリボタンをクリック、アプリ一覧の中から、「Espruino IDE」を選択すると、IDEが立ち上がる。左上の緑のポートボタンを押すとシリアルポートの選択画面になるので、
「/dev/tty.usbmodem1421」を選択すれば接続される。
なお、このIDEの半分は単なるシリアルコンソールなので、別にビジュアルプログラミングを使わない、というのであれば、ターミナルから
cu -l /dev/tty.usbmodem1421
として接続してプログラミングしても構わない。
とりあえず今日は環境構築まで。次回はLチカしてみたい。