ブログパーツUL5

APR9600をPICマイコンでコントロール

 PICマイコンのソフトを作成して、MR-C3024でコントロールできるか試行錯誤しながらチューニングしました。roboNBASICの命令実行時間がわからないので、MR-C3024のデジタル系の出力波形を観測しながら、PICマイコン(16F628A)を介してAPR9600モジュールから指定した音声が出るかテストしながら、タイミングを調整しました。
通信仕様では時間が長すぎるので、コントロールできる範囲で時間短縮を行ない、半減させました。

 コントロール用16F628AのHEXソフトは下記からダウンロードできます。
8mode_sw.HEX(ウィルスチェッ済)

 動作させるために作成したMR-C3024用のroboBASIC(v2.72)のテストプログラムも以下のようにしました。
(テストのためRZ-1ジュニアを使用しました)
 リモコンの1〜8のボタンを押すと、それに対応してAPR9600から8つの音声がそれぞれスピーカーから出てくることを確認できました。各マイコンの発振周波数の誤差がある場合もあるので、DELAY時間は微調する必要があるかもしれません。これでMR-C3024のデジタル系の1端子のみで音声をコントロールできるようになりました。
'================================================
' APR9600 program(Ver. 2.00)
' RR : internal parameter variable / ROBOREMOCON
' A : temporary variable / REMOCO
'  By T.M.
'                 2011/11/3
'== auto_main ===================================
GOTO AUTO
FILL 255,10000

DIM RR AS BYTE
DIM A AS BYTE

PTP SETON
PTP ALLON

'== motor diretion setting ======================
DIR G6A,1,1,1,0,0,0
DIR G6B,0,1,0,0,0,0
DIR G6C,0,0,0,0,0,0
DIR G6D,0,0,0,1,1,1
'================================================

'== motor start position read ===================
GETMOTORSET G6A,1,1,1,0,0,0
GETMOTORSET G6B,1,1,0,0,0,0
GETMOTORSET G6C,1,1,0,0,0,0
GETMOTORSET G6D,1,1,1,0,0,0
SPEED 5
MOTOR G6A ' No.0~5 Motors
MOTOR G6B ' No.6~11 Motors
MOTOR G6C ' No.12~17 Motors
MOTOR G6D ' No.18~23 Motors
'================================================

'== motor off setting ==========================
MOTOROFF 3
MOTOROFF 4
MOTOROFF 5
MOTOROFF 8
MOTOROFF 9
MOTOROFF 10
MOTOROFF 11
MOTOROFF 14
MOTOROFF 15
MOTOROFF 16
MOTOROFF 17
MOTOROFF 21
MOTOROFF 22
MOTOROFF 23
'================================================

'** Zero Point Setting **************************
ZERO G6A, 98, 103, 100
ZERO G6B,100, 100
ZERO G6C,100, 100
ZERO G6D, 98, 99, 100
'************************************************

'== motor start position read ===================
TEMPO 230
MUSIC "CDE"

GOSUB standard_pose
'================================================

'================================================
MAIN:

A = REMOCON(1)

IF A>0 THEN
OUT 52,0
ENDIF

ON A GOTO MAIN,K1,K2,K3,K4,K5,K6,K7,K8

GOTO MAIN
'================================================

'================================================
k1:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW1
DELAY 40
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k2:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW2
DELAY 90
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k3:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW3
DELAY 140
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k4:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW4
DELAY 190
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k5:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW5
DELAY 240
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k6:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW6
DELAY 290
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k7:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW7
DELAY 340
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
k8:
' START BIT
OUT 11,1
DELAY 40
OUT 11,0
' SW8
DELAY 390
OUT 11,1
DELAY 40
OUT 11,0

GOSUB standard_pose
GOTO MAIN
'================================================
'================================================
standard_pose:

MOVE G24,100,100,100,,,,70,15,,,,,70,15,,,,,100,100,100,,,

RETURN
'================================================
0

    コメント
    コメントする








       
    この記事のトラックバックURL
    トラックバック

    カレンダ

    1234567
    891011121314
    15161718192021
    22232425262728
    293031    
    << October 2017 >>