チーム121A
PSoCとクイズ
研究者名
3年15組46番 松本拓飛
概要
PSoCとの対話をクイズの形式を用い表現した。
Tera Termを起動するとクイズが提示される。
1~6までの選択肢から答えると、true、false、prefectのどれかが表示され
trueならば正解ということでLED1が点灯する。
falseならば不正解である。
perfectならば大正解で、LED2が激しく点灯し、次の問題が提示される。
2問目を正解すると、終了である。
デバイス一覧
・PSoC
・ジャンパ線
・シリアルケーブル
ソース
#include <m8c.h> #include <stdlib.h>
#include "PSoCAPI.h" void main(void) { char *strPtr; UART_CmdReset(); UART_IntCntl(UART_ENABLE_RX_INT); Counter8_WritePeriod(155); Counter8_WriteCompareValue(77); Counter8_Start(); UART_Start(UART_PARITY_NONE); M8C_EnableGInt ; UART_CPutString("\r\nWelcome to PSoC UART test program. V1.1 \r\n"); UART_CPutString("\r\n"); UART_CPutString("好きな果物は?\r\n"); UART_CPutString("1:リンゴ\r\n"); UART_CPutString("2:ぶどう\r\n"); UART_CPutString("3:メロン\r\n"); UART_CPutString("4:みかん\r\n"); UART_CPutString("5:梨\r\n"); UART_CPutString("6:バナナ\r\n"); UART_CPutString("\r\n"); while(1){ if(UART_bCmdCheck()) { if(strPtr = UART_szGetParam()) { UART_PutString(strPtr); UART_CPutString("\r\n"); LCD_1_Start(); LCD_2_Start(); if(atoi(strPtr) == 3){ PWM8_1_Start(); PWM8_2_Stop(); UART_CPutString("\r\n"); LCD_1_PrCString("OK! "); UART_CPutString("true\r\n"); UART_CPutString("\r\n"); } else if(atoi(strPtr) == 5){ PWM8_2_Start(); PWM8_1_Stop(); UART_CPutString("\r\n"); LCD_1_PrCString("congratulation! "); UART_CPutString("perfect\r\n"); UART_CPutString("\r\n"); UART_CPutString("好きな野菜は?\r\n"); UART_CPutString("1:人参\r\n"); UART_CPutString("2:キャベツ\r\n"); UART_CPutString("3:白菜\r\n"); UART_CPutString("4:レタス\r\n"); UART_CPutString("5:大根\r\n"); UART_CPutString("6:トマト\r\n"); UART_CPutString("\r\n"); break; } else{ UART_CPutString("\r\n"); UART_CPutString("false\r\n"); UART_CPutString("\r\n"); PWM8_1_Stop(); PWM8_2_Stop(); LCD_1_PrCString("NG "); } } UART_CmdReset(); } } while(1){ if(UART_bCmdCheck()) { if(strPtr = UART_szGetParam()) { UART_PutString(strPtr); UART_CPutString("\r\n"); LCD_1_Start(); LCD_2_Start(); if(atoi(strPtr) == 6){ PWM8_2_Start(); PWM8_1_Stop(); UART_CPutString("\r\n"); LCD_1_PrCString("congratulation! "); UART_CPutString("congratulation!\r\n"); UART_CPutString("-END-\r\n"); } else{ UART_CPutString("\r\n"); UART_CPutString("false\r\n"); UART_CPutString("\r\n"); PWM8_1_Stop(); PWM8_2_Stop(); LCD_1_PrCString("NG "); } } UART_CmdReset(); } } }
考察
PSoCとシリアル通信を用いて、データを送受信し対話を簡単に表現した。
ここから音を付加したり、ソフトウェアを複雑にしたりと様々な応用が考えられる。
今回は時間が足りず、ここまでしかできなかったがさらに派手にすることは容易である。
- 最終更新:2012-05-15 15:48:47