본문 바로가기

프로젝트/AI 진이 (아두이노)

아두이노와 대화하며 놀기 심심풀이

 

https://youtu.be/-Bir7s16E8A


아두이노 소스코드 ( 엄청 간단 ㅎㅎㅎ)


const int TableLength =10;

String table[TableLength][2]={  
                      {"그만","대기모드로 전환합니다."},        //   KryWord  ,     대답
                      {"모델","Arduino Uno 입니다."},
                      {"이름","AI 진이입니다."},
                      {"안녕","네 안녕하세요."},
                      {"나이","1살입니다."},
                      {"성별","여자입니다."},
                      {"여자","여자입니다."},
                      {"남자","여자입니다."},                      
                      {"속도","연결속도는 시리얼통신 방식으로 속도는 9600입니다."},
                      {"연결","연결속도는 시리얼통신 방식으로 속도는 9600입니다."}
                   };
                   
boolean firstMsgGet=true;        // 프로그램 가동(대기 상태에서)하고 첫번째 메세지 인가요?            

void setup() 
{
   Serial.begin(9600);  
}

void loop() 
{
   String s="";
   boolean notFound;
  
   
   if( Serial.available() )
   {
        notFound=true;

        if(firstMsgGet)  //   첫번째 메세지 받으면 자기 소개 하기
        {
          Serial.println("저는 아두이노 인공지능 진이 Ver 0.000001입니다.");
          firstMsgGet=false;
        }
        s=Serial.readString(); 
        
        for( int i=0;i< TableLength ; i++)
        {   
             
             if ( s.lastIndexOf( table[i][0] )  >  -1)  // KeyWord가 포함된 문장 인가
             {
                Serial.println(table[i][1]);   
                if( i==0 ) firstMsgGet=true;     // 그만 입력되면 대기모드       
                notFound=false;   
                break;
              } 
         } 
     
        if( notFound) Serial.println("이해하지 못했어요. 아직 경험치가 낮은 진이입니당.");      
   } 
   
} //llop