Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

「使える!mbed」ワークショップ at ファブラボ北加賀屋 説明資料

1,942 views

Published on

・初心者を対象に、mbedって何だろう?というところから始めて、基本的な使い方を学びながら、実際にmbedを使った電子工作を体験します
・簡単な応用例もいくつか紹介
・mbedの特徴をよく理解して有効に活用するアイディアを培う参考になれば幸いです

Published in: Devices & Hardware

「使える!mbed」ワークショップ at ファブラボ北加賀屋 説明資料

  1. 1. 演磁日亜長屋ワークショップ 「使える!mbed」 2015年6月 高橋・黒川(ファブラボ北加賀屋)
  2. 2. はじめに • このワークショップでは、初心者を対象に、 mbedって何だろう?というところから始め て、基本的な使い方を学びながら、実際に mbedを使った電子工作を体験します • 簡単な応用例もいくつか紹介 • mbedの特徴をよく理解して有効に活用する アイディアを培う参考になれば幸いです
  3. 3. mbedって何だろう? • ARM社のマイコンをプログラミングするため のクラウド開発環境 • およびプロトタイピング用の開発ボード • よく似たものとしてArduinoがある • mbedはembed(組み込み・埋め込み)を元 にした造語 • ARM社の32ビットマイコンは、組込み型コン トローラとしては最も成功したものの一つ
  4. 4. マイコンって何だろう? • そもそもマイコンって何?という方のために • Micro Controllerの(日本特有の)略語 • プログラムを書き込むことによりさまざまな 働きをさせることのできるワンチップIC • 家電など各種機器に組み込まれて使われる • CPUコア、メモリ、タイマー、外部周辺機器 と通信するための入出力部を備える • Microchip社のPICシリーズ、Atmel社の各種 製品、サイプレス社のPSoCなどが有名 • ARM社は製造を行わず、NXPなどが製造
  5. 5. プロトタイピングって何だろう? • 製品化の前の開発段階で試作を行うこと • 初期段階ではコンピュータ上で設計した回路 を、ブレッドボードなどを使って実際に組ん でみて動作確認したり構成を検討することが ある • マイコンを使う場合は開発ボードを利用すれ ば、必要なポートや周辺回路を手軽に使えて 便利=ラピッドプロトタイピングツール
  6. 6. mbedとArduinoの違い?(開発環境編) mbed Arduino 開発元 ARM/NXP Arduino, LLC 動作環境 クラウド ローカル 開発言語 C++ スケッチ ライブラリ 公開ライブラリから 直接インポート 別途入手しフォルダ 内に展開 利用対価 無償 無償 人気度 ちょいマイナー ポピュラー
  7. 7. mbedとArduinoの違い?(ボード編) mbed Arduino プロセッサ ARM Cortex-M (32ビット) Atmel ATmega (8ビット) 等 動作周波数 48-96MHz 8-16MHz 駆動電圧 3.3V 5V ポート Digital I/O Analog I/O PWM out I2C SPIなど Digital I/O Analog I/O PWM outなど 価格 ちょっと高い (LPC1114除く) 安い (変種多数)
  8. 8. Arduinoボードの例 Arduino Uno Arduino Mini LilyPad Arduino 定番タイプ ミニサイズ ウェアラブル向け ハードウェア設計情報のEAGLEファイルが無料で公開され ており、組み立て済みの基板を購入することもできる他、 誰でも自分の手で Arduino を組み立てることができる (オープンソースハードウェア)
  9. 9. mbedボードの例 mbed LPC1768 mbed LPC11U24 mbed LPC1114 定番タイプ 低電圧・低消費電力型 DIP型LPC1114搭載 今回のワークショップでは、DIP型のLPC1114マイコンを 搭載し、プログラムを書き込んだマイコンを取り外し単体 で使用することもできるmbed LPC1114を取り上げます
  10. 10. mbed LPC1114のピン配置 搭載しているNXP LPC1114FN28マイコンのピン配置と 同じです(28ピン)
  11. 11. mbed LPC1114の特徴(特長) ● DIPタイプのLPC1114FN28をソケットに挿した構造 ● プログラム書き込み済のLPC1114を取り外して単体で 使える 単体利用時は外部からの電力供給(3.3V)が必要です
  12. 12. mbed LPC1114の特徴(特長) ● LPC1114用のライタとみなすこともできる ● 変換アダプタを介して他のタイプのLPC1114にも書き 込める ● TSSOP版のLPC1114FDH28に書き込んでいるところ ● ピンは3(SWCLK), 12(SWDIO), 15(TXD), 16(RXD), VDD(21), GND(22), 23(nRESET)を使用
  13. 13. ボードをPCに接続する USBケーブルでPCと接続すると、ドライブとして認識さ れます。mbed開発環境からダウンロードしたファイル をドラッグ&ドロップするだけで、ボード上のマイコン (LPC1114)にプログラムを書き込むことができます
  14. 14. mbed開発環境を使う 1.ユーザ登録 mbed.orgでユーザ登録をします。 自分の名前、メールアドレスの情報,mbed.org内で使う ユーザ名、パスワードを入力し,規約を読んで同意した 後に登録を行います。 ユーザはアカウントにログインした状態で自分のコード を書いたり、そのコードやその他の情報を公開・共有で きるようになります。 URL: https://mbed.org/
  15. 15. mbed開発環境を使う 2.コンパイラを起動する ● 登録したアカウントでDeveloper Siteにログインします ● Compilerを起動します ● mbedのオンライン開発環境が表示されます ● 左のペインには、インポートしたり自作したプログラム 群が並びます ● 右のペインにはコードの表示部と、その下に状態表示を 行う部分があります
  16. 16. mbed開発環境を使う 3.ターゲットボードを登録する ● 画面右上の「mbed NXP LPC1768」の表示をクリック し、Select Platformsダイアログを開きます ● ダイアログ下部のAdd Platformを押し、表示される Platformsのページからmbed LPC1114FN28を選択 ● Add to your mbed compilerを押すと登録されます
  17. 17. mbed開発環境を使う 4.サンプルプログラムを使ってみる-1 ● Importボタンを押し、Import Wizardを起動します ● Programsタブから、一番上のmbed_blinkyを選択し、 Import!ボタンを押します ● ダイアログが表示されます。Import As:はProgramを 選択、Updateにはチェックを入れます ● mbed_blinkyプログラムがインポートされ、左ペイン と右ペインに表示されます ● main.cppをクリックすると、プログラムコードが表示 されます
  18. 18. mbed開発環境を使う 5.サンプルプログラムを使ってみる-2 ● プログラムの一部を、ボードに合わせて書き換えます ● 具体的には、myled(LED1)をmyled(dp6)に書き換え ● dp6ピンがDigitalOutクラス用にアサインされます
  19. 19. mbed開発環境を使う 6.プログラムをコンパイルする ● Compileボタンを押すと、プログラムがコンパイルされ てバイナリファイルが生成されます ● 表示されるダイアログで、保存を選択 ● ダウンロードフォルダにファイルが保存されます
  20. 20. mbed開発環境を使う 7.プログラムをマイコンに書き込む ● ダウンロードしたファイルをMBEDドライブにドラッグ&ド ロップします ● バイナリファイルがマイコンに書き込まれます ● ボードのリセットボタンを押すとプログラムが起動します
  21. 21. mbed開発環境を使う mbed_blinkyの実体配線図 ● 赤のLEDの長い方の脚(+)をdp6に、短い方の脚(-)を GND(8番目のピン)に接続
  22. 22. いろいろなクラスを使ってみる 1.BusOutクラス ● サンプルプログラムをインポートし、ボードに合わせて 一部を書き換えます ● BusOutクラスを用いれば、複数のLEDやピンをまとめ ることができます ● インスタンスledsは、4つのピンをまとめた4ビットの 出力となります。ここに値を代入すると、その2進値が 各ピンに接続したLEDに表示されます
  23. 23. mbed開発環境を使う BusOut_sampleの実体配線図 ● 各色のLEDの長い方の脚(+)をdp4,6,9,10に、短い方の脚 (-)をGNDに接続
  24. 24. いろいろなクラスを使ってみる 2.DigitalInクラス ● DigitalInクラスを使い,宣言したピンを入力にします ● そのピンにマイコン内蔵のプルアップ抵抗を接続します ● ループ内では,ピンから読んだ信号を反転して、LEDの 状態に反映させます ● ボタンが押された時にLOWが入力されるので、それを 反転してLEDに出力させれば、ボタン押下げ時にLEDが 点灯します
  25. 25. mbed開発環境を使う DigitalIn_sampleの実体配線図 ● 赤色のLEDの長い方の脚(+)をdp6に、短い方の脚(-)を GNDに接続 ● タクトスイッチの一方の脚をdp10に、他方をGNDに接続
  26. 26. いろいろなクラスを使ってみる 3.AnalogInクラス ● AnalogInクラスのインスタンスからは0Vを0.0,3.3V を1.0とした正規化された値を読むことができます ● アナログピンには0V〜3.3Vまでの電圧を入力できます ● LPC1114ではアナログピンは4つあります ● このサンプルでは、AnalogInのインスタンスaiから読 んできた値に15.0を掛けて4ビットの0〜15の値に変換 し、4個のLEDで状態を確認できるようにしてあります
  27. 27. mbed開発環境を使う AnalogIn_sampleの実体配線図 ● 各色のLEDの長い方の脚(+)をdp4,6,9,10に、短い方の脚 (-)をGNDに接続 ● 可変抵抗の中央の脚をdp13に、両端の脚をVIN(21番目の ピン)、GND(22番目のピン)に、ジャンパーコードを介 して接続
  28. 28. いろいろなクラスを使ってみる 4.Serialクラス ● Serialクラスのインスタンスを作成し,そのメンバ関数 として用意されているprintfを使うとシリアルへの出力 が可能です ● stdio.hで宣言されている入出力用の関数が揃っている ので、シリアルの入出力を簡単に使うことができます
  29. 29. mbed開発環境を使う Serial_sampleの実体配線図 ● 配線はAnalogIn_sampleと同じです
  30. 30. PCでmbedのシリアル出力を見るには ● Windowsマシンでmbedのシリアル出力を見るには, mbedのシリアルドライバが必要です ● ターミナルソフトも必要です。なければダウンロードし てインストールしてください ● Macではドライバのインストールは必要ありません ● ターミナルソフトも、コマンドラインから「screen」 コマンドが使えます
  31. 31. いろいろなクラスを使ってみる 5.Servoクラス ● Servoクラスのインスタンスを作成します ● AnalogInのインスタンスaiの値によって、サーボの回 転角を制御することができます
  32. 32. mbed開発環境を使う Servo_sampleの実体配線図 ● 可変抵抗の中央の脚をdp13に、両端の脚をVIN(21番目の ピン)、GND(22番目のピン)に、ジャンパーコードを介 して接続 ● サーボの信号線(白)をdp1、+(赤)をVIN、黒をGNDに 接続
  33. 33. mbedの応用例 フリスク/ミンティア工作 ● フリスクやミンティアなどのケース内に電子回路を組み込み ● 扱いやすいDIP版LPC1114とボタン電池で手軽に作成 センサーなどを組み合わせ、インタラクティブな携帯機器を 開発可能
  34. 34. mbedの応用例 ネギ
  35. 35. mbedの応用例 電動羽ばたき飛行機 ● サーボダイレクトドライブで翼を羽ばたかせて飛行 ● 羽ばたき周期や羽ばたき角をLPC1114でコントロール 軽量化のためTSSOP版LPC1114を使用(飛行重量10g)
  36. 36. 参考にさせていただいたページ ● LPCZone:NXP LPCマイコン情報 by NXPセミコンダクターズジャパン http://www.nxp-lpc.com/ ● ワークショップ用リファレンスページ by Tedd OKANO https://developer.mbed.org/users/okano/notebook/ws/ ● 「mbed」で始めるARMマイコン開発入門 by 今岡通博 http://monoist.atmarkit.co.jp/mn/articles/1410/24/news016.html

×