ETロボコン技術教育
イノベーションスキル向上セミナー at TDCソフトウェア株式会社

メカ(機械)制御に必要なセンサー・アクチュエータの基礎
ETロボコン本部実行委員長

星 光行 (Mick Hoshi)
株式会社ジェイテック
技術本部 教育グループ(組込みソフトウェア、電気・電子 担当)

JASA(組込みシステム技術協会)
参与 / ETロボコン本部実行委員長 / ET展/IoTテクノロジー展 実行委員会副委員長(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

1

コンテンツ技術のイノベーション
センサーとアクチュエータ
アナログとデジタル
各種センサーの紹介とモーター制御
Arduino (アルドゥイーノ) とESP8266
ArduinoとESPWROOM-02によるデモタイム– デモ1: 「Lチカ」– デモ2:プログラムで時報の音を発生させる– デモ3: アナログ入力とPWM出力– デモ4: フォトセンサで暗くなったら旗を揚げる– デモ5: ESP-WROOM-02で、自分のスマホにメールを送る(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

2

技術のイノベーション

世界初のマイクロプロセッサ 「4004」（インテル社）と開発した嶋 正利氏

4004の内部写真

写真資料：http://v-t.jp/jp/topics/column/shima_column_main.php
参考資料： http://www.ieice.org/jpn/books/kaishikiji/199910/19991001.html#04(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

3

技術のイノベーションは絶えず起こっている
20世紀に生まれて、21世紀に持って来れなかった技術
消えてしまった技術– アナログレコード(1940年代) ⇒ CD
– 真空管(1904) ⇒ トランジスタ、IC– コアメモリ(1949) ⇒ 半導体メモリ– UV-EPROM-紫外線消去型(1971) ⇒ フラッシュメモリ– レーザーディスク(1989) ⇒ DVD, Blu-ray

限りなく消え行く運命– CRT(ブラウン管) ⇒ フラットディスプレイ
– テープ・ビデオレコーダ ⇒ HDD、半導体メモリ、光メディア– フロッピーディスク ⇒ USBメモリ、SDカード、光メディア– フィルム(カメラ) ⇒ SDメモリ、デジタルカメラ– 電球 ⇒ LED照明、有機EL照明
消え行く産業、新しく生まれる産業。いつの時代も技術の新陳代謝は起きている(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

4

過去、日本は応用技術で発展
基礎技術のほとんどは海外で発明– 1926年: ブラウン管TV(高柳健次郎、日本ビクター)
 独カール・フェルディナント・ブラウン(1897)– 1971年: ビデオカセットレコーダ(ソニー)

黒船家電が日本でヒット商品となっている。

 米国アンペックス社(1956)– 1973年: 液晶テレビ(シャープ) 米国RCA社(1964)– 1978年: CCDカメラ(ソニー ) 米国ベル研究所(1969) ボイル/スミス両博士 2006年にノーベル賞受賞– 1979年: ウォークマン(ソニー) カセットテープ:オランダフリップス(1962)

Appleも実は過去の技術の応用– 米国シリコンバレーゼロックス社のパロアルト(Palo Alto)研究所が開発
 ウィンドウ / マウス / イーサネット(c)2019 Mick Hoshi, ETロボコン実行委員会

etc2019/6/16

5日本生まれの実用化要素技術
マイクロプロセッサ  今日のIT社会– 1971年 : 嶋 正利(ビジコン)

フラッシュメモリ  消えない半導体メモリ(USBメモリ、SDカード)– 1980年 :舛岡 富士雄(当時 東芝)

3Dプリンタ  工業製品から人工内臓に至るまで、あらゆる物の立体成型– 1980年 : 小玉秀夫(名古屋市工業研究所)、 光造形法による立体成型で特許申請

カーボンファイバー(炭素繊維)  軽量化– 1961年 : 進藤昭男, 大阪工業試験所（現産業技術総合研究所）

リチウムイオン電池  電気自動車– 1981年 : 吉野 彰, 旭化成フェロー

ネオジム磁石  高性能モータ(今日の電気自動車)– 1984年 : 佐川眞人,住友特殊金属（現、日立金属）

青色発光ダイオード  LED照明(RGBによるフルカラーを実現)– 1993年 : 中村修二(当時 日亜化学工業)
 2014年、赤崎勇（名城大教授）、天野浩（名古屋大学教授)と共にノーベル物理学賞を受賞

IGZO技術  高精細化と低省電力のディスプレイ(スマホがハイビションに)– 1995年 : 東工大の細野秀雄氏が設計指針を提唱、特許はJST*1)が保有

iPS細胞  今後の再生医療に期待– 2012年 : 山中伸弥がノーベル生理学・医学賞を受賞*1) JST(独立行政法人科学技術振興機構):文部科学省の管轄(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

6知ったおきたい最近のトレンドワードとIoTの今後
Edge(エッジ)テクノロジー  エッジとは先端という意味– IoTでネット上に流れるデータの増大とサーバ側の処理が増大
 そのため、末端側で出来ることは末端で処理するという考え方  ユーザにより近いところで処理– コンピュータの歴史は、サーバー側処理と端末側処理の繰り返し
 これからは、クラウド利用したサーバー側処理と端末側処理のコンビネーション– これらの実現には、5Gが重要になってくる。

5G (5Generation : 5世代) 次世代通信システム

ローカル5Gに注目– 5Gは、「超高速」「超大容量」「超大量接続」「超低遅延」を実現する無線ネットワークの規格。
– 現在の4Gの100倍の速度を持つと言われ、世界中で準備が進められている。
– 日本では、2020の東京オリンピックに実用化を目指している。

SDGs(Sustainable Development Goals:持続可能な開発目標)– SDGs(エス・ディー・ジーズ)は、国連加盟193か国が2016年～2030年の15年間で達成するために掲げた目標(2015年9月の国連サミットで採択)で、現在17のゴールが定められている
 17のゴールは、ネットで検索すると出てくる
 IoTイノベーションチャレンジでは、この17のゴールからテーマを選択している

IoTの未来を考えるとき、IoTで社会がどのように変わるかの視点で捉えることが重要– 現在の無線通信が100倍速くなったら、自動車がすべて自動運転になったら....
– 自分の生活スタイルがどうかわるか? あるいは社会がどう変わるかの視点で考えてみる(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

7ガレッジニア部門の目的
次世代の技術者育成–「新しいものを生み出すことの出来る次世代の技術者育成」を目指したチャレンジ機会を提供します。
–アイデア、デザイン、設計、実装、プレゼンテーションの能力を審査。
–テクノロジーをベースに「新しい」「わくわくする」ものを作り、発表。

「つくって動かす」–センサ、アクチュエータをそれぞれ一つ以上使い、ソフトウェアで制御する。ネットワーク活用推奨！
– 完成品の部品表を提出（50万円以内でつくる）。試作の部品は問わない。

カレッジニア部門に参加のチームは、創作料理の料理人です。
本日の講義では、要素技術(食材)を紹介します。
その食材を使って、どのような料理を創作するかです。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

8

センサーとアクチュエータ(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

9代表的なセンサーの種類
センサーとは、物理的変化あるいは化学的変化を検出して電気信号に変換する素子

いずれも、最終的にはセンサーの反応が電気信号に変換される
物理量を検出

温度に反応

温度計

光に反応

リモコン、太陽電池

音に反応

マイク、騒音計

圧力に反応

ハカリ

センサー

静電容量に反応

加速度計

磁気に反応

方位計

放射線に反応線量計

ガス濃度に反応

ガス検知器

pHに反応

pH測定器

酵素に反応

医療検査機器

化学量を検出

生物量を検出(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

10

センサーの2種類のタイプ
外部から電圧を与えるタイプ– 光に反応 Cds (硫化カドニュウム)

センサーが電気を発生するタイプ– 光に反応 フォトダイオード

 光で抵抗値が変化

 フォトトランジスタ

 光で電圧を発生

 太陽電池(センサーには使わない)

 光で電流が変化– 音に反応 電気を発生– 音に反応 コンデンサマイク

 圧電マイク(クリスタル:水晶、ロッシェル塩)

 振動でコンデンサの容量が変化



圧力で電圧を発生

 ダイナミックマイク(MC: Moving Coil)

②センサーの抵抗値が変化すると、ここの電圧
が変化する

コイル

スビーカの動作

発電機の原理(スピーカの逆動作)
永久磁石

マイクの動作振動膜が振動①温度や明るさによって、センサーの抵抗値が変化振動板
電気信号

フレミングの法則は次ページで説明(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

11

フレミングの法則(モーターと発電機の関係)
フレミング右手の法則は発電機の原理フレミング左手の法則はモーターの原理

運動 F

力F

左手

磁界 B

磁界 B

電流 I

起電力 E

右手

逆動作の関係

モーターに電圧をかければ回転する

モーターを回転すると発電する
この部分を手で回すと、反対のモーターが回転する。

車のセルモーターも、エンジン始動時はモーターとして、エンジンがかかると発電機として働く
参照URL: https://t13.pimg.jp/025/196/103/1/25196103.jpg(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

12代表的なアクチュエータの種類
アクチュエータとは、入力されたエネルギーを物理運動に変換する装置の総称です。
電気式アクチュエータは、コントローラ（コンピュータ）からの指令に従って、電気エネル
ギーをモータによる回転運動や油圧を利用した上下運動などの物理運動に変換します。

電気式アクチュエータ

ソレノイド(電磁石)

スピーカ

ブレーカー

直流式

電磁弁、リレー、ベル

ダイナミック方式

スピーカ、イアホン

圧電方式

クリスタルイアホン

直流(DC)モータ

模型、電動○○

DCブラシレスモータ ラジコン、その他

モータ
アクチュエータは、入力されたエネルギー
を物理運動に変換する(c)2019 Mick Hoshi, ETロボコン実行委員会

交流式

交流(AC)モータ

扇風機、動力用

パルスモータ

プリンタ、コピー機

サーボモータ

工作機械

リニアモータカメラの自動焦点
2019/6/16

13

リレーと電磁式ソレノイドの仕組み
リレー(継電器)とは、電気信号を物理スイッチに変換する部品。
小さな信号で大きな信号を制御できる。

電流を流さないと、弁は閉じられている。

様々なリレー

普通サイズ
リレー

小型サイズ
リレー

電磁式ソレノイドは、電磁石の力で、弁などを開閉する装置。

マイクロリレー

リレーの仕組み

電流を流すと、電磁石の力で、弁が開かれる。

バネなどの力で弁が閉まる
方向に力が加わっている

アニメシーョンによる説明
物理接点(スイッチ)

コンピュータからの信号(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

14

モータ制御(PWMによる直流モータの制御)
最高電力の約80%
制御信号

与える電力の時間を長くすると、平均電力が大きくなり回転が速くなる
速く回転する

最高電力の約40%

制御信号

与える電力の時間を短くすると、平均電力が小さくなり回転が遅くなる
PWM(Pulse Width Modulation):パルス幅変調
パルス幅で負荷に与る平均電力を制御する。
(c)2019 Mick Hoshi, ETロボコン実行委員会

遅く回転する2019/6/16

15

モータの制御(パルスモータの原理)
回転子:歯車の溝の数で1ステップ当りに回転する角度が決まる

固定子
パルスモータ KP42HM2-502を分解した様子(HB型,日本サーボ)

パルスモータ(ステッピングモータとも言う)は、パルスを送る順序、速さ、時間、個数で、回転方向、回転速度、回転角を制御する。
パルスモータは、プリンタ、コピー機などには欠かせないモータ代表的なパルスモータの動作原理(c)2019 Mick Hoshi, ETロボコン実行委員会

写真引用: 鈴木憲次, 電子部品選択&活用ガイド(メカトロニクス編
トランジスタ技術 2005年6月号, CQ出版社
http://www.cqpub.co.jp/toragi/TRBN/contents/2005/tr0506/0506denshi3.pdf

2019/6/1616

アナログとデジタル(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/1617

アナログ量とデジタル量
アナログ量 ： 連続的に変化する量
デジタル量 ： とびとびの数で表す量
離散値として数値化された量

アナログ⇔デジタル変換–アナログ ⇒ デジタル： A/Dコンバータ–デジタル ⇒ アナログ： D/Aコンバータ
アナログ
A/Dコンバータ
データ

デジタル
データ

(c)2019 Mick Hoshi, ETロボコン実行委員会

デジタル
D/Aコンバータ
データ

アナログ
データ

2019/6/16

18

A/Dコンバータの動作概念
サンプリングの定理 : A/D変換するとき、元の信号の2倍以上の周波数でサンプリングをすると、デジタル化したデータから元の信号を正確に復元できる。
音楽用CDのサンプル周波数は44.1kHz。これは、1秒間を44,100個に刻んで数値化している。

サンプリングクロック
アナログデータ

音楽用CD「あ」の発生音の波形（写真：江戸川学園取手高校）

デジタルデータ

MRI

Magnetic Resonance Imaging

A/D変換は、MRIと似ている。
どれだけ細かく輪切りにするかがサンプル周波数(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

19

D/Aコンバータの動作概念
サンプリングクロック

デジタルデータ
分解能 10進数 2進数
10 00000000
2
17 00001011
334 00010101
450 00011111
5
64 00101001
677 00110001
7
87 00110111
8
94 00111100
998 00111111
10
100 01000000
1198 00111111
12
94 00111100
13
87 00110111
14
77 00110001
15
64 00101001
16
50 00011111
17
34 00010101
18
17 00001011
19
0 00000000
20-17 11110101
21-34 11101011
22-50 11100000
23-64 11010111
24-77 11001111
25-87 11001001
26-94 11000100
27-98 11000001
28 -100 11000000
29-98 11000001
30-94 11000100
31-87 11001001
32-77 11001111
33-64 11010111
34-50 11100000
35-34 11101011
36-17 11110101
37
0 00000000

デジタル
入力

DA
コンバータ
2R

b7

アナログ値

2R

R

2R

R

2R

R

b6

アナログ
出力

b5
b4
b3

2R

R

2R

R

2R

R

2R

R

50

2R

0

ローパスフィルタで、高い周波数成分(階段部分)を除去

b2
b1
b0

(c)2019 Mick Hoshi, ETロボコン実行委員会

100

1

3

5

7

9

11 13 15 17 19 21 23 25 27 29 31 33 35 37

-50
-100

2019/6/1620

アナログ⇔デジタル変換動作の流れ
元のアナログ信号。高い周波数成分が含まれている

高い周波数成分がカットされた波形

アンプで増幅
された信号

アンプ

ローパス
フィルタ

A/D変換でデジタル化されたデータ

A/D変換

人間の耳に聞こえる音のみにする

高い周波数をカット
アンプで増幅された信号

階段状の波形が滑
らかになる

アンプ

サンプリング
クロック生成D/A変換の直後は、階段状の波形になっている

ローパス
フィルタ

D/A変換

現在、「ハイレゾ・オーディオ」の規格が登場してきている。これは、サンプリングクロックを従来のCDの44.1kHzから、96kHz～192kHzまで高くし、さらに量子化も16ビットから24ビットにして、高い周波数成分まで再生できるようにしたものである。
(c)2019 Mick Hoshi, ETロボコン実行委員会

コンピュータでの処理

ハイレゾオーディオのロゴマーク2019/6/16

21

世界の規格化団体(ISO/IEC/IEEE/ITU)
ISO(International Organization for Standardization)とは、工業標準の策定を目的とする国際機関で、各国の標準化機関の連合体。1947年に設立され、現在では147カ国が参加している。
本部はスイスのジュネーブ。ISOxxxの規格名(例:ISO9000)。

IEC(International Electrotechnical Commission)とは、「国際電気標準会議」の略で、電気、電子、通信、原子力などの分野で各国の規格・標準の調整を行なう国際機関。1906
年に設立され、1947年以降はISOの電気・電子部門を担当している。本部はスイスのジュ
ネーブ。IECxxxの規格名(例:ISO/IEC 13818-1)。 電卓のキー配置(下段から1,2,3の配列)。

IEEE(The Institute of Electrical and Electronics Engineers, Inc.)とは、アメリカ合衆国に本部を持つ電気・電子技術の学会。2002年にIECとの協力協定を締結。IEEExxxの規格名(例:IEEE1394、IEEE802.11g)。

ITU(International Telecommunication Union) とは、「国際電気通信連合 」の略で、電気通信に関する国際標準の策定を目的とする、国際連合の下部機関。本部はスイスのジュネーブ。
H.xxxの規格名(例:H.264)。 電話のキー配置(上段から1,2,3の配列)。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

22

各種センサーの紹介とモーター制御(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

23

反射型フォトリフレクタ
フォトリフレクタは、LEDとフォトトランジスタで構成されている
そして、LEDから出た光が反射をフォトトランジスタで受けている
ETロボコンで使っている赤外線センサーと同じ仕組み
白いほうが赤
外線LED
赤外線
LED

フォトリフレクタLBR-127HLD

赤外線
フォトトランジスタ

反射面

重要

赤外線は、布に吸収されるため、ETロボコンのコースを始め布では正しく動作をしません。
そこで、赤外線LEDを赤色LEDに変えると布でも反応します。
レゴの赤外線センサーが赤く光っているのはそのためです。
市販されているフォトリフリクタはすべて赤外線タイプです。
そのため、赤外線LEDが光っているかは人間に直接は見えません。
それで、Androidのスマホのカメラで見ると発光しているのが白く見えます。
iPhoneのカメラでは、フィルタが入っているため見えません。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

24

透過型フォトインターラプタ
フォトインターラブタは、コの字型になっていて、LEDとフォトトランジスタで構成
されている
そして、LEDから出た光を反対側にあるフォトトランジスタで受けている(光があたっている状態)
その間に、光が遮られたことを検出(光が遮られた状態)
フォトトランジスタ

LED

フォトインターラプタの
中身

スリット

フォトインターラプタの外見(c)2019 Mick Hoshi, ETロボコン実行委員会

歯車に穴を空ける

使用例(1)
歯車に穴を空けて、フォト
インターラプタで、穴を通過する光をカウントできる。

使用例(2)
2個使用して、バーの上下位置の検出に利用できる。
2019/6/16

25

距離センサーこの距離センサーは、赤外線を発光し、対象物からの反射光をフォトトランジスタで受けて距離を測定する。
原理は、反射型フォトリフリクタと同じ。
測距モジュール(シャープ)
GP2Y0A21YK

①② ③

OUT

GND

cm

Vcc(+5V)

付属のコネクタに付いている線は、
赤がGND、黒が+5Vなので注意(c)2019 Mick Hoshi, ETロボコン実行委員会

この距離センサーの出力はアナログ電圧となる。
上記のグラフから、ピークは約20cmの距離で出力電圧が2.75Vとなる。
ArduinoのA/Dコンバータは10ビットのため、+5Vは1023の値となる。
したがって、アナログで読み取った値は、1023 / 5 x 2.75 = 562.65となる。
2019/6/16

26

超音波センサー
超音波センサーは、ETロボコンでも使われています。目玉のようなものが2つありますが、1つはスピーカーでもう一つはマイクです。
スピーカーから超音波(40KHz)を出し、超音波が帰ってくる時間で距離を測定します。
空気中で音の伝わる速度は、0℃ で331.5m/秒、1℃ 上昇するごとに 0.6m/秒づつ増加します。
15℃の場合は340.5m/秒になります(331.5 + 15 x 0.6 = 340.5)。
したがって、正確に測定するためには温度による補正が必要になります。
超音波距離センサー
HC-SR04#define ECHO_PIN 2 // Echo Pin#define TRIG_PIN 3 // Trigger Pin
digitalWrite(TRIG_PIN, HIGH); // 超音波を出力
delayMicroseconds(10);// 10usの間、超音波を出力
digitalWrite(TRIG_PIN, LOW); // 出力を停止①② ③④

Vcc Triger Echo GND+5V(c)2019 Mick Hoshi, ETロボコン実行委員会

Duration = pulseIn(ECHO_PIN, HIGH); // 反射音の入力

pulseIn関数はHIGHにした瞬間から時間の計測を始め、指定したピンに入力されるパルスがLOWになるまでの時間を計測して返します。
2019/6/16

27

ジャイロセンサー
ジャイロセンサーは、角度を検出する– ジャイロセンサーは回転させることで反応、移動では反応しない。
– ジャイロセンサーは、ETロボコンの走行体にも傾き検出で使用

加速度センサーは、直線移動を検出する– 加速度センサーは移動することで反応、回転では反応しない。

最近のセンサーは、3軸が検出できるのが多い。

コリオリの力
回転している物体を移動したときに生じる力

ヨー

ロール

ピッチ

2軸だが、+5Vで動作し、アナログ出力なためArduinoで使用

参考URK:http://www.grid.co.jp/img/IMU-2.jpg

地球ゴマ
Arduinoで使用するのは難しい３軸ジャイロセンサーモジュール
L3GD20 (3.3V I2C/SPI 仕様)(c)2019 Mick Hoshi, ETロボコン実行委員会

2軸 圧電振動ジャイロモジュール(2.7V～5V アナログ出力)

フィンガー スピンナー
2019/6/16

28

赤外線リモコンの信号
赤外線リモコンは、38KHzの周波数を搬送波としている– その38KHzのデューティ比は9-17で、50%-50%ではない  デューティ比は後ほど説明
8.7us
17.5us38KHzの搬送波

26.3us ≒ 38KHz

実際の波形
波形参考URL: https://qiita.com/nanbuwks/items/57e6a6112d0459ca7810

赤外線受信モジュールの出力①

出力

赤外線リモコンは、次の3種類のデータフォーマットがある。
– NEC方式 ‥‥‥‥‥– 家電製品協会 ‥‥‥– SONY方式 ‥‥‥‥‥

日立、東芝、三洋、NECなど
パナソニック、シャープ、ヤマハなど
SONY、JVCなど

③
②

Vcc

GND
赤外線受信モジュール
OSRB38C9AA(2個入りで100円)

フォーマット分析は面倒。生データを読込みそのまま出力するのが簡単– GitHubに Arduino用の IRremote というライブラリがあるので参考になります(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

29

DCモーターの制御の原理
モーター制御用IC
TA7291

トランジスタトランジスタはスイッチははスイッチは
同じ役割
同じ役割

M
モーター

ストップ
前進
後進
ブレーキ

ケース

磁石

中身

コイル

鉄心

DCモーターの構造
モーターの仕組みビデオ(2分7秒)(c)2019 Mick Hoshi, ETロボコン実行委員会

参照URL:https://www.mabuchi-motor.co.jp/product/knowledge/structure/motion.html
30
2019/6/16

TA7291の内部と信号線の役割
コンピュータ側の電源モーターへの電圧設定

モーター側の電源

通常、Vsには、ArduinoのVin端子を使う
モーター

モーターの制御

IN1

IN2

動作

L

L

ストップ

H

L

前進

L

H

後進

H

H

ブレーキ

(c)2019 Mick Hoshi, ETロボコン実行委員会

・TA7291は、手軽なモーター制御用IC・モーター側とコンピュータ側の電源が分離されている。
・そのため、モーターへの電圧を高くしても制御できる。
・モーターに与える電圧は、Vrefで設定ができる。
・コンピュータからは、IN1 と IN2 の2ビットで制御。
2019/6/16

31

TA7291を使うときの注意
モーターの回転方向は、IN1とIN2の2ビットで制御する。
モーター用の電源は、Arduinoの外部電源入力(DCジャック)に接続する– 一般的には、外部電源には、+7.2～+12Vのニッカド電池やリチウム電池を接続する
 Arduinoスペック上、外部電源入力は+7V以上必要– 外部電源入力された電源は、ArduinoのVin端子に保護回路を通して出力される– 実際のモーター制御は、Vin端子からの電源を使用する。

検討項目として、PWMのよるスピード制御で、二通りの方法がある。
– ①Vref(モーターに供給する電圧) をPWMで制御する方法。
 外部電源入力は+7V以上あるため、下記のようにモーターに高い電圧がかかる

電力は平均化されるが、ピーク電圧はVinの電圧となり、モーターへの最大電圧を超える
 RCカーなどに使う+7.2V～8.4Vで回転させるようにモーターならこの方法が良い– ②Vrefは固定して、IN1とIN2をPWMで制御する方法。
 モーター制御のIN1とIN2は排他的なので、モーターには最大でもVrefの電圧を超えない 最大電圧が3V程度の小さな模型用モーターなら、この方法(c)2019 Mick Hoshi, ETロボコン実行委員会が安全。
2019/6/16

32

Arduino (アルドゥイーノ) とESP8266(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

33

Arduino (アルドゥイーノ) コンピュータ
Arduinoという手のひらサイズのコンピュータに、光センサとサーボを付けて、暗くなったら旗が上がる装置の作成(ハンダ付けなどの作業はしません)。
Arduinoは、3,000円くらいで買える小型コンピュータ。
– 世界中で、電子工作や実験などで使われています。
– 多くの拡張ボード(シールドと言う)が販売されています。
– プログラムの作成は、無料で使えるPCの開発環境があります。
– 開発環境に多くのサンプルプログラムが用意されています。

LEDの点灯実験

拡張ボードの積み重ねが可能(c)2019 Mick Hoshi, ETロボコン実行委員会

Arduinoの外観

ライントレースのバギーカーとタンク
2019/6/16

34

Arduino Unoのピン配置
USB端子
外部電源入力モーター用電源(+7.2V～+12V)

青色のピンは、今回のデデモで使用するポート
IOピンの電圧レベル出力
Reset
+3.3V
+5V
外部電源の電圧GNDが出力されている
GND
Vin:外部電源の出力

リセットスイッチ

アナログ入力の基準電圧
GND
13 (LED)
11 (PWM出力)
9 (サーボ制御)
デジタル入力・出力
0～13A0
アナログ入力A0～A5~ マークのピンは、PWM出力が可能です。
TX : シリアル送信
RX : シリアル受信(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

35

ESP-WROOM-02 (ESP8266)
ESP-WROOM-02は、小さすぎて直接信号を取り出すのが困難です。
そこで、下記のようなT型ベース基板に本体を取り付け、ベース基板から信号を取り出せるモジュールが便利です。 価格は1000円以下で購入可能。

この部分がWiFiのアンテナ

ESP-WROOM-02 本体
500円玉くらいの大きさ

ESP8266

性能比

クロック周波数

16MHz

80MHz

5倍

SRAM

2KB

50KB

25倍

フラッシュメモリ

32kB

4MB

125倍

A/D入力(10bit)

6本(0~5V)

1本(0~1V)-

デジタル入出力

11 / 13本

6 / 9本-

6本(8bit)
4本(10bit)
PWM出力
GND
Arduino UnoとESP8266の性能比較~IO16*1
TOUT(ADC )RST(リセット)・SRAMとは、実行時に使用するメモリ
IO5・フラッシュメモリとは、プログラムを格納するメモリ
TxD
シリアル通信RxD で使用
IO4
手軽にWiFiを使うならするESP-WROOM-02。

技適マーク

IO15とIO0は、書込み/実行
モード切替のために使用

Arduino Uno

3.3V
EN
IO14
~IO12
~IO13
~IO15
IO2
IO0

表面

メカ制御をするなら、Arduinoのほうが使いやすい*1) TOUT端子は、内部で10ビットのA/Dコンバータにつながっていて、アナログ入力ができます。
しかし、 ESP8266 のA/Dコンバータの最大入力電圧は、1Vです。1Vを超える電圧は、1024の値になります。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

36

ArduinoとESPWROOM-02によるデモタイム(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

37

デモ1 : 「Lチカ」
Lチカ とは、LEDをチカチカさせるという意味のエンジニア用語です。
– Arduinoに接続したLEDをチカチカとプログラムで点滅させます。
– LEDは、電圧を加えると点灯する半導体です。

Arduinoの13ピンにLEDのプラス側を、隣のGNDにマイナス側を入れます。
– LEDには極性(プラス、マイナス)があり、プラス側をアノード、マイナス側をカソードと言います。
デモでは抵抗入りのLEDを使います

アノード(プラス側)

足の短い方がマイナス(-)

カソード(マイナス側)足の長い方がプラス(＋)

LEDの形状足の短いほうを
GNDに入れる

足の長いほうを
13番に入れる

LEDの回路記号

LEDを点灯するには、電流を制限する抵抗が必要ですが、今回使用する緑色のLEDには、+5Vでそのまま使用できるよ
うにLED内に抵抗が内蔵されているタイプです。
普通のLED(抵抗なし)を13番ピンとGND間に直接接続するのは、正しい使い方ではありません。
詳しくは、次ページの「LEDに付ける制限抵抗と計算方法」を参考にしてください。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

38

LEDに付ける制限抵抗と計算方法
PWM出力ができるピンにLEDを接続し、可変抵抗で、LEDの明るさを変化させます。
LEDを使うときは、電流制限の抵抗が必要です。
– Arduinoのデジタル出力ピンは、回路の保護用に抵抗が内蔵されています。
– 本来、LEDを使うときは、制限抵抗が必要です。

Arduinoの出力ピンは、内部に保護用の抵抗がある。

制限抵抗の値の計算方法– LEDには、順電圧というものがあり、LEDの両端に発生する電圧です。
– LEDの順電圧は、LED毎に異なりますが、大体、1.8V～3.6V程度です。

Arduino

+5V

制限抵抗
RL

+3V

+2V
GND
(マイナス)

LEDの順電圧が2Vだと、抵抗にかかる電圧は3Vとなる。

Vf : 順電圧

最大電流制限対抗 RLの求め方(1) LEDに流す電流値を決める。
標準的なLEDは、8mA～30mA程度(2) 仮に、30mAを流すとしたら、電源が+5Vの場合、LEDの順電圧を3Vとすると、
R=(5V-2V) / 30mA = 100Ω

製品に記載されている仕様

最近のLEDは性能が良いため、5～10mA程度でも十分光ります。それで、電源電圧が+5Vであれば上記の計算などはしなくても、300Ω程度の抵抗を付ければ大丈夫です。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

39

Lチカ のプログラムの説明
 LEDを接続したピン番号の設定#define LED 13
void setup() {pinMode(LED, OUTPUT);  LEDの接続されているピン(LED)を出力に設定}
void loop() {digitalWrite(LED, HIGH);  LEDの接続されているピンをHIGHにして、LEDを点灯
 1000ms(1秒)待つ。 この数字を変更すれば、点灯している時間の変更ができる。
digitalWrite(LED, LOW);  LEDの接続されているピンをLOWにして、LEDを消灯
delay(1000);

 1000ms(1秒)待つ。 この数字を変更すれば、消灯している時間の変更ができる。

delay(1000);}

上記を実行すると、13番ピンに接続したLEDがチカチカと１秒毎に点滅を開始します。
Arduino 版 hello world です。
13番ピン
LOW(0V)

13番ピン
HIGH(+5V)

GND(マイナス)

LEDが点灯(c)2019 Mick Hoshi, ETロボコン実行委員会

13番ピン
LOW(0V)HIGH(+5V)

GND(マイナス)

LEDが消灯

GND(マイナス)

LEDの点灯・消灯のアニメーション
2019/6/1640単位のお話周波数と時間は逆数の関係

記号 読み方 数式 単位

重さ 長さ

周波数

時間 容量 濃度 金額

T

テラ

1012

1兆

-

-

THz

1/ps

TB

G

ギガ

109

10億

(Mt)

-

GHz

1/ns

GB

M

メガ

106

百万

t

-

MHz

1/us

MB

M*1)

K

キロ

103

千

kg

Km

KHz

1/ms

KB

K

g

m

Hz

s

B

1/千

mg

mm 1/KHz=ms

ms

-

‰

マイクロ 10-6

1/百万

μg

μm

1/MHz=μs

μs

-

ppm

100
m
μ

ミリ

10-3

n

ナノ

10-9

1/10億

ng

nm

1/MHz=ns

ns

-

ppb

p

ピコ

10-12

1/1兆

pg

pm

1/GHz=ps

ps

-

ppt

・タバコの煙の大きさは、2～4μm
・髪の毛の太さは、80～120μm
・ウィルスの大きさは、20～970nm(c)2019 Mick Hoshi, ETロボコン実行委員会

1μsで、光は300m進む
1nsで、 光は 30cm進む
1psで、 光は0.3mm進む*1) Mは、Million
10K円=10,000円
1M円=100万円
2019/6/1641周波数と周期(時間)の関係
ギターなどのチューニング用音叉
440Hz (ラの音)

サイン波

時報の音
ピッ 、 ピッ、 ピッ、 ポーン

方形波

440Hz 440Hz

1周期

440Hz

880Hz

周波数(Hz)とは、1秒間に何周期あるかのこと
1秒間に1周期であれば、1Hz
1秒間に100周期であれば、100Hz
1秒間に1000周期であれば、 1KHz

周期(時間)とは、1周期の時間のこと
1Hzは、1s100Hzは、10ms
1KHz(1000Hz)は、1ms(c)2019 Mick Hoshi, ETロボコン実行委員会

重要

周波数と周期(時間)は逆数の関係
時間 = 1 / 周波数、 周波数= 1 / 時間、
1KHzの周期(時間)は、1 /1 KHz = 1ms
2019/6/16

42

デューティ比デューティ比とは、HとLの期間の比率で、一般にはHの期間で表す– HとLの期間が同じであれば、デューティ比は50%(デューティ比50-50とも言う)

デューティ比
50%

Hの期間は
500us

Lの期間は
500us

50%

50%

1KHzなら1周期の時間は1ms(1000us)

デューティ比
30%

300us

700us

30%

70%

1周期が1ms(1000us)で1KHz

重要

デューティ比が違っても、Hの期間とLの期間の合計が周期で周波数となる
上記2つの波形の周波数は、デューティ比が異なるが1KHzで同じである。
(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

43

デモ2: プログラムで時報の音を発生させる
時報は、440Hz(ピッ)、 440Hz(ピッ)、 440Hz(ピッ)、 880Hz(ポー)– 440Hzの周期は、1 / 440Hz = 2.273ms = 2273us ゆえに、HとLの期間の時間は、2273us / 2 で 1136us になる

スピーカ– 880Hzの周期は、1 / 880Hz = 1.136ms = 1136us13 ゆえに、HとLの期間の時間は、1136us / 2 で 568us になる

Arduino
Hの期間は Lの期間は1136us1136usGND

440Hzの周期(時間)は、2273us
デューティ比50%-50%の440Hzの波形を生成するブログラム#define SPEAKER 13 // スピーカのポート
void loop() {digitalWrite(SPEAKER, HIGH); // 出力を”H”にする。
delayMicroseconds(1136);// H の期間を待つ
digitalWrite(SPEAKER, LOW); // 出力を”L”にする。
delayMicroseconds(1136);// L の期間を待つ}(c)2019 Mick Hoshi, ETロボコン実行委員会

左記は、プログラムで方形波を生成する参考プログラムである。
正確な周波数の発生は、ハードウェアタイマ
を使った、tone()関数がある。
2019/6/16

44

デモ3 : PWM出力でLEDの明るさを変える
アナログ信号を読み取り、その値に応じてPWMでLEDの明るさを変える。
– アナログ入力はボリュームで0～+5Vまで変化させ、 11番ピンにつなげたLEDを制御する

ボリュームの値は 0～1023、PWMの出力は 0～255のため、値の変換が必要。
– 単純には、ボリュームの値を4で割る  2ビット右にシフトする。
– analogWrite(ポート番号, 値)で、出力する。

ボリューム
LED

+5V
ホリューム
(可変抵抗)
A0

Arduino

GND

~11

LED

100Ω

(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/1645

アナログ入力とPWM制御するLEDの実験回路
注) カラー抵抗の見方は、p64の「参考資料 : カラー抵抗の見方」
を参照してください。
茶 黒 茶

100Ωの抵抗c14 と c18に接続

金

足の短い方がマイナス(-)

100Ωの抵抗
抵抗の足(線)は柔らかいため、ブレッド
ボードに刺すとき、曲がりやすいです。
できるだけ、足(線）の先端を持って垂直に刺すようにしてください。

足の長い方がプラス(＋)
d13

A0

GND

+5V

d14

接続図を見て配線をすると、配線ミスが起こりやすいです。
できるだけ、回路図を見て、配線をするようにしましょう。
つまり、「ピン番号と信号名をつなぐ」という考えかたで配線をしてください。
(c)2019 Mick Hoshi, ETロボコン実行委員会~11

2019/6/16

46

アナログ入力とPWM出力のサンプル
アナログ入力(ボリュームを回す)をして、PWM出力でLEDの明るさを変える
int sensorPin = A0;
int ledPin = 11;// select the input pin for the potentiometer// select the pin for the LED

int sensorValue = 0; // variable to store the value coming from the sensor
LEDのピン番号を11に変更

void setup() {pinMode(ledPin, OUTPUT);  LEDのピンを出力に設定
Serial.begin(9600);// シリアルモニタの回線を初期化}
void loop() {sensorValue = analogRead(sensorPin); アナログ値を読み取る

Serial.println(sensorValue); // 読み取ったアナログの値をシリアルモニタに表示する
analogWrite(ledPin, sensorValue >> 2 );  センサの値を4で割った値をPWMとして出力}

PWMの出力(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/1647

アナログ入力の確認プログラムの書込みが完了したら、右上の をクリックするとシリアルモニタが表示されます ([ツール]メニーの[シリアルモニタ] でも選択ができます)。
右下のような画面が表われ、数字が表示されます。
このアンコンをクリックすると、シリアル
モニタ画面が現れ、そこに読み取った値が表示されます。

ツールメニューからも選択できる

シリアルモニタの画面

シリアルモニタに値が表示されたら、ボリュームのつまみを回してみてください。
値が0～1023まで変化します。

ここで、なぜ値が、0～1023 までかを考えてみよう。
読み取った
アナログ入力の値(c)2019 Mick Hoshi, ETロボコン実行委員会

正しく表示されない場合は、この数字がsetup()のSerial.begin(9600)で設定した値になっているかを確認

2019/6/16

48

PWM (Pulse Width Modulation) 出力とは?
PWMは、「パルス幅変調」と言い、出力するバルス幅を変えることで負荷に与る平均電力を制御し、結果的にはアナログ出力となります。
Arduinoのデジタル出力ポートで、数字の前に「~」が付いているポートは、
analogWrite(ポート番号, 値)で、PWM出力が可能です(値は、0～255まで)。
PWMで制御することでLEDの明るさや、モータのスピードなどを制御できます。
PWMの出力波形
デフォルトのPWM出力の周波数
Arduino UNO : 約500Hz = 2ms
ESP-WROOM-02 : 約1KHz = 1ms

最高電力の約80%

与える電力の時間を長くすると、平均電力が大きくなりLEDが明るくなる

明るく光る

最高電力の約40%

与える電力の時間を短くすると、平均電力が小さくなりLEDが暗くなる(c)2019 Mick Hoshi, ETロボコン実行委員会

暗く光る

PWMの実際の波形ビデオ(1分3秒)

2019/6/16

49

デモ4: フォトセンサで暗くなったら旗を揚げる+5V

フォトトランジスタ

A0

ArduinoA0 GND1KΩの抵抗
GND

+5V

~9

サーボ

~9

(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

50

RCサーボの仕組み
トランスファギヤ

ラジコンなどで使われているRCサーボは、送信機、
あるいはコンピュータからの信号で、サーボホーン
を回転させる。
周期

ボリューム
20ms

20ms

コンデンサ
DCモーター

制御基板

ホーンとポリュームは、同じ軸になっている。

パルス幅

ホーン
ボリューム
トランスファギヤ

DCモーターストッパー

サーボに約20ms毎にパルスを与えると、パルス幅に応じてサーボホーンが回転する。
サーボは、内蔵されているボリューム(ポテンシャ
ルメーター)とコンデンサで作り出すパルスと受け取ったパルス幅が一致するまでモーターを回転させ、一致したらモーターが停止する。
サーボホーンは、0度～180度まで回転する。

制御基板
参考URL: http://www5b.biglobe.ne.jp/~YASUSI/gallery/electronics/050820/050820.htm(c)2019 Mick Hoshi, ETロボコン実行委員会
51
2019/6/16

サーボの動作
20ms

20ms

拡大
16~20ms
約1.5ms

左に回転

約2ms

ニュートラルの位置

約2.5ms

右に回転(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

52

暗くなった旗が上がるデモプログラム#include <Servo.h>// サーボのヘッダファイル

Servo myservo;#define SERVO 9#define SENSOR_PIN A0// サーボのオプジェクトの生成// 9番ピンをサーボ出力にする// アナログ入力のピン番号#define ZERO_ADJ 8// サーボの0位置の値#define DARK_VAL 40// 暗さ判定の値#define BRIGHT_VAL 10A0 // 明るさ判定の値
void setup() {myservo.attach(SERVO);
myservo.write(ZERO_ADJ);
Serial.begin(9600);}
void loop() {int sensorValue;// SERVOピンをサーボの出力に設定// サーボを0の位置にする// シリアルのボーレートを設定// 読み取ったセンサの値

sensorValue = analogRead(SENSOR_PIN); // 光センサの値を読み取る
Serial.println(sensorValue);// 読み取った値を表示
if(sensorValue < DARK_VAL){// 読み取った値が、暗くなったら、
myservo.write(ZERO_ADJ+90);// サーボを90度回転させる}else if(sensorValue > BRIGHT_VAL){// 読み取った値が、明るくなったら、
myservo.write(ZERO_ADJ);// サーボを0の位置にする}}(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

53

デモ5: ESP-WROOM-02で自分のスマホにメールを送る
窓に付けて防犯として

ESP-WROOM-02の動作電圧は、3.3Vです。そのため、サーボなどは動作しません。

郵便受けに

乾電池
+4.5V～+6V

検出用
マイクロスイッチ

SW
1

COMは、すべてのスイッチに共通

SW2
SW3

電池は、4本6Vでも可
COM

SW4
SW5
SW6～SW8をつなぐ

ESPWROOM-02開発ボード
IoT 8ch ただいまボタン(c)2019 Mick Hoshi, ETロボコン実行委員会

2019/6/16

54