• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
でんでんタウン発明ロボット塾マイコン入門工作20140406
 

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

on

  • 501 views

大阪日本橋・でんでんタウン工作教室 発明ロボット塾4月(2014年4月6日) ...

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

Statistics

Views

Total Views
501
Views on SlideShare
498
Embed Views
3

Actions

Likes
1
Downloads
2
Comments
0

1 Embed 3

https://twitter.com 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • 大阪・日本橋 でんでんタウン 発明ロボット塾 4月 組み込みマイコン( H8マイコン) のことを勉強しよう 担当 トライアングル・エレクトロニクス 久保幸夫
    • はじめに • この講座は、 中学校の技術家庭科で習う、 レベルの知識を小学生(高学年)~中学生を対象に 身に付けることを、目的としています。 同、知識レベルを大きく上回ることや、H8マイコンに特化した プログラム等の解説は割愛しておりますので、ご了承ください ませ。 D 情報に関する技術 (3) プログラムによる計測・制御について, 次の事項を指導する。 ア コンピュータを利用した計測・制御 の基本的な仕組みを知ること。 イ 情報処理の手順を考え,簡単なプ ログラムが作成できること
    • ごちゅうい • ぶひんのほうこう、つなぎまちがいに ちゅういすること • ショートさせないこと • さきのとがったぶひんもあるので、 ちゅういすること • こまかいぶひんがおおいので、 なくさないこと • あそばないときは、 かならずACアダプターを抜いておくこと
    • 組み込みマイコンって • 機械の中に入っている 小さなコンピュータ • 何をしているの? 機械を動かす 制御(せいぎょ)
    • クイズ これ!なんだ!
    • 制御(せいぎょ)の例 • 炊飯器(すいはんき) – ごはんをたくやつ – おいしいごはんを たくには、火の強さの加減が大切 火のつよさを 調整(ちょうせい)する 火が弱い(よわい)と うまくたけない 火が強いと(つよい)と こげてしまう 温度(おんど)を見て うまく調整(ちょうせい)する
    • 温度(おんど)を見て 調整(ちょうせい)するには • 温度をしらべる センサー • マイコンにデータをとりこむ • 処理(しょり) • プログラムで制御(せいぎょ) • ヒーターをつける、けす 入口 出口 処理 計測 制御
    • クイズ組込みマイコン! クイズです! 何の機械か あててください
    • なぞのマイコン基板(おもて)
    • なぞのマイコン基板(うら)
    • なぞのマイコン基板は なんでしょうか? ヒント おうちにある電気製品です よく使います この部屋にもあります こわれると、たいへんです マイコンをつかってます ねだんは6万円ぐらいでした 2001年製でした
    • ルネサス 740ファミリマイコン 75311M4搭載
    • LEDランプがついています
    • おしボタンスイッチがついています
    • 赤外線(せきがいせん)センサがついています (手元リモコン用)
    • リレーがついています 電気(AC100V)のオン・オフをします
    • バッテリーの充電(じゅうでん)回路と モータの回路がついています
    • バキュームセンサー 空気(くうき)圧をはかります
    • なぞの機械 • ヒント • おおきなバッテリーが入って ます。充電できます • コードレスでつかえます • 500Wの強力 DCモータが付いています
    • なぞの機械 • ヒント –おうちにある機械ですが、 コードレスタイプです –うごかすと、 モータの音がします •うい~ん
    • なぞの機械 • ヒント –機械のおなかが、いっぱいになる と、あかいLEDがつきます –パックをとりかえます
    • •わかったかな!? •むずかしい? •じゃ、大ヒント!
    • こんな機械です
    • •わかったかな!? •こたえは!
    • コードレス掃除機
    • コードレス掃除機 赤外線手元スイッチ (リモコン発光側) オン/オフ・モード切替 (強/弱/おまかせ) 赤外線受信ユニット 手動切替SW バッテリー残量表示 (4個のLED) ゴミパック交換常ランプ (LED) パワーブラシ (モータ) モータの制御 省エネルギー (空気圧を検知し、 吸い込み力を制御) バッテリー充電・放電
    • コードレス掃除機のシステム 入力 出力処理 (制御・演算・記憶) マイコン 空気圧 センサ 赤外線 ユニット モータ ドライ ブ回路 DC モータ 回転 センサスイッチ 安全 スイッチ 手元 スイッチ LED表示 集塵室 (ごみ パック) 空気圧(吸込み圧)を検知 モータの回転を検知 計測 制御
    • システムって!? • 「複数の機械を組み合わせて、 ぜんたいとして、うまく動か すためのしくみ」 って、いっても・・・ むずかしいよね!
    • システムには… • 入口がある • 処理(しょり)をおこなう • 出口がある • システム的に考える 入口、処理、出口を考える 入力 出力処理 (制御・演算・記憶) 計測 制御
    • 組み込みマイコンはシステムの中心 • 機械のシステムの中心が 組み込みマイコン • 現在の多くの 電気製品(家電製品、通信・情報機器) ロボット、機械 乗り物(自動車、飛行機、電車…)など は、組み込みマイコンで動いている!
    • 昔の(30年前)組み込みマイコン基板 SRAM ROM Z80CPU パラレルIO×2個 マイコン インタフェース I/O(入口・出口)メモリ
    • 組み込みマイコン基板の構成 • メモリ(記憶) プログラムやデータを覚える • マイコン プログラムをメモリから読んで動作 – 制御 – 計算 • インタフェース 外との出入口 – 入口 INPUT – 出口 OUTPUT I/O(アイオー)ポート 昔はメモリ、マイコン、I/Oポートがべつべつ
    • いまのマイコン基板 インタフェース I/Oポートなど (入口・出口) マイコン メモリ ぜんぶ、1個の ICに入って入る ルネサス H8マイコン H8/3058F 16ビットマイコン
    • 最新のマイコン基板 ARMマイコン STM32ディスカバリ 32ビットマイコン インタフェース I/Oポートなど (入口・出口) マイコン メモリ さらに高性能! ICが小さくなった! 電気が少なくて良い
    • 今の組み込みマイコン 一つになった、小さくなった 高機能(いろんなことができる) 高性能になった(処理がはやい) 値段が安くなったやすい はやい ちいさい なんでもできる どんどんべんりになったけど、 組み込みマイコンをうごかすには プログラムを作ることが必要
    • 組み込みマイコンのプログラム • 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; ・・・・・・・・・・・・ 入力 処理 出力 計測 制御
    • Arduino(アルドゥイーノ)も • Arduino使ったことある人もいるよね • ArduinoのプログラムもC言語風 – Arduinoのプログラム(スケッチ)は、 C言語をベースにした言語 Arduino (アルドゥイーノ)
    • Arduinoのプログラム Arduino のIDE 開発環境 (かいはつかんきょう)
    • Arduinoのプログラム開発 • Arduinoのプログラム開発 USBケーブル
    • プログラム開発はおなじ • Arduinoのプログラム開発も 組み込みマイコンのプログラム開発も きほんはおなじ • ただ! – Arduinoは マイコンをつかいやすく、はやくつくれる • こまかいことは、 Arduinoのほうでやってくれる – 組み込みマイコンのプログラム開発は こまかいことも、ぜんぶプログラムで書く めんどくさいけど、高性能!
    • 41 組み込みマイコン(H8) のプログラム開発 • パソコンで(C言語)でプログラムをつくる、 マイコンのメモリ(フラッシュメモリ)に書き込む RS-232Cで接続 開発環境 GCC Developer Lite を使用プログラムを入れる
    • 今日は、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; ・・・・・・
    • なにを作るか? • なにを作るか? –なにをうごかすのか? –なにを検知して、どのように動かすの か? • これを仕様(しよう)といいます –これをよく考えたあと システムとして考える –入口は? 処理は? 出口は? 計測 制御
    • 今日、工作するものは? •なにを つくるの?
    • 今日は・・・ ふみきり 踏切かんかん装置つくります
    • 踏切かんかん装置 今回は プラレールは使いません 光センサーで 電車を検知 カンカンカン LEDが チカチカ
    • 踏切かんかん装置のシステム • 入力 –光センサー(CDS)で電車を検知 • 処理 光センサーの状態を見る もし、電車を検知したら、 2個のLEDをチカチカ点灯 カンカン音を鳴らす • 出力 LEDが2個 交互にチカチカ カンカンの音を出す装置 (音のアンプ、スピーカー)
    • 光センサー(CDS)で電車を検知 光センサーの検知は 明るい 光センサーの検知は 暗い 電車キタッー!! マイコンで、この光センサーの 明るい、暗い、の二つの状態を検知して、 調べることで、 電車のあり、なしを検知できる
    • システムが決まったら • システムを ハードウェアとソフトウェアに分ける • ハードウェア(部品) – 目に見える、さわれる マイコンもハードウェア • ソフトウェア(プログラム) – 目に見えない、頭でかんがえる パソコンで、プログラムをつくる • できた、プログラムは マイコンに入れる
    • システムのハードウェア(部品) • 入力 光センサー(CDS)とスイッチ (H8マイコンのI/Oポートにつながる) • 処理 H8マイコン (アナログ出力から音を出す) • 出力 LED2個( I/Oポートから出力) 音を出す装置 アンプ、スピーカー
    • ハードウェアをもっと細かく • H8マイコンのI/Oポートを決める • 入力 光センサー(CDS) ポート6の1番( P61) スイッチ(ディップスイッチ) ポート2の1番( P21) • 出力 – LED2個 • LED(右) ポート5の2番( P52) • LED(左) ポート5の3番( P53) – アナログ出力(DA変換出力) DA出力0番(DA0)
    • システムのソフトウェア ( H8マイコンのプログラム) • 入力 – 光センサー(CDS)とスイッチがつな がったI/Oポートから、状態を読み込む • 処理 – 光センサー(CDS)の状態を判断して、 出力を指示する • 出力 • 2個のLEDを交互(たがいに)点滅させる • カンカンの音を作り、 アナログ出力(DA変換出力)から音を出す
    • H8マイコンのプログラム フローチャート(流れ図) 決まった時間をつくる センサーの状態を読み込む 電車あり? 2つのLEDをチカチカ カンカンの音を出す スタート なし あり ポート6の1番( P61)を 読み取る ポート5の2番(P52) ポート5の3番(P53) を交互にオン・オフ出力 DA出力0番(DA0) からカンカンカンの音を出力 読み取った センサの 状態で、 判断する。もし電車があったら… これは、概念を理解してもらうために、 簡単にした流れ図です 実際には、H8マイコンの タイマと呼ぶ機能を使っており、 少し複雑です
    • 決まった時間をつくる ちょっとむずかしいので、とばしてもOK Arduinoの場合は delay()を使えますが、H8マイコンの 場合は、ありません。自分で作る必要があります。ここ では、H8マイコンのタイマと呼ぶ機能を使って、一定時 間を作っています。
    • むずかしいので、とばしても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; //タイマスタート
    • センサーの状態を読み込む ポート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) ) { ・・・・・・・・・・ } }
    • 電車あり? 電車があるのか?無いのかの判断をする 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; //タイマスタート }
    • 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; }
    • カンカンの音を出す //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波 のデータをアナログの波形に 変換しています。さらに、踏切 のカンカンの音らしくするため に、音を加工していますが、 複雑なので、ここでは割愛しま す
    • 踏切カンカンのプログラム • 踏切カンカンのプログラムは、 すでにH8マイコンに書きこんであります。 • ハードウェア(回路)を工作すると、 踏切カンカン装置を作ることができます。
    • 踏切カンカン装置の工作 • ミドリとオレンジの部分を、工作します • 細かいことは別の資料で説明します マイコン スイッチ アンプ 回路 LED 2個CDS センサー スピー カー TA7368 ミニアンプ部品セット
    • 各自で工夫してみよう • 今回の工作では、踏切の形まで工作しませ ん。各自、工夫してみてください。 • お手持ちのプラレールや、ブロックなどで作っ た模型の電車と組み合わせると、 より踏切らしくなります。
    • 参考 さらに自分でプログラムしたい人は • 参考書(開発環境のCD付) • C言語による H8マイコン プログラミング 入門 • 技術評論社 横山 直隆 (2003/8/30) • この本と、USB-シリアル変換コネクタが あれば、C言語による開発ができます。
    • 参考 H8マイコンのフラッシュROMの書込み1 • 専用書込みソフト • H8Write Turboを使用する (CD-ROMの中にあり) • MOT形式のファイルをフラッ シュ書込みソフトを使用して、 H8マイコンに書込みできる。 • RS232CケーブルでPCとマイ コンを接続 • H8マイコンは、書込みモード (マザーボードのS7 SW を書 込)、マイコン基板のMD2ピン をショートさせる。
    • 参考 H8マイコンのフラッシュROMの書込み2 • フラッシュROMの書込みは、 RS232C経由でPCから書き込 む • H8マイコン側の S7スィッチを RUNの反対側に切り替える • CPUボードのCN5 MD2に ヘッダピンを挿す • (電源を切って切り替えるこ と) RUN write
    • ご清聴ありがとうございました ご清聴ありがとうございました お問い合わせ、 講演・執筆・工作教室等の依頼は Tw:@tentenV3 もしくは、FB または http://triangle-ele.com/ のフォームから パッチン電子工作も よろしく! ただいま 段ボール 工作と電子工作の融 合を策略中! ダンボール くっすん は、東洋紙工株式会社の製品です くっすん は、四條畷市商工会が管理・運営しています ダンボール くっすん