フォト
2019年1月
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
無料ブログはココログ

2019年1月16日 (水)

VS1053 MP3 プレーヤー・シールドの調査 (2) 録音機能(2)

前回からの続きです。

目的の、MSXのカセットテープインタフェースでのプログラム保存、
結論としては、録音品質が良くなく、上手くいきませんでした。

01


このボードでは次の問題が発生しました。
1) ライン入力モードはモノラル録音ができない
2) ライン入力モード経由の録音では、録音の音が小さい


前回利用したサンプルスケッチ record_oog では、
下記の部分を true から false に変更することでボード上のコンデンサーマイクからの
録音からライン入力からの録音に切り替えることが出来ます。

musicPlayer.startRecordOgg(false); // use microphone (for linein, pass in 'false') 

ところが、ライン入力では、何故かモノラルでの録音が出来ませんでした。
モノラルをステレオに変換(LをR・Lの両方に接続)も試したのですが、
録音出来ません。

仕方がなく、ステレオ録音で試したのですが、今度は書き込み速度が追いつきません。
ステレオ録音ではデータ量が2倍なので、当然でしょう。

サンプリングレート 16kHz ステレオ録音に変更することで、
一応、録音は出来たのですが、録音品質以前に音が小さくでダメでした。
このボード、再生のためのアンプは載っているのですが、
録音入力のアンプは載っていないようです。

録音レベルの調整をレジスタ操作で行えるので試してみたのですが、
ノイズが乗って、音質が劣化してダメでした。

02

デジタル的に音量を上げているっぽいです。

ちなみに、レジスタの設定は ライブラリの Adafruit_VS1053.cpp ファイルの
startRecordOgg(boolean mic) 関数内の記述を変更すれば可能です。

まとめ

ということで、残念ながらこのボードでのデーターレコーダの実装はダメっぽいです。
ただし、再生機能はかなり優れているので、別途色々と遊んでみようと思います。


2019年1月14日 (月)

SCART・HDMIコンバータを使ってMSX2の映像を出力

先日入手したパナソニック MSX2 FS-A1、RGB出力で綺麗な画面を表示したいと思い、
SCART・HDMIコンバータを入手し、試してみました。

結果を先に言うと、いい感じで表示出来ました。

Dscn9378

いつものAliexpressにて入手しました。
amazonでもサンコーさんが類似の製品を販売しているようです。
値段もそんなに差が無いと思います。

SCART to HDMI Converter
04_3

修正:(注意)
  どうも、見た目がまったく同じでも
SCARTのRGB信号ではなく、
 SCARTのNTSC/PAL信号からHDMIに変換するものが出回っているようです。
  その場合はMSX2での利用は出来ないと思われます。
  参考: RETRO GAMING CABLES - SCART to HDMI Converters to Avoid

  詳細説明の記載には要注意です。微妙に異なります。
    〇 "Support RGB (Hz) and CVBs (ntsc/pal) composite signal input"
    × "convert 480I(NTSC)/576I(PAL) format signal to 720P/1080P"

   ( USプラグ版が無くなったため、商品画像のリンクは削除しました )

   ケーブル自作時、RGB信号しか結線していなので、
   私のは、ちゃんとRGB信号をHDMIに変換している製品だと思われます(たぶん)

このコンバータとMSX2を接続するには、MSX2用のSCARTケーブルが必要です。

形状は同じですが、MSX2用RGB21ピンケーブルは使えません。要注意ですね。

参考: SCART端子RGB21ピン

MSX用のSCARTケーブル見つからなかったため、
今回はセガサターン用の安価なケーブルを改造して利用するこにしました。

Black 1.8M/6FT Scart AV TV Video Cable Lead For Sega Saturn NTSC & PAL Version

02


届いた製品

ビデオコンバータ
Dscn9376

セガサターン用SCARTケーブル

Dscn9397
※ 画像の8ピンDINコネクタは、CASduino製作時に入手したものです


ケーブルの改造

セガサターンのコネクタをカットして、CASduino製作時に入手した
DIN 8ピンコネクタを付けます。さらに、配線を変更します。

Dscn9373

改造作業には、
セガサターンのコネクタ仕様、MSX2のRGBコネクタ仕様、SCARTコネクタ仕様を
の情報が必要ですが、下記のサイトの情報を参考にさせていただきました。

参考にしたサイト
MSX  RESOURCE CENTER - SCART connector
MSX  RESOURCE CENTER - RGB (8-pin DIN 45326)
Game Console RGB SCART Cable Diagrams
gamernium.com MSX2 RGB端子 ピンアサイン
gamernium.com RGB21ピン & SCART ピンアサイン

とりあえず、変換表を作成して配線し直しました。

03

改造したケーブル

Dscn9372

ケーブルをコンバータに接続した様子

Dscn9396

HDMI端子付きの安価な7インチモニターを利用しています。

ケーブルの改造は、ちょっと自信が無かったのですが、問題なく綺麗に映りました。

Dscn9378

NTSCビデオ出力に比べ、非常にきれいです。

Dscn9377

文字も色のにじみもなくくっきり表示されています。

Dscn9382

Dscn9383

SCREEN 1の80x24文字も綺麗に表示出来ました。

Dscn9385

上記の画面の背景色を黒にしてみます。

Dscn9386

落札時にオマケで付いていた、ゲームの表示を試してみます。

Dscn9392

色の表現も問題なさそうです。

Dscn9389

オープニングのBGMもちゃんと鳴っています。

Dscn9390

ちなみに、このコンバータ単体での4:3表示への変更・調整は出来ませんでした。
4:3表示はモニターの方で調整するしかないようです。
とりあえず、やってみました。

Dscn9394

非表示部分がちょと気になります。16:9での表示で使うことにします。

2019年1月13日 (日)

Ichigojamを1.3 beta4にアップデートしました

IchigoJam のファームウェアの1.3系のベータ版が公開されています。
早速、手持ちのIchigoJamのファームウェアを1.3beta4にアップデートしました。

01

参考サイト
福野泰介の一日一創
  1)1/5はイチゴの日、使い勝手をちょっと向上、IchigoJam 1.3ベータ公開!
  2)定数行番号のRENUMに一部対応! たった24KBのOS、IchigoJam 1.3 beta 3
  3)ゲームで学ぶ、アルファベット! LOCATEの第三パラメーター、カーソルスイッチ実装、IchigoJam 1.3 beta 4

現時点の最新版は、上記サイト3)よりダウンロードできます。


1.3系ではざっと上記記事に目を通した感じでは、次の変更が行われているようです。

主な変更
  1)RENUMコマンドの機能改善
    GOTO文、GOSUB文の引数の行番号も振り直されるように改善されました

  2)I2Cの動作の改善
    ・実装の問題で動作しなかった 温湿度計 AM2320にも対応

  3)メモリマップ・メモリ領域変更
    ・I2C専用の32byte確保など
    ・物理アドレスの変更

  4)カーソルスイッチを実装
    ・LOCATEコマンドの第3引数にてカーソルの表示形式の指定が出来る


個人的には、RENUMコマンドの機能改善はありがたいですね。
改善前はRENUMコマンドを実行すると、
正常に動いていたプログラムが動かなくなり、手作業で修正を行う必要がありました。

実際に試してみると、GOTO文の引数の行番号がちゃんと振り直されました。

02

RENUMコマンド実行後、問題なく正常実行できました。

03

改善前は GOTO文、GOSUB文を多用している長いプログラムで
RENUMコマンドで行番号を振り直し後に不毛な修正作業を強いられることに
非常に不満を抱いていたのですが、今回の修正でその作業から解放されました。

I2C周りも挙動が怪しかったのですが、改善されたようです。
後ほど、改めて調査したいと思います。

2019年1月12日 (土)

おもちゃ「ちっちゃなミーニャ」の修理

ルミちゃんの遊び相手のミーニャ

01

ルミちゃんの度重なる猛攻で、



足が折れてしまいました。

02

折れた足を取り出すと、意外と貧弱。
このミーニャ、イワヤ株式会社さんの製品で、お値段以上の良い動きをするのですが、
この足だとちょっと強度不足ですね。改善して欲しいです。

03

早速、修理を試みます。
材質がポリエステル(ナイロン?)系っぽいし、
この折れ方だと、接着剤での接合は厳しそう ...
う~ん、どうしたものか...

04_2

「!(ひらめいた)」

ちゃらら・ちゃっちゃ・ちゃ~ん

はんだごて(先端がホットナイフ)

05

強引に、切断面を溶かして接合しました。

ちょっと不格好ですが、隠れるのでこれで良いでしょう。
少々力を加えた限りでは、しっかりと接合しているようです。

06

電池を入れて動作確認すると、ちゃんと歩行動作しました。
とりあえず、修理完了です。

07

この「ちっちゃなミーニャ」、現時点では製造されていないようですが、
イワヤ株式会社さん製の類似製品がamazonで販売されています。

あかちゃんスコティッシュ ぬいぐるみ
08

安い!、動画を見ると「ちっちゃなミーニャ」よりもいい動きをしています。
ポッチってしまいました。

2019/01/14 追記

商品が到着しました。

10

お値段の割には、良い感じの製品です。

11

早速、ルミちゃんに対面させてみました。


なんか、興味なしのようで ミーニャのような感じでは遊んでくれませんでした。
ちょっと、ガッカリです。
この差は何なんでしょう?

2019年1月11日 (金)

VS1053 MP3 プレーヤー・シールドの調査 (2) 録音機能

今回はVS1053 MP3 プレーヤー・シールド の録音機能の調査です。

先日利用したライブラリを調べると、録音機能に関するAPIが存在しません。
Wikiにも解説がありません。

このボード、ピン構成やElecrowWiki リンク先を見ると、
SparkFun MP3 Player Shield がベースとなっているようです。

ベースのボードには録音機能(コンデンサーマイク、マイク端子)が無いんですよね。
それで、録音機能については何も解説が無いようです。

  商品  SparkFun MP3 Player Shield  (チュートリアル MP3 Player Shield Hookup Guide V15
  01
  (チュートリアルのMP3 Player Shield Hookup Guide V15 はこれはこれで参考になります)
 

う~ん、困った..
色々と調べると、
VS1053の公式フォーラム(VSDSP Forum)を見るとAdafruitのボード用の
ライブラリ(Adafruit_VS1053_Library)を使うと録画が出来ると判明しました。

  参考: AdafruitのVS1053ボード
  VS1053 Codec + MicroSD Breakout - MP3/WAV/MIDI/OGG Play + Record - v4

 
02
 
チュートリアル Adafruit VS1053 MP3/AAC/Ogg/MIDI/WAV Codec Breakout Tutorial


録音機能の実装


前置きが長くなりましたが、本題の録音機能について試してみました。
Ogg Vorbisという形式にてSDカード上にファイルとして録音します。

まずは、ボード上のコンデンサーマイクを使った録音のお試しです。

Adafruitのチュートリアルを参考にして、Adafruit_VS1053_Library をダウンロードし、
サンプルスケッチのrecode_ogg を動かしてみました。

  05

そのままでは動かないので次の修正を行いました。
  1)利用するピンの変更(=>スケッチの変更)
  2)SDライブラリの利用からSdFatライブラリの利用に変更(=>スケッチ、ライブラリの変更)
  3)VS1053 ogg encoder プラグインの変更(=>スケッチの変更)

VS1053用プラグインのダウンロード

Adafruit_VS1053_Library
のサンプルスケッチ recode_ogg のフォルダに
モノラル 44.1KHz, 高品質録音のプラグイン v44k1q05.img が用意されているのですが、
Arduinoの処理が間に合わず、音飛び発生や、ファイルが壊れて再生出来ずでした。

そこで、別のプラグインを利用しました。
公式サイト(VLSI社) には、別のプラグインが公開されてます。
用途に応じて選択して利用することが出来ます。下記のリンクからダウンロードできます。

  ・VS1053 Ogg Vorbis Encoder Application
    http://www.vlsi.fi/fileadmin/software/VS10XX/vs1053-vorbis-encoder-170c.zip

解凍したフォルダprofilesの中の vencXXkYqZZ.img がプラグインです。
下記の組み合わせで複数用意されています。
  XX: サンプリング周波数 08: 8kHz、16:16kHz、44:44kHz、
  Y:   1:モノラル、2:ステレオ
  ZZ: 品質00~05 or 10 数字が大きいほど高品質

試した感じでは、44kHzでは、ステレオ録音は処理が追いつきません。
  44kHzでは モノラル venc44k1q04.img
  16kHzでは モノラル venc16k1q10.img 、ステレオ venc16k2q5.img
がちょうど良い感じでした。

ここでは、venc44k1q04.img  を v44k1q04.img にファイル名を変更して
SDカードのルートフォルダにコピーします。

ライブラリの修正


Sdfat対応のために、ヘッダーファイル Adafruit_VS1053.hに PREFER_SDFAT_LIBRARY の定義を追加します。

#define ADAFRUIT_VS1053_Hの次の行に追加しました。
  #ifndef ADAFRUIT_VS1053_H
  #define ADAFRUIT_VS1053_H
  #define PREFER_SDFAT_LIBRARY


スケッチの
修正

ピン割り付けを変更しています。録音開始のボタンはD3を使いました。
/*************************************************** 
  This is an example for the Adafruit VS1053 Codec Breakout

  Designed specifically to work with the Adafruit VS1053 Codec Breakout 
  ----> https://www.adafruit.com/products/1381

  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

// This is a very beta demo of Ogg Vorbis recording. It works...
// Connect a button to digital 7 on the Arduino and use that to
// start and stop recording.

// A mic or line-in connection is required. See page 13 of the 
// datasheet for wiring

// Don't forget to copy the v44k1q05.img patch to your micro SD 
// card before running this example!


// include SPI, MP3 and SD libraries
#include <SPI.h>
#include <Adafruit_VS1053.h>
// SDライブラリからSdFatライブラリの利用に変更 by たま吉さん
//#include <SD.h>
#include "SdFat.h"
SdFat SD;

// ピン割り付けの変更 by たま吉さん
// define the pins used
//#define RESET 9      // VS1053 reset pin (output)
//#define CS 10        // VS1053 chip select pin (output)
//#define DCS 8        // VS1053 Data/command select pin (output)
//#define CARDCS A0     // Card chip select pin
//#define DREQ A1       // VS1053 Data request, ideally an Interrupt pin

#define RESET 8      // VS1053 reset pin (output)
#define CS 6         // VS1053 chip select pin (output)
#define DCS 7        // VS1053 Data/command select pin (output)
#define CARDCS 9     // Card chip select pin
#define DREQ 2       // VS1053 Data request, ideally an Interrupt pin

//#define REC_BUTTON 7
#define REC_BUTTON 3

Adafruit_VS1053_FilePlayer musicPlayer = Adafruit_VS1053_FilePlayer(RESET, CS, DCS, DREQ, CARDCS);

File recording;  // the file we will save our recording to
#define RECBUFFSIZE 128  // 64 or 128 bytes.
uint8_t recording_buffer[RECBUFFSIZE];

void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit VS1053 Ogg Recording Test");

  // initialise the music player
  if (!musicPlayer.begin()) {
    Serial.println("VS1053 not found");
    while (1);  // don't do anything more
  }

  musicPlayer.sineTest(0x44, 500);    // Make a tone to indicate VS1053 is working
 
  if (!SD.begin(CARDCS)) {
    Serial.println("SD failed, or not present");
    while (1);  // don't do anything more
  }
  Serial.println("SD OK!");
  
  // Set volume for left, right channels. lower numbers == louder volume!
  musicPlayer.setVolume(10,10);
  
  // when the button is pressed, record!
  pinMode(REC_BUTTON, INPUT);
  digitalWrite(REC_BUTTON, HIGH);
  
  // load plugin from SD card! We'll use mono 44.1KHz, high quality
  // プラグインの変更 by たま吉さん (mono 44.1KHz, middle quality)
  //  if (! musicPlayer.prepareRecordOgg("v44k1q05.img")) {
  if (! musicPlayer.prepareRecordOgg("v44k1q04.img")) {
     Serial.println("Couldn't load plugin!");
     while (1);    
  }
}

uint8_t isRecording = false;

void loop() {  
  if (!isRecording && !digitalRead(REC_BUTTON)) {
    Serial.println("Begin recording");
    isRecording = true;
    
    // Check if the file exists already
    char filename[15];
    strcpy(filename, "RECORD00.OGG");
    for (uint8_t i = 0; i < 100; i++) {
      filename[6] = '0' + i/10;
      filename[7] = '0' + i%10;
      // create if does not exist, do not open existing, write, sync after write
      if (! SD.exists(filename)) {
        break;
      }
    }
    Serial.print("Recording to "); Serial.println(filename);
    recording = SD.open(filename, FILE_WRITE);
    if (! recording) {
       Serial.println("Couldn't open file to record!");
       while (1);
    }
    musicPlayer.startRecordOgg(true); // use microphone (for linein, pass in 'false')
  }
  if (isRecording)
    saveRecordedData(isRecording);
  if (isRecording && !digitalRead(REC_BUTTON)) {
    Serial.println("End recording");
    musicPlayer.stopRecordOgg();
    isRecording = false;
    // flush all the data!
    saveRecordedData(isRecording);
    // close it up
    recording.close();
    delay(1000);
  }
}

uint16_t saveRecordedData(boolean isrecord) {
  uint16_t written = 0;
  
    // read how many words are waiting for us
  uint16_t wordswaiting = musicPlayer.recordedWordsWaiting();
  
  // try to process 256 words (512 bytes) at a time, for best speed
  while (wordswaiting > 256) {
    //Serial.print("Waiting: "); Serial.println(wordswaiting);
    // for example 128 bytes x 4 loops = 512 bytes
    for (int x=0; x < 512/RECBUFFSIZE; x++) {
      // fill the buffer!
      for (uint16_t addr=0; addr < RECBUFFSIZE; addr+=2) {
        uint16_t t = musicPlayer.recordedReadWord();
        //Serial.println(t, HEX);
        recording_buffer[addr] = t >> 8; 
        recording_buffer[addr+1] = t;
      }
      if (! recording.write(recording_buffer, RECBUFFSIZE)) {
            Serial.print("Couldn't write "); Serial.println(RECBUFFSIZE); 
            while (1);
      }
    }
    // flush 512 bytes at a time
    recording.flush();
    written += 256;
    wordswaiting -= 256;
  }
  
  wordswaiting = musicPlayer.recordedWordsWaiting();
  if (!isrecord) {
    Serial.print(wordswaiting); Serial.println(" remaining");
    // wrapping up the recording!
    uint16_t addr = 0;
    for (int x=0; x < wordswaiting-1; x++) {
      // fill the buffer!
      uint16_t t = musicPlayer.recordedReadWord();
      recording_buffer[addr] = t >> 8; 
      recording_buffer[addr+1] = t;
      if (addr > RECBUFFSIZE) {
          if (! recording.write(recording_buffer, RECBUFFSIZE)) {
                Serial.println("Couldn't write!");
                while (1);
          }
          recording.flush();
          addr = 0;
      }
    }
    if (addr != 0) {
      if (!recording.write(recording_buffer, addr)) {
        Serial.println("Couldn't write!"); while (1);
      }
      written += addr;
    }
    musicPlayer.sciRead(VS1053_SCI_AICTRL3);
    if (! (musicPlayer.sciRead(VS1053_SCI_AICTRL3) & _BV(2))) {
       recording.write(musicPlayer.recordedReadWord() & 0xFF);
       written++;
    }
    recording.flush();
  }

  return written;
}

ボタンを押すと録音開始、再度押して録音終了です。
(ボタン操作がちょっとシビアで、瞬間的に押さないと開始・終了を繰り返します)

動作状況は、シリアルコンソールで確認できます。

04

試してみた感じでは、一応は録音できました。
oggファイルの再生は、ブラウザのChromeにドラッグ&ドロップして再生しました。

ただし、現時点では
  ・音が小さい
  ・音質が今一
でした。

もうちょっとどうにかならないか、調べてみます。


2019年1月10日 (木)

VS1053 MP3 プレーヤー・シールドでMIDIファイルの再生

VS1053 MP3 プレーヤー・シールド」、MIDIファイルの再生が出来るようなので、
どんな感じの音が出るのか、動作確認してみました。

01

先日使ったサンプルスケッチ fileplayer.inoMIDIファイルを再生してみました。


演奏の様子


アンプ付きのスピーカーに接続して音を出しています。
以前どこかで入手したQueenの「Bohemian Rhapsody」のMIDIファイルを再生してみました。



かなりいい感じに演奏出来ています。
(若干ホワイトノイズが乗っていますが、撮影に使ったデジカメのせいです)

このボードでは、MIDIファイルはFormat 0にしか対応していないため、
SMFConverter for Windows」を使ってFormat 0に変換しました。

色々と遊べそうです。
ストリーミングも出来るみたいで、ESP8226を使ったインターネットラジオの実装例があるようです。

このボードに載っているDSPプロセッサのVS1053
結構使われているようで、秋月電子でも単体売りされています。
秋月電子 MP3デコーダ VS1053b
02

MSX用のデータレコーダの実装とは別途、用途を探りたいと思います。

2019年1月 8日 (火)

VS1053 MP3 プレーヤー・シールドの調査

MSXのデータレコーダ用に使えるのではないかと思い、注文したボードが到着しました。

商品購入サイト
  VS1053B Stereo Audio MP3 Player Shield

  06

到着した製品

  01

Aliexpressのため、当然マニュアル等の付属品はなく、本体のみでした。
商品ページにもマニュアル類の記載がありません。

基板上の刻印 「VS1053 MP3 Sheald」でググってみると、
ElecrowGETECHの製品に類似のものがあります。どうもこの製品っぽいです。

それぞれのページにWiki、ライブラリ、サンプルプログラムのリンクがあり、
製品概要が分かりました。

このボードに関する情報

  製品 Elecrow VS1053 MP3 Shield (Wikiページはこちら

   04

  製品 GETECH Arduino MP3 shield board with TF card (Wikiページはこちら

   03


動作確認

まずは、とりあえずボードの製品チェック、サンプルプログラムで動作確認してみます。

上記それぞれのWikiには、ボードで利用可能な、ライブラリ及びサンプルプログラム
のリンクが掲載されています。

だだし、ダウンロードして確認すると、
両方ともライブラリ Arduino_Library-vs1053_for_SdFat の古いバージョンのようです。
Arduino 1.8.7環境では、コンパイルエラーとなりました。
そこで最新版の Arduino_Library-vs1053_for_SdFatを使って動作確認を行いました。

Arduino Unoにシールドを載せ、スピーカー端子にアンプ無しスピーカーを接続します。

07

ライブラリのサンプルスケッチ fileplayer.ino を利用しました。

05

問題なくコンパイル出来ました。
実行すると、メニューが表示されます。

06

SDカードには、あらかじめ2つのMP3ファイル:hello.mp3hello.wav
入れています。
この2つのファイルは「MP3プレーヤーでMSXにプログラムをロードさせる」で
利用したHello,Worldを表示するプログラムデータです。
hello.mp3hello.wavMP3形式に変換したものです。

再生したいファイルリストの番号を入力して送信すると、
スピーカーから「ピー、ガー・ガー」と音が出力出来ました。
問題なく動作しているようです。

このスケッチプログラムでは、mp3形式wav形式の両方を再生出来ました。


MSXでカセットテープ代わりに使えるかのか確認


本来の目的の、MSXのカセットテープインタフェースにてプログラムをロードさせてみました。

デフォルトでは、失敗しましたがメニューの+コマンドでボリュームを最大の -2dBにすると
MSXでロードすることが出来ました。mp3形式wav形式ともOKでした。

機種によては、レベル不足となるかもしれません。間にアンプを入れた方が良さそうです。

08

ロードしたプログラムも実行することが出来ました。

10

とりあえず、ロードは出来たので次はMSXから音声データとしてSDカードに
保存出来るかを確認したいと思います。



2019年1月 7日 (月)

Aliexpressで入手した「タッチスイッチボタン」の動作確認

Aliexpressで面白そうなタッチスイッチボタンを見つけたので入手し、試してみました。

購入した商品のサイト

    Capacitive Touch Switch Button RGB LED Sensor Switch Module

    01_2

到着した製品
 
   とりあえず、4個 (青、緑、赤、黄)を購入しました。

   02

  裏側

   03_2

  作り具合は、意外と良さそうです。はんだ付けも問題なしです。


動作確認

  まずは、掲載されている商品情報にて仕様を確認します。   

     商品購入サイト掲載情報

  04_2

    完全に勘違いしていました。

    単なるタッチセンサー的に使うモジュールかと思いきや、
    3.3V定電圧レギュレータ搭載のようです。しかも500mA流せるようです。

    単体のみで独立したスイッチとして利用出来るようです。
    安価な3.3V電源レギュレータとしても利用出来ますね。

    確認として、このモジュールのVCCGNDにUSBケーブルにて5V電源を供給し、
    OUTピンでLEDの点灯制御を行ってみました。

  ブレットボードでの実装
 
   05_2

  動いている様子

   

  問題なく動作しました。
  タッチにて、OUTピンのオン・オフの制御を行うことが出来ました。

  タッチする度にOUTの状態が切り替わります。
  状態を保持するトグルスイッチ的な用途に使えそうです。
 
  ただし、機械的なスイッチと違ってオフの時もタッチセンサー部分の稼働のために
  電力を消費します。測定してみると、0.66mAでした。

  06_2

  次に、タッチパネル部の発光時に流れる電流を測定しました。
  (OUTピンのLEDは外しています)
  7.5mA(タッチセンサー分も含む)でした。

  07_2

  思っていたほど消費量は少ないですが、
  電池駆動でのスイッチとしての利用は避けた方が良さそうです。

MSX2(Panasonic FS-A1)を入手しました

ヤフオクでMSX2を入手しました。
MSX2ではRGB出力が出来るので、綺麗な映像出力を期待して購入しました。

届いた機種

00

落札機種 Panasonic FS-A1 (付属品 ACアダプタ、JOY PAD、AVケーブル、ゲーム1本)
落札価格 4,730円

このMSX2パナソニックが1986年10月当時、29,800円で販売した機種です。
ヤフオクでは比較的多く出品されています。

ACアダプタが特殊で、ACアダプタ無しの出品の購入には注意が必要です。

03

DC9VとAC18Vの出力、 こんな規格のACアダプタは入手できないと思います。


機器の動作確認

若干問題がある機器でした。

出品者はあの東証1部に上場している大手ブックオフさんなので、
信頼していたのですが、期待を裏切られました。

出品商品説明では、ジャンク品扱いではなく、故障・破損の記載はありませんでが、

04

実際の製品は、カートリッジのふたの欠損しており、
電源を入れてみると、勝手に"2"が無限に入力される状態で、パソコンとして利用出来ません。

01

流石にこれはひどいので、出品者の評価は「非常に悪い」とちょっと辛く評価しました。
(ヤフオクで初めての「非常に悪い」評価です)

このレベルは通常、「ジャンク品」で出品されるべきですね。

一方、商品説明には無かった「FMパナアミューズメントカートリッジ」が付いていました。

05

ラベルが剥がれている状態ですが、これはちょっとラッキーです。


不具合の修理

MSXでは、キーボードの不具合が多いですね。

分解して、サンドイッチになっている2枚のフレキシブル基板(シート?)をチェックしていくと、
癒着している状態で、2枚のシートが張り付いている箇所がありました。

06

2枚をゆっくりと剥がし、接点面を軽くふいて起動してみると

07

デスクパック」という画面が表示されました。
これが、正常時のデフォルトの初期画面のようです。

08

F8キーを押すと、見慣れた画面が表示されました。
キーボードの動作も正常に戻りました。

14


FMパナアミューズメントカートリッジ」の修繕

インターネット上の画像を見つけて、プリンターで印刷して貼り付けました。

09

いい感じに修繕出来ました。見た目も大事ですね。


トラブル発生

FMパナアミューズメントカートリッジ」をFS-A1で動作確認をしたのですが、
FM音源による音の出力が出来ませんでした。

MSX1機で確認するとFM音源で出力出来たのでFS-A1 固有の問題のようです。

内臓音源では音が出るので、
FMパナアミューズメントカートリッジ」とFS-A1 間の接続問題だと思われます。

カートリッジを分解した状態でFS-A1に接続して、調べていくと、

13

10

基板上のオペアンプに-12Vが供給されていないことが判明。

オペアンプの -12Vへの電圧供給

12

オペアンプの +12Vへの電圧供給

11

+12Vは問題ないですが、-12Vが+0.74Vと正常ではありませんでした。
(念のため、正常動作したMSX1機で試すと-12Vが測定出来ました)

FS-A1のカートリッジの-12V端子-12Vが来ていないようです。

これ以上の調査は、FS-A1の基板回路図を調べるまたは入手しないと、無理っぽいです。

±12V
電源はFM音源カートリッジ以外では利用は無く、通常の利用では支障がないので、
とりあえず、放置することにします。

後ほど、改めて調査・修理をいたいと思います。
FMパナアミューズメントカートリッジ」のオマケが無ければ見つからなかった不具合です。ラッキーでした。


最後に

FS-A1は軽くて、机の上においても邪魔ならないサイズです。
キーボードのタッチ感も良いです。これをメインに使っていこうと思います。

次のステップとして、RGB端子でテレビに出力を何とかしたいと思います。

2019年1月 2日 (水)

明けましておめでとうございます。



明けましておめでとうございます。
今年もよろしくお願いします。

Dscn9256

Dscn9249


«MP3プレーヤーでMSXにプログラムをロードさせる