Page 1
STM32 nucleo活⽤用mbedでハイパフォーマンスフィジカルコンピューティング
Page 2
⾃自⼰己紹介
•電⼦子⼯工作系の遊びが好き•マイコンの専⾨門書を出版しました•マイブームはUnityとC#とESP8266•本業はこの会社の顧問
Page 3
マイコンとは
•コンピューター・電⼦子計算機•ソフトウェアを書いて⾛走らせる•PCと同じ
Page 4
PCとの違い
•周辺回路の有無•周辺回路の内蔵性•サイズ•計算能⼒力•消費電⼒力•リアルタイム性•値段
Page 5
ワイヤードロジックとの違い•マイコンが無くてもロジック制御はできる•炊飯器の始めちょろちょろ
•マイコンだと•複雑化したロジックに対応可能•仕様変更に強い•通信機能・接続性が⾼高い
Page 6
マイコンの意味
•1980年代の「マイコン」•マイクロコンピュータ
•今の「マイコン」•マイクロコントローラ
Page 7
昔のマイコン開発との違い•⾼高い•ボード•開発環境
•デバッガ•書き込みに必要•紫外線照射でROM消去
•microchipのPIC •ターニングポイント
Page 8
Arduinoの登場
•安い•簡単接続•プログラマ不要
•開発環境が揃っていて無料•API簡単•シールドで拡張•全世界で利⽤用者が⼀一気に拡⼤大•情報量が多い
Page 9
Arduinoとの違い
•同じ•マイコン•オープンソースベース• APIベース
Page 10
mbedとは
•ARM社が提唱している開発環境•ARM系のマイコンが対応•複数社からボードが発売
Page 11
Arduinoとの違い
•メリット•ピン数多い・クロック早い• Arduino uno
• ATmega328P 8bit AVR RISC 32p• Flash:32KB SRAM:2KB EEPROM:1KB• クロックスピード:16MHz
• RTOSが動く•さらに安い• ARMコア•ライブラリシェアがIDEに組み込み済み
Page 12
Arduinoとの違い
•デメリット•シールドがほとんど無い•マイコン単体から⼯工作するのは難しい
Page 13
Arduinoとの違い
•メリットデメリット• CとC++ •オンラインIDE• 3.3V •マスストレージ
Page 14
実際にどうやるの
•リモート開発•クロスコンパイル• AndroidやiOSデバイス
•OSが動いているデバイスではない• ROMを丸ごと書き換える
Page 15
準備
•mbedへのアカウント登録•ボードの登録
•デバッガのファームウェアアップデート• https://developer.mbed.org/teams/ST/wiki/Nucleo-‑Firmware
•ドライバインストール(Windowsのみ)• https://developer.mbed.org/teams/ST/wiki/ST-‑Link-‑Driver
Page 16
実演
•LEDを500ms間隔でオンオフ•LEDをスイッチでオンオフ•ADC読み取り•シリアルエコーサーバー
Page 17
Lチカ組み込みプログラミングにおける伝統的Hello world!
Page 18
ピン配列https://developer.mbed.org/platforms/ST-‐Nucleo-‐L053R8/
Page 19
オンボードLEDhttps://developer.mbed.org/platforms/ST-‐Nucleo-‐L053R8/
Page 20
LEDのオンオフができるということは•⾚赤外線LEDを使ってリモコンで家電のコンロトロールができる•変換ボードを通して100Vの家電がコントロールできる
Page 21
ボタン読み取りプログラマの意思とは関係無く構造体型の値が変更されている
Page 22
オンボードスイッチhttps://developer.mbed.org/platforms/ST-‐Nucleo-‐L053R8/
Page 23
ボタンがわかるということは•ユーザーの意思を受け取れる•ボタンも⼀一種のセンサ•フタの開閉•転倒• ⽔水銀スイッチ• ボールスイッチ
•接近• リードスイッチ
Page 24
シリアル送受信シリアルクラスオブジェクトのメソッドを実行する
Page 25
シリアル接続できるということは•通信できる•パソコンへの情報伝送•シリアル対応型のデバイス• 液晶・センサー
Page 26
ADC読み取りシリアルクラスオブジェクトのメソッドを実行する
Page 27
回路抵抗分圧で任意電圧を作ってみる
Page 29
ADCが読めるということは•センサの値が読める•温度・気圧・湿度・照度・⾊色・圧⼒力・⾓角度・加速度・地磁気・ガス濃度・⾓角速度・マイク・距離・スイッチ
•ロギングできる•センサの値に応じた条件分岐ができる
Page 30
PCにセンサーをつなぐベストプラクティス•ソフト開発⼯工数で考える•USBマイコン• マイコンプログラミング+シリアル操作
•USBシリアル・パラレル変換ボード• ドライバAPI操作
• Bluetoothボード/Konashi• iOSのBluetooth APIプログラミング/JS
• Raspberry Pi• Python/C/JS