そのボード、僕が積んでおきます。

たくさんの電子工作基板が積みっぱなしになってるので、頑張って工作しようとしていますが、どんどん溜まっていっております。

Espruino環境を整える

Kickstarterを見ていたら、こんなものを見つけた。


Espruino: JavaScript for Things by Gordon Williams — Kickstarter

 

JavaScriptで制御できるマイコンボード、ってこれは面白そう!でも日付を見るともう出荷している様子。で調べてみると、公式ページがこちら。

Espruino - JavaScript for Microcontrollers

 

なるほど、シリアルポートでボードに接続し、JavaScriptでコードを書いていくのか。そして、コードを書くだけじゃなくて、Blocklyベースのビジュアルプログラミング環境もある、と。これは!!!!!!

 

ボードの購入

純正ボードは$39.95ということで、結構リーズナブルだけど、国内代理店がなくて海外通販。時間かかりそうなのと、相対的に送料が高い。誰か一緒に共同購入しませんか〜。

で、引き続き見ていると、おお!そうか、オープンソースなのか!


espruino/Espruino · GitHub

 

なるほど、純正のボード以外にも汎用のボードでも結構動くようだ。

Espruino - Other Boards

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導入事前準備

まずはファームウェアのダウンロード。

Espruino - Download

このページの、

http://www.espruino.com/files/espruino_1v70.zip

このファイルをダウンロード。1v70が2014年10月7日時点での最新版。このファイルを解凍すると、中には各ボード用のファームウェアが含まれている。

 

この後の手順は以下のページにまとまっている。

Espruino - Other Boards

 

が、このページにはボードごとの注意点なども書かれているので、その中で今回のボードをピックアップしてみると、

 

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 IDEChrome拡張をインストールする。


Espruino Web IDE - Chrome Web Store

 

インストール後、Chromeの左上のアプリボタンをクリック、アプリ一覧の中から、「Espruino IDE」を選択すると、IDEが立ち上がる。左上の緑のポートボタンを押すとシリアルポートの選択画面になるので、

f:id:hine:20141007020322j:plain

「/dev/tty.usbmodem1421」を選択すれば接続される。

 

なお、このIDEの半分は単なるシリアルコンソールなので、別にビジュアルプログラミングを使わない、というのであれば、ターミナルから

cu -l /dev/tty.usbmodem1421

として接続してプログラミングしても構わない。

 

とりあえず今日は環境構築まで。次回はLチカしてみたい。