読者です 読者をやめる 読者になる 読者になる

元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

Processing2ではじめるエェェェェンベッド(mbed)

mbedJSとprocessingAPIを使ってmbedを始めましょうな記事です。

mbedJSの概要

mbedJSはWebSocketを使ったRPCサーバのファームウェアです。ネットワークに接続したmbedを制御することができます。Processingのほかにも、JavascriptJava等からも操作できます。


f:id:nyatla:20140722153727p:plain



mbadJSを使うと、mbedSDKに用意されている基本的なAPIをほぼそのままの形でPerocessingから使うことができます。


ProcessingでLチカ

import jp.nyatla.mimic.mbedjs.psgapi.*;

Mcu mcu=new Mcu(this,"192.168.128.39");
DigitalOut a=new DigitalOut(mcu,PinName.LED1);
int c=1;
void setup()
{
}
void draw()
{
  a.write((c/10)%2);
  c++;
}

はじめかた

mbedJSの準備

mbedJSはネットワークに接続して使います。LAN環境を準備してください。

f:id:nyatla:20140722142858p:plain

ハードウェアの準備

mbedJSはmbed(LPC1768)を1個と、LANコネクタを備えた拡張ボード等準備してください。*1


mbed NXP LPC1768

mbed NXP LPC1768

mbed用イーサネット接続キット

mbed用イーサネット接続キット


拡張ボードがない時は、次のようにLANコネクタを配線してください。


f:id:nyatla:20140722135751p:plain

ファームウェアコンパイルと書き込み

mbed.orgでmbedJSのファームウェアコンパイルし、binファイルをダウンロードしてmbedへ書き込んでください。
mbedJS - a mercurial repository | mbed


ネットワークの設定

mbedJSのネットワークアドレスを設定します。mbedドライブに"mimic.cfg"の名前でテキストファイルを作り、以下のように書きます。IPアドレスは好みのものに置き換えてください。

f:id:nyatla:20140722143115p:plain


動作テスト

mbedをイーサネットケーブルに接続して、mbedをリセットして指定したIPアドレスにアクセスしてください。mbedJSのトップページが表示されれば、mbedJSのセットアップは成功です。

f:id:nyatla:20140722140739p:plain


mbedJS Processing APIの準備

mbedJS Processing APIはProcessing2のライブラリです。Processing1では動作しません(たぶん)
Processing2がない場合は、最新版をダウンロードしておいてください。
Processing.org

ライブラリのダウンロード

GitHubからmbedJS Processing APIをダウンロードしてください。
nyatla/mbedJS-Processing-API · GitHub

zipファイルの直リンクはこちらです。

ライブラリのセットアップ

zipを展開してProcesisngのスケッチブックフォルダへ置きます。Processing2では、スケッチブックフォルダにライブラリを置くと、メニューからライブラリのインポートが楽にできます。

f:id:nyatla:20140720215947p:plain

サンプルの実行

exampleにあるLEDBlinkのサンプルを実行してみましょう。
LEDの点滅が確認できれば成功です。


f:id:nyatla:20140720214947p:plain

APIの種類

mbedJSで使用できるAPIは以下の通りです。
クラスライブラリの関数は、出来る限りmbedSDKと同じ構成にしてあります。

  • AnalogIn
  • AnalogOut
  • BusIn
  • BusOut
  • BusInOut
  • DigitalIn
  • DigitalOut
  • I2C
  • I2CSlave
  • PortIn
  • PortOut
  • PwmOut
  • Serial
  • SPI
  • SPISlave

mbed(1768)以外のボードで使う方法

mbedJSはLPCXpresso1769、LPC4088 QuickStartBoardでも使用できます。
これらのボードはローカルファイルシステムがないため、1度mbedJSの初期アドレス192.168.0.39にアクセスしてセットアップページからIPアドレスを変更する必要があります。

f:id:nyatla:20140722153501p:plain

また、初期MACアドレスがすべて同一なため、複数のmbedを同一ネットワークに接続する場合はMACアドレスを変更する必要もあります。




雪だるま

雪だるま

*1:LPCXpresso1769やLPC4088 QuickStart Boardでも動作はしますが、設定の方法が少し違うのであとで説明します。