• 検索結果がありません。

今回の内容 マイクロコンピュータにおけるプログラミング 機器の中に組み込まれる ロボット 自動車 家電 などいろいろな分野で利用 プログラムを用いて外部の装置を動作させる マイコンから の出力 発光ダイオード Light Emitting Diode 液晶ディスプレイ Liquid Crystal

N/A
N/A
Protected

Academic year: 2021

シェア "今回の内容 マイクロコンピュータにおけるプログラミング 機器の中に組み込まれる ロボット 自動車 家電 などいろいろな分野で利用 プログラムを用いて外部の装置を動作させる マイコンから の出力 発光ダイオード Light Emitting Diode 液晶ディスプレイ Liquid Crystal"

Copied!
39
0
0

読み込み中.... (全文を見る)

全文

(1)

ものづくり基礎工学(情報工学分野)

(2)

今回の内容

マイコンから の出力 ◆マイクロコンピュータにおけるプログラミング ●機器の中に組み込まれる ●ロボット,自動車,家電・・・などいろいろな分野で利用 ◆プログラムを用いて外部の装置を動作させる

●発光ダイオード(Light Emitting Diode)

●液晶ディスプレイ(Liquid Crystal Display) ◆プログラムを用いて外部の装置の状態を読み取る ●プッシュスイッチ ●ディップスイッチ コンピュータを用いた機器の制御の基礎 マイコンへの 入力 今の状態を知る 望ましい動作をさせる

(3)

J3.表示装置とスイッチの利用 3

実験に用いる機器

マザーボード  H8/3048F-ONEマイコン  表示装置  制御用スイッチ    シリアルコネクタ シリアルケーブル (ストレートケーブル)  PCとマイコン間の通信 ACアダプタ H8/3069ではない 5 Vのものか 確認する

(4)

プログラムの作成から実行までの手順

PC上でコンパイル

PC上でプログラムを作成

マイコンに転送

(5)

J3.表示装置とスイッチの利用 5

ケーブルの接続

ACアダプタ シリアルケーブル (ストレートケーブル)の を接続する SCI-1

(6)

各部の名称

(1)-マイコンボード

CPU  Central  Processing  Unit コンピュータ の頭脳

(7)

J3.表示装置とスイッチの利用 7

各部の名称

(2)-動作用スイッチ

モード切替スイッチ  プログラムの    転送    実行  で切り替える  電源スイッチ

(8)

各部の名称

(3)-プログラムで用いるスイッチ

プッシュ スイッチ ディップスイッチ  8個のスイッチの  集合体

(9)

J3.表示装置とスイッチの利用 9

各部の名称

(4)-表示装置

発光ダイオード (LED) 液晶ディスプレイ (LCD) パイロット ランプ (LED)

(10)

WEBサイトの表示

Internet Explorerを 起動する クラス 1年生の皆さんへ ものづくり基礎工学(情報工学分野)WEBサイト と進む.

(11)

J3.表示装置とスイッチの利用 11

必要なファイルのダウンロード

(1)

「『マイクロコンピュータで いろいろなものを制御しよう』の サンプルプログラムなど(ZIP)」を 「対象をファイルに保存(A)…」を 選択すると, 保存先を尋ねるウィンドウが開く 右クリックする ものづくり基礎工学 (情報工学分野)の WEBサイト

(12)

必要なファイルのダウンロード

(2)

「         」を 選択し... 「保存(S)」を 選択する デスクトップ Jmonozukuri2011.zip

(13)

J3.表示装置とスイッチの利用 13

ダウンロードが完了したデスクトップ

Jmonozukuri2011.zipの

(14)

必要なファイルの展開

Jmonozukuri 2011.zip Jmonozukuri2011 ダブルクリック Jもの造り2011 ものづくり基礎工学 Webサイトからダウンロードする 閉じてしまった場合は, デスクトップ上の Jmonozukuri2011 をダブルクリックして開く    Drag&Dropそれ行け 3048fone.cmd    へのショートカット コンパイルと 転送に用いる このフォルダで 作業する

(15)

J3.表示装置とスイッチの利用 15

作業用フォルダを開く

Jmonozukuri2011     Jもの造り2011 を右クリックし, 「新しいウィンドウで開く(E)」を 選択する Jmonozukuri2011にある フォルダ

(16)

Jmonozukuri2011 2つのフォルダを 開いたままにする Jもの造り2011 2つのフォルダを 開いたままにする

作業時のデスクトップの例

「表示」をクリックし, 「大アイコン」を選択 するとよい. が 隠れない ようにする

(17)

J3.表示装置とスイッチの利用 17

作業用フォルダの内容

  サンプル ソースファイル   C言語の ソースプログラム 種類は 「C ファイル」 Jもの造り2011

(18)

プログラムの転送から実行まで

(1)

- ファイル名のつけ方-

◆ファイル名の末尾は「.c」 ●今回はC言語のソースファイル ◆使用できない文字 ●2バイト(全角)文字 ●スペース ●ハイフン ●末尾以外の「.」 ◆その他 ●どのプログラムなのかわかりやすい名前に  好ましくない例:a.c,b.c,c.c,・・・          (一目でわからない)          fdsaf.c,fjdos.c,・・・          (でたらめ) LED 3.c LED-3.c prog3.5.1.c

?

?

×

×

×

コピー.c

×

(19)

J3.表示装置とスイッチの利用 19

プログラムの転送から実行まで

(2)

Progモードへの切り替え-

(1)電源をOFFにする (2)「Prog」側に倒す (3)電源をONにする

(20)

プログラムの転送から実行まで

(3)

- コンパイルと転送 ー

Jもの造り2011 Jmonozukuri2011 (4)ソースファイルを  コンパイル用の  コマンドファイルに  ドラッグ&ドロップ このようなウィンドウが表示 され,エラーがなければ転送 終了後に閉じる.

(21)

J3.表示装置とスイッチの利用 21

プログラムの転送から実行まで

(4)

- 失敗例

(1) ー

書き込みに失敗した場合  ●シリアルケーブルの接続先は   正しいか  ●マザーボードの電源が入って   いるか  ●モード切り替えスイッチは   「Prog」側になっているか  ●以上のことを確認して電源を   入れ直す

(22)

プログラムの転送から実行まで

(5)

- 失敗例

(2) ー

プログラムに誤りがある場合  (コンパイルエラー)  ●プログラムを修正する エラーの内容 ファイル名が不正な場合も このウィンドウが消えない ↓ ファイル名を修正する

(23)

J3.表示装置とスイッチの利用 23

プログラムの転送から実行まで

(6)

Runモードへの切り替え -

(5)電源をOFFにする (7)電源をONにする (6)「Run」側に倒す

(24)

おまじない /* LED点滅 */ #include <3048f.h> #include "lib\lcdlib.h" #include "lib\monozukuri.h" void main(void) { initMicon(); while(1) { turnOnLed(all); waitms(250); turnOffLed(all); waitms(250); } }

LEDの点滅

-リスト

3.5.1(01led1.c)-

無限に繰り返し 組み込まれた機器が 動作している間は繰 り返し 両方のLEDを点灯 両方のLEDを消灯 点灯した状態で待つ 消灯した状態で待つ

(25)

J3.表示装置とスイッチの利用 25

周期と周波数

●周期 T  繰り返される現象において,1回の繰り返しに要する時間. ●周波数 f  繰り返される現象において,1秒間に繰り返される回数.  単位は Hz. f [Hz]= 1 T [s] 点灯 消灯 点灯 消灯 点灯 TON= 250 ms TOFF= 250 ms 周期 T = 500 ms リスト3.5.1では・・・ f = 1 500×10−3 = 1 0.500 = 2.00 Hz T =250+250=500 ms 接頭辞mは 10-3倍の意味 1秒間に 2回点滅

(26)

LEDの明るさを調節する例

-課題

3.1(2)-

例.10 msの点灯と5 msの消灯を繰り返す     ・     ・     ・ while(1) { turnOnLed(all); waitms(10); turnOffLed(all); waitms(5); }     ・     ・     ・ 点灯 消灯 点灯 消灯 点灯 TON= 10 ms TOFF= 5 ms 周期 T = 15 ms デューティ比 = 10 10+5×100 = 67 %

(27)

J3.表示装置とスイッチの利用 27

LEDの交互点滅

-リスト

3.5.3(02led2.c)-

/* LED交互点滅 */ #include <3048f.h> #include "lib\lcdlib.h" #include "lib\monozukuri.h" void main(void) { initMicon(); while(1) { turnOnLed(right); turnOffLed(left); waitms(250); turnOnLed(left); turnOffLed(right); waitms(250); } } 右のLEDのみ点灯した 状態が250 ms続く 右のLEDのみ点灯 左のLEDのみ消灯 左のLEDのみ点灯した 状態が250 ms続く

(28)

課題

3.2におけるLEDの点滅

両方消灯 左のみ点灯 左 右 両方消灯 右のみ点灯 点灯するLEDが切り替わる間に すべて消灯する区間がある 左のみ点灯 右のみ点灯 左のみ点灯 左のみ点灯 右のみ点灯 両方消灯

(29)

J3.表示装置とスイッチの利用 29 H e l l o !

LCDへの文字表示

-リスト

3.5.4(03printf.c)-

void main(void) { initMicon(); clearScreen(); gotoxy(2,0); printf("Hello!");      ・      ・      ・ } LCDの表示をすべて消す カーソル位置 (次のprintfで文字を表示する位置) の指定 LCDに文字を表示 2桁目 0行目

(30)

プッシュスイッチの状態の読み込み

-リスト

3.5.6(04pushSW.c)-

/* プッシュスイッチの状態を知る */ #include <3048f.h> #include "lib\lcdlib.h" #include "lib\monozukuri.h" void main(void) { int sw; initMicon(); while(1) { sw=getPushSw(); gotoxy(0,0); printf("%04b, %2d",sw,sw); } } スイッチの状態を 記憶するための変数 押されたスイッチの組み 合わせによって異なる整 数がswに代入される. 組み合わせは 24=16通り swの値を 4桁の幅の2進数で表示 (上位0詰め) swの値を 2桁の幅の10進数で表示

(31)

J3.表示装置とスイッチの利用 31

プッシュスイッチの番号

スイッチの番号

(32)

数の表現

●10進数  10nを単位として表わした数  0,1,2,3,4,5,6,7,8,9を用いる   2015=2×103+0×102+1×101+5×100  ●2進数  2nを単位として表わした数  0,1を用いる   (11111011111)2=1×210+1×29+1×28+1×27+1×26+0×25        +1×24+1×23+1×22+1×21+1×20 ●16進数  16nを単位として表わした数  0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,Fを用いる   (7DF) 16=7×16 2+13×161+15×160 D F 10 11 12 13 14 15

(33)

J3.表示装置とスイッチの利用 33

条件によって実行内容を変える

if文の利用(リスト3.5.7)-

かっこ内の   が満た されるときのみ, の内容を実行する. 押された スイッチの 組み合わせに 応じた値が 代入される #include <3048f.h> #include "lib\lcdlib.h" #include "lib\monozukuri.h" void main(void) { int sw; initMicon(); while(1) { sw=getPushSW(); if(sw==1) { turnOnLed(right); } } } 条件 「swが1に等しい」 S1だけが押されたとき, swの値は1になる. 右のLEDを 点灯させる

(34)

if文のひな形と条件式

いろいろな条件式   sw==0:swが0に等しい  sw>=1:swが1以上である(1を含む)  sw>-2 :swが-2より大きい(-2は含まない)  sw<=3:swが3以下である(3を含む)  sw<-4 :swが-4より小さい(-4は含まない)  sw!=5 :swが5と等しくない if文のひな型 if( 条件式 ) { 条件が成り立ったときに実行する処理  }

(35)

J3.表示装置とスイッチの利用 35

課題

3.4(2)

押すスイッチ swの値 動 作 実行させる文 S0 1 右のLEDを点灯 turnOnLED(right); S1 右のLEDを消灯 S2 左のLEDを点灯 S3 左のLEDを消灯 (1)で調べた 結果から 考える 実現したい内容を表にまとめると… プログラムにすると… リスト3.5.8

(36)

ディップスイッチの状態の読み込み

-リスト

3.5.9(05dipSW.c)-

スイッチの状態を 記憶するための変数 スイッチのON/OFFの組み合 わせによって,異なる整数が dipに代入される. 組み合わせは 28=256通り /* ディップスイッチの状態を知る */ #include <3048f.h> #include "lib\lcdlib.h" #include "lib\monozukuri.h" void main(void) { int dip; initMicon(); while(1) { dip=getDipSw(); gotoxy(0,0); printf("%08b, %2d",dip,dip); } }

(37)

J3.表示装置とスイッチの利用 37

ディップスイッチの番号

スイッチの番号

(38)

報告上の注意-課題

3.1における数値

●周期   1 msの位まで書く    →10~99 msであれば有効数字2桁になる   ●周波数   周期の逆数なので,有効数字の桁数は周期と同じになる    →1桁多く値を求め,最後の桁を四捨五入する ●デューティ比   計算に用いた値のうち,有効数字の桁数が最も少ない値と   同じ桁数で求める    →点灯時間と周期のうち桁数の少ない方に合わせる    →百分率を求めるための100倍は無限大の桁数と考える

(39)

J3.表示装置とスイッチの利用 39

報告上の注意-課題

3.3(2)

●起きた現象が誰にでも完全に伝わるように書く   →この実験をしたことがない人でもわかるように   →文章から現象を再現するプログラムが組めるように   ●盛り込まれるべき内容   →表示された文字列は何か   →どのような動きをしたのか   →最初はどのような状態なのか   →最後はどのような状態なのか   →1回だけ起きるのか,繰り返し起きるのか 完全に伝わらないこと を利用した遊びが 「伝言ゲーム」

参照

関連したドキュメント

これは基礎論的研究に端を発しつつ、計算機科学寄りの論理学の中で発展してきたもので ある。広義の構成主義者は、哲学思想や基礎論的な立場に縛られず、それどころかいわゆ

87.06 原動機付きシャシ(第 87.01 項から第 87.05 項までの自動車用のものに限る。).. この項には、87.01 項から

このエアコンは冷房運転時のドレン(除湿)水を内部で蒸発さ

2)海を取り巻く国際社会の動向

これらの設備の正常な動作をさせるためには、機器相互間の干渉や電波などの障害に対す

 医療的ケアが必要な子どもやそのきょうだいたちは、いろんな

◯また、家庭で虐待を受けている子どものみならず、貧困家庭の子ども、障害のある子どもや医療的ケアを必

利用している暖房機器について今冬の使用開始月と使用終了月(見込) 、今冬の使用日 数(見込)