Vol.847 24.Jun.2022

AGPTEC A16TB 保護機能(CWG&COMP) ペイントでモザイクを

A デジタルオーディオプレーヤー 〜AGPTEC A16TB

by fjk

 さて、前報(abc846)で昔の音楽のデジタル化が可能となったので、携帯できる音楽プレーヤーでテストすることにした。デジタルプレーヤーとしては、ウオークマン(Sony)やiPod(Apple)が有名で、ネットワーク機能などもあり高価。また、スマホは電池の消耗が気になる。
 そこで、ネットで探してみると1万円以下で安価なものが多数あるが、単独で音楽を取り込める機能があるAGPTECのA16TB(3,900円)を選んだ。
 主な仕様は、ここを参考)

内蔵メモリー容量:8GB内蔵電池:Liポリマ400mAh
MicroSDカード:128Gbまで充電時間:2時間(USB、5V/500mA)
製品重量:80g(本体) 再生時間:音楽:40H
ビデオ:12H
ラジオ:13H
画面サイズ:1.8インチTFT LCD
製品サイズ:9.6 x 4 x 1cm
本体材質:アルミニウム合金録音時間:34H
対応規格:MP3,WVA,ACELP,APE,FLAC,WMA  Bluetooth音楽再生時間:10H
画像形式:JPG、BMP、GIFBluetooth:5.0
ビデオ形式:AMV、AVI(128x160のみ)USB接続:USB2.0
歌詞フォーマット:LRC※USB充電器は別途必要

 中華製で、当たり外れがあるとのことだが、64GbのMicroSDカードを挿入し、USBでパソコンから曲を転送し、今のところ全ての機能に問題がない。
 Bluetooth接続は、BTをON、検索デバイスで接続機器を見つけて登録し、その後、デバイスリストで接続したいBT機器を選択しないと接続されない。abc834で紹介したOpenMOVEにBT接続できた。
 添付の日本語マニュアルは変な日本語もあり、タッチ画面ではなく(画面が汚れなくて良いが)、操作性は決して良いとは言えないが、慣れれば問題ない。画面ロック機能もあるのでポケットに入れておいても誤動作は防止できそう。ストラップホールがなく、小さいので落としそう(990円の「専用 ケース カバー TPU ソフト 背面 シェルジャケット」使えばストラップが付けられる)。コスパは良い。
 音楽の取り込みを試したところ、確かに録音(本体またはMicroSDカードにWAVまたはMP3)ができたが、再生機の音量出力レベルの調整が難しく(最大で良いのかもしれないが・・)、注意が必要。
 FMラジオを聴くには、イヤホンケーブルがアンテナとなるので、付属のイヤホンケーブルなどを使用のこと。なお、局のプリセットは自動でサーチできた。


A16TB(付属イヤホンはFMアンテナに)


N Nゲージ列車のデジタル運転(4) 〜保護機能(CWG&COMP)

by fjk

 前報(abc846)でCWGを使ったのは、CWGの保護機能(シャットダウン)を利用したかったからである。多くのモータドライバーには過電流保護機能があるが、その動作は完全に保証されない。また保護機能のON/OFFもPICで制御・確認を行いたい。
 CWGでパルス出力をシャットダウンするには、モータドライバーに流れる電流をシャント抵抗で測定した電圧と、設定した閾値電圧を、COMPで比較し、その結果をCWGのシャットダウン入力としている。なお、比較する閾値電圧はPICのFVR(1.024V)を基準としてDACで5ビットの分解能で作成している。
 シャント抵抗値を0.2Ω(1W金属皮膜)で、ドライバーICに1Aの電流が流れると0.20Vとなるので、DACCON1=06Hに設定した。


CWGシャットダウンのブロック図

CWGシャットダウン機能付き回路図

System Moduleの設定

Pin Module設定

定電圧リファレンス
(FVR)設定

コンパレータ(COMP)設定

DAC設定

CWG設定

 ★MCCの設定 (その他の設定はdefault又はabc846とほぼ同じ)

【FVR】
Check “Enable FVR"”
buffer2Gain=1x
【DAC1】
Check “Enable DAC"”
Positiv = FVR_buf2
Negativ = VSS
【CMP1】
Chek “Enable Comparator"
Positiv=DAC
Negativ =CIN2-
【CWG1】
<AutoShutdown>
CWGA&CWGC Shutdown State =logic1
Check “Comparator1 Output”
【PinManager】
C1INx- = PC2
C1OUT = PC5
CWG1A = PC4
CWG1C = PC3

 CWGがシャットダウン状態になるとCWG1AS0のSHUTDOWNビットが1となり、その状態を保持している(RENビットが1ならAutoRestartで自動的に解除されるが・・)。そこで、SHUTSDOWNビットをメインループ内でチェックし、シャットダウン中であればstop_wait_Vr_Zero関数を呼び出し、赤色LEDの点灯と、速度指示VRが0になるまで待っている。その後、VR=0となったら、赤色LEDを消灯し、SHUTDOWN=0としてシャットダウン状態を解除(クリア)している。
★CWGのAuto-Restartはチェックしないこと!。手動でSHUTDOWNビットをクリアできなくなる。

【シャットダウン動作の確認手順】
@ DACCON1 = 0x06(1.0A)として列車が正常に走行(i=0.01A)することを確認
A シャント抵抗が0.2Ωでは検出電圧が小さすぎるので、0.47Ωに変更し、DACCON1 = 0x01(0.1A)に変更したが、それでも正常に走行する(誤差の範囲?)ことを確認。
B モーター(車両)を手で強制的に停止させて過負荷を加えるか、線路間をショートするとCWG出力が停止し、赤色LEDが点灯することを確認。
C VR=0(SHUTDOWNビットもクリア)にし、VRを回すと再びCWG出力が出ることを確認
D 確認テスト後、DACCON1 = 0x03(0.47Ωで約0.2A)に設定し、A〜Cを再確認。
※シャント抵抗はモーターの駆動電流に合わせて、0.2〜0.47Ωの範囲で選択(DACも要調整)。
※コンパレータ出力はC1OUT(RC5)で確認(予備テスト時はCWGのSHUTDOWN入力をOFF)
※モータドライバーのノイズは大きいので、なるべくIC近くにバイパスコンデンサを複数配置。
※ CWGのShutdown動作はPICのCIP(ハードウェア)で起動するので遅延が無く応答が早い。
※ Shutdownでモータ出力も停止するのでC1N2-(青)のヒゲ程度(C1OUTはほとんど変化無し)。

main.c
/*-------  Main.c ---------*/
#include "mcc_generated_files/mcc.h"

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

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){
            stop_wait_Vr_Zero();
	    CWG1_AutoShutdownEventClear();
            drc = ~SW_A2_PORT;
        }
        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);      
    }
}

CWGシャットダウン付き試作回路
シャント抵抗は0.47Ω(1W)

DAC設定値と電流値(電圧)


正常時出力波形

シャットダウン時の波形
(上から OUT1:10V/div、 CIN2-:100mV/div、 IN1:5V/div、 C1OUT:5V/div)


P Windowsのペイントでモザイクをかける

by fjk

 個人情報などが映り込んだ画像で、その部分にモザイクをかけたいことがある。こんな時に、専用のモザイクツールを準備しなくても、Windowsに標準付属のペイントでモザイクをかけることができる。

  1. ペイントの編集画面でモザイクを行いたいエリアを選択し、20%にサイズ変更する。
  2. その状態で、再びサイズ変更で500%(最大)にする。

本当にモザイク加工しているわけではなく、画像の粗さを利用する方法ですが、Windowsであれば、どのバージョンでも利用可能。

(本タイトルの一部にモザイク加工を実施した例)


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


AGPTEC A16TB 保護機能(CWG&COMP) ペイントでモザイクを