堀 口 淳 史 *1 橋 本 論 *2 中 澤 賢 人 *3 久 保 田 晃 弘 *4 Junshi HORIGUCHI *1, Ron HASHIMOTO *2, Kent NAKAZAWA *3, Akihiro KUBOTA *4 *1 多 摩 美 術 大 学 東 京 大 学 ARTSAT PROJECT (Tama Art University x Tokyo University ARTSAT PROJECT) *2 多 摩 美 術 大 学 (Tama Art University) *3 多 摩 美 術 大 学 東 京 大 学 ARTSAT PROJECT (Tama Art University x Tokyo University ARTSAT PROJECT) *4 多 摩 美 術 大 学 (Tama Art University)
16 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 17 UART TX SN74LVC2T45 Blue LED SAT. BUS Line UART RX SN74LVC2T45 Audio Multiplexer Switch I2C Audio Mixer NJM8202 Audio Digitalk LSI APT3011F4 Multiplexer ADG709 I2C I2C PWM I2C PCA9306 UART RX UART TX SPI GPO Mission CPU ATmega2560 GPO SCCB GPI/8 Blue LED CMOS Camera OV7675 Video/8 Video FIFO AL422B FRAM FM25V10 Flash ROM M25P80
18 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009 SN74LVC2T45 SN74LVC2T45 Synthesizer / Digitalker SAT. BUS Line Audio Mixer NJM8202 Digitalk LSI APT3011F4 Multiplexer ADG709 4MB Shared 32kB PCA9306 Mission CPU ATmega2560 Blue LED Blue LED CMOS Camera OV7675 Video FIFO AL422B FRAM FM25V10 Flash ROM M25P80 LED Camera 1MB FRAM 8MB Flash ROM
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 19 SN74LVC2T45 SN74LVC2T45 TSTTone / TSTDigitalker SAT. BUS Line TSTSharedMemory Audio Mixer NJM8202 Digitalk LSI APT3011F4 Multiplexer ADG709 TSTMorikawa PCA9306 Mission CPU ATmega2560 TSTLED TSTCamera TSTFRAM TSTFlashROM Blue LED Blue LED CMOS Camera OV7675 Video FIFO AL422B FRAM FM25V10 Flash ROM M25P80
20 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 21 if (parent_func() == TSTERROR_OK) { if (another_func() == TSTERROR_OK) { // normal task else { // error recovery task else { // error recovery task return; void setup(void) { TSTError parent_func(void) { TSTError error(tsterror_ok); if ((error = child_func()) == TSTERROR_OK) { // normal task else { // error recovery task return error; TSTError child_func(void) { TSTError error(tsterror_ok); return error; int value = 123; if (func(&value) == TSTERROR_OK) { // value will be changed successfully else { // value = 123
22 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009 int i; i = 123; if (i == 123) { // yes TSTTrinity<int> i; i = 123; if (i == 123) { // yes
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 23 // char data[600] = write to FRAM!"; // FRAM if (Morikawa.isValidFRAM()) { // FRAM 0xFF Morikawa.formatFRAM(); // FRAM 100 600 Morikawa.writeFRAM(100, data, sizeof(data)); // FRAM 80 600 Morikawa.readFRAM(80, data, sizeof(data)); // char data[600] = write to Flash ROM!";
24 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009 // Flash ROM if (Morikawa.isValidFlashROM()) { // Flash ROM 0xFF Morikawa.formatFlashROM(); // Flash ROM 100 600 Morikawa.writeFlashROM(100, data, sizeof(data)); // Flash ROM 80 600 Morikawa.readFlashROM(80, data, sizeof(data));
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 25
26 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009 static char const hellospace_morse[] PROGMEM = "Hello, space!"; static char const hellospace_speak[] PROGMEM = "konnnichi'wa uchu-"; void HelloSpace_setup(void) { debug (Morikawa.setTextPGM( TEXT_Y, hellospace_morse ), 1); return; void HelloSpace_loop(void) {
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 27 debug (Morikawa.playMorsePGM( NOTE_C6, hellospace_morse ), 101); delay10mtimes(300); debug (Morikawa.speakPhrasePGM( hellospace_speak ), 102); delay10mtimes(300); return; static NoteParam playmelody_param; void PlayMelody_setup(void) { TSTError error; error = debug (Morikawa.getParamNote( &playmelody_param ), 1); if (error!= TSTERROR_OK) { Morikawa.shutdown(); return; void PlayMelody_loop(void) { debug (Morikawa.playNote( reinterpret_cast<notesequence const*>( playmelody_param.data ), playmelody_param.size / sizeof(notesequence) ), 101); delay10mtimes(300); return; fuuuuuuuuuu;mu,;poppo tsukikibowo,o;o;ooooochi_suchi_kuchi_suchi_kuchi; pogosama;pogosama+poppo+poggo,ochitamuuuuun? ku;biee? CLR, HCUR # load string into the heap TXT, 11, <NUM VAL=3> SETC, FUNC, speakphrase # initialize registers SETC, ARG0, 11 # speakphrase() argument SETC, ARG1, 3 # counter SETI, ARG2, 1000 # 1000 millisec begin: # while (ARG1 > 0) CLR, HCUR CALL WAIT, ARG2 SETC, HCUR, 9 DEC, ARG1 DEC, HEAP JMPIF, ARG1, begin: CLR, HCUR # end while TXT, 18, konnnichi'wa uchu- SETC, ARG0, 18 CALL END
28 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009 05 03 1f 0b 00 00 00 3c 4e 55 4d 20 56 41 4c 3d 33 3e 03 01 4a 03 05 0b 03 06 03 04 07 e8 03 05 03 08 1e 07 03 03 09 0d 06 0d 04 0a 06 f1 05 03 1f 12 00 00 00 6b 6f 6e 6e 6e 69 63 68 69 27 77 61 20 75 63 68 75 2d 03 05 12 08 00 // I2Cm.cpp (twi.c) static volatile uint8_t twi_masterbufferindex; static volatile uint8_t twi_masterbufferlength; // I2Cm.cpp (twi.c) static volatile int16_t twi_masterbufferindex; static volatile int16_t twi_masterbufferlength; た.
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 29
30 宇 宙 航 空 研 究 開 発 機 構 研 究 開 発 報 告 JAXA-RR-14-009
宇 宙 科 学 情 報 解 析 論 文 誌 第 四 号 31