|
ライントレーサは黒く引かれた(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電子工作 目次に戻る |