arduinoをこれから始める人のためのarduino紹介スライドβ版
TRANSCRIPT
![Page 1: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/1.jpg)
ArduinoArduino!
Arduino!
2015-05-25
Katsuhiro Morishita(森下功啓)
1
β版
![Page 2: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/2.jpg)
Index
• 自己紹介• What• How• Warning• Key Word• IDE• Circuit
– 工事中
• Reference• Appendix
2
![Page 3: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/3.jpg)
自己紹介
• 2010年 熊本大学情報電子工学専攻修了(修士)
• 2013年 熊本大学情報電子工学専攻修了(博士)
– 1年間、民間経験, 5ヶ月間、熊大で研究補助
• 2014年~ 熊本高専助教
• 専門:GPS/GNSS、いろいろ計測
• 得意技:電子工作, プログラミング
• 好きなこと:登山、釣り、作ること
3
![Page 4: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/4.jpg)
これまでの代表作品(予定含む)
• 自動走行ロボ
• 全身反応測定器
• 温度場計測デバイス
• 野生動物追跡システム
• 無線制御式LED制御デバイス
• 遠隔雨水タンク監視・排水システム
• 車椅子利用者負荷量計測デバイス
4
![Page 5: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/5.jpg)
5
What
![Page 6: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/6.jpg)
Arduinoの特徴
6
http://www.teu.ac.jp/press/2012.html?id=128
• マイコンボード(基板)の一種
• イタリア生まれ
• 芸術大学の学生用に開発
• オープンソース,オープンハードウェア
• 世界中の人がソースコードを提供
• 様々な種類– UNO, mega, DUE, TRE, etc.
• 同じ命令体系
• 様々なセンサーを簡単に接続
![Page 7: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/7.jpg)
電子楽器
7http://www.nicovideo.jp/watch/sm22816367?ref=search_key_video
![Page 17: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/17.jpg)
鉢植えモニタリング
17
https://www.youtube.com/watch?v=hGd4SU0xo6g
![Page 19: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/19.jpg)
19
How
![Page 20: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/20.jpg)
必要なもの
20
Arduino IDE(これはWindows用のもの)
MacやPC
Arduino通信ケーブル
http://akizukidenshi.com/catalog/g/gC-07605/
![Page 21: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/21.jpg)
あったら楽になるもの
21
半田ごて
半田
はんだ吸い取り線
ピンセット
こて台
スズメッキ線 ポリウレタン銅線
テスター
オシロスコープ
シリアルUSB変換モジュール
ジャンパワイヤ
電源装置
小手先クリーナー
![Page 22: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/22.jpg)
あったら助かる知識
22
電圧
電流
仕事量
シリアル通信
電池の電圧・容量
電子素子の特性
電気素子の特性
熱
![Page 23: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/23.jpg)
Arduinoの購入
• 取扱店
–スイッチサイエンス
–秋月電子通商
–千石電商
– Amazon
• Arduino UNOで1600~3300円です
• 品種に幅があるため、全体では1200~7000円
23
![Page 24: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/24.jpg)
Arduino IDEの入手先
• http://arduino.cc/en/Main/Software
24
古い安定版は無料
最新の非安定版も無料
最新の安定版は有料
![Page 25: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/25.jpg)
蛇足:Arduino開発チームの分裂
• Arduino開発チームが分裂しました
• ハードウェアに対する方針の不一致だそうです
• Arduino cc
– http://www.arduino.cc/
• Arduino org
– http://arduino.org/
25
![Page 26: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/26.jpg)
LEDが点滅するまでの流れ
LEDをArduinoに接続
プログラムを作る
書き込んで様子を見る
26
![Page 27: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/27.jpg)
LEDをArduinoに接続する
27
足の短い方がGND
差し込む
![Page 28: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/28.jpg)
ArduinoとPCをUSBで接続する
• 電源をArduinoに供給しつつ、プログラムを書き込んだり、Arduinoとシリアル通信するためにUSBケーブルで接続します
28
USBケーブル
![Page 29: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/29.jpg)
プログラムを作る
29
• コード入手先– https://raw.github
usercontent.com/KatsuhiroMorishita/edu_ITD/master/2015/Arduino_codes/LED_test/LED_test.ino
*ここでは、LEDの電流制限抵抗を省略するために、ONの時間をOFFの時間の1/10にしている。
*Windows版のスクリーンショットです
ここに書く
![Page 30: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/30.jpg)
設定して
30
• ボードのシリーズを選ぶ
• ポートのマイコンor電圧を選ぶ
*Windows版のスクリーンショットです
![Page 31: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/31.jpg)
書き込んで
31
• コンパイル&書き込み(エラーが出たら修正)
クリック
*Windows版のスクリーンショットです
![Page 32: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/32.jpg)
様子を見る
• 動作の様子
– https://www.youtube.com/watch?v=772S6MC7qZU&feature=youtu.be
32
![Page 33: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/33.jpg)
33
Warning
![Page 34: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/34.jpg)
電源電圧は決まっています
• マイコンに直接供給される電圧を「電源電圧」という
• proシリーズやDueの電源電圧は3.3 V
• 普通は5.0 V
• USBで電源を供給できる場合は特に何も考えなくてOK
• ACアダプタを使う場合は、電源電圧+2V~12Vを利用– ボード上の素子が電圧を落として給電(電源供給)します
34
![Page 35: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/35.jpg)
ポートに入力できる電圧の上下限
• 許容範囲:0~電源電圧(通常は3.3または5.0 V)
• もし、範囲を超える電圧を入力した場合・・・ポートが焼けてしまいます
– マイコンが使えなくなります
35
![Page 36: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/36.jpg)
出力できる電流には制限があります
• 出力ポート1つあたり、2 mA程度と見てください
36
![Page 37: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/37.jpg)
ショートさせない
• 高い電圧と低い電圧間で、電気抵抗の少ない物体(例えば電線)でショート(短絡ともいう)させないで下さい
• 故障する可能性が高くなります
37
![Page 39: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/39.jpg)
39
Key word
![Page 40: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/40.jpg)
Arduino IDE
• Arduinoマイコンボードをプログラミングするための開発環境です
• エディタやコンパイラが一体になっています
40
![Page 41: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/41.jpg)
マイコン
• CPU,メモリ,入出力IOなどが一体になって販売されているIC
• プロセッサともいう
• プログラムを変更すると動作が変わる
• Arduinoはマイコンの一種
• 用例
– 「このマイコンは動作が速いなぁ。」
41
←マイコンの例
![Page 42: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/42.jpg)
Arduinoにおけるプロセッサの種類
42
↑基本的に、Arduinoにおいてボード名が異なるとプロセッサが異なります。なお、Arduino IDEでのプロセッサの選択画面では、同じプロセッサであっても動作電圧や周波数を選ぶ必要があります。
![Page 43: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/43.jpg)
ボード
• 直訳すると「基板」ですが、マイコンが搭載された基板を指します
• 用例
– 「そのボード取って。」
– 「このマイコンボードって使いやすいね。」
43
![Page 44: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/44.jpg)
Arduinoにおけるボードの種類
44↑Arduinoだけでも沢山の種類があります
![Page 45: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/45.jpg)
ポート
• 制御や通信に使うコネクタです
• 物理的なものも、ソフトウェア上のものも「ポート」です
• 特にArduinodではIOポートとか、シリアルポートなどと呼びます
45
![Page 46: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/46.jpg)
IOポート
• マイコンは、1)電圧が高いか低いかを検出する入力(Input)ポート、2)ポートから電圧を出すことができる出力(Output)ポートを持ちます
• Arduinoには出力ポートにも入力ポートにもなれるIOポートと、入力しかできないポートがあります
• 出力ポートにするにはプログラム中で設定が必要です
46
![Page 47: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/47.jpg)
シリアルポート
• シリアル通信を行うためのポート
• 用例
– 「シリアルポートが開かん!」
47
![Page 48: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/48.jpg)
シリアル通信
• シリアルポートを使って通信します
• 一本の電線を使って通信を行う方法をシリアル通信方式と呼びます
• 電圧の高いor低いで0と1を送ります
• 代表的シリアル通信規格– UART
– I2C
– SPI
– Eathernet
48
![Page 49: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/49.jpg)
シリアルモニタ
• Arduino IDEで利用するシリアル通信機能
49
ここをクリックすると起動
![Page 50: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/50.jpg)
スケッチ
• 直訳すると「スケッチ・草案・素描」ですが、Arduinoではプログラムを指します
• 簡単に書けるということを意図しています
50
![Page 51: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/51.jpg)
アナログーデジタル(AD)変換
• 電圧を計測します
• 結果は数値としてマイコン内部に記憶されます
• プログラムからはAD変換の指示が必要です
• 得られた数値に適当な係数をかけると実際の電圧[V]になります
• 入力できる電圧には制限があります
• 計測できる最小の電圧もあります
51
![Page 52: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/52.jpg)
コンパイル
• プログラムを人が読みやすい文章から、機械が理解できる様に変換します
52
*Windows版のスクリーンショットです
![Page 53: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/53.jpg)
書き込み
• 「プログラムをコンパイルして出来たファイルをArduinoボードへ転送する行為」を「書き込み」といいます
53
USBケーブル
![Page 54: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/54.jpg)
ブートローダー
• 初心者は意識しなくともOKです
• ブートローダーとはユーザの作ったプログラムを簡単にROMへ書き込むためのソフトウェア
• ブートローダの動作–電源ONやリセットの直後に起動
–起動後一定時間、特定の信号入力を待つ
–書き込み信号を検出するとプログラムを受信
–自身とは重ならない部分に受信したコードを書き込む
54
![Page 55: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/55.jpg)
組み込み系・組み込みマイコン
• 機器に埋め込まれるマイコンを含む回路を「組み込み」システムと呼びます
• ものを組み込むから「組み込み」です
55
![Page 56: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/56.jpg)
ファームウェア
• 組み込み用のハードウェア上で動作するソフトウェアをファームウェアといいます
56
![Page 57: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/57.jpg)
ハードウェア
• ハードウェアとは、主に電子回路を指します
• ソフトウェアの対比語です
57
![Page 58: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/58.jpg)
組み込み関数
• はじめから用意されている標準的な関数
• 同じ名前の関数を作れません
– クラス内の関数(メソッド)はOK
• 例:digitalWrite()
58
![Page 59: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/59.jpg)
予約語
• 予め用意されているキーワードです
• 特別な意味を持つワードです
59
![Page 60: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/60.jpg)
60
IDE
![Page 61: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/61.jpg)
Arduino IDEの見た目
• 検索窓で”arduino”と入力して検索して起動
• Processingに似ている
61
*Windows版のスクリーンショットです
![Page 62: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/62.jpg)
Arduino IDEでできること
• プログラムの作成
• プログラムのコンパイル
• Arduinoへのプログラム書き込み
62
![Page 63: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/63.jpg)
Arduino IDEのボタンと機能
63
コンパイル&書き込み
シリアルモニタ起動プログラムの検証
*Windows版のスクリーンショットです
![Page 64: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/64.jpg)
サンプルコードの選択
64*Windows版のスクリーンショットです
![Page 65: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/65.jpg)
ライブラリの読み込み
65
*Windows版
のスクリーンショットです
![Page 66: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/66.jpg)
ボードの選択
66
*Windows版のスクリーンショットです
![Page 67: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/67.jpg)
ポートの選択
• プログラムの書き込みや、マイコンとPCとの通信に利用するシリアルポートを選択します
67*Windows版のスクリーンショットです
![Page 68: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/68.jpg)
68
Programming
![Page 69: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/69.jpg)
#include<stdio.h>#define IO_NUM 6int io_status = 0;
void sub(int value1, int value2){
return vaule1 - value2;}
int main(void){int fuga = sub(100, 50);return 0;
}
C言語の基本構造
69
#incude
グローバル変数
#define
様々な関数
main関数
![Page 70: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/70.jpg)
loop関数
setup関数
Arduinoのプログラム構造
70
*Arduinoはコンパイルの直前にタイマー処理とmain関数を自動的に貼り付けている。main関数の中身は、{(void)setup();while(1){(boid)loop();}}
#incude
グローバル変数
#define
様々な関数
右では略
NEW
NEW
![Page 71: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/71.jpg)
setup関数の役割
• setup()は起動直後に1度だけ実行
• ハードウェアの基本的な設定を記述すると楽
71
Srialポートを使って9600 bpsでのシリアル通信を行う準備を実施するコード
![Page 72: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/72.jpg)
loop関数の役割
• loop()は無限に実行する内容を記述
72
無限にAD変換値をシリアル出力するコード
![Page 73: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/73.jpg)
便利な関数やオブジェクト
• digitalWrite(pin, HIGH/LOW)
–電圧をVccと0 [V]に変更
• analogRead(pin)
–アナログ電圧の計測
• analogWrite(pin, duty)
– PWMによる擬似アナログ電圧出力
• Serial
– Streamを継承した、シリアル通信オブジェクト
73
![Page 74: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/74.jpg)
Arduinoの開発言語はC++
• オブジェクト指向に対応
• クラスを利用できます
74
class TimeOut{private:long timeout_time;
public:// set timeout time widthvoid set_timeout(long timeout){this->timeout_time = millis() + timeout;
}// timeout check, true: timeoutboolean is_timeout(){if(millis() > this->timeout_time)return true;
elsereturn false;
}// constructerTimeOut(){this->timeout_time = 0l;
}};
クラスの例
![Page 75: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/75.jpg)
クラスを利用できます
• アクセス制御
–デバッグし易い
–プログラム設計上、考慮項目数が減る
• コードの相互依存性を減らせる
–脱スパゲッティコード!
• 複数人でのプログラム開発
–役割分担の明確化
• コードの再利用性が上がる75
![Page 76: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/76.jpg)
コンパイルでエラー
• IDE下部にメッセージが出ます
• 英語なので読めます
76
エラーの例
![Page 77: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/77.jpg)
代表的エラー
• 宣言されていない変数が使われた
77
![Page 78: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/78.jpg)
代表的エラー
• 全角のスペースがある
78
ここに注目
![Page 79: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/79.jpg)
代表的エラー
• セミコロン;がない
79
![Page 80: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/80.jpg)
エラーを調べる
• エラーメッセージをネットで検索
• メッセージをダブルコーテーションで括って検索
–例
80
![Page 81: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/81.jpg)
普通のプログラミングとの相違点
• ガベージコレクション(GC)がありません
• mallocは使えるものの、コンパイラが作成した
メモリ配置図を見ながらの作業となって普通のPC, Mac利用者には重い作業
• 全てのオブジェクト(≒変数)が静的にメモリ上に確保されると考えて下さい
81
![Page 82: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/82.jpg)
82
Circuit
![Page 83: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/83.jpg)
Arduino UNOの電気的特性
項目
マイコン ATmega328P
電源電圧 USB:5 VACアダプタ:7-12 Vマイコン自身:5 V
電流容量 1 A
マイコンの出力電流 実用範囲:2 mA
83
←UNOのクローン製品
![Page 84: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/84.jpg)
IOポートの電流制限
84
![Page 85: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/85.jpg)
IOポートの電圧制限
85
![Page 86: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/86.jpg)
LEDの使い方
86
![Page 87: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/87.jpg)
圧電スピーカーの使い方
87
![Page 88: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/88.jpg)
サーボモーターの使い方
88
![Page 89: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/89.jpg)
89
Reference
![Page 90: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/90.jpg)
ggrksGoogleで検索
• キーワードは大事
• 日本語で資料がなければ英語で検索
• 英語のサイトを見つけたら、自動翻訳
90
![Page 91: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/91.jpg)
参考サイト
• Arduino公式
• Arduino日本語リファレンス
• ソフトウェア共同開発支援サイト GitHub
• 個人ブログ
–たとえば“なんでも作っちゃう、かも。”
91
![Page 92: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/92.jpg)
参考図書
• Arduinoをはじめよう
• Prototyping Lab
• Arduinoで計る、測る、量る
92
![Page 93: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/93.jpg)
Fin.
93
![Page 94: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/94.jpg)
94
Appendix• 以降のスライドは、将来的に別のスライドとしてまとめるかもしれないしまとめないかもしれないスライド達です。
![Page 95: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/95.jpg)
Arduinoとパソコンの接続とCOMポート確認 for Windows
• 目的– Arduinoへのプログラムの書き込み,通信
• 手順– ArduinoをUSBで接続
• ドライバのインストールが必要な場合は、Arduino IDEのディレクトリ中にある「drivers」フォルダを指定してドライバをインストール
– シリアル通信のために、COMポートを確認• 「コンピュータ」のプロパティからデバイスマネージャ• デバイスマネージャの中にCOMxはあるか?
– xはローマ数字
– Arduino IDEを立ち上げて、• マイコンボードの種類をセット• COM番号をセット• シリアルモニタを起動• 通信速度をArduinoに合わせる
95*Arduino DUEはWindowsでのみシリアル通信可能です
![Page 96: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/96.jpg)
Arduinoとパソコンの接続とCOMポート確認 for Mac
• 目的– Arduinoへのプログラムの書き込み,通信
• 手順– ArduinoをUSBで接続– シリアル通信のために、シリアル通信ポートを確認
• terminal立ち上げ• “cd /dev” を実行• “ls” を実行• 表示された中から、Arduinoっぽいのを探す• USBケーブルを切断してもう一度確認すると消えている名前がある。それがArduinoとの通信に利用しているシリアルポート
– Arduino IDEを立ち上げて、• マイコンボードの種類をセット• シリアルポートをセット• シリアルモニタを立ち上げ• 通信速度をArduinoに合わせる
96*Arduino DUEはWindowsでのみシリアル通信可能です
![Page 97: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/97.jpg)
シリアル通信プログラムの書き方
• シリアルポートを設定• 通信速度[bps]のセット• 送りたいものを送信
97
Serial.begin(9600);Serial.println(“hellow”);Serial.print(“without linesep”);Serial.write(0x30);
while(1){Int c = Serial.read(); // if c==-1, it’s NoneIf(Serial.available()){適当な関数を呼び出すなど
}}
*適当なサンプルコード。setup()内に書くと動くはず。
![Page 98: Arduinoをこれから始める人のためのArduino紹介スライドβ版](https://reader030.vdocuments.pub/reader030/viewer/2022020106/55aedef81a28abc31f8b4732/html5/thumbnails/98.jpg)
ソフトウェアシリアル
• UNOでシリアル通信ポートを増やす
• ソフトウェアで対応
• 代表的ライブラリは2つ
98
SoftwareSerial
AltSoftSerial
4800 baudまで
なら安全@UNO
115200 baudまでなら安全@UNO, PWMと干渉