Vol.848 8.Jul.2022

Aurex_TY-AK2 列車センサ(反射光) 4chデジタルストレージオシロ

A 昔の音楽テープ等をデジタル化(2) 〜Aurex TY-AK2

by fjk

 前々報(abc846)で、音楽CDやテープのデジタル化が可能となったが、音楽再生用に使っていた古いCDラジカセ(ビクターRC-T1MD)で、何故か「エラー」と表示され、突然再生ができなくなった。
 仕方が無いので、代わりのCDラジカセを探したところ、単に再生のみとすれば、候補機種が多数あるが、折角なので、パソコンを使わず、装置単体でCD等を丸ごとデジタル化できる機種を探しているとTU-Y-CDX91(15,000円、東芝)が見つかった。さらに、Bluetooth付きでハイレゾにも対応するTY-AK2(28,500円、東芝)にも惹かれ、つい後者を選択してしまった。
 TY-AK2によるダビングは、CDやテープをセットし、ダビングボタン(SDorUSB)を押すだけで、自動で再生が始まり、USBやSDにダビングしてくれる。CDやテープの終了と共にダビングも終了し、停止ボタンを押さなくてもよく、ダビングを放置できるので便利です。ただ、録音レベルの調節が再生音量でしか調節できないので、音量レベルに注意が必要です(特にテープの場合)。
 曲の切れ目を自動で検出する機能もあるが、後で編集するつもりなら、この機能を使わなくても良い。CDからのダビングする場合は2倍速ダビングを指定することも出来る。

【TY-AK2でダビングの使い方】
@ ダビング元メディア(CD/MP3/TAPE)を選ぶ。
A 再生総時間が表示されている時にRECのSD又はUSBボタンを長押しすると録音を開始。
B 1曲のみの場合は、SKIP/SERCHボタンで曲を選択し、RECのSD又はUSBボタンを長押し。
B CD空の場合、X2ボタンを押してからダビングを開始すると倍速で録音する。
C 途中で中止したいときはSTOPボタンを押す。
D 外部機器からの、外部入力端子に接続後、LINE入力を選択し、同様に録音する。
E テープに録音する場合はRECのTAPEボタンを長押し。
F Bluetoothを使う場合、「TY-AK2」を選ぶ。

Aurex TY-AK2
(CDからUSBメモリにダビング中)


N Nゲージ列車のデジタル運転(5) 〜列車センサ(反射光)

by fjk

 鉄道模型で列車のデジタル運転を実現するには、列車の位置を検知することは非常に重要で、列車センサとして接触式のものが市販されているが、結構高価(TCSセンサーレール2本で3.960円)である。
 PIC12F683と反射型光センサTPR105F(秋月電子で40円)を使った例をabc658で紹介し、列車の検出が行えることを確認したが、その後、そのままになっていた。
 そこで、PICは前回と同様の8ピンで、PIC16F18325と同機能を持つPIC16F18313、センサはTPR105Fを用い、PICの入力ピンの状態変化割り込みを使用する方法について検討を加えた。
 状態変化割り込みの流れ、

@ 割り込みに使用するポートをTRISxレジスタでデジタル入力とする。
A 立ち上がりエッジで割り込みさせる場合、IOCAPレジスタのIOCAPxビットを立てる。
B 立ち下がりエッジで割り込みさせる場合、IOCANレジスタのIOCANxビットを立てる。
C 過去の割り込み状態をクリアするため、IOCAFレジスタをクリアする。
D PIE0レジスタのIOCIEビットをセットし、状態変化割り込みを許可する。
E INTCONレジスタのPEIE、GIEをセットし割り込みを許可する。
F 割り込みがあればIOCAFxビット及びIOCIFビットが1となり割り込みが発生。
G 割り込み処理が完了したら、対応するIOCAFxビットをクリアする。
H 全てのIOCAFxビットがクリアされたら、IOCIFビットもクリアされる。

 なお、状態変化割り込みは、TTLレベル(L<0.8V、2.0V<H)ではなく、シュミットレベル(L<1.0V、4.0V<H)。


状態割り込み実験回路(PIC16F18313)

試作回路(BB上のTPR105Fは
テスト用で列車検知時は外す)

Pin_ModuleのIOCをpositiveにして状態変化割り込みを設定
main.c
/*-------  Main.c ---------*/
void main(void)
{
    SYSTEM_Initialize();
    INTERRUPT_GlobalInterruptEnable();
    INTERRUPT_PeripheralInterruptEnable();

    while (1)
    {
        // Add your application code
    }
}
pin_manager.c
void IOCAF4_ISR(void) {
    // Add custom IOCAF4 code
     LED_A5_SetHigh();
    // Call the interrupt handler ・・・
    if(IOCAF4_InterruptHandler)
    {
        IOCAF4_InterruptHandler();
    }
    IOCAFbits.IOCAF4 = 0;
}

 ソフトはmain.cは割り込みの設定だけ、pin_manager.cのIOCA1F4_ISRにLED点灯させる LED_A5_SetHigh(); を追加するだけ。
反射シールを下面に貼った列車をレールに乗せて、IRセンサー入力(黄)とLED(青)の波形を見てみると、状態変化割り込みは約3Vの立ち上がりエッジで発生している(R=10kΩ時)。
 反射シールは@「つや無し白ラベル」、A「つや有り白ラベル」、B「銀反射シール」の3種類でテストしたところ、いずれでも検出可能だったが、A>@>Bの順で反応がよさそう


約3Vで状態変化割り込み発生
(黄:センサー入力、青:赤LED出力)

反射テープ( 銀、光沢白、無光沢白)

列車に付けた反射用テープ

LEDは消灯

列車を検知しLEDが点灯

 列車検出センサーが走行する列車を検知し、列車を止めることが出来るか、PIC16F18325を使ってテストを行った。MCCの設定は、abc847と同じで、RC5を入力とし、Pin_ModuleでIOCをpositiveに設定。
 状態変化割り込み処理内で列車の停止や再走行が可能だが、割り込み処理時間をなるべく少なくするため、IrFlgを宣言し、割り込み処理内ではフラグのみをセットし、メインループ内で列車の制御を行った。
 実際に列車を走行させてみると、センサー位置で列車が停車した(赤LED点灯、速度が速いとオーバーラン気味だが、センサ感知範囲内で何とか停車)。
 停車後、速度VR=0にすると赤LEDが消灯し、更にVRを回すと、その場(センサ上)から再び列車が走行した(割り込みは立ち上がりエッジ時のみ発生)。センサー出力の立ち上がりが数mSと遅いが、一応、割り込みは正常に動作(オシロ波形参照)。


フォトセンサ付きパワーパック回路

MCCのPin_Module設定画面
pin_manager.c
extern uint8_t IrFlg;
 ・・・

void IOCCF5_ISR(void) {
    IrFlg = 1;
	・・・
}
main.c
#include "mcc_generated_files/mcc.h"
uint8_t IrFlg = 0;

void stop_wait_Vr_Zero(void){
    LED_A5_SetHigh();
    PWM5_LoadDutyValue(0);
    CWG1STR = 0xF5;
    do{
    }while(ADC_GetConversion(AN_A4) > 0);
    LED_A5_SetLow();       
}

/*===  Main application === */
void main(void){
    SYSTEM_Initialize();
    INTERRUPT_GlobalInterruptEnable();
    INTERRUPT_PeripheralInterruptEnable();

    uint16_t aVal;
    uint8_t  drc;
    uint8_t  d_sw;
    DACCON1 = 0x03;
    drc = ~SW_A2_PORT;
    stop_wait_Vr_Zero();
    while (1){
        if(CWG1AS0bits.CWG1SHUTDOWN || IrFlg){
            stop_wait_Vr_Zero();
            CWG1_AutoShutdownEventClear();
            drc = ~SW_A2_PORT;
            IrFlg = 0;
        }
        d_sw = SW_A2_PORT;
        if(d_sw != drc){
            stop_wait_Vr_Zero();          
            drc = d_sw;
            if(drc == 0){
                CWG1STR = 0xF1;
            }else{
                CWG1STR = 0xF4;
            }          
        }
        aVal = ADC_GetConversion(AN_A4);
        PWM5_LoadDutyValue(aVal);      
    }
}

センサ波形(黄)、モータ出力(青)

列車をセンサが感知し停車(赤LED点灯)

VR=0後、列車が再度走行開始

★参考


O 4チャンネルデジタルストレージオシロ 〜SDS1104

by fjk

 久しぶりに電子回路の波形を確認しようとPDS5022(25MHz)をとりだしてみたところ、画面の液晶が壊れており、波形の表示が出来なくなっていた。仕方が無いので、代わりのオシロをと探していると、4チャンネルのオシロスコープSDS1104(100MHz、OWN)が36,980円で売られていた。2チャンネルのものでも良かったが、4チャンネルがこの価格で入手できるならと、ついポチリ。
 やはりチャンネル数が多いのは良いが、画面が小さいのでチョット見づらい。でも、拡張表示モードが利用できる。測定画面コピーはUSBメモリに格納するか、パソコンにUSB接続することも出来る。

【主な機能】
・チャンネル数:4
・帯域幅:100MHz
・サンプルレート:lGS/s
・水平軸:2ns/div〜1000s/div
・縦軸感度:5mV〜5V/div
・ディスプレイ:7インチカラー、800x480ドット
・入力電圧:400Vp-p
・トリガー:エッジ、ビデオ/オート、ノーマル。ドングル
・波形演算:+、−。×、÷、invert、FFT
・本体寸法:301mm x 152mm x 70mm
・重量:約1.1kg
・付属品:クイックガイド、オシロプローブ、CD-R、USBケーブル、ACアダプタ、電源コード
 

4チャンネルデジタルストレージオシロ
SDS1104 (100MHz)


※ 本レポートの参考・利用は、あくまでも自己責任でお願いします。


Aurex_TY-AK2 列車センサ(反射光) 4chデジタルストレージオシロ