Include in this Kit - 1 x PCB Board - 1 x Flash Chip Winbond W27C512 (64K / 512 Kbits) - 1 x Electrolytic Capacitor - 1 x Ceramic Capacitor - 1 x Socket - 1 x Cartridge Case
修正:(注意) どうも、見た目がまったく同じでも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"
/*************************************************** 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"SdFatSD;// ピン割り付けの変更 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#defineRESET8// VS1053 reset pin (output)#defineCS6// VS1053 chip select pin (output)#defineDCS7// VS1053 Data/command select pin (output)#defineCARDCS9// Card chip select pin#defineDREQ2// VS1053 Data request, ideally an Interrupt pin//#define REC_BUTTON 7#defineREC_BUTTON3Adafruit_VS1053_FilePlayermusicPlayer=Adafruit_VS1053_FilePlayer(RESET,CS,DCS,DREQ,CARDCS);Filerecording;// the file we will save our recording to#defineRECBUFFSIZE128// 64 or 128 bytes.uint8_trecording_buffer[RECBUFFSIZE];voidsetup(){Serial.begin(115200);Serial.println("Adafruit VS1053 Ogg Recording Test");// initialise the music playerif(!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 workingif(!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_tisRecording=false;voidloop(){if(!isRecording&&!digitalRead(REC_BUTTON)){Serial.println("Begin recording");isRecording=true;// Check if the file exists alreadycharfilename[15];strcpy(filename,"RECORD00.OGG");for(uint8_ti=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 writeif(!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 uprecording.close();delay(1000);}}uint16_tsaveRecordedData(booleanisrecord){uint16_twritten=0;// read how many words are waiting for usuint16_twordswaiting=musicPlayer.recordedWordsWaiting();// try to process 256 words (512 bytes) at a time, for best speedwhile(wordswaiting>256){//Serial.print("Waiting: "); Serial.println(wordswaiting);// for example 128 bytes x 4 loops = 512 bytesfor(intx=0;x<512/RECBUFFSIZE;x++){// fill the buffer!for(uint16_taddr=0;addr<RECBUFFSIZE;addr+=2){uint16_tt=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 timerecording.flush();written+=256;wordswaiting-=256;}wordswaiting=musicPlayer.recordedWordsWaiting();if(!isrecord){Serial.print(wordswaiting);Serial.println(" remaining");// wrapping up the recording!uint16_taddr=0;for(intx=0;x<wordswaiting-1;x++){// fill the buffer!uint16_tt=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();}returnwritten;}
最近のコメント