2016 年 工学ゼミ Ⅲ 安全 環境活動に役立つ LEDイルミネーションの製作 1. 概要 3~5 名の学生グループで安全 環境活動に役立つ LED イルミネーションを作製する 作品のデザイン画や部品リスト 回路図 動作フロー図等は事前に作成し 計画的に作業を行うことが求められる 2. 達成すべき目標 作品に係る資料を事前にまとめ それに基づいて製作が行える 集団の中で 自身の知識 技術を積 極的に応用しながら 実用的でオリジナルな作品を導くことができる 3. 制限条件 電子部品 (LED, マイコン, ユニバーサル基板, 配線コード, 電池, 電池ボックス ) は支給されたも のを使用すること 外観に使用する部材は 1 グループあたり 1,000 円までの経費 ( 自己負担 ) を認める 4. 競うこと 発表会では実用性とデザイン性 ( 美しさ ) について各学生が評価し 作品に順位を付ける 上位の優 れた作品については 学内で展示を行う予定である 5. その他 作品の製作過程は ipad で写真を撮り 中間発表や最終発表会で活かすこと 6. スケジュール 第 1 回ガイダンス ; サンプル作品の紹介 グループを編成し 担当や作品のコンセプトを決める 担当 : リーダー 設計 部品調達 製作 ( 加工 / プログラミング ) 第 2 回設計 1; 作品のデザイン画 部品リスト 回路図 動作フロー図をまとめる 第 3 回設計 2; 上記の資料をTAにチェックしてもらい 指摘事項を修正する 第 4 回製作 1 第 5 回中間発表 ;1グループあたり3 分程度で現在の進捗状況を発表する 第 6 回製作 2 30 秒の作品紹介ビデオを作成し 発表会 2 日前までにコンテンツサーバへアップロードする 第 7 回発表会 ; 各グループが作成した作品紹介のビデオを上映する
7. ルーブリック評価 A : イルミネーションに独自のアイディアを盛り込んでおり 実用的 ( 動作が良好 ) である B : イルミネーションに独自のアイディアを盛り込み 完成には至っているが 未だ改良すべき課題が残されている C : 期限内にイルミネーションが完成できた 但し その作品はオリジナリティに乏しい D : 期限内にイルミネーションが完成できなかった 8.PIC マイコンとプログラム開発環境 8-1.PICマイコン PICファミリの 16FXXシリーズは CPU 演算機能 メモリ タイマなどの周辺機能を1チップに収めたマイコンである そのため 数個の部品と電源を接続すれば センサの波形処理やモータ制御等が容易に行える Fig.1 は この PIC マイコンを使用してライントレーサを製作した例であり Fig.2 はその回路構成を示している マイコンは 反射型フォトインタラプタ ( 光センサ ) の情報をもとにラインの検出を行い 左右のモータスピードを制御している 電池 PIC PIC16F84 マイコン (PICマイコン モータ駆動回路 A モータ A センサ回路 A センサ回路 B モータ駆動回路 B モータ B Fig.1 ライントレーサ 反射型フォトインタラプタ A ( ライン検出 ) 反射型フォトインタラプタ B ( ライン検出 ) Fig.2 ライントレーサの回路構成 Fig.3 PIC16F1939 のピン配置図 本演習では PIC16F1939 を使用する このマイコンは 高精度のオシレータ ( クロック ) を内蔵し 16k 4 ワードのフラッシュプログラムメモリと 1024 バイトのデータメモリ (RAM) を持っている PIC16F1939 のピン配置図を Fig.3 に示す LED の点灯制御に利用可能な入出力端子は次の 35 箇所である RA0 から RA7(PORTA) RB0 から RB7(PORTB) RC0 から RC7(PORTC) RD0からRD7(PORTD) 及びRE0からRE2(PORTE) (RE3 は信号出力が出来ない ) VDDは電源 ( 電池 ) のプラス側 VSSはマイナス側に接続する ( 接続は片方のみで良い ) また RE3(1) RB6(39) 及び RB7(40) はプログラム書き込み時に利用される 2
8-2. プログラム作成手順以下の手順で PIC マイコンのプログラムを作成する 1 プログラム設計 ( 動作フロー図の作成 ) 2 コーディング ( ソースファイル ***.ASM の作成 ) 3 アセンブル ( オブジェクトファイル ヘキサファイル ***.HEX の作成 ) MPLAB を使用 4 シミュレーション ( 誤りの検出 ) 5 PIC ライターを使用してマイコンにプログラムを書き込む PIKkit 2 Programmer を使用 6 実機のテスト Fig.4 プログラム開発環境 8-3. プログラムの基本 8-3-1. アセンブラ命令 PIC マイコンは全部で 35 個のアセンブラ命令 ( 表 2) を持つ その他 コーディング時には 他のソースファイルの読み込みやプログラムの開始番地の指定 終わりを示す擬似命令を使用してプログラムの記述を行う 表 1. 主な擬似命令 擬似命令 書式 内容 CONFIG CONFIG < 式 > コンフィグレーションビットの設定 END END ソースファイルの終わりの宣言 EQU < ラベル > EQU < 式 > 定数ラベルの定義 #INCLUDE #INCLUDE < ファイル名 > 他のソースファイルの読み込み ORG ORG < 式 > プログラム開始番地の指定 3
表 2. アセンブラ命令 *1 オペランド部の f は任意のレジスタ,d は格納先の選択 (0:W レジスタ,1:f の指定レジスタ ), b はビット位置 (0~7),k はリテラル ( 定数データ ) を表す *2 影響フラグに C, DC, Z などの記載があるものは その命令の実行によって STATUS( ステータス ) レジスタ内の対応するビットが影響を受けることを意味する 4
8-3-2. プログラムの形式 ; SAMPLE 01 - PORTAから PORTDに接続した LED を1 秒毎に点滅 ; ;--- デバイスの選択, コンフィグレーションの設定 --- LIST P=PIC16F1939 INCLUDE "P16F1939.INC" CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF CONFIG _CONFIG2, _WRT_OFF & _VCAPEN_OFF & _PLLEN_ON & _STVREN_OFF & _BORV_19 & _LVP_OFF ;--- ユーザエリア ---------------- #DEFINE UA 30H #DEFINE UB 31H #DEFINE UC 32H ;--- リセット, 割り込みベクタ --- ORG 0 GOTO MAIN ORG 4 GOTO MAIN ;========= メインルーチン ============== MAIN BCF INTCON,7 ; 割り込み不許可 BSF BSR,BSR0 ; バンク 1に切り替え MOVLW B'00000000' MOVWF TRISA ; ポート Aのデータ方向 ( 入出力 ) 設定 MOVLW B'00000000' MOVWF TRISB ; ポート Bのデータ方向 ( 入出力 ) 設定 MOVLW B'00000000' MOVWF TRISC ; ポート Cのデータ方向 ( 入出力 ) 設定 MOVLW B'00000000' MOVWF TRISD ; ポート Dのデータ方向 ( 入出力 ) 設定 MOVLW B'00000000' MOVWF TRISE ; ポート Eのデータ方向 ( 入出力 ) 設定 MOVLW B'01101010' MOVWF OSCCON ; 内部発生クロック 4MHz 選択 ;-------------------------- MOVLW 080H ; オプションレジスタの設定 MOVWF OPTION_REG BCF BSR,BSR0 ; バンク 0に切り替え NOP LOOP MOVLW B'11111111' 5
MOVWF PORTA MOVWF PORTB MOVWF PORTC MOVWF PORTD MOVWF PORTE CALL WAIT0 MOVLW B'00000000' MOVWF PORTA MOVWF PORTB MOVWF PORTC MOVWF PORTD MOVWF PORTE CALL WAIT0 GOTO LOOP ;------------------------- ; 1SEC ;1 秒カウント ( 待機 ) するためのサブルーチン ;------------------------- WAIT0 MOVLW D'10' ; MOVWF UC ;UC=10 とする WAIT0A CALL WAIT1 ;WAIT1 をサブルーチンコール DECFSZ UC,1 ;UC の値を-1し ゼロならばGOTO 命令をスキップ GOTO WAIT0A ; ラベル WAIT0へジャンプ RETURN ; ;------------------------- ; 100mSEC ;100ミリ秒カウントするサブルーチン ;------------------------- WAIT1 MOVLW D'150' MOVWF UA ;UA=150 WAIT1A MOVLW D'223' MOVWF UB ;UB=223 WAIT1B DECFSZ UB,1 ;UB を-1し ゼロならば GOTO 命令をスキップ GOTO WAIT1B ; ラベル WAIT1Bへジャンプ DECFSZ UA,1 ;UA を-1し ゼロならば GOTO 命令をスキップ GOTO WAIT1A ; ラベル WAIT1Aへジャンプ RETURN END ; ソースファイルの終わりを宣言 ; 6
サンプルプログラムの補足説明 1) 数値データの表記 10 進 D 10 ;10 16 進 H 10 もしくは 10H ;16 2 進 B 00001010 ;10 2) プログラムメモリとデータメモリ領域 プログラムメモリマップ データメモリマップ 0000h リセットベクタ 00h INDF0 80h INDF0 01h INDF1 81h INDF1 02h PCL 82h PCL 0004h 割込みベクタ 03h STATUS 83h STATUS 0005h 08h BSR 88h BSR 09h WREG 86h WREG 0Bh INTCON 8Bh INTCON 03FFh ユーザプログラム 0Ch PORTA 8Ch TRISA Page 0 0Dh PORTB 8Dh TRISB 0Eh PORTC 0Fh PORTD 10h PORTE 8Eh TRISC 8Fh TRISD 90H TRISE 07FFh 0800h Page 1 20h 7Fh ユーザ メモリ 95H OPTION_REG 99H OSCCON 3FFFh Page 7 バンク0 バンク1 Fig.5 プログラムメモリマップとデータメモリマップ データメモリは 128 バイト単位で分けられており それをバンクと呼ぶ バンクの移動は BSR レジスタのBSR4 から BSR0ビットを設定することで行われ 全てのビットが 0でバンク 0, BSR0のみ1 でバンク 1の状態になる なお ユーザがプログラムで利用可能なメモリは バンク 0 においてアドレス 20hから 7Fhの範囲にある 7
3) コンフィグレーションの設定コンフィグレーションビットは PIC マイコンのハードウェアの動作を決定するもので プログラム同様に PICライタを使用して特定のメモリに書き込みを行う 本演習では 上記のサンプルと同じ設定とすることを薦める CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF ( 内蔵クロック利用で外部出力しない & ウォッチドックタイマ無効 & パワーアップタイマ無効 & MCLR 端子無効 & コードプロテクトしない & データ EEPROMプロテクトしないなど ) CONFIG _CONFIG2, _WRT_OFF & _VCAPEN_OFF & _PLLEN_ON & _STVREN_OFF & _BORV_19 & _LVP_OFF 4) 入出力端子 (PORTA から PORTE) におけるデータ方向の設定 入出力端子に LED を接続し点滅動作を行うには プログラムの初期段階でデータ方向を 出力 に設 定しておく必要がある PORTA のデータ方向設定レジスタ :TRISA(85H) bit 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 出力 -0, 入力 -1 同様に PORTBのデータ方向設定レジスタ :TRISB(86H) PORTCのデータ方向設定レジスタ :TRISC(86H) PORTDのデータ方向設定レジスタ :TRISD(86H) PORTEのデータ方向設定レジスタ :TRISE(86H) < 参考書 ホームページ> 1. 角山正博, 佐藤栄一 ; コンピュータの基礎, 青山社, 2013. 2.http://www.picfun.com/, 電子工作の実験室, 後閑. (PICマイコンの機能やプログラミングについて解かりやすく解説) 3.http://www.microchip.co.jp/, マイクロチップテクノロジージャパン. (MPLAB や PIC16F1939 などのデータシートをダウンロード可能 ) 4.http://esato.net/ex/micom/, PICマイコンによる LEDイルミネーション製作, 佐藤. ( コーディングやシミュレーションの操作手順を写真入りで説明 ) 8
工学ゼミ Ⅲ 安全 環境活動に役立つ LED イルミネーションの製作 第 1 回 グループ : 学籍番号 : 氏名 : 1. 担当の決定 リーダー 新潟一郎 設計 柏崎太郎 部品調達 長岡三郎 製作( 加工 ) 三条志郎 柏崎太郎 製作( プログラミング ) 上越次郎 新潟一郎 2. 次回までの課題製作を行うLEDイルミネーションのアイディアをまとめてくる 例えば 誰が いつ どこで どのように利用するのか? ホタル生息地の住民が ホタル飛翔時期に ホタルが現れる場所で 車の明かりを消してもらうために利用する イルミネーションの大きさ 形状は? B5 サイズ程度の大きさで四角の看板をつくる 下図のとおり LED を 35 個配置して 17 の点灯パターンをつくり 順番に点滅させる ワークシート サンプル 1
工学ゼミ Ⅲ 安全 環境活動に役立つ LED イルミネーションの製作 第 2 回設計 1 例 グループ : A19 学籍番号 :201511300 氏名 : 柏崎太郎 作品の概要 ( デザイン画 ) 赤の LED(31 個 ) と黄色の LED(4 個 ) を横 5 個 縦 7 個に配置する 電源スイッチを ON にすると ホタルの観察に来た車に対するメッセージ ( ホタル ライトケセ! の文字 / ホタルの疑似明かり ) が表示される ワークシート サンプル 2
工学ゼミ Ⅲ 安全 環境活動に役立つ LED イルミネーションの製作 第 2 回設計 1 例 部品リスト No 部品名 個数 備考 1 PIC16F1939 1 2 40ピンICソケット 1 3 積層セラミックコンデンサ 0.1μF 1 4 抵抗器 1kΩ 1 5 ユニバーサル基板 1 6 単三アルカリ電池 2 7 電池ボックス 1 8 LED 赤 31 不足 11 個をA13グループから調達 9 LED 緑 最大 20 個 10 LED 黄 4 最大 20 個 11 ボックス 1 100 円ショップで調達 12 厚紙 ( 黒 ) 1 100 円ショップで調達 13 マグネット 2 100 円ショップで調達 14 光センサ (CdS 光導電セル ) 1 100 円ショップで調達 15 16 17 18 19 20 21 22 23 24 25 ワークシート サンプル 3
工学ゼミ Ⅲ 安全 環境活動に役立つ LED イルミネーションの製作 第 2 回設計 1 例 回路図 ワークシート サンプル 4
工学ゼミ Ⅲ 安全 環境活動に役立つ LED イルミネーションの製作 第 2 回設計 1 例 動作フロー図 開始 初期設定 ホ の表示 ラ の表示 1 秒待ち 1 秒待ち タ の表示 イ の表示 1 秒待ち 1 秒待ち ル の表示 1 秒待ち! の表示 ホタルの表示 2 秒待ち 1 秒待ち ワークシート サンプル 5
工学ゼミ Ⅲ 安全 環境活動に役立つ LED イルミネーションの製作 第 2 回設計 1 例 各ポートの出力パターン : 点灯 / : 消灯 PORTA PORTB PORTC PORTD PORTE Time 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 2 1 0 0 1 2 3 4 5 6 7 8 9 10 11 ワークシート サンプル 6