ライントレーサ (No.0007)







ライントレーサは黒く引かれた(7m/m幅ていど)ラインを赤外線などで照らし検出し左右のモータを制御することによってライン上を走らせる物です。
今回はラインを照らすものとして、赤外線ではなく3ボルトの麦球を使用し普通の光を当て、センサには直径5m/mのCDS(秋月にあります)を使いました。
CDSはラインにかかるとOFFの信号を、ラインを外れるとONの信号をPICのポートAのRA1,RA2におくりポートBのRB4、RB6をコントロールしツインモータギヤボックス(TAMIYA)のモータをON,OFFします。LEDはその状態を示します。
ソフトはごく普通のものですが、ポートBのRB0に外部割り込みをつけてあります。割り込みが入るとモータは一旦停止(約30秒)LEDが交互に点滅し割り込み動作に入った事をしめします。またポートBのRB7から発振音の信号がでるようにしました。これらは配線をしてありませんが、基板半分を蛇の目基板にしてありますので、後で好きな回路を実験することができます。たとえば音声あるいは光で割り込ませるとかです。



センサ部分
左から”麦球” ”フォトトランジスタ” ”CDS”
今回はフォトトランジスタは使いませんでした


CDSとCDSの距離は20m/m その中間に
3V麦球を置く


前面より
センサは床面より5m/mくらいの高さにする


基板の上面 16F84Aとコントロールを表示するLED
右側は蛇の目基板になっている


田宮のツインモータギヤボックス
今回は一番速度の遅いCタイプ(ギヤ比203:1)
で組立てました


台車は3m/m厚のアクリル板をモデラで切断しました


ライン幅は約7m/mで一枚書き コピーします
電池単三6個は基板用 2個はモータ用
重たい荷物をしょって走ります!!


今回使用した”田宮”のツインモータギヤボックスと
オフロードタイヤ




ライントレーサ プログラム



;**********************************

;

;	ライン トレーサー

;

;	2003.09.29  

;

;**********************************

;

;HEXファイルを書き込む時,次のように設定してコンフィグレーションビットに書き込みます

;

;	.OSC	 RC		;発振子タイプ:RC

;	.PWRT	 ON		;パワーアップタイマ:ON(使用)

;	.WDT	 OFF		;ウォッチドッグタイマ:OFF(使用しない)

;	.PROTECT OFF		;コードプロテクト:OFF(セットしない)

;

;***********************************





	LIST	P=16F84,R=DEC

INTCON	EQU	H'B'

STATUS	EQU	3

PG	EQU	5

PORTB	EQU	6

PORTA	EQU	5

TRISA	EQU	H'85'

TRISB	EQU	H'86'

PORTA_IN	EQU	H'11'	

WORK_REG	EQU	H'12'

WORK_STATE	EQU	H'13'

COUNTER		EQU	H'14'

COUNTER2 	EQU	H'15'

COUNTER3 	EQU	H'16'

COUNTER4 	EQU	H'17'



;**********************************

	ORG	0

	GOTO	START

	ORG	4

	GOTO	INT





;**********************************

;

;***********************************



START	BSF	STATUS,PG

	MOVLW	B'00110'

	MOVWF	TRISA

	MOVLW	B'00000001'

	MOVWF	TRISB

	BCF	STATUS,PG

	MOVLW	B'10010000'

	MOVWF	INTCON

	CLRF	PORTB



;************************************

;

;************************************



MAIN	MOVF	PORTA,0

	MOVWF	PORTA_IN

	MOVLW	B'00110'

	ANDWF	PORTA_IN,1

	MOVLW	B'00000'

	SUBWF	PORTA_IN,0

	BTFSC	STATUS,2

	GOTO	STR



	MOVLW	B'00010'

	SUBWF	PORTA_IN,0

	BTFSC	STATUS,2

	GOTO	RSTP



	MOVLW	B'00100'

	SUBWF	PORTA_IN,0

	BTFSC	STATUS,2

	GOTO	LSTP



	MOVLW	B'00110'

	SUBWF	PORTA_IN,0

	BTFSC	STATUS,2

	GOTO	STP



	GOTO	MAIN

	

;**************************************

;

;**************************************

STR	MOVLW	B'01011010'

	MOVWF	PORTB	

	GOTO	MAIN



RSTP	MOVLW	B'00011000'

	MOVWF	PORTB	

	GOTO	MAIN



LSTP	MOVLW	B'01000010'

	MOVWF	PORTB	

	GOTO	MAIN



STP	MOVLW	B'00000000'

	MOVWF	PORTB

	GOTO	MAIN

	



;****************************************

;	割り込み処理

;*****************************************

INT	MOVWF	WORK_REG

	SWAPF	STATUS,W

	MOVWF	WORK_STATE

	BCF	INTCON,1

	

	CALL	SAB_TAIM



	SWAPF	WORK_STATE,W

	MOVWF	STATUS

	SWAPF	WORK_REG,F

	SWAPF	WORK_REG,W

	RETFIE





;******************************************

;	割り込みサブルーチン

;******************************************

SAB_TAIM	

	CLRF	PORTB

	MOVLW	20

	MOVWF	COUNTER2



LOOP

	BSF	PORTB,1

	MOVLW	150

	MOVWF	COUNTER3

DLY1	BSF	PORTB,7

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	BCF	PORTB,7

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	DECFSZ	COUNTER3,1

	GOTO	DLY1



	BCF	PORTB,1

	BSF	PORTB,3



	MOVLW	150

	MOVWF	COUNTER4

DLY2	BSF	PORTB,7

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	BCF	PORTB,7

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	GOTO	$+1

	DECFSZ	COUNTER4,1

	GOTO	DLY2

	BCF	PORTB,3

	DECFSZ	COUNTER2,1



	GOTO	LOOP

	

	RETURN





;*******************************************

	END

;*******************************************



















基板パターン





ライントレーサ 配線図
PIC電子工作 目次に戻る

-- トップペ-ジ -- アマチュア無線 -- 14MHzトランシーバー -- ホビー電子工作 -- ラジオ雑学クラブ -- PIC電子工作 -- DIARY -- プリント基板配布 -- リンクのページ --




センサとマイコンを使用しているので
これも簡単なロボットになります。

今度は何を作ろうかな!?





トップペ-ジに戻る