Upload
junichi-katsu
View
655
Download
4
Embed Size (px)
DESCRIPTION
tmp
Citation preview
ソーシャルなクラウド環境を利用してマイコン・プロトタイピングを迅速に!
2013年5月24日(金) ARM Cortex-M マイコン・ワークショップ2013
勝 純一
自己紹介
勝 純一 じぇーけーそふと @jksoft913 http://facebook.com/jksoft 活動:電子工作やロボット工作の記事や講師活動 仕事:組み込みソフトエンジニア (日信ソフトエンジニアリング)
アジェンダ
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でコントロールする仕組み
1.うおーるぼっとの実演
ロボット制御のプロトタイピング用に開発したロボットキットです。 まずは実際の動作をご覧下さい。
1.mbedとは
高速プロトタイピングが可能なマイコンモジュール
構築済みの開発環境をクラウドサービスとして提供することにより 導入時の複雑な環境構築を簡略化
代表的なmbed 「mbed NXP LPC1768」
ブラウザ上でプログラミングして開発する
1.mbedとは
高速プロトタイピング
○アイディアからいち早くカタチを作る。
⇒即座にデモ機が完成
⇒実際に動くデモ機から具体的な仕様検討を行う。
⇒プロジェクトのスタートアップや投資家へのアピール
1.mbedとは
mbedの開発の流れをデモします。
1.mbedとは
2.1 クラウド開発環境
インターネットが繋がる環境で一般的なブラウザが動作する 環境であればWindowsでもLinuxでもMacOSでも開発可
サーバ上でコンパイルするのは RealVew4(RVDS4.1)
開発言語はC++
ソースコードはクラウド上に保存 リビジョン管理機能もあり
1.mbedとは
2.1 クラウド開発環境
充実したライブラリでマイコンによる初期化やペリフェラルの 扱いを意識せずに作り始められる。
LEDをチカチカさせる最初の プログラムもこれだけ。
デジタル出力ライブラリ
1.mbedとは
2.1 クラウド開発環境
• デジタル入出力 • アナログ入出力 • PWM出力 • タイマー割り込み • UART • I2C • SPI • USB ホスト/ファンクション • LAN • RTOS
• キャラクタLCD • Bluetooth • HTTPサーバ/クライアント • WebSocket • FileSystem • さまざまなデバイスとの
通信ライブラリ etc..
標準ライブラリ クックブックライブラリ
1.mbedとは
2.2 mbedプロジェクトの最近の動き
mbedプロジェクトの運営は英国ARM社が行っている。 オフィシャルのブログは頻繁に更新され、サービスの 利便化が頻繁に行われている。 2013年2月にはmbed2.0と題されたサービスの大幅な アップグレードが行われた。
1.mbedとは
mbed2.0
• CMSIS-DAPに対応し、オフライン
環境でデバッガが使用可能になった。 • mbed-HDKをメーカーに提供し、mbedサービスを
ベースにした独自のハードウェア開発をサポート
ハードウェア
1.mbedとは
mbed2.0
• mbed-SDKをオープンソース化 • オンラインツールを無料化
ソフトウェア
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 無し 無し
1.mbedとは
2.3 mbedの種類
さらに新しいmbed互換ボードがNXPより発売予定
1.mbedとは
2.4 mbedのコミュニティ • mbed.orgでは作った、ソースコードがシェアできる。
シェアしたソースコードはシームレスに自分の開発環境へ • FAQやフォーラムで質問、疑問は共有できる。
• コラボレーション機能で複数人で開発可能。
1.mbedとは
2.5 mbedのメリット,デメリット
• アイディアをすぐに具現化できる • 安価で開発できる • コミュニティを活用し、一人で悩まなくて済む
メリット
1.mbedとは
2.5 mbedのメリット,デメリット
• インターネットに繋がる環境が必要
• 導入は楽だが、マイコン自体の勉強にはならない。 • クローズドなライブラリの中身がメンテナンスできない。
デメリット
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� �
�
3.「うおーるぼっと」の開発
3.1 「うおーるぼっと」とは
反射型フォトセンサは標準搭載ライントレーサーも プロトタイピング可能
3.「うおーるぼっと」の開発
3.1 「うおーるぼっと」とは
バンパーと読んでいる拡張ボードを取り付けることで、 回路やセンサーを追加できる
LEDを8個追加できる ナイトライダーバンパー
試作中の加速度センサが 追加できるバンパー
3.「うおーるぼっと」の開発
3.1 「うおーるぼっと」とは
ちょっと面白い機能として、磁石でホワイトボードなどを走らせることができる
3.「うおーるぼっと」の開発
3.2 「うおーるぼっと」開発の経緯 最初は自分の子供に遊ばせるためのおもちゃとして製作
展示会などで遊んでもらったら・・
販売してほしいとの声
3.「うおーるぼっと」の開発
3.2 「うおーるぼっと」開発の経緯 商品化に向けて、試作を繰り返す。
量産の難しい機械パーツを極力減らし、再設計
3.「うおーるぼっと」の開発
3.2 「うおーるぼっと」開発の経緯 試作も最終段階の状態で資金調達にクラウドファンディング
3.「うおーるぼっと」の開発
3.2 「うおーるぼっと」開発の経緯
現状は組み立てキットとして製品化。 販売中です。
後々は、手軽に遊べるおもちゃとしても製品化したい。
3.「うおーるぼっと」の開発
3.2 「うおーるぼっと」開発の経緯
アイディア
試作 クラウドサービスを活用
小ロッドでも発注 できる工場
プロトタイプエンジニアリング
・Youtubeやニュースサイトで紹介⇒反響 ・クラウドファンディング⇒資金調達
委託販売を行ってる ショップ
個人や会社の小プロジェクトでも製品化までの道のりが手軽になってきた
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
冒頭にデモを行った、iPhoneでコントロール仕組みを簡単に紹介。
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
うおーるぼっとにはUSBタイプのBluetoothドングルを取り付け、iPhoneとはBluetoothで通信をしている。
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
通常のBluetooth通信をiPhoneと外部機器間で行う場合、Appleの有料プログラムに参加する必要がある。
iPhone4S以降に搭載されているBluetooth4.0の新規格であるBluetooth Low Energy(以降 BTLE )を使えばその認証の必要は無く、外部機器と通信させることができる。
本来は低消費電力を売りにしている規格だが、I/Fの敷居が高い iPhoneとのI/Fとしては手軽。ただし高速な通信は行えない。
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
BTLEを使った機器同士の通信は、機器それぞれに「Central」と「Peripheral」という役割を持たる。 「Central」は親機、「Peripheral」は子機のようなイメージ。
Central
Peripheral
Peripheral
Peripheral
Central
Peripheral Peripheral
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
「Peripheral」は自分が持ってる能力を「Profile」という情報で「Central」に対して通知し、「Central」は必要とする機能を持った「Peripheral」と接続。 UUIDという機能ごとに割り振られたIDで判断する。
Peripheral(Profile)Service
Characeristic
Characeristic
UUID
UUID
UUID
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
「Peripheral」と接続した「Central」は「Peripheral」が持つ「Service」の中の「Characeristic」に対して、リード/ライトする。
Central
Peripheral(Profile)Service
Characeristic
Characeristic
UUID
UUID
UUID
3.「うおーるぼっと」の開発
3.3 iPhoneでコントロールする仕組み
うおーるぼっとをiPhoneからコントロールするイメージに 当てはめると。
iPhone
Profile(うおーるぼっと)
Service(コントロール)
モータのスピード2バイトの値±100,±100