« 2011年9月 | トップページ | 2011年11月 »

2011年10月30日 (日)

Cortex-M0版mbed ファーストタッチ(その3) ライブラリ

Cortex-M0版mbedことmbed NXP LPC11U24のサンプルを頂いたので数回に分けてレビュー致します。
(ここでは今までのmbed NXP LPC1768をM3版、レビュー対象のmbed NXP LPC11U24をM0版と略しています。)

M0版とM3版のスペック比較はこちらをご覧下さい。
ファーストタッチ(その1)
ファーストタッチ(その2) USB機能

今度はM3版で使ってるライブラリやベースボードがそのまま使えるか試してみました。
定番のTextLCDGEMMYカードです。

01

結果から言いますと普通に動きました。
GEMMYカードの場合、LANコネクタは直接mbedの端子に繋がっているのでそこに割り当てられているポートは使えません。
もしかしたらLANコネクタはパルストランス内蔵の物なのでそのポートをデジタル出力にしてしまうとまずいかもしれませんね。USBコネクタもホスト機能が使えないので通常の接続ではデバイス機能も使用出来ません。
その他、サーボ接続や赤外線受光部はそのまま使えると思います。

02

普通にデジタル出力をするだけのライブラリなので当たり前と行ったら当たり前ですが^^;

プログラム的にもそのままライブラリを組み込んでAPIをコールしているだけです。
今回はボタンを押すごとにDeepSleepから抜けて変数をカウントアップして表示するようにしています。
DeepSleepのAPIは標準ライブラリに含まれているようでそのまま使えます。
(M3版ではコンパイルエラーになる)


#include "mbed.h"
#include
<TextLCD.h>

TextLCD lcd(p11, p12, p27, p28, p29, p30);
InterruptIn wakeup(p13);

DigitalOut myled(LED1);

int
main() {
    int count = 0;

    wakeup.mode(PullUp);
    wakeup.rise(NULL);

    lcd.locate(0, 0);
    lcd.printf("M0 mbed Test");

    while (1) {
        lcd.locate(0, 1);
        lcd.printf("Count = %d",count);

        deepsleep();

        count++;
        myled =! myled;
    }
}

ちょっと電流を計らなかったので次回はDeepSleepでどのぐらい消費電流が変化しているか見てみたいと思います。

| | コメント (0) | トラックバック (0)

Cortex-M0版mbed ファーストタッチ(その2) USBデバイス機能

Cortex-M0版mbedことmbed NXP LPC11U24のサンプルを頂いたので数回に分けてレビュー致します。
(ここでは今までのmbed NXP LPC1768をM3版、レビュー対象のmbed NXP LPC11U24をM0版と略しています。)

M0版とM3版のスペック比較はこちらをご覧下さい。
ファーストタッチ(その1)

今回はUSBデバイス機能を使ってみました。
M3板はUSBホストもデバイスも対応していましたがM0版はデバイスのみとなっています。

USBデバイス機能を使うのに難しいことは必要なくD+とD-をホスト(パソコンなど)に繋ぐだけです。
Circit
Pic0
電源もホストから供給するようにしています。

プログラムはサンプルをそのまま使いました。
mbedをUSBマウス(HID)として動かし、マウスのカーソルをグルグル円を書くように動かすプログラムです。


#include "mbed.h"
#include "USBMouse.h"
#include <math.h>

USBMouse mouse;

int main(void) {

    int16_t x = 0;
    int16_t y = 0;
    int32_t radius = 10;
    int32_t angle = 0;

    while (1) {
        x = cos((double)angle*3.14/180.0)*radius;
        y = sin((double)angle*3.14/180.0)*radius;
        mouse.move(x, y);
        angle += 3;
        wait(0.001);
    }
}


HIDマウスのクラスは用意されているので座標を計算してAPIに渡すのみです。
他にもUSBキーボードとして動かすサンプルも用意されていました。

Android端末でUSBホストがあるICONIA TAB A500で試してみました。
Android3.1であればマウスが使えるので繋ぐだけです。

Pic
赤丸のマウスカーソルがぐるぐる動きます。
Android端末のアクセサリ接続もAndrodi側がホストになる方法でも可能だったと思うので、
Android端末にセンサーなどを接続することも手軽にできますね。

次は何を試そうかな。

| | コメント (1) | トラックバック (0)

2011年10月29日 (土)

Cortex-M0版mbed ファーストタッチ(その1)

Cortex-M0版mbedことmbed NXP LPC11U24のサンプルを頂いたので数回に分けてレビュー致します。
(ここでは今までのmbed NXP LPC1768をM3版、レビュー対象のmbed NXP LPC11U24をM0晩と略しています。)

M0版とM3版のスペック比較はこちらをご覧下さい。

Dsc03437_2 Dsc03441_2
M0版サンプルのパッケージ内容はM3版と同様です。

Dsc03445
M0版(左)とM3版(右)の比較
ぱっと見た感じ色とMCUが変わっているのみ。

Dsc03447
こちらは裏側
EtherPHYチップは無くなっている。

Dsc03455
電源&アクセスランプはボードの色に合わせてオレンジ色
M3版と同様にUSBでPCに繋げば2MBのUSBメモリとして認識される。

Dsc03458
とりあえず定番のLチカ
4つのLEDもオレンジ色になっている。

20111029_35804
プログラムはM3版と同じ様にお手軽に書ける。
ハードウェアの違いはライブラリで吸収しているのでM0版にも存在する機能を使ったプログラムであればそのまま移植出来そう。

20111029_35726_2
PWM機能は無くなっているので、コンパイルでエラーになってしまう。
ここはTicker(定周期タイマー割り込み)等を使って実装する必要がある。

価格と発売日は未定ですがパッケージになっているのでもうすぐではないでしょうか。
次は他のペリフェラルを試してみます。

(発売前の情報公開はmbed開発チーム様に了解を得ました。)

| | コメント (0) | トラックバック (0)

2011年10月26日 (水)

Cortex-M0版mbed

今、mbed.orgではCortex-M0版のmbedの情報が徐々に公開されています。

m0 release

どうやら搭載されるマイコンはLPC11U24になるようです。
LPC11U24のデータシートがNXPオフィシャルで見つからない?ここで見れます)

スペックは以下になる様です。
クロック:48MHz
Flash:32KB
SRAM:8KB
デジタル入出力 x 30
アナログ入力 x 6 (10bit)
UARTx1
SPIx2
I2Cx1
USB(デバイス側)

M3版との比較としては

                                                                                               
 M3版(LPC1768)M0版(LPC11U24)
クロック96MHz48MHz
FLASH512KB32KB
SRAM64KB8KB
デジタル入出力2630
PWM出力6無し⇒8
ここ参照
アナログ入力6(12bit)6(10bit)
アナログ出力1無し
UART31
SPI22
I2C21
USBホスト/デバイスデバイス
LAN1無し
CAN2無し

M0pinout

ピンは互換性があり、今までのmbedベースボードも利用できそうですね。
(但しLANは使えない)

M0版はDeepSleep対応でバッテリを使ったアプリケーションなどで省電力化にも期待できそうです。中央の電源・アクセスLEDもコントロールできるのかな?

M0版もオンラインコンパイラ対応で、上記のペリフェラルの範囲であればM3版と同じソースコードをM0版でコンパイルし直せば動く感じ。

私が書いたトランジスタ技術2011年9月号のmbed 3分クッキング(USBタッチパネル・キーボード)がソースコードそのまま動けば手軽にUSB機器を自作することができますね。

あとは価格がどのぐらいになるかです。

日本だと4200円~4500円ぐらいの値段です。
M0版は廉価版ではなく、低消費電力アプリケーション向け。
サービスを考えると妥当な値段です。

機能やサービスを考えるとM3版もかなり安いと思いますが、趣味人にはちょっと躊躇する値段ですね。
少なくともArduinoやLPCXpressoと同じぐらい価格になってほしいですが、mbedチップとフラッシュ、サービスを考えると厳しいのかな気もします。

とりあえず日本で手に入る様になったらいろいろいじってみたいです。

| | コメント (0) | トラックバック (0)

2011年10月 5日 (水)

mbed/ARM活用事例: 世界で利用の広まる組み込みマイコンを理解するために

CQ出版社からmbedとARMの本が発売されました。
C++言語の入門や抵抗のカラーコードの読み方から自作デジカメの作り方やネットワークの事例などなど、大ボリュームの内容なので、初心者から上級者まで楽しめる内容になっていると思います。


私も第8章 壁を這うロボットを書かせてもらいました。mbed+BluetoothドングルとWiiリモコンの扱い方からうおーるぼっとの作り方を記事にしています。

目次

 イントロダクション
第1章 初めてのmbed利用
 1-1 lesson1 組み込みマイコンの世界への誘い
 1-2 lesson2 これがmbedだ!
 1-3 lesson3 まずは,定番 LEDチカチカ
 1-4 lesson4 LEDチカチカ・プログラムを改造してみよう
 1-5 lesson5 スイッチ入力に挑戦してみよう!
 1-6 lesson6 ブレッドボードにLEDを増設してみよう
 1-7 lesson7 A-D変換して,温度を測ってみよう
 Column…1-1 mbedで何ができるか?
 Column…1-2 開発言語はC++

 mbedに表示機能を追加する
第2章 キャラクタLCDを極めよう
 2-1 使用するLCDについて
 2-2 TextLCDライブラリについて
 2-3 LCDに文字を表示する
 2-4 温度と湿度を測定しLCDに表示する
 2-5 mbedでLCDの外字登録と表示をしてみよう
 2-6 文字が流れるプログラムを制作する
 Column…2-1 半角カタカナの表示について
 Column…2-2 mbed用評価ボードについて

 外部メモリの活用
第3章 SDカードを使ってファイルを操作するプログラムを作る
 3-1 ファイルにデータを書き込む
 3-2 SDカード・スロットの準備
 3-3 SDFileSystemライブラリとファイル入出力関数について
 3-4 オリジナル楽譜データをマイクロSDから読み込み音楽を鳴らしてみよう!
 3-5 温度と湿度データをマイクロSDに記録する
 Column…3-1 mbedが消えちゃった!
 Column…3-2 mbedのRTC用バッテリはあまり持たない?

 ディジタル入出力の活用
第4章 チョロQハイブリッドで赤外線リモコン制御の基礎を学ぼう
 4-1 チョロQハイブリッドとは
 4-2 チョロQハイブリッドの制御信号を解析してみる
 4-3  赤外線LEDと赤外線受光モジュールの関係
 4-4 チョロQのリモコンでmbedを制御する
 4-5 チョロQハイブリッドをジョイスティックで制御する
 4-6 オリジナル・リモコンについて
 4-7 赤外線LEDの出力について
 4-8 オリジナル・リモコン・プログラムの作成
 Column…4-1 赤外線を見る

 アナログ入力の活用
第5章 赤外線距離センサを使う
 5-1 赤外線距離センサについて
 5-2 出力電圧と距離を変換する式を求めよう
 5-3 距離センサの加工とmbedとの接続
 5-4 電子定規e-rulerの作成
 5-5 衝突検知システムの製作
 5-6 なんちゃってテルミンの製作

 ネットワークの利用
第6章 mbedをネットワークにつなげよう!
 6-1 mbedをネットワークに接続するための準備
 6-2 ネットワーク・プログラムの概略
 6-3 UDP通信プログラムの作成
 6-4 UDPDataClientの動作確認
 6-5 TCP通信プログラムの概要
 6-6 TCPプログラムの作成
 6-7 TCPCtrlServerの動作確認
 6-8 ネットワークを使ったチョロQ遠隔制御プログラムの作成
 6-9 TCPChoroQCtrlの動作確認

 ネットワークと外部コントロールの組み合わせ
第7章 mbedで作る電力不足時代対策システムの製作
 7-1 mbedで作る電力不足時代対応システム
 7-2 電力供給状況表示装置の製作
 7-3 電力供給状況対応電源制御装置の製作
 7-4 電力供給逼迫時シャットダウン装置の製作
 Column…7-1  システムの問題点と,ゆるい草の根スマートグリッドへの応用

 Bluetoothと外部コントロールの組み合わせ
第8章 壁を這うロボット
 8-1 クラウドの環境では開発するためのツール以外に,コミュニティ機能も備わっている
 8-2 USBポートでBluetoothの通信
 8-3 プログラムの準備
 8-4 車体の用意

 充電とデータ・ロギング
第9章 太陽光発電モニタ・システムの製作
 9-1 MPPTソーラ・チャージ・コントローラの製作
 9-2 電流計測ユニット
 9-3 過電圧保護ユニットの製作
 9-4 5V安定化電源ユニット
 9-5 太陽光発電モニタ・ファイル記録システムのmbedプログラム
 9-6 無線LAN対応にバージョンアップ
 9-7 LAN接続
 9-8 無線LANへの対応
 9-9 無線LAN対応のプログラム
 9-10 ネクストエナジー・アンド・リソース(株)見学レポート

 画像データのハンドリング
第10章 シリアル接続カメラと有機ELディスプレイ内蔵スイッチで作るmbedディジタル・カメラ
 10-1 mbedでデジカメを作る
 10-2 mbedディジタル・カメラの回路
 10-3 μCAMの利用手順
 10-4 カラーISスイッチの利用手順
 10-5 μCAM-TTLとIS-C15ANP4を使ったmbedディジタル・カメラ
 10-6 mbedデジカメを動かしてみる

 ARMと組み込み技術を手軽に学ぶ
第11章 ビュート ローバーARMによる開発入門
 11-1 ビュート ローバーARMの組み立て
 11-2 ビュートビルダー2の使い方
 11-3 LPCXpressoで?Hello World!?
 11-4 Bluetoothを楽しもう

 はじめてのARM開発
第12章 東芝製TMPM364F10FG+KEIL MCBTMPM360入門
 12-1 パッケージの内容
 12-2 開発環境μVision4を使ってみる
 12-3 サンプル・プロジェクトの実行
 12-4 デバッグ・セッションの使い方
 12-5 トレースの使い方
 12-6 ストップウォッチの使い方
 12-7 アナライザを使う

 はじめてのARM開発
第13章 IAR Embedded Workbench IDEを富士通の評価ボードで試す
 13-1 富士通Cortex-M3マイコンの評価ボード・キットの内容
 13-2 IAR Embedded Workbench IDEのインストール
 13-3 サンプル・プログラムを動かしてみる
 Column…13-1 富士通のARMマイコンMB9BF506N/Rの評価ボード
 Column…13-2 Flash Debug/RAM Debug

| | コメント (0) | トラックバック (0)

« 2011年9月 | トップページ | 2011年11月 »