狠狠撸
Submit Search
20160924 mbed elementary Workshop
?
0 likes
?
1,861 views
祐介 高橋
Follow
mbed elementary workshop using STM32 F303K8
Read less
Read more
1 of 47
Download now
Download to read offline
More Related Content
20160924 mbed elementary Workshop
1.
演磁日亜長屋ワークショップ 「使える!mbed STM32 NUCLEO編」 2016年9月 高橋?イトウ(ファブラボ北加賀屋)
2.
はじめに ? このワークショップでは、初心者を対象に、 mbedって何だろう?というところから始め て、基本的な使い方を学びながら、実際に mbedを使った電子工作を体験します ? 簡単な応用例もいくつか紹介 ?
mbedの特徴をよく理解して有効に活用する アイディアを培う参考になれば幸いです
3.
mbedって何だろう? ? ARM社のプロトタイピング用ワンボードマイ コンおよびそのプログラミング環境(IDE) ? IDEが端末OSに依存せずブラウザ上で動作す ることが特徴(クラウドサービス) ?
mbedはembed(組み込み?埋め込み)を元 にした造語 ? ARM社は先日ソフトバンクによる買収で話題 になった。自社では製造を行わず、CPUコア の設計を世界中の企業に販売している
4.
マイコン(MCU)って何だろう? ? Micro Controller
Unitの日本特有の略語 ? プログラムを書き込むことによりさまざまな 働きをさせることのできるワンチップIC ? CPUコア、メモリ、I/O関連などの機能を内蔵 している ? Microchip社のPICシリーズ、Atmel社のAVR シリーズなどが有名(いずれも8bitが主) ? mbedがカバーするCortex-Mシリーズは 32bitで組み込み用としては高性能。ARM社 のライセンスを受けて各社が製造している
5.
プロトタイピングって何だろう? ? 製品化の前の開発段階で試作を行うこと ? 初期段階ではコンピュータ上で設計した回路 を、ブレッドボードなどを使って実際に組ん でみて動作確認したり構成を検討することが ある ?
マイコンを使う場合は開発ボードを利用すれ ば、必要なポートや周辺回路を手軽に使えて 便利=ラピッドプロトタイピングツール
6.
mbedとArduinoの違い?(開発環境編) mbed Arduino 開発環境名称 mbed
Compiler Arduino IDE 開発元 ARM Ltd Arduino, LLC 動作環境 クラウド ローカル※ 開発言語 C++ Arduino ライブラリ 公開ライブラリから 直接インポート 別途入手しフォルダ 内に展開 利用対価 無償 無償 人気度 ちょいマイナー ポピュラー ※2016年5月、Arduino Createが発表された。mbedライク なクラウド開発環境をめざしていると思われる
7.
mbedとArduinoの違い?(ボード編) mbed Arduino プロセッサ Cortex-Mシリーズ (32ビット) Atmel
AVR (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 I2C SPIなど 価格 ちょっと高い (安いのも登場) 安い (変種多数)
8.
Arduinoボードの例 Arduino Uno Arduino
Mini LilyPad Arduino 定番タイプ ミニサイズ ウェアラブル向け ハードウェア設計情報のEAGLEファイルが無料で公開され ており、組み立て済みの基板を購入することもできる他、 誰でも自分の手で Arduino を組み立てることができる (オープンソースハードウェア)
9.
mbedボードの例 mbed LPC1768 mbed
LPC1114FN28 NUCLEO-F303K8 Cortex-M3コア Cortex-M0コア Cortex-M4コア 今回のワークショップでは高性能なCortex-M4コアを採用 しつつ比較的安価なSTマイクロ社のNUCLEO-F303K8を 取り上げます
10.
NUCLEO-F303K8のピン配置 プログラミングに使えるのは青地/緑地に白字のピン Arduino Nano互換となっている(緑地に白字で表示)
11.
NUCLEO-F303K8の仕様 STM32F303K8T6(LQFP32パッケージ) ARM Cortex-M4コア(浮動小数点ユニット付) 動作周波数:最大72 MHz フラッシュメモリ:64
kB SRAM:16 kB 動作電圧:2.0 V to 3.6 V Timers Advanced Control (1) Timers General Purpose (5) Basic Timers (2) SPI/I2S (1) I2C (1) USART (2) CAN (1) 12-bit ADC (2), 9 channels 12-bit DAC (2), 3 channels GPIO (25) with external interrupt capability RTC
12.
ボードをPCに接続する USBケーブルでPCと接続すると、ドライブとして認識さ れます。mbed開発環境からダウンロードしたファイル をドラッグ&ドロップするだけで、ボード上のマイコン にプログラムを書き込むことができます
13.
mbed開発環境を使う 1.ユーザ登録 mbed.orgでユーザ登録をします。 自分の名前、メールアドレスの情報,mbed.org内で使う ユーザ名、パスワードを入力し,規約を読んで同意した 後に登録を行います。 ユーザはアカウントにログインした状態で自分のコード を書いたり、そのコードやその他の情報を公開?共有で きるようになります。 URL: https://mbed.org/
14.
mbed開発環境を使う 2.コンパイラを起動する ● 登録したアカウントでdeveloper siteにログインします ● Compilerを起動します ● mbedのオンライン開発環境が表示されます ● 左のペインには、インポートしたり自作したプログラム 群が並びます ● 右のペインにはコードの表示部と、その下に状態表示を 行う部分があります
15.
mbed開発環境を使う 3.ターゲットボードを登録する ● 画面右上の「mbed NXP LPC1768」の表示をクリック し、Select
Platformsダイアログを開きます ● ダイアログ下部のAdd Platformを押し、表示される PlatformsのページからNUCLEO-F303K8を選択 ● Add to your mbed compilerを押すと登録されます
16.
mbed開発環境を使う 4.サンプルプログラムを使ってみる-1 ● Importボタンを押し、Import wizardを起動します ● Programsタブから、一番上のmbed_blinkyを選択し、 Import!ボタンを押します ● ダイアログが表示されます。Import As:はProgramを 選択、Updateにはチェックを入れます ● mbed_blinkyプログラムがインポートされ、左ペイン と右ペインに表示されます ● main.cppをクリックすると、プログラムコードが表示 されます
17.
mbed開発環境を使う 5.サンプルプログラムを使ってみる-2 ● プログラムのターゲットボードを変更します ● 画面右上の「mbed NXP LPC1768」をクリック ● ダイアログから「NUCLEO-F303K8」を選択
18.
mbed開発環境を使う 6.プログラムをコンパイルする ● コンパイルボタンを押すと、プログラムがコンパイルさ れてバイナリファイルが生成されます ● ダウンロードフォルダにファイルが保存されます
19.
mbed開発環境を使う 7.プログラムをマイコンに書き込む ● ダウンロードしたファイルを、mbedドライブにドラッグ& ドロップすると、ファイルがマイコンに書き込まれます ● ボードのリセットボタンを押すとプログラムが起動します
20.
mbed開発環境を使う mbed_blinkyの動作の様子 ● 内蔵LED(LED1)が所定の周期で点滅します
21.
いろいろなクラスを使ってみる 1.DigitalInクラス ● DigitalInクラスを使い,宣言したピンを入力にします ● そのピンにマイコン内蔵のプルアップ抵抗を接続します ● ループ内では,ピンから読んだ信号を反転して、LEDの 状態に反映させます ● ボタンが押された時にLOWが入力されるので、それを 反転してLEDに出力させれば、ボタン押下げ時にLEDが 点灯します
22.
mbed開発環境を使う DigitalIn_sampleの実体配線図 ● タクトスイッチの一方の脚をD0に、他方をGNDに接続
23.
いろいろなクラスを使ってみる 2.BusOutクラス ● サンプルプログラムをインポートし、ボードに合わせて 一部を書き換えます ● BusOutクラスを用いれば、複数のLEDやピンをまとめ ることができます ● インスタンスledsは、4つのピンをまとめた4ビットの 出力となります。ここに値を代入すると、その2進値が 各ピンに接続したLEDに表示されます
24.
mbed開発環境を使う BusOut_sampleの実体配線図 ● 各色のLEDの長い方の脚(+)をD1,D0,D4,D5に、短い方の 脚(-)をGNDに接続
25.
いろいろなクラスを使ってみる 3.AnalogInクラス ● AnalogInクラスのインスタンスからは0Vを0.0,3.3V を1.0とした正規化された値を読むことができます ● アナログピンには0V?3.3Vまでの電圧を入力できます ● このサンプルでは、AnalogInのインスタンスaiから読 んできた値に15.0を掛けて4ビットの0?15の値に変換 し、4個のLEDで状態を確認できるようにしてあります
26.
mbed開発環境を使う AnalogIn_sampleの実体配線図 ● 各色のLEDの長い方の脚(+)をD1,D0,D4,D5に、短い方の 脚(-)をGNDに接続 ● 可変抵抗の中央の脚をA0に、両端の脚をそれぞれ5VとGND に、ジャンパーコードを介して接続
27.
いろいろなクラスを使ってみる 4.Serialクラス ● Serialクラスのインスタンスを作成し,そのメンバ関数 として用意されているprintfを使うとシリアルへの出力 が可能です ● stdio.hで宣言されている入出力用の関数が揃っている ので、シリアルの入出力を簡単に使うことができます
28.
mbed開発環境を使う Serial_sampleの実体配線図 ● 配線はAnalogIn_sampleと同じです
29.
PCでmbedのシリアル出力を見るには ● Windowsマシンでmbedのシリアル出力を見るには, mbedのシリアルドライバが必要です ● ターミナルソフトも必要です。なければダウンロードし てインストールしてください ● Macではドライバのインストールは必要ありません ● ターミナルソフトも、コマンドラインから「screen」 コマンドが使えます
30.
いろいろなクラスを使ってみる 5.Servoクラス ● Servoクラスのインスタンスを作成します ● AnalogInのインスタンスknobの値によって、サーボの 回転角を制御することができます
31.
mbed開発環境を使う Servo_sampleの実体配線図 ● 可変抵抗の中央の脚をD3に、両端の脚をそれぞれ5VとGND に、ジャンパーコードを介して接続 ● サーボの信号線をD1、+を3.3V、-をGNDに接続
32.
いろいろなクラスを使ってみる 6.TextLCDクラス ● LCD(液晶ディスプレイ)に文字列を表示します
33.
mbed開発環境を使う TextLCD_sampleの実体配線図 ● ややこしいので詳細略
34.
応用編1 赤外線リモコンの信号を計測する ● 赤外線受光モジュールを使い、赤外線リモコンの信号を 計測することができます ● 計測した信号をPCに表示します
35.
mbed開発環境を使う IR_Receiver_sampleの実体配線図 ● 赤外線受光モジュールの右と中央の脚をそれぞれGNDと5V に、左の脚をD2に、ジャンパーコードを介して接続 ● 受光素子単体と今回使用するモジュールでは脚の配置が 異なるので注意
36.
計測した信号をPCで見る ● 赤外線受光素子は、赤外線を受信していないときは VoutピンからHIGH電圧を出力し、受信しているときは LOW電圧を出力します ● VoutピンのHIGH電圧、LOW電圧の時間を取得します
37.
応用編2 TV用リモコンの信号を受信する ● 赤外線送受信用の汎用ライブラリRemoteIRを利用して TV用リモコンの信号を受信します ● 受信した信号の復号結果をPCに表示します
38.
前ページより続く
39.
mbed開発環境を使う RemoteIR_sampleの実体配線図 ● 配線はIR_Receiverと同じです ● 押した数字ボタンの2進数表記に合わせてLEDが点灯します
40.
受信した信号の復号結果をPCで見る ● メーカーコード、データコードの順に表示されます ● 各コードはボタンを表す8bitのコードとその反転値8bit が合わさった16bitのコードです ● データコードの前半8bitを読み出して使います
41.
応用編3 取得した信号を送信する ? IR_Receiverで取得した信号を送信するプログラムです ? PwmOutクラスのインスタンスを作成し、赤外線LEDに 38kHzのパルス波で点灯するように信号を出力します 次ページに続く
42.
応用編3 取得した信号を送信する ? IR_Receiverで取得した信号を送信するプログラムです ? PwmOutクラスのインスタンスを作成し、赤外線LEDに 38kHzのパルス波で点灯するように信号を出力します 前ページより続く ビデオプロジェクタの電源をオンオフする プログラムです
43.
mbed開発環境を使う IR_Transmitter_sampleの実体配線図 ? トランジスタで信号を増幅していたりしてややこしいので詳細略
44.
応用編4 TV用リモコンの信号でサーボを動かす ● 赤外線送受信用の汎用ライブラリRemoteIRを利用して TV用リモコンの信号を受信し、サーボを動かします 次ページに続く
45.
応用編4 TV用リモコンの信号でサーボを動かす 前ページより続く
46.
mbed開発環境を使う RemoteIR_sample2の実体配線図 ● 配線はコードサンプルを参照 ● 数字ボタンの1~3に合わせてLEDが点灯し、サーボホーンが 動きます
47.
参考にさせていただいたページ ● ワークショップ用リファレンスページ 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 ● フィジカルコンピューティング>mbed on hiramine.com http://www.hiramine.com/physicalcomputing/mbed/index.html ● 赤外線送受信ライブラリ by Shinichiro Nakamura https://developer.mbed.org/users/shintamainjp/code/RemoteIR/ ● GROVE スターターキット for mbed の使い方(赤外線リモコンと赤外線 受信モジュール編) http://www.marutsu.co.jp/wp/datatech/3486/
Download