66
大阪・日本橋 でんでんタウン 発明ロボット塾 4組み込みマイコンH8マイコン) のことを勉強しよう 担当 トライアングル・エレクトロニクス 久保幸夫

でんでんタウン発明ロボット塾マイコン入門工作20140406

Embed Size (px)

DESCRIPTION

大阪日本橋・でんでんタウン工作教室 発明ロボット塾4月(2014年4月6日) 組み込みマイコン( H8マイコン) のことを勉強しよう トライアングル・エレクトロニクス  久保幸夫 @tentenV3

Citation preview

Page 1: でんでんタウン発明ロボット塾マイコン入門工作20140406

大阪・日本橋 でんでんタウン 発明ロボット塾 4月

組み込みマイコン( H8マイコン)

のことを勉強しよう

担当 トライアングル・エレクトロニクス 久保幸夫

Page 2: でんでんタウン発明ロボット塾マイコン入門工作20140406

はじめに

• この講座は、 中学校の技術家庭科で習う、

レベルの知識を小学生(高学年)~中学生を対象に 身に付けることを、目的としています。 同、知識レベルを大きく上回ることや、H8マイコンに特化したプログラム等の解説は割愛しておりますので、ご了承くださいませ。

D 情報に関する技術 (3) プログラムによる計測・制御について,次の事項を指導する。

ア コンピュータを利用した計測・制御の基本的な仕組みを知ること。

イ 情報処理の手順を考え,簡単なプログラムが作成できること

Page 3: でんでんタウン発明ロボット塾マイコン入門工作20140406

ごちゅうい

• ぶひんのほうこう、つなぎまちがいに ちゅういすること

• ショートさせないこと

• さきのとがったぶひんもあるので、 ちゅういすること

• こまかいぶひんがおおいので、 なくさないこと

• あそばないときは、

かならずACアダプターを抜いておくこと

Page 4: でんでんタウン発明ロボット塾マイコン入門工作20140406

組み込みマイコンって

• 機械の中に入っている 小さなコンピュータ

• 何をしているの?

機械を動かす

制御(せいぎょ)

Page 5: でんでんタウン発明ロボット塾マイコン入門工作20140406

クイズ これ!なんだ!

Page 6: でんでんタウン発明ロボット塾マイコン入門工作20140406

制御(せいぎょ)の例 • 炊飯器(すいはんき)

– ごはんをたくやつ

– おいしいごはんを たくには、火の強さの加減が大切

火のつよさを 調整(ちょうせい)する 火が弱い(よわい)と うまくたけない 火が強いと(つよい)と こげてしまう

温度(おんど)を見て うまく調整(ちょうせい)する

Page 7: でんでんタウン発明ロボット塾マイコン入門工作20140406

温度(おんど)を見て 調整(ちょうせい)するには

• 温度をしらべる センサー

• マイコンにデータをとりこむ

• 処理(しょり)

•プログラムで制御(せいぎょ)

• ヒーターをつける、けす

入口

出口

処理

計測

制御

Page 8: でんでんタウン発明ロボット塾マイコン入門工作20140406

クイズ組込みマイコン!

クイズです!

何の機械か あててください

Page 9: でんでんタウン発明ロボット塾マイコン入門工作20140406

なぞのマイコン基板(おもて)

Page 10: でんでんタウン発明ロボット塾マイコン入門工作20140406

なぞのマイコン基板(うら)

Page 11: でんでんタウン発明ロボット塾マイコン入門工作20140406

なぞのマイコン基板は なんでしょうか?

ヒント

おうちにある電気製品です よく使います

この部屋にもあります こわれると、たいへんです

マイコンをつかってます

ねだんは6万円ぐらいでした 2001年製でした

Page 12: でんでんタウン発明ロボット塾マイコン入門工作20140406

ルネサス 740ファミリマイコン 75311M4搭載

Page 13: でんでんタウン発明ロボット塾マイコン入門工作20140406

LEDランプがついています

Page 14: でんでんタウン発明ロボット塾マイコン入門工作20140406

おしボタンスイッチがついています

Page 15: でんでんタウン発明ロボット塾マイコン入門工作20140406

赤外線(せきがいせん)センサがついています (手元リモコン用)

Page 16: でんでんタウン発明ロボット塾マイコン入門工作20140406

リレーがついています 電気(AC100V)のオン・オフをします

Page 17: でんでんタウン発明ロボット塾マイコン入門工作20140406

バッテリーの充電(じゅうでん)回路と モータの回路がついています

Page 18: でんでんタウン発明ロボット塾マイコン入門工作20140406

バキュームセンサー 空気(くうき)圧をはかります

Page 19: でんでんタウン発明ロボット塾マイコン入門工作20140406

なぞの機械

•ヒント

•おおきなバッテリーが入ってます。充電できます

•コードレスでつかえます

•500Wの強力 DCモータが付いています

Page 20: でんでんタウン発明ロボット塾マイコン入門工作20140406

なぞの機械

•ヒント

–おうちにある機械ですが、 コードレスタイプです

–うごかすと、 モータの音がします

•うい~ん

Page 21: でんでんタウン発明ロボット塾マイコン入門工作20140406

なぞの機械

• ヒント

–機械のおなかが、いっぱいになると、あかいLEDがつきます

–パックをとりかえます

Page 22: でんでんタウン発明ロボット塾マイコン入門工作20140406

•わかったかな!?

•むずかしい?

•じゃ、大ヒント!

Page 23: でんでんタウン発明ロボット塾マイコン入門工作20140406

こんな機械です

Page 24: でんでんタウン発明ロボット塾マイコン入門工作20140406

•わかったかな!?

•こたえは!

Page 25: でんでんタウン発明ロボット塾マイコン入門工作20140406

コードレス掃除機

Page 26: でんでんタウン発明ロボット塾マイコン入門工作20140406

コードレス掃除機 赤外線手元スイッチ (リモコン発光側)

オン/オフ・モード切替 (強/弱/おまかせ)

赤外線受信ユニット 手動切替SW

バッテリー残量表示 (4個のLED)

ゴミパック交換常ランプ(LED)

パワーブラシ (モータ)

モータの制御 省エネルギー

(空気圧を検知し、 吸い込み力を制御) バッテリー充電・放電

Page 27: でんでんタウン発明ロボット塾マイコン入門工作20140406

コードレス掃除機のシステム

入力 出力 処理

(制御・演算・記憶)

マイコン

空気圧 センサ

赤外線 ユニット

モータ ドライブ回路

DC

モータ

回転 センサ スイッチ

安全 スイッチ

手元 スイッチ

LED表示

集塵室 (ごみパック)

空気圧(吸込み圧)を検知

モータの回転を検知

計測

制御

Page 28: でんでんタウン発明ロボット塾マイコン入門工作20140406

システムって!?

•「複数の機械を組み合わせて、 ぜんたいとして、うまく動かすためのしくみ」

って、いっても・・・ むずかしいよね!

Page 29: でんでんタウン発明ロボット塾マイコン入門工作20140406

システムには…

• 入口がある

• 処理(しょり)をおこなう

• 出口がある

• システム的に考える 入口、処理、出口を考える

入力 出力 処理 (制御・演算・記憶)

計測 制御

Page 30: でんでんタウン発明ロボット塾マイコン入門工作20140406

組み込みマイコンはシステムの中心

• 機械のシステムの中心が 組み込みマイコン

• 現在の多くの 電気製品(家電製品、通信・情報機器) ロボット、機械 乗り物(自動車、飛行機、電車…)などは、組み込みマイコンで動いている!

Page 31: でんでんタウン発明ロボット塾マイコン入門工作20140406

昔の(30年前)組み込みマイコン基板

SRAM ROM Z80CPU パラレルIO×2個

マイコン インタフェース I/O(入口・出口) メモリ

Page 32: でんでんタウン発明ロボット塾マイコン入門工作20140406

組み込みマイコン基板の構成

• メモリ(記憶) プログラムやデータを覚える

• マイコン プログラムをメモリから読んで動作 –制御

–計算

• インタフェース 外との出入口 –入口 INPUT

–出口 OUTPUT I/O(アイオー)ポート

昔はメモリ、マイコン、I/Oポートがべつべつ

Page 33: でんでんタウン発明ロボット塾マイコン入門工作20140406

いまのマイコン基板

インタフェース I/Oポートなど (入口・出口)

マイコン

メモリ

ぜんぶ、1個の ICに入って入る

ルネサス H8マイコン H8/3058F 16ビットマイコン

Page 34: でんでんタウン発明ロボット塾マイコン入門工作20140406

最新のマイコン基板

ARMマイコン STM32ディスカバリ 32ビットマイコン

インタフェース I/Oポートなど (入口・出口)

マイコン

メモリ

さらに高性能! ICが小さくなった! 電気が少なくて良い

Page 35: でんでんタウン発明ロボット塾マイコン入門工作20140406

今の組み込みマイコン

一つになった、小さくなった

高機能(いろんなことができる)

高性能になった(処理がはやい)

値段が安くなった

やすい

はやい

ちいさい

なんでもできる

どんどんべんりになったけど、 組み込みマイコンをうごかすには プログラムを作ることが必要

Page 36: でんでんタウン発明ロボット塾マイコン入門工作20140406

組み込みマイコンのプログラム

• C言語(しーげんご)で書く

–コンピュータ専用の言葉

main(){ ・・・・・・・・・・・・ int c=0; //割り込み回数 EI; //割り込み許可 while (1){ sw = ~P2.DR.BYTE; //データ入力、“1”、“0”を反転 cds= ~P6.DR.BYTE; //データ入力、“1”、“0”を反転 if ((sw & 0x01)||(cds & 0x01) ) { if( f_kankan==0){ f_kankan=1; P5.DR.BYTE=0x0A;//LED P51 P53 点灯 1010 chikachika = 0;

・・・・・・・・・・・・

入力

処理

出力

計測

制御

Page 37: でんでんタウン発明ロボット塾マイコン入門工作20140406

Arduino(アルドゥイーノ)も

• Arduino使ったことある人もいるよね

• ArduinoのプログラムもC言語風

– Arduinoのプログラム(スケッチ)は、 C言語をベースにした言語

Arduino (アルドゥイーノ)

Page 38: でんでんタウン発明ロボット塾マイコン入門工作20140406

Arduinoのプログラム

Arduino のIDE 開発環境 (かいはつかんきょう)

Page 39: でんでんタウン発明ロボット塾マイコン入門工作20140406

Arduinoのプログラム開発

• Arduinoのプログラム開発

USBケーブル

Page 40: でんでんタウン発明ロボット塾マイコン入門工作20140406

プログラム開発はおなじ

• Arduinoのプログラム開発も 組み込みマイコンのプログラム開発も きほんはおなじ

• ただ! – Arduinoは マイコンをつかいやすく、はやくつくれる • こまかいことは、 Arduinoのほうでやってくれる

– 組み込みマイコンのプログラム開発は こまかいことも、ぜんぶプログラムで書く めんどくさいけど、高性能!

Page 41: でんでんタウン発明ロボット塾マイコン入門工作20140406

41

組み込みマイコン(H8) のプログラム開発

• パソコンで(C言語)でプログラムをつくる、 マイコンのメモリ(フラッシュメモリ)に書き込む

RS-232Cで接続

開発環境 GCC Developer Lite を使用 プログラムを入れる

Page 42: でんでんタウン発明ロボット塾マイコン入門工作20140406

今日は、H8マイコンを使った工作だ

• 今日は、H8マイコンを使った工作に 挑戦(ちょうせん)します

–さすがに、 H8マイコンのC言語プログラムをぜんぶわかるのは、むずかしい

–かんたんにせつめいします。

// I/Oの設定 P2.DDR = 0; //ポート2入力 P2.PCR.BYTE = 0xff; //プルアップMOS ON P6.DDR = 0; //ポート2入力 P5.DDR =0xff; //ポート5出力 //変数の定義 unsigned char sw; unsigned char cds; int wt; ・・・・・・

Page 43: でんでんタウン発明ロボット塾マイコン入門工作20140406

なにを作るか?

• なにを作るか?

–なにをうごかすのか?

–なにを検知して、どのように動かすのか? • これを仕様(しよう)といいます

–これをよく考えたあと システムとして考える

–入口は? 処理は? 出口は?

計測 制御

Page 44: でんでんタウン発明ロボット塾マイコン入門工作20140406

今日、工作するものは?

•なにを つくるの?

Page 45: でんでんタウン発明ロボット塾マイコン入門工作20140406

今日は・・・

ふみきり

踏切かんかん装置つくります

Page 46: でんでんタウン発明ロボット塾マイコン入門工作20140406

踏切かんかん装置

今回は プラレールは使いません

光センサーで 電車を検知

カンカンカン

LEDが チカチカ

Page 47: でんでんタウン発明ロボット塾マイコン入門工作20140406

踏切かんかん装置のシステム

• 入力 –光センサー(CDS)で電車を検知

• 処理 光センサーの状態を見る もし、電車を検知したら、 2個のLEDをチカチカ点灯 カンカン音を鳴らす

• 出力 LEDが2個 交互にチカチカ カンカンの音を出す装置 (音のアンプ、スピーカー)

Page 48: でんでんタウン発明ロボット塾マイコン入門工作20140406

光センサー(CDS)で電車を検知

光センサーの検知は 明るい

光センサーの検知は 暗い

電車キタッー!!

マイコンで、この光センサーの 明るい、暗い、の二つの状態を検知して、 調べることで、 電車のあり、なしを検知できる

Page 49: でんでんタウン発明ロボット塾マイコン入門工作20140406

システムが決まったら

• システムを

ハードウェアとソフトウェアに分ける

• ハードウェア(部品)

– 目に見える、さわれる マイコンもハードウェア

• ソフトウェア(プログラム)

– 目に見えない、頭でかんがえる パソコンで、プログラムをつくる

• できた、プログラムは マイコンに入れる

Page 50: でんでんタウン発明ロボット塾マイコン入門工作20140406

システムのハードウェア(部品)

• 入力 光センサー(CDS)とスイッチ (H8マイコンのI/Oポートにつながる)

• 処理 H8マイコン (アナログ出力から音を出す)

• 出力 LED2個( I/Oポートから出力) 音を出す装置 アンプ、スピーカー

Page 51: でんでんタウン発明ロボット塾マイコン入門工作20140406

ハードウェアをもっと細かく

• H8マイコンのI/Oポートを決める

• 入力 光センサー(CDS) ポート6の1番( P61)

スイッチ(ディップスイッチ) ポート2の1番( P21)

• 出力 – LED2個

• LED(右) ポート5の2番( P52) • LED(左) ポート5の3番( P53)

– アナログ出力(DA変換出力) DA出力0番(DA0)

Page 52: でんでんタウン発明ロボット塾マイコン入門工作20140406

システムのソフトウェア ( H8マイコンのプログラム)

• 入力 –光センサー(CDS)とスイッチがつながったI/Oポートから、状態を読み込む

• 処理 – 光センサー(CDS)の状態を判断して、出力を指示する

• 出力 • 2個のLEDを交互(たがいに)点滅させる • カンカンの音を作り、 アナログ出力(DA変換出力)から音を出す

Page 53: でんでんタウン発明ロボット塾マイコン入門工作20140406

H8マイコンのプログラム フローチャート(流れ図)

決まった時間をつくる

センサーの状態を読み込む

電車あり?

2つのLEDをチカチカ

カンカンの音を出す

スタート

なし

あり

ポート6の1番( P61)を 読み取る

ポート5の2番(P52) ポート5の3番(P53) を交互にオン・オフ出力

DA出力0番(DA0) からカンカンカンの音を出力

読み取った センサの 状態で、 判断する。もし電車があったら…

これは、概念を理解してもらうために、 簡単にした流れ図です 実際には、H8マイコンの タイマと呼ぶ機能を使っており、 少し複雑です

Page 54: でんでんタウン発明ロボット塾マイコン入門工作20140406

決まった時間をつくる

ちょっとむずかしいので、とばしてもOK Arduinoの場合は delay()を使えますが、H8マイコンの場合は、ありません。自分で作る必要があります。ここでは、H8マイコンのタイマと呼ぶ機能を使って、一定時間を作っています。

Page 55: でんでんタウン発明ロボット塾マイコン入門工作20140406

むずかしいので、とばしてもOK

H8マイコンのタイマと呼ぶ機能を使っています 一定時間ごとに、「割り込み」という機能で、知らせてくれます タイマの準備 void ituinit(void) //ITUイニシャライズ { ITU0.TCR.BIT.CCLR = 1; //カウンタクリア要因 ITU0.TCR.BIT.TPSC = 0; //25MHz 周期 0.04μs ITU0.GRA =120; //一定時間の値を設定 } タイマのスタート処理(main()の中) ITU0.TIER.BIT.IMIEA = 1; //IMFAフラグによる割り込み許可 ITU.TSTR.BIT.STR0 = 1; //タイマスタート

Page 56: でんでんタウン発明ロボット塾マイコン入門工作20140406

センサーの状態を読み込む

ポートP20(スイッチ)とポートP60(CDSセンサ)の値を 変数swとcdsに読み取る。

Main(){

・・・・・・・・・・

while (1){ //繰り返し

sw = ~P2.DR.BYTE; //ポートP2からデータ入力、“1”、“0”を反転

cds= ~P6.DR.BYTE; //ポートP6からデータ入力、“1”、“0”を反転

if ((sw & 0x01)||(cds & 0x01) ) {

・・・・・・・・・・

Page 57: でんでんタウン発明ロボット塾マイコン入門工作20140406

電車あり?

電車があるのか?無いのかの判断をする

while (1){

//センサーの状態を読み込む

・・・・・・・・・・・・・・・・

if ((sw & 0x01)||(cds & 0x01) ) { //もし、センサーが検知(暗い)かったら

if( f_kankan==0){ //ふみきりカンカン状態にして

f_kankan=1;

P5.DR.BYTE=0x0A;//LED P51 P53 点灯 1010 //LED(左)をつける

chikachika = 0; //チカチカさせるための変数

}

EI; //カンカン音とチカチカをするためにタイマ起動

ITU0.TIER.BIT.IMIEA = 1;//タイマ 割込み有効

ITU.TSTR.BIT.STR0 = 1; //タイマスタート

}

Page 58: でんでんタウン発明ロボット塾マイコン入門工作20140406

2つのLEDをチカチカ

ふみきりカンカン状態で一定時間ごとに行う処理 if(chikachika == 0) // 変数chikachikaが0だと { P5.DR.BYTE=0x05;//LED P50 P52 点灯 0101 //LED左点灯 chikachika = 1; } else{ P5.DR.BYTE=0x0A;//LED P51 P53 点灯 1010 //LED右点灯 chikachika = 0; }

Page 59: でんでんタウン発明ロボット塾マイコン入門工作20140406

カンカンの音を出す

//ITUインターバルタイマ割り込み void int_imia0 (void) { ITU0.TSR.BIT.IMFA = 0; //割り込みステータスフラグクリア //波形データ出力 if (sindata[c] >= 128 ) { DA.DADR0 = (sindata[c]-128)/(x/1000) ; } else { DA.DADR0 = (sindata[c])/(x/1000) ;//dataを x/1000 で減衰 } c+=1; if(c==128) c=0; if (x > 2000) { //音の減衰処理 カンカンの音を カンカンらしくする処理 ・・・・

むずかしいので、とばしてもOK DA出力0番(DA0)から 「カンカンカン」の音を出力

カンカンカンの音を生成するために、DA変換を使って、SIN波

のデータをアナログの波形に変換しています。さらに、踏切のカンカンの音らしくするために、音を加工していますが、

複雑なので、ここでは割愛します

Page 60: でんでんタウン発明ロボット塾マイコン入門工作20140406

踏切カンカンのプログラム

• 踏切カンカンのプログラムは、 すでにH8マイコンに書きこんであります。

• ハードウェア(回路)を工作すると、 踏切カンカン装置を作ることができます。

Page 61: でんでんタウン発明ロボット塾マイコン入門工作20140406

踏切カンカン装置の工作

• ミドリとオレンジの部分を、工作します

• 細かいことは別の資料で説明します

マイコン

スイッチ

アンプ回路

LED 2個

CDS センサー

スピーカー

TA7368 ミニアンプ部品セット

Page 62: でんでんタウン発明ロボット塾マイコン入門工作20140406

各自で工夫してみよう

• 今回の工作では、踏切の形まで工作しません。各自、工夫してみてください。

• お手持ちのプラレールや、ブロックなどで作った模型の電車と組み合わせると、 より踏切らしくなります。

Page 63: でんでんタウン発明ロボット塾マイコン入門工作20140406

参考 さらに自分でプログラムしたい人は

• 参考書(開発環境のCD付)

• C言語による H8マイコン プログラミング入門

• 技術評論社 横山 直隆 (2003/8/30)

• この本と、USB-シリアル変換コネクタがあれば、C言語による開発ができます。

Page 64: でんでんタウン発明ロボット塾マイコン入門工作20140406

参考

H8マイコンのフラッシュROMの書込み1

• 専用書込みソフト • H8Write Turboを使用する (CD-ROMの中にあり)

• MOT形式のファイルをフラッシュ書込みソフトを使用して、H8マイコンに書込みできる。

• RS232CケーブルでPCとマイコンを接続

• H8マイコンは、書込みモード(マザーボードのS7 SW を書込)、マイコン基板のMD2ピンをショートさせる。

Page 65: でんでんタウン発明ロボット塾マイコン入門工作20140406

参考

H8マイコンのフラッシュROMの書込み2

• フラッシュROMの書込みは、RS232C経由でPCから書き込む

• H8マイコン側の S7スィッチをRUNの反対側に切り替える

• CPUボードのCN5 MD2にヘッダピンを挿す

• (電源を切って切り替えること)

RUN

write

Page 66: でんでんタウン発明ロボット塾マイコン入門工作20140406

ご清聴ありがとうございました ご清聴ありがとうございました

お問い合わせ、 講演・執筆・工作教室等の依頼は

Tw:@tentenV3 もしくは、FB または

http://triangle-ele.com/ のフォームから

パッチン電子工作も よろしく!

ただいま 段ボール工作と電子工作の融

合を策略中!

ダンボール くっすん は、東洋紙工株式会社の製品です くっすん は、四條畷市商工会が管理・運営しています

ダンボール くっすん