Warning: Remote Host Identification Has Changed

Standard
กำลังจะ ssh ไปยัง RaspberryPi ก็เกิดปัญหานี้ขึ้นมา  วิธีแก้ง่ายสุดคือ  ลบไฟล์ known_hosts ออกครับ

rm .ssh/known_hosts

http://www.cyberciti.biz/faq/warning-remote-host-identification-has-changed-error-and-solution/

[Unity3D] Design Game : ARWar

Standard
Objective
    1. นำความรู้จากวิชา Human Computer Interfaces มาประยุกต์ใช้จริง
    2. ศึกษาการใช้งานเทคโนโลยีเกี่ยวกับ Augmented Reality บนระบบปฏิบัติการ iOS
    3. เพื่อพัฒนาเกมที่มีการใช้สภาพแวดล้อมจริงมาแสดงร่วมกับสภาพแวดล้อมเสมือน
Design
 เกมส์จะใช้เทคโนโลยี Augmented Reaility โดยผู้เล่นจะต้องหันกล้องไปที่ Marker แล้วจะมี วัตถุต่าง ๆ ของเกมส์ปรากฏขึ้นมา    เมื่อมีวัตถุปรากฏขึ้นมาแล้วผู้เล่นจะต้องยิงกล่องเป้าหมายที่กำลังเคลื่อนที่ให้ได้จำนวนมากที่สุดภายในระยะเวลาที่จำกัด   ซึ่งเป้าหมายจะมีกำแพงบังอยู่
    เมื่อเริ่มเล่นเกมจะมีการจับเวลา  40 วินาที  สามารถยิงเก็บคะแนนได้จนกว่าเวลาจะหมด
             Game Process เมื่อผู้เล่นยิงกระสุน   จะมีการสร้างกระสุนขึ้นมา  และเคลื่อนที่ไปยังทิศทางที่เล็งไว้  เมื่อกระสุนหลุดออกนอก Workspace กระสุนจะระเบิด   และเมื่อกระสุนชนกับเป้าหมายจะมีการทำลายเป้าหมายและบวกคะแนนในการเล่น  โดยขณะยิง  เป้าหมายจะเคลื่อนที่ไปเรื่อย ๆ ผู้เล่นต้องคำนวณการยิงเพื่อให้โดนเป้าหมาย     ระหว่างยิงจะมีกำแพงบังเป้าหมายอยู่ในฉาก  ผู้เล่นจะต้องหมุนตัวเองเพื่อหาเป้าหมายให้เจอ  ซึ่งความยากจะมี 2 ระดับ   ระดับแรก  จะมีกำแพงบังในแนวตั้ง   และระดับที่สอง  จะมีกำแพงบังทั้งแนวตั้งและแนวนอน
     
Implementation
1. ออกแบบวัตถุในเกมส์


2. ควบคุมการทำงานส่วนต่างๆ ของโปรแกรมด้วย Play Marker


3. Build เกมส์ สำหรับ iOS
4. Complie xCode Project และ Build Application บน iPhone


Videos of Operation  


ทดสอบการทำงานของเกมส์





Problem & Solution Procedures
  • ไม่สามารถ Detect Image Marker ที่สร้างขึ้นมาเองได้ ต้องใช้งานในสภาพแสงที่เพียงพอ
  • Application crash เนื่องจากมีการสร้าง Object และไม่ได้ทำลาย
  • มุมมองแนวราบกับ Marker มักจะ detect marker ไม่ค่อยเจอ  ต้องออกแบบให้ Plane ลอยขึ้นมาเหนือ Marker พอสมควร 
Conclusion & Comment
      การออกแบบเกมส์ที่ทำงานบน iOS ควรจะจัดการเรื่องการสร้าง Object ให้ดี  เพราะจะมีการใช้ Memory ค่อนข้างเปลือง ทำให้โปรแกรมหยุดการทำงานลงได้   และการทดสอบโปรแกรมควรจะทดสอบในสภาพแวดล้อมที่กล้องสามารถทำงานได้ดี    เช่น  ในสภาพแวดล้อมที่แสงสว่างมาก ๆ จะช่วยให้กล้อง detect marker ได้ง่ายขึ้น   
Creator
 
 Nattapong  Rodmuang
FRA'10     FIBO@KMUTT

[Arduino] - การใช้ Serial Port

Standard
บทความนี้จะนำเสนอการใช้ Serial บน Arduino  ซึ้งขั้นตอนมีไม่มาก 
ในบทความนี้จะมีการสร้าง Protocol ขึ้นมา  เพื่อใช้ในการส่งข้อมูลหลาย ๆ และป้องกันความผิดพลาดในการส่งข้อมูล  โดยมี Header (#) และ  Footer (!) เป็นตัวเริ่มและจบ protocol

1. Initial Baudrate  กำหนดค่า Baudrate  และประกาศตัวแปรเป็น Gobal
char StringIn[InputMaxLength] = {'\0'};   // เก็บค่าที่รับมาทั้งหมด
char DataIn[DataLength] = {'\0'};   // เก็บเฉพาะ Data  ตัด Header กับ Footer ออกไป
Serial.begin(38400);  // Initial Serial


2.  สร้างฟังก์ชันสำหรับรับค่า Serial  Protocol คือมี #  นำหน้าและ ! ปิดท้าย
int ReceivedSerialData(){
  while(Serial.available())
  {
   
    char inchar = Serial.read();
     // Get Header
     if(inchar == Header)
     {
        StringIn[0] = inchar;
        int index = 1;
        // GetData
        do{
          inchar = Serial.read();
          StringIn[index] = inchar;
          index++;
        }while( (index < InputMaxLength) && (inchar != Footer) );
       
        if (index > 2)  // Get Header and Footer
        {
          if(StringIn[index-1]==Footer)  // Footer & Header Correct
          {
            for(int c=0;c<index-2;c++)
            {
              DataIn[c] = StringIn[c+1];
            }        
            return 1; // Success
          }
          else
          {
            // Get Data fail
            Serial.println("Fail Protocol");
            return 0;
          }
        }
      }
  }
  return 0;
}

3.  ใน Loop  เรียกฟังก์ชันเพื่อรับค่า Serial
 if(ReceivedSerialData())
 {
// Implement Here
}