34
ソーシャルなクラウド環境を利用して マイコン・プロトタイピングを迅速に! 2013年5月24日(金) ARM Cortex-M マイコン・ワークショップ2013 純一

tmp

Embed Size (px)

DESCRIPTION

tmp

Citation preview

Page 1: tmp

ソーシャルなクラウド環境を利用してマイコン・プロトタイピングを迅速に!

2013年5月24日(金) ARM Cortex-M マイコン・ワークショップ2013

勝 純一

Page 2: tmp

自己紹介

勝 純一 じぇーけーそふと     @jksoft913 http://facebook.com/jksoft 活動:電子工作やロボット工作の記事や講師活動 仕事:組み込みソフトエンジニア    (日信ソフトエンジニアリング)

Page 3: tmp

アジェンダ

1.「うおーるぼっと」の実演

2.mbedとは

 2.1 クラウド開発環境

 2.2 mbedプロジェクトの最近の動き

 2.3 mbedの種類

 2.4 mbedのコミュニティ

 2.5 mbedのメリット,デメリット

3.「うおーるぼっと」の開発

 3.1 「うおーるぼっと」とは

 3.2 「うおーるぼっと」開発の経緯

 3.3 iPhoneでコントロールする仕組み

Page 4: tmp

1.うおーるぼっとの実演

ロボット制御のプロトタイピング用に開発したロボットキットです。 まずは実際の動作をご覧下さい。

Page 5: tmp

1.mbedとは

高速プロトタイピングが可能なマイコンモジュール

構築済みの開発環境をクラウドサービスとして提供することにより 導入時の複雑な環境構築を簡略化

代表的なmbed 「mbed NXP LPC1768」

ブラウザ上でプログラミングして開発する

Page 6: tmp

1.mbedとは

高速プロトタイピング

○アイディアからいち早くカタチを作る。

 ⇒即座にデモ機が完成

  ⇒実際に動くデモ機から具体的な仕様検討を行う。

   ⇒プロジェクトのスタートアップや投資家へのアピール

Page 7: tmp

1.mbedとは

mbedの開発の流れをデモします。

Page 8: tmp

1.mbedとは

2.1 クラウド開発環境

インターネットが繋がる環境で一般的なブラウザが動作する 環境であればWindowsでもLinuxでもMacOSでも開発可

サーバ上でコンパイルするのは RealVew4(RVDS4.1)

開発言語はC++

ソースコードはクラウド上に保存 リビジョン管理機能もあり

Page 9: tmp

1.mbedとは

2.1 クラウド開発環境

充実したライブラリでマイコンによる初期化やペリフェラルの 扱いを意識せずに作り始められる。

LEDをチカチカさせる最初の プログラムもこれだけ。

デジタル出力ライブラリ

Page 10: tmp

1.mbedとは

2.1 クラウド開発環境

•  デジタル入出力 •  アナログ入出力 •  PWM出力 •  タイマー割り込み •  UART •  I2C •  SPI •  USB ホスト/ファンクション •  LAN •  RTOS

•  キャラクタLCD •  Bluetooth •  HTTPサーバ/クライアント •  WebSocket •  FileSystem •  さまざまなデバイスとの

通信ライブラリ etc..

標準ライブラリ クックブックライブラリ

Page 11: tmp

1.mbedとは

2.2 mbedプロジェクトの最近の動き

mbedプロジェクトの運営は英国ARM社が行っている。 オフィシャルのブログは頻繁に更新され、サービスの 利便化が頻繁に行われている。 2013年2月にはmbed2.0と題されたサービスの大幅な アップグレードが行われた。

Page 12: tmp

1.mbedとは

mbed2.0

  •  CMSIS-DAPに対応し、オフライン

環境でデバッガが使用可能になった。 •  mbed-HDKをメーカーに提供し、mbedサービスを

ベースにした独自のハードウェア開発をサポート

ハードウェア

Page 13: tmp

1.mbedとは

mbed2.0

  •  mbed-SDKをオープンソース化 •  オンラインツールを無料化

ソフトウェア

Page 14: tmp

1.mbedとは

2.3 mbedの種類   mbed NXP LPC1768 mbed NXP LPC11U24 FRDM-KL25Z

概要 多機能版mbed 低消費電流版mbed mbed互換ボード

クロック 96MHz 48MHz 48MHz

FLASH 512KB 32KB 32KB

RAM 64KB 8KB 8KB

消費電流 60mA~200mA 1mA~50mA 1mA~50mA

デジタル入出力

26 30 30

PWM出力 6 8 8

アナログ入力 6(12bit) 6(10bit) 6(10bit)

アナログ出力 1 無し 無し

UART 3 1 1

SPI 2 2 2

I2C 2 1 1

USB ホスト/ファンクション ファンクション ファンクション

LAN 1 無し 無し

CAN 2 無し 無し

Page 15: tmp

1.mbedとは

2.3 mbedの種類

さらに新しいmbed互換ボードがNXPより発売予定

Page 16: tmp

1.mbedとは

2.4 mbedのコミュニティ   •  mbed.orgでは作った、ソースコードがシェアできる。

シェアしたソースコードはシームレスに自分の開発環境へ •  FAQやフォーラムで質問、疑問は共有できる。

•  コラボレーション機能で複数人で開発可能。

Page 17: tmp

1.mbedとは

2.5 mbedのメリット,デメリット

  •  アイディアをすぐに具現化できる •  安価で開発できる •  コミュニティを活用し、一人で悩まなくて済む

メリット

Page 18: tmp

1.mbedとは

2.5 mbedのメリット,デメリット

  •  インターネットに繋がる環境が必要

•  導入は楽だが、マイコン自体の勉強にはならない。 •  クローズドなライブラリの中身がメンテナンスできない。

デメリット

Page 19: tmp

3.「うおーるぼっと」の開発

3.1 「うおーるぼっと」とは

うおーるぼっとはクルマ型ロボットを簡単にプロトタイピングできるロボットベースボード

�� �I-E0D�J�,*+

�I�<92E����

� ���

A.3F�

(%'&� �$ � � ������

(%'&� �$ � � ���#���

BG7� ������)H�

BG7;C.>� "���������

6F4� ���?/:6F4�

! !����)J�

5.98� �5.98�

71:5.98)H�

MLK� @5:3=17� �

Page 20: tmp

3.「うおーるぼっと」の開発

3.1 「うおーるぼっと」とは

反射型フォトセンサは標準搭載ライントレーサーも プロトタイピング可能

Page 21: tmp

3.「うおーるぼっと」の開発

3.1 「うおーるぼっと」とは

バンパーと読んでいる拡張ボードを取り付けることで、 回路やセンサーを追加できる

LEDを8個追加できる ナイトライダーバンパー

試作中の加速度センサが 追加できるバンパー

Page 22: tmp

3.「うおーるぼっと」の開発

3.1 「うおーるぼっと」とは

ちょっと面白い機能として、磁石でホワイトボードなどを走らせることができる

Page 23: tmp

3.「うおーるぼっと」の開発

3.2 「うおーるぼっと」開発の経緯   最初は自分の子供に遊ばせるためのおもちゃとして製作

展示会などで遊んでもらったら・・

販売してほしいとの声

Page 24: tmp

3.「うおーるぼっと」の開発

3.2 「うおーるぼっと」開発の経緯   商品化に向けて、試作を繰り返す。

量産の難しい機械パーツを極力減らし、再設計

Page 25: tmp

3.「うおーるぼっと」の開発

3.2 「うおーるぼっと」開発の経緯   試作も最終段階の状態で資金調達にクラウドファンディング

Page 26: tmp

3.「うおーるぼっと」の開発

3.2 「うおーるぼっと」開発の経緯

 現状は組み立てキットとして製品化。  販売中です。

 後々は、手軽に遊べるおもちゃとしても製品化したい。

Page 27: tmp

3.「うおーるぼっと」の開発

3.2 「うおーるぼっと」開発の経緯

アイディア

試作 クラウドサービスを活用

小ロッドでも発注 できる工場

プロトタイプエンジニアリング

・Youtubeやニュースサイトで紹介⇒反響 ・クラウドファンディング⇒資金調達

委託販売を行ってる ショップ

 個人や会社の小プロジェクトでも製品化までの道のりが手軽になってきた

Page 28: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

冒頭にデモを行った、iPhoneでコントロール仕組みを簡単に紹介。

Page 29: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

うおーるぼっとにはUSBタイプのBluetoothドングルを取り付け、iPhoneとはBluetoothで通信をしている。

Page 30: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

通常のBluetooth通信をiPhoneと外部機器間で行う場合、Appleの有料プログラムに参加する必要がある。

iPhone4S以降に搭載されているBluetooth4.0の新規格であるBluetooth Low Energy(以降 BTLE )を使えばその認証の必要は無く、外部機器と通信させることができる。

本来は低消費電力を売りにしている規格だが、I/Fの敷居が高い iPhoneとのI/Fとしては手軽。ただし高速な通信は行えない。

Page 31: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

BTLEを使った機器同士の通信は、機器それぞれに「Central」と「Peripheral」という役割を持たる。 「Central」は親機、「Peripheral」は子機のようなイメージ。

Central

Peripheral

Peripheral

Peripheral

Central

Peripheral Peripheral

Page 32: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

「Peripheral」は自分が持ってる能力を「Profile」という情報で「Central」に対して通知し、「Central」は必要とする機能を持った「Peripheral」と接続。 UUIDという機能ごとに割り振られたIDで判断する。

Peripheral(Profile)Service

Characeristic

Characeristic

UUID

UUID

UUID

Page 33: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

「Peripheral」と接続した「Central」は「Peripheral」が持つ「Service」の中の「Characeristic」に対して、リード/ライトする。

Central

Peripheral(Profile)Service

Characeristic

Characeristic

UUID

UUID

UUID

Page 34: tmp

3.「うおーるぼっと」の開発

3.3 iPhoneでコントロールする仕組み

うおーるぼっとをiPhoneからコントロールするイメージに 当てはめると。

iPhone

Profile(うおーるぼっと)

Service(コントロール)

モータのスピード2バイトの値±100,±100