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.
明日からできる!
面白ガジェットの作り方
きりん (@kirin_nico)
2015/8/29
プロ生勉強会 第35回@株式会社DMM.comラボ
• 作品紹介/デモ
• ガジェットの作り方
• マイコンとは何か?
• プログラマブルなボードの紹介
今日のテーマ決める前
ほかの人は
何話すのかな?
Raspberry piとか
Arduinoとかの話
しようかな
ほかの人は
何話すのかな?
Raspberry piとか
Arduinoとかの話
しようかな
ほかの人は
何話すのかな?
_人人人人人人_
> だだかぶり <
 ̄Y^Y^Y^Y^Y^Y ̄
というわけで
ざっくりとしたハード
ウェア系の話をします
自己紹介
自己紹介
• HN
• きりん (@kirin_nico)
• プロ生ちゃんFC 会員No.23
• 主な活動場所
• プロ生/ニコニコ技術部
• お仕事
• プログラマーではありません
• いちおう電気電子/組み込み系
趣味
• 「作ること」ならなんでも
• 電子工作、プログラミング(特に画像処理と組み
込み系)、ロボット、イラスト、手芸、クラフト
系工作などなど…
• 秋葉原/ハンズ/ホームセンターなどで簡単に安
く買えるもので作ることを心がけています
趣味の作品紹介
• 「必ず6が出るサイコロ」
• 「きのこたけのこ判別機」
趣味の作品紹介 その他
• 手芸とか
普段使っているプログラミング言語
• 浅く広く、必要とあらば何でもやります
• 趣味:C#/C
• 仕事:C/asm/Verilog HDL/TCL/Perl/VBA
など…
• Javascript使えない系男子
話は脱線しますが
情報処理研究会
千由莉推し
千由莉推し
_人人人人人_
> かわいい <
 ̄Y^Y^Y^Y^Y ̄
千由莉推し
世界に(たぶん)2つしかない千由莉パネル
千由莉推し
去年・一昨年のクリスマス (Unity + OculusRift)
千由莉推し
去年・一昨年のクリスマス (Unity + OculusRift)
得られた知見
・ケーキが見えない → 食べられない
・飲み物が引っかかる → 飲めない
千由莉推し
千由莉イラストやグッズが増えることを
期待し知名度向上に力を注いでいます
千由莉推し
千由莉が活躍する「すぱこー」を読もう!
http://pronama.azurewebsites.net/web-comic/
脱線おわり
今日のテーマ
ガジェットを作ろう
ガジェットとは?
• ガジェット(Gadget)は、目新しい道具、面白い小物
といった意味を持つ、携帯用の電子機器類を指す用語。
(Wikipedia)
• ガジェットとは、目新しい道具、面白い小物、携帯用の
電子機器といった意味の英単語。(中...
身近なガジェットの例 (by Wikipedia)
• スマートフォン
• デジタルカメラ
• 携帯ゲーム機
• 電子辞書
身近じゃないガジェット
• Gigazine/Gizmodo/Engadget
• ガジェットの記事多数
• Kickstarter/Indiegogoなど
• 様々なガジェットが出資募集中
• Make:
• “Maker”達の作品がたくさん...
Webサービスやスマホアプリとの違い
ハードウェアの部分が決まっていない
→ 自由に作れる(作らないといけない)
Webサービスの場合
サーバー
PCディスプレイ キーボード/マウス
HTTP
USBHDMI
WLAN
API API
スマホアプリの場合
スマホディスプレイ タッチパネル
センサ
サーバー
HTTP
I2CHDMI
WLAN
API API
API I2C
ガジェットの場合
CPUコアは?
OSは?
そもそもプログラ
ムかける?
出力は?
そもそも表示デバ
イスある?
入力は?
キーボード?
ボタン?
センサ??
接続は?
サーバー?
スマホ?
HTTPWLAN?
Bluetooth?
HDMI?...
ガジェットは作れる
• 小型/安価/高性能なCPUボードの登場
• はんだ付けをしなくてもよいセンサモ
ジュールや電源モジュールの登場
• 家庭用3Dプリンタや出力サービスの登場
→ つなげる・組み立てるだけでもハー
ドウェアが出来上がる
なぜガジェットを作るのか?
• 不便なことを便利にしたい
• 見たこともない変なものを作りたい
• とりあえず自分で作ったものが動くの
は面白い
作品紹介/デモ
必ず6が出るサイコロ
• 1面7個のLEDでサイコロの目を再現
• センサーで向きを判断し、上面に6を表示
きのこたけのこ判別機
• Webカメラできのことたけのこを画像認
識
• 自作のロボットアームで仕分け
手のりきめぇ丸
• ゆっくりの亜種「きめぇ丸」の手のひらサ
イズロボット
• ピンポン玉に回路を詰め込んでいる
• リモコン操作で喋る、頬を赤らめる
ガジェットの作り方
ガジェット作りに必要なもの
• プログラミングの知識
• ハードウェア (ボード、部品など)
• 電子回路の知識 (最低限オームの法則)
• 発想力
• 楽をする工夫と心
作るうえで考ておくべきこと
• 機能
• 大きさ
• 電源
• 予算
機能
何をするガジェットか?
↓
どんな機能を持たせるか?
↓
どうやって実現するか?
大きさ
• ボードや部品の選定に大きく関わる
cpu
電源
cpu セ
ン
サ
電
源
大きい
部品の制約を受けづらい
→ 自由に作れる
小さい
部品の制約を受けやすい
→ 機能/性能に制限
電源
• 部品が必要とする電圧/電流がまちまちなことが
ある
• 電池にするか?外部電源にするか?
• 最初は乾電池かUSBから取れるようにしておく
と楽
電源回路電源回路
電池 アダプタ
予算
• 部品単品は安くてもそろえると高くな
る
• 2個作れば2倍のコストがかかる
• 修理や変更をするにもお金がかかる
前段階
1. 作りたいものから作り方を考える (作り
たいもの駆動開発)
または
2. 今持っている部品から作れるものを考え
る (積み部品駆動開発)
• 予備部品が溜まってしまった
• 面白い部品が売っていたから買ってしまった
• 話題のボー...
機能→実装を考える
(自作ガジェットを例に)
必ず6が出るサイコロの場合
上の面が6になる
面をLEDで再現
センサで上面を
検知
42個のLED
それを制御するIO
加速度センサ
その値取得をするI/F
ガジェット
の機能
実装
方法
必要な
もの
きのこたけのこ判別機の場合
きのことたけのこを判別し、仕分ける
きのこ・たけのこを
画像認識
ロボットアーム
で仕分け
Webカメラ
画像認識エンジン
モーター
モーター制御回路
ガジェット
の機能
実装
方法
必要な
もの
必要なものへの落とし込み
• 必要なものまで落とし込むとボードや
部品が選定しやすい
• 部品から考えると破たんしやすい
(でも結構やっちゃう…)
より詳細な実装を考える
単独で動くものか?
• ボード/部品の選定に関わる
単独で動く
・取り回しは楽
・部品選びや制御は大変
PCで制御する
・取り回しが大変
・部品選びや制御は楽
出力を考える
• ディスプレイがあるとは限らない
・LEDで面を表現
(デバッグ大変)
・認識結果をディスプレイに表示
・モーター制御
入力を考える
• ボタン?タッチ?
• センサは?
・加速度センサ
・キーボード入力
・Webカメラからの画像入力(USB)
性能がどれくらい必要か考える
• PCやスマホにいろいろやらせるか?
• 性能が低くてもよいか?
性能が低くてもよい
向きの判定と
光らせるLEDの選択のみ
それなりの性能が必要
リアルタイムに画像認識
を行いながらモーター制御
使用するCPUや部品の選定
• サイコロ
• 小さい
• IOがたくさん必要
• 性能低くてよい
→ マイコンチップを使用
• 判別機
• 大きさは不問
• 演算性能が必要
• モーター制御が必要
→ メインはPC
→ モーター制御に市販のボー...
とりあえず作ってみよう
プロトタイピング
• 簡単、確実な構成でまずは動くものを
試作する
→ 必要な性能の確認、回路の検証、セ
ンサ測定の試行など
まずは動くものを!
• プロトタイピングボードを使おう
• Arduino / mbed / Raspberry pi
• 情報がたくさんある
• 亜種がたくさんある(Arduino/mbed)
Arduino mbed Raspberry p...
回路を考えよう
• 回路モジュールを使おう
• 基本的につなぐだけで使える
(複雑な回路を組まなくてよい)
• センサの場合、2本程度で通信できる
温度センサモジュール Wifiモジュール 電源モジュール
画像:秋月電子
回路を組もう
• ブレッドボードを使おう
• はんだ付け不要
• 回路作成、修正が簡単
ブレッドボード 使い方
画像:秋月電子
イベントに参加しよう
イベント参加の意義
• 見学
• なんか作ろうって気になる
• 展示
• 褒められてまた作ろうって気になる
• 改善点が見つかる
• 交流が深まる
• 懇親会のお酒おいしいです(^q^)
国内の主な工作展示イベント
• Maker Faire Tokyo
• たぶん国内最大の工作展示イベント
• ニコニコ技術部勉強会 (NT*)
• ニコニコ技術部有志による展示イベント
• 京都/金沢/東京/名古屋/九州(?)
推薦図書
ハルロック (モーニングKC)
• 女子大生が変なものを作っていく話
• アイディアから作品に落とし込んでいく
過程が秀逸
西餅(著)/講談社
マイコンプログラミング
• Arduino/mbedのCPUチップ
→ MCU (マイコン)
• Raspberry piのCPUチップ
→ MPU (アプリケーションプロセッサ)
→ PCのCPUに近い
mbedもRaspiもARMが載っているが、種
類が違う
マイコンとは何か
• Micro controller unit (ワンチップマイコン)
• CPU+メモリ(SRAM/ROM)+システム制御+周辺モ
ジュール+I/Oを"一つ"の集積回路に組み込んだもの
画像:ルネサスエレクトロニクス
ワンチ...
マイコンとは何か
• 汎用CPUよりも自己充足性と低価格性を備えて
いる
→ PC用のCPUを買ってきても何もできない
→ MCUは少しの外付け回路でいろいろできる
• そのかわり性能はPC用セットに比べてプア
• 動作周波数: 数MHz~数百...
マイコンとは何か
CPU
I
O
I
O
制御部
周辺
機能
周辺
機能入
力
出
力
レ
ジ
ス
タ
レ
ジ
ス
タ
レ
ジ
ス
タ
レ
ジ
ス
タ
レジ
スタ
レジ
スタ
制御はレジスタの読み書きで行う
マイコンは何ができるのか?
マイコンは何ができるのか
• 四則演算/論理演算
• 内蔵メモリのwrite/read
マイコンは何ができるのか
• タイマー
• クロック単位なので正確
CPU
周辺機能
(タイマ)
レジスタ
スタートから3000クロック経過した
マイコンは何ができるのか
• GPIO (General purpose Input/Output)
• 任意の端子の入出力
CPU
5V 0V
入力は1 !! 0を出力!!
マイコンは何ができるのか
• シリアル通信
• USART/SPI/I2Cなど
CPU
周辺機能
(シリアル
通信)
レジスタ
0x5Aを出力!!
1 0 1 0 0 1 0 1
マイコンは何ができるのか
• アナログ値入出力
• AD/DA変換
CPU
周辺機能
(ADC)
レジスタ
入力は0x800!!
2.5V
どうやって開発するのか?
マイコンの一般的な開発
• 言語は大体Cのみ
• レジスタを叩きまくるスタイル
• ライタが必要
• 開発用のボードを使用するか自分で起
こす
ボードの選び方
選定にあたって考えること
• 大きさ
• 性能
• I/Oの数
• 搭載機能
• 消費電力
• 開発言語
• 値段
• 入手のしやすさ
言語/ライティング
• 素のマイコンはほとんどがCでの開発
だが、以降紹介するボードはより簡単
な言語で開発できるようになっている
• ライター相当の機能がついており、
USBでつなげたら書き込みができる
OSなしのマイコンボード
Arduino
• 説明不要の有名プロトタイピングボード
• Arduino IDE/Arduino言語でプログラミング
• AtmelのAVRが乗っている(例外あり)
• 情報多し / 互換ボード多し (他社製品含む)
• だいたい3000円...
びんぼうでいいの (Arduino互換)
• aitendoのArduno互換ボード
• 自分で組み立てが必要
• 液晶とかリモコンとかのセットが999円
びんぼうでいいの (aitendo)
Digispark USB (Arduino互換)
• 超小型Arduino互換ボード
• 20×28mmくらい
• Arduinoと比べて制限多し
• HIDのためドライバ不要
• $9くらい(中国通販サイトでパチモノ?が$3以
下で買える)...
mbed
• ARM社のプロトタイピング用ワンボードマイコン
• 今は各社のARMマイコンボードに対応している
• C++ に共通ライブラリをのっけた感じ
• クラウドコンパイラ (ブラウザで開発)
• よく使われるNXPのやつは6000円 (...
がじぇるね (がじぇっとるねさす)
• ルネサスのRX/RLマイコンが載ったボード
• 形状はArduino互換、言語も大体Arduino互換
• クラウドコンパイラで開発
• GR-SAKURAが3000円くらい~
GR-SAKURA GR-...
konashi
• iPhone/iPod/iPadからJavascriptで制御可能
なボード
• Bluetooth LEモジュール搭載
• 10000円くらい (互換品のkoshianは980円!)
Konashi (ユカイ工学) Kos...
OS (Linux)搭載のプロセッサボード
Raspberry pi
• ラズベリーパイ財団の開発
• もともと教育用 (なのだが、おっさん達が飛びついた)
• Linuxが走るので言語の自由度が高く、また多く
のUSBデバイスが使える
• B+: 5000円~ 2B:5500円~
Ra...
Edison
• IntelのIoT向け超小型開発ボード
• Atom(500MHz)、Wifiモジュール、
Bluetoothが載っており高性能
• Linuxが走る
• I/Oが1.8Vなのでちょっと使いにくい…
• 単品6800円くらい ...
最近のホットなデバイス
FlashAir
• 東芝のWifi付きSDカード…なのだが、GPIOや
SPIなどが使える
• 公式で開発者サイトを公開したり、同人誌を出
すなど明後日の方向に盛り上がり中
• Luaで制御可能
• 8GB 3000円~
FlashAir
(...
ESP8266
• 絶賛盛り上がり中のWifiモジュール
• 高性能なCPU、ROM/RAM、通信IFを搭載して
おり、単体動作も可能
• Arduino IDEで開発できる
• 技適済みのものが500円~買える
ESP-WROOM-02
漢は黙って
素のマイコン
• 国内外いろいろなメーカーが作っている
• 自由度は最高
• 機能/性能/価格/サイズはピンキリ
• はんだ付け必須
RX71M (ルネサスエレクトロニクス)ATTINY10 (ATMEL)
使い分け
• 簡単に使いたい
→ Arduino
• Arduioよりも高性能なのが欲しい
→ mbed
• PCみたいな感覚で開発したい
→ Raspberry pi
• USB機器を使いたい
→ Raspberry pi
使い分け
• 情報がなるべく多いのが良い
→ Arduino
• 近所で買いたい
→ FlashAir
• 自由が欲しい
→ 素のチップを使うんだ
おわりに
• 作りたいものを考えて
• プロトタイピングボードを買って
• ggr bingれば何とかなる!
ご清聴ありがとうございました
「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ
Upcoming SlideShare
Loading in …5
×

「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ

3,826 views

Published on

プロ生勉強会 第35回@DMM.comラボ セッション資料

Published in: Engineering
  • Be the first to comment

「明日からできる!面白ガジェットの作り方」 プロ生勉強会 第35回@DMM.comラボ

  1. 1. 明日からできる! 面白ガジェットの作り方 きりん (@kirin_nico) 2015/8/29 プロ生勉強会 第35回@株式会社DMM.comラボ
  2. 2. • 作品紹介/デモ • ガジェットの作り方 • マイコンとは何か? • プログラマブルなボードの紹介
  3. 3. 今日のテーマ決める前
  4. 4. ほかの人は 何話すのかな?
  5. 5. Raspberry piとか Arduinoとかの話 しようかな ほかの人は 何話すのかな?
  6. 6. Raspberry piとか Arduinoとかの話 しようかな ほかの人は 何話すのかな? _人人人人人人_ > だだかぶり <  ̄Y^Y^Y^Y^Y^Y ̄
  7. 7. というわけで ざっくりとしたハード ウェア系の話をします
  8. 8. 自己紹介
  9. 9. 自己紹介 • HN • きりん (@kirin_nico) • プロ生ちゃんFC 会員No.23 • 主な活動場所 • プロ生/ニコニコ技術部 • お仕事 • プログラマーではありません • いちおう電気電子/組み込み系
  10. 10. 趣味 • 「作ること」ならなんでも • 電子工作、プログラミング(特に画像処理と組み 込み系)、ロボット、イラスト、手芸、クラフト 系工作などなど… • 秋葉原/ハンズ/ホームセンターなどで簡単に安 く買えるもので作ることを心がけています
  11. 11. 趣味の作品紹介 • 「必ず6が出るサイコロ」 • 「きのこたけのこ判別機」
  12. 12. 趣味の作品紹介 その他 • 手芸とか
  13. 13. 普段使っているプログラミング言語 • 浅く広く、必要とあらば何でもやります • 趣味:C#/C • 仕事:C/asm/Verilog HDL/TCL/Perl/VBA など… • Javascript使えない系男子
  14. 14. 話は脱線しますが
  15. 15. 情報処理研究会
  16. 16. 千由莉推し
  17. 17. 千由莉推し _人人人人人_ > かわいい <  ̄Y^Y^Y^Y^Y ̄
  18. 18. 千由莉推し 世界に(たぶん)2つしかない千由莉パネル
  19. 19. 千由莉推し 去年・一昨年のクリスマス (Unity + OculusRift)
  20. 20. 千由莉推し 去年・一昨年のクリスマス (Unity + OculusRift) 得られた知見 ・ケーキが見えない → 食べられない ・飲み物が引っかかる → 飲めない
  21. 21. 千由莉推し 千由莉イラストやグッズが増えることを 期待し知名度向上に力を注いでいます
  22. 22. 千由莉推し 千由莉が活躍する「すぱこー」を読もう! http://pronama.azurewebsites.net/web-comic/
  23. 23. 脱線おわり
  24. 24. 今日のテーマ
  25. 25. ガジェットを作ろう
  26. 26. ガジェットとは? • ガジェット(Gadget)は、目新しい道具、面白い小物 といった意味を持つ、携帯用の電子機器類を指す用語。 (Wikipedia) • ガジェットとは、目新しい道具、面白い小物、携帯用の 電子機器といった意味の英単語。(中略)人目を引く、気の 利いた、ユニークな機能の、といったニュアンスを込め て使われる例が多い。(IT用語辞典 e-Words) → 今回は「変わった電子機器」「ハードウェアメ インの面白アイテム」程度の意味で使っています
  27. 27. 身近なガジェットの例 (by Wikipedia) • スマートフォン • デジタルカメラ • 携帯ゲーム機 • 電子辞書
  28. 28. 身近じゃないガジェット • Gigazine/Gizmodo/Engadget • ガジェットの記事多数 • Kickstarter/Indiegogoなど • 様々なガジェットが出資募集中 • Make: • “Maker”達の作品がたくさん載っている • ニコニコ技術部 (ニコニコ動画) • ジャパニーズクレイジーピーポー
  29. 29. Webサービスやスマホアプリとの違い ハードウェアの部分が決まっていない → 自由に作れる(作らないといけない)
  30. 30. Webサービスの場合 サーバー PCディスプレイ キーボード/マウス HTTP USBHDMI WLAN API API
  31. 31. スマホアプリの場合 スマホディスプレイ タッチパネル センサ サーバー HTTP I2CHDMI WLAN API API API I2C
  32. 32. ガジェットの場合 CPUコアは? OSは? そもそもプログラ ムかける? 出力は? そもそも表示デバ イスある? 入力は? キーボード? ボタン? センサ?? 接続は? サーバー? スマホ? HTTPWLAN? Bluetooth? HDMI? SPI? GPIO? USB? SPI? GPIO? I2C? デジタル入力? アナログ入力?
  33. 33. ガジェットは作れる • 小型/安価/高性能なCPUボードの登場 • はんだ付けをしなくてもよいセンサモ ジュールや電源モジュールの登場 • 家庭用3Dプリンタや出力サービスの登場 → つなげる・組み立てるだけでもハー ドウェアが出来上がる
  34. 34. なぜガジェットを作るのか? • 不便なことを便利にしたい • 見たこともない変なものを作りたい • とりあえず自分で作ったものが動くの は面白い
  35. 35. 作品紹介/デモ
  36. 36. 必ず6が出るサイコロ • 1面7個のLEDでサイコロの目を再現 • センサーで向きを判断し、上面に6を表示
  37. 37. きのこたけのこ判別機 • Webカメラできのことたけのこを画像認 識 • 自作のロボットアームで仕分け
  38. 38. 手のりきめぇ丸 • ゆっくりの亜種「きめぇ丸」の手のひらサ イズロボット • ピンポン玉に回路を詰め込んでいる • リモコン操作で喋る、頬を赤らめる
  39. 39. ガジェットの作り方
  40. 40. ガジェット作りに必要なもの • プログラミングの知識 • ハードウェア (ボード、部品など) • 電子回路の知識 (最低限オームの法則) • 発想力 • 楽をする工夫と心
  41. 41. 作るうえで考ておくべきこと • 機能 • 大きさ • 電源 • 予算
  42. 42. 機能 何をするガジェットか? ↓ どんな機能を持たせるか? ↓ どうやって実現するか?
  43. 43. 大きさ • ボードや部品の選定に大きく関わる cpu 電源 cpu セ ン サ 電 源 大きい 部品の制約を受けづらい → 自由に作れる 小さい 部品の制約を受けやすい → 機能/性能に制限
  44. 44. 電源 • 部品が必要とする電圧/電流がまちまちなことが ある • 電池にするか?外部電源にするか? • 最初は乾電池かUSBから取れるようにしておく と楽 電源回路電源回路 電池 アダプタ
  45. 45. 予算 • 部品単品は安くてもそろえると高くな る • 2個作れば2倍のコストがかかる • 修理や変更をするにもお金がかかる
  46. 46. 前段階 1. 作りたいものから作り方を考える (作り たいもの駆動開発) または 2. 今持っている部品から作れるものを考え る (積み部品駆動開発) • 予備部品が溜まってしまった • 面白い部品が売っていたから買ってしまった • 話題のボードがあるから買ってしまった
  47. 47. 機能→実装を考える (自作ガジェットを例に)
  48. 48. 必ず6が出るサイコロの場合 上の面が6になる 面をLEDで再現 センサで上面を 検知 42個のLED それを制御するIO 加速度センサ その値取得をするI/F ガジェット の機能 実装 方法 必要な もの
  49. 49. きのこたけのこ判別機の場合 きのことたけのこを判別し、仕分ける きのこ・たけのこを 画像認識 ロボットアーム で仕分け Webカメラ 画像認識エンジン モーター モーター制御回路 ガジェット の機能 実装 方法 必要な もの
  50. 50. 必要なものへの落とし込み • 必要なものまで落とし込むとボードや 部品が選定しやすい • 部品から考えると破たんしやすい (でも結構やっちゃう…)
  51. 51. より詳細な実装を考える
  52. 52. 単独で動くものか? • ボード/部品の選定に関わる 単独で動く ・取り回しは楽 ・部品選びや制御は大変 PCで制御する ・取り回しが大変 ・部品選びや制御は楽
  53. 53. 出力を考える • ディスプレイがあるとは限らない ・LEDで面を表現 (デバッグ大変) ・認識結果をディスプレイに表示 ・モーター制御
  54. 54. 入力を考える • ボタン?タッチ? • センサは? ・加速度センサ ・キーボード入力 ・Webカメラからの画像入力(USB)
  55. 55. 性能がどれくらい必要か考える • PCやスマホにいろいろやらせるか? • 性能が低くてもよいか? 性能が低くてもよい 向きの判定と 光らせるLEDの選択のみ それなりの性能が必要 リアルタイムに画像認識 を行いながらモーター制御
  56. 56. 使用するCPUや部品の選定 • サイコロ • 小さい • IOがたくさん必要 • 性能低くてよい → マイコンチップを使用 • 判別機 • 大きさは不問 • 演算性能が必要 • モーター制御が必要 → メインはPC → モーター制御に市販のボード (arduino的なやつ)使用
  57. 57. とりあえず作ってみよう
  58. 58. プロトタイピング • 簡単、確実な構成でまずは動くものを 試作する → 必要な性能の確認、回路の検証、セ ンサ測定の試行など
  59. 59. まずは動くものを! • プロトタイピングボードを使おう • Arduino / mbed / Raspberry pi • 情報がたくさんある • 亜種がたくさんある(Arduino/mbed) Arduino mbed Raspberry pi 画像:arduino.cc/NXP/raspberrypi.org
  60. 60. 回路を考えよう • 回路モジュールを使おう • 基本的につなぐだけで使える (複雑な回路を組まなくてよい) • センサの場合、2本程度で通信できる 温度センサモジュール Wifiモジュール 電源モジュール 画像:秋月電子
  61. 61. 回路を組もう • ブレッドボードを使おう • はんだ付け不要 • 回路作成、修正が簡単 ブレッドボード 使い方 画像:秋月電子
  62. 62. イベントに参加しよう
  63. 63. イベント参加の意義 • 見学 • なんか作ろうって気になる • 展示 • 褒められてまた作ろうって気になる • 改善点が見つかる • 交流が深まる • 懇親会のお酒おいしいです(^q^)
  64. 64. 国内の主な工作展示イベント • Maker Faire Tokyo • たぶん国内最大の工作展示イベント • ニコニコ技術部勉強会 (NT*) • ニコニコ技術部有志による展示イベント • 京都/金沢/東京/名古屋/九州(?)
  65. 65. 推薦図書
  66. 66. ハルロック (モーニングKC) • 女子大生が変なものを作っていく話 • アイディアから作品に落とし込んでいく 過程が秀逸 西餅(著)/講談社
  67. 67. マイコンプログラミング
  68. 68. • Arduino/mbedのCPUチップ → MCU (マイコン) • Raspberry piのCPUチップ → MPU (アプリケーションプロセッサ) → PCのCPUに近い mbedもRaspiもARMが載っているが、種 類が違う
  69. 69. マイコンとは何か • Micro controller unit (ワンチップマイコン) • CPU+メモリ(SRAM/ROM)+システム制御+周辺モ ジュール+I/Oを"一つ"の集積回路に組み込んだもの 画像:ルネサスエレクトロニクス ワンチップマイコンの例
  70. 70. マイコンとは何か • 汎用CPUよりも自己充足性と低価格性を備えて いる → PC用のCPUを買ってきても何もできない → MCUは少しの外付け回路でいろいろできる • そのかわり性能はPC用セットに比べてプア • 動作周波数: 数MHz~数百MHz • ROM容量: 数byte~数Mbyte • RAM容量: 数byte~数百Kbyte
  71. 71. マイコンとは何か CPU I O I O 制御部 周辺 機能 周辺 機能入 力 出 力 レ ジ ス タ レ ジ ス タ レ ジ ス タ レ ジ ス タ レジ スタ レジ スタ 制御はレジスタの読み書きで行う
  72. 72. マイコンは何ができるのか?
  73. 73. マイコンは何ができるのか • 四則演算/論理演算 • 内蔵メモリのwrite/read
  74. 74. マイコンは何ができるのか • タイマー • クロック単位なので正確 CPU 周辺機能 (タイマ) レジスタ スタートから3000クロック経過した
  75. 75. マイコンは何ができるのか • GPIO (General purpose Input/Output) • 任意の端子の入出力 CPU 5V 0V 入力は1 !! 0を出力!!
  76. 76. マイコンは何ができるのか • シリアル通信 • USART/SPI/I2Cなど CPU 周辺機能 (シリアル 通信) レジスタ 0x5Aを出力!! 1 0 1 0 0 1 0 1
  77. 77. マイコンは何ができるのか • アナログ値入出力 • AD/DA変換 CPU 周辺機能 (ADC) レジスタ 入力は0x800!! 2.5V
  78. 78. どうやって開発するのか?
  79. 79. マイコンの一般的な開発 • 言語は大体Cのみ • レジスタを叩きまくるスタイル • ライタが必要 • 開発用のボードを使用するか自分で起 こす
  80. 80. ボードの選び方
  81. 81. 選定にあたって考えること • 大きさ • 性能 • I/Oの数 • 搭載機能 • 消費電力 • 開発言語 • 値段 • 入手のしやすさ
  82. 82. 言語/ライティング • 素のマイコンはほとんどがCでの開発 だが、以降紹介するボードはより簡単 な言語で開発できるようになっている • ライター相当の機能がついており、 USBでつなげたら書き込みができる
  83. 83. OSなしのマイコンボード
  84. 84. Arduino • 説明不要の有名プロトタイピングボード • Arduino IDE/Arduino言語でプログラミング • AtmelのAVRが乗っている(例外あり) • 情報多し / 互換ボード多し (他社製品含む) • だいたい3000円~ Arduino UNO Arduino Nano Arduino Yun
  85. 85. びんぼうでいいの (Arduino互換) • aitendoのArduno互換ボード • 自分で組み立てが必要 • 液晶とかリモコンとかのセットが999円 びんぼうでいいの (aitendo)
  86. 86. Digispark USB (Arduino互換) • 超小型Arduino互換ボード • 20×28mmくらい • Arduinoと比べて制限多し • HIDのためドライバ不要 • $9くらい(中国通販サイトでパチモノ?が$3以 下で買える) Digispark (digistump)
  87. 87. mbed • ARM社のプロトタイピング用ワンボードマイコン • 今は各社のARMマイコンボードに対応している • C++ に共通ライブラリをのっけた感じ • クラウドコンパイラ (ブラウザで開発) • よく使われるNXPのやつは6000円 (2000円くらい のあり) mbed LPC1768 (NXP) FRDM-KL25Z (Freescale)
  88. 88. がじぇるね (がじぇっとるねさす) • ルネサスのRX/RLマイコンが載ったボード • 形状はArduino互換、言語も大体Arduino互換 • クラウドコンパイラで開発 • GR-SAKURAが3000円くらい~ GR-SAKURA GR-KURUMI GR-KAEDE
  89. 89. konashi • iPhone/iPod/iPadからJavascriptで制御可能 なボード • Bluetooth LEモジュール搭載 • 10000円くらい (互換品のkoshianは980円!) Konashi (ユカイ工学) Koshian (MACNICA)
  90. 90. OS (Linux)搭載のプロセッサボード
  91. 91. Raspberry pi • ラズベリーパイ財団の開発 • もともと教育用 (なのだが、おっさん達が飛びついた) • Linuxが走るので言語の自由度が高く、また多く のUSBデバイスが使える • B+: 5000円~ 2B:5500円~ Raspberry pi2 (raspberrypi.org)
  92. 92. Edison • IntelのIoT向け超小型開発ボード • Atom(500MHz)、Wifiモジュール、 Bluetoothが載っており高性能 • Linuxが走る • I/Oが1.8Vなのでちょっと使いにくい… • 単品6800円くらい + 変換ボード必須 Edison (Intel)
  93. 93. 最近のホットなデバイス
  94. 94. FlashAir • 東芝のWifi付きSDカード…なのだが、GPIOや SPIなどが使える • 公式で開発者サイトを公開したり、同人誌を出 すなど明後日の方向に盛り上がり中 • Luaで制御可能 • 8GB 3000円~ FlashAir (TOSHIBA)
  95. 95. ESP8266 • 絶賛盛り上がり中のWifiモジュール • 高性能なCPU、ROM/RAM、通信IFを搭載して おり、単体動作も可能 • Arduino IDEで開発できる • 技適済みのものが500円~買える ESP-WROOM-02
  96. 96. 漢は黙って
  97. 97. 素のマイコン • 国内外いろいろなメーカーが作っている • 自由度は最高 • 機能/性能/価格/サイズはピンキリ • はんだ付け必須 RX71M (ルネサスエレクトロニクス)ATTINY10 (ATMEL)
  98. 98. 使い分け • 簡単に使いたい → Arduino • Arduioよりも高性能なのが欲しい → mbed • PCみたいな感覚で開発したい → Raspberry pi • USB機器を使いたい → Raspberry pi
  99. 99. 使い分け • 情報がなるべく多いのが良い → Arduino • 近所で買いたい → FlashAir • 自由が欲しい → 素のチップを使うんだ
  100. 100. おわりに
  101. 101. • 作りたいものを考えて • プロトタイピングボードを買って • ggr bingれば何とかなる!
  102. 102. ご清聴ありがとうございました

×