วันพฤหัสบดีที่ 29 พฤษภาคม พ.ศ. 2557

ทำ Prototype ชุดการแสดงกันต่อคะ Part5

หลังจากนี้ขอเล่าเป็นภาพรวมๆที่ทำกันต่อละกันนะคะ เพราะมาทำงานกันเกือบทุกวัน ดังนั้นฝ่าย software อย่างเรา ก็  coding กันต่อไป

จากครั้งที่แล้วที่เราสามารถส่งข้อมูลอย่างไร้สายได้แล้ว ตอนนี้ก็ถึงคร่าวที่จะต้องส่งข้อมูลเพื่อควบคุมไฟจริงๆกัน ซักที ตอนนี้ก็เริ่มออกแบบ function การทำงานจริงๆ กะพี่นุก เพราะที่ผ่านมา เหมือนแค่ลองให้ทำงานได้ แต่ยังใช้งานจริงๆกับงานของเราไม่ได้ ยังต้องปรับๆอยู่ เนื่องด้วย scope งานยังไม่ค่อยชัดเจนเท่าไหร่

ตอนนี้ สิ่งที่จะทำต่อ คือ การ ตัวส่ง และ ตัวรับ เพื่อควบคุมไฟบนชุดการแสดงการจริงๆซักที

โดยตัวส่ง เราจะ ติด rf24 ไว้ที่ Arduino Mega 1280 เนื่องจาก เป็นฝั่ง Server เลยไม่จำเป็นต้องใช้ lilypad ในขณะที่ฝั่งรับ เราจะใช้ lilypad เป็นตัวติดต่อ เพราะ มันต้องติดอยู่ที่ชุดการแสดงจริงๆ มันเลยจำเป็นต้องเล็กๆ เพื่อจะไม่สร้างความลำบากในการเต้นของนักแสดง

เราเลยเริ่มออกแบบ format สำหรับการรับส่งข้อมูล
เนื่องจากตอนนี้ เหลือ เพียงแค่ไฟติดและไฟดับ เนื่องจาก ด้วยจำนวนpin ของ lilypad ไม่พอ เพราะ การจะ fade ไฟได้ ต้อง ใช้ช่องpin pwm ซึ่งมีอยู่ 4 ช่อง

เพื่อให้ตัดปัญหา และ ยังไม่รู้ว่า ไฟประเภทไหนจะ fade บ้าง ไม่ fade บ้าง เลยปรับให้เหลือเพียงติดดับไปก่อน

format สำหรับการรับส่งข้อมูล คือ
Id,count,led1,led2,led3,led4,led5,led6,led7

โดยที่....
Id คือ idของผู้รับหรือผู้ส่ง
Count คือ ครั้งที่กำลังส่งมา เช่น 1,2,3,4,..
led1,led2,… คือ จะใส่ logic เป็น 1หรือ 0 เพื่อบอกให้รู้ว่าให้ไฟติดหรือดับ

ตัวอย่างเช่น
73,001,0,0,1,1,1,1,1

ความหมายคือ รับข้อมูลจาก id 73, ครั้งที่1 โดยที่ led ชุดที่ 1 กับ 2 ไฟดับ และ ชุดที่ 3-7 ไฟติด


ตอนนี้ชุดเต้นของเราเริ่มเป็นรูปเป็นร่างมากขึ้นแล้ว งั้นเดี๋ยวของโชว์รูปตอนวันเราไป fitting ให้ดู กันนะคะ

Fitting Cloth











ทำ Prototype ชุดการแสดงกันต่อคะ Part4

วันนี้เราเดินทางไปโรงละครช้างกันอีกครั้ง เพราะ ไปต่อวงจรกะควบคุมไฟจริงๆบนชุดกันที่นั้น งานหลักๆในวันนี้ที่ทำการก็คือ ร้อยสายไฟเข้าไปในชุด และ ก็ทำเย็บหลอด led ยึดติดกับชุด
งานในวันนี้ ค่อนข้างเป็นถึก แถมก็ยังเป็นงานประณีตด้วย เพราะตั้งแต่เข้า
วิศวะมา งานแบบนี้ก็แทบไม่ได้จับอีกเลย เรียนครั้งสุดท้าย ก็วิชา การงานพื้นฐานอาชีพ(กพอ) สมัยมัธยมนู้น

ภาพบรรยากาศการทำงาน









วันพฤหัสบดีที่ 22 พฤษภาคม พ.ศ. 2557

ทำ Prototype ชุดการแสดงกันต่อคะ Part3


วันนี้ ตั้งใจจะมาทำเเต่เช้า แต่พอมาถึง ก็ต้องแอบเสียใจ
เมื่อเดินมาถึงหน้าประตูแล้วเข้าห้องesic ไม่ได้ เพราะวันนี้มี Workshop Hardward
ซึ่งพี่ esic ไปสอนน้องๆกันหมด เลยไปหาอย่างอื่นทำพลางๆฆ่าเวลา
และในที่สุดตอนพอเย็นๆ พี่ๆก็กลับเข้ามาา ทำให้ได้เข้ามาทำงานกันซักที

วันนี้งานหลักๆที่ทำก็คือ มาศึกษาเจ้าตัว rf24กันคะ หลังจากที่ก่อนหน้านี้ เรางมกับ x-bee มาเกือบห้าวัน ก็ยังไม่สามารถส่งข้อมูลข้ามได้สำเร็จซักที

งั้นขอกลับมาเล่าก่อนว่าทำไมเราต้องใช้ เจ้า rf24 นี้ และ rf24 มันคืออะไร ?
เนื่องจาก project ที่เราทำกับโรงละครช้าง คือ ชุดสำหรับนักเต้น นั้นแปลว่า เราจะมีสายระโยงระใย ไม่ได้
ดังนั้นเราต้องเก็บสายให้หมด เเละ control ไฟ ทุกอย่าง อย่างไร้สาย
อย่างตอนเเรกที่คิดกัน คือ เอา xbee มาใช้ เป็นอุปกรณ์ติดต่อสื่อสารแบบไร้สาย
แต่ปรากฏว่า มีปัญหาการใช้เยอะ อย่างแรกเลย เราไม่รุ้เลย ว่า xbee  เสียรึป่าวว ? 
เพราะตัวที่ได้มาเป็นตัวเก่าซึ่งใช้มานานเเล้วหลายปี
อย่างที่สอง การที่ xbee จะส่งข้อมูลได้ เราต้องทำการ จับคู่ ด้วยโปรแกรมเฉพาะของมันก่อน แต่ด้วย interface ของโปรแกรมเปลี่ยนใหม่ทั้งหมด แทบไม่เหลือเค้าเดิมเลย เเล้ว program version ใหม่นี้ ก็แทบไม่มีข้อมูลใน internet จึงทำให้เราต้องลองผิดลองถูกอยู่นานพอสมควร

และสุดท้ายเรา ก็เปลี่ยนมาใช้ rf24 แทน ด้วยคำแนะนำของอินดี้

วันนี้มาทำงานกันสองคนคือ ดาว กับ ยู
เรานั่งงมกันนานพอสมควร
เเต่ต้องขอบคุณ อินดี้ที่มาชี้ทางสว่าง ทำให้พวกเราใช้กันเป็น
และสุดท้ายก็ใช้ได้สำเร็จ เย้ๆ

งั้นขออธิบาย code ส่วนนี้ละกันนะคะ
หลักๆ คือ เราต้องติดตั้ง rf24 ไว้ที่ arduino สองตัว โดยตัวหนึ่งเป็นตัวรับ และ อีกตัวเป็นตัวส่ง
โดยที่ ตัวรับเเละตัวส่งจะรู้จักกันได้ ก็คือ ต้องกำหนด ชื่อ id ทั้งสองตัว  โดยตัวส่งจะส่งข้อมูลไปตาม id ผู้รับที่กำหนด
ในขณะที่ตัวรับ จะวนรอรับเรื่อยๆ ว่า มีข้อมูลอะไรส่งหามันหรือ ไม่ ?

การต่อ วงจรHardware ก็ตามเว็บไซด์นี้เลยคะ
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo

ตัว Sender

// Set up nRF24L01 radio on SPI pin for CE, CSN
RF24 radio(9,53);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0x7365727631LL };

char receivePayload[32];
uint8_t counter=0;

void setup(void)
{
  radio.begin();

  // Enable this seems to work better
  radio.enableDynamicPayloads();

  radio.setDataRate(RF24_1MBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.setChannel(76);
  radio.setRetries(15,15);

  radio.openWritingPipe(pipes[0]);
  radio.openReadingPipe(1,pipes[1]);
  //radio.startListening();

  // Dump the configuration of the rf unit for debugging
  radio.printDetails();
  delay(1000);
}

void loop(void)
{
  // Get the last two Bytes as node-id
  uint16_t nodeID = pipes[0] & 0xff;

  // Use the last 2 pipes address as nodeID
   sprintf(nodeID,"%X",pipes[0]);
    sprintf(outBuffer,"%2X",nodeID);  
    strcat(outBuffer,",");
    strcat(outBuffer,data);

   // Stop listening and write to radio
    radio.stopListening();

    // Send to hub
    if ( radio.write( outBuffer, strlen(outBuffer)) ) {
       printf("Send successful\n\r");
    }
}


ตัว receiver

RF24 radio(8,9);
const uint64_t pipes[6] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL, 0xF0F0F0F0E4LL, 0xF0F0F0F0E5LL };

void setup(void)
 {
 radio.begin();

  radio.setDataRate(RF24_1MBPS);
  radio.setPALevel(RF24_PA_MAX);
  radio.setChannel(76);
  radio.enableDynamicPayloads();
  radio.setRetries(15,15);
  radio.setCRCLength(RF24_CRC_16);
  radio.openWritingPipe(pipes[0]);
  radio.openReadingPipe(1,pipes[1]);
  radio.openReadingPipe(2,pipes[2]);
  radio.openReadingPipe(3,pipes[3]);
  radio.openReadingPipe(4,pipes[4]);
  radio.openReadingPipe(5,pipes[5]);

  radio.startListening();
  radio.printDetails();

  delay(1000);
}
void loop(void)
{
     while (!done)
      {
        len = radio.getDynamicPayloadSize();
        done = radio.read( &receivePayload,len );
       
        radio.stopListening();
        radio.write(receivePayload,len);
        receivePayload[len] = 0;
        printf("Got payload: %s len:%i pipe:%i\n\r",receivePayload,len,pipe);
      }
}

แต่ขณะที่เราทำงานกันอยู่นั้น ก็ประกาศรัฐประหารในระเทศไทยขึ้น เเต่เราก็ยังทำงานกันต่อไม่หยุดหย่อน
เพราะประเทศบางมดอยู่ไกลจากเมืองหลวง เลยไม่ค่อยตื่นเต้นเท่าไหร่
เเต่เพิ่งรุ้ว่าา ซึ้ง ว่ามันสร้างความลำบาก ก็ตอนหารถกลับบ้านไม่ได้นี่แหละคะ
เพราะไม่มีรถคันไหนผ่านไปทางพระราม2เลย และรอคอยนานจนผิดสังเกตุ เเล้วก็มีคนยืนรอรถนับร้อย เเล้วก็มีคนลือว่าๆ พระราม2 ปิดถนน ก็ลองเลยเปลี่ยนแผนการเดินทาง
เเละสุดท้ายก็ถึงบ้านซะที ใช้เวลาเกือบสามชม เเถมยัง ต้อง เดิน ด้วยสองขา เข้าซอยบ้านด้วยย เพราะรถติดมากก ไม่ขยับเลย

วันพุธที่ 21 พฤษภาคม พ.ศ. 2557

ทำ Prototype ชุดการแสดงกันต่อคะ Part2

การทำงานวันนี้ คือ เขียน code ควบคุม LED ต่อให้เสร็จ
เนื่องจากใช้ LED หลายแบบมากๆ เเละแต่ละแบบต่างมี library เฉพาะของมัน
เเละ มีขา pin ที่แตกต่างกันออกไป และ ไม่มีเท่ากัน

จากนั้นก็ทำการรวม code หลอดไฟทุกแบบ ให้มาอยู่ code ชุดเดียวกัน
แต่จะแบ่งด้วยการเขียนเป็น function เพื่อสะดวกต่อการใช้งาน








วันศุกร์ที่ 9 พฤษภาคม พ.ศ. 2557

มาเริ่มทำ Prototype ชุดการแสดงกัน :)

วันนี้ เรามีนัดการทำ Prototype ในพืชมงคลกันคะ  55555
ตอนนี้แบ่งงานออกเป็น 2 ฝ่ายใหญ่ๆ ก็คือ Hardware และ Software คะ โดยแบ่งกันตามความสนใจ
และ ด้วยปริมาณผู้ทำ Hardware จำนวนมาก ดาวก็เลยเลือกที่จะอยู่ทีม Software ที่น่าจะช่วยอะไรมากกว่า

งั้นมาเล่าถึงงานที่รับผิดชอบของแต่ละฝ่ายกันคะ

ฝ่าย Hardware งานหลักๆก็คือ ทำการเปลี่ยนสายไฟสีๆ ให้เป็นสายไฟใสทั้งหมด เพราะ ชุดการแสดงทำจากพลาสติกใส่ทั้งหมด

ฝ่าย Software คือ ทำการเขียนโปรแกรม Control ไฟ LED ซึ่ง ตอนนี้ LED  Strip ที่ใช้ติดชุด ก็มีหลายแบบอยู่ด้วยกัน 

เพราะบางชนิดเป็น LED แบบ หลอด RGB ซึ่งมีขา R G B 12V 
บางชนิด ก็เป็น LED ที่มีขา  5v  data  ground  
บางชนิด ก็เป็น LED ฟลูออเรสเซน ที่มีแค่ขา ไฟ กับ ground   แต่รับด้วยไฟกระแสสลับ
จึงทำให้ Code ที่ใช้แตกต่างกันออกไป และมีการนำ Hardware มาช่วย เพื่อปรับแรงดันไฟ ให้เหมาะสม 
โดยตัว Prototype นี้จะลองคุมไฟ เปิด-ปิด , กระพริบ , และ fade ให้ได้ทั้งหมดคะ เพื่อว่าจะได้มาเปลี่ยนแปลงเข้ากับการแสดงของ อ.พิเชษฐ กลั่นชื่น กันได้ง่าย


งั้นของเล่าถึง Step การทำงานของ การ Control  LED คะ
คือ เผื่อเพื่อนๆที่ไม่ได้มาทำงานส่วนนี้อาจจะไม่เข้าใจการทำงาน
ตามปกติแล้ว การที่หลอดไฟดวงหนึ่งจะติดได้ คือ เราต้องต่อให้ขาหนึ่งของหลอดไฟต่อที่ เข้าไฟ และ อีกขาหนึ่งต่อเข้าGND ก็จะทำให้ครบวงจร และ ไฟติดถูกไหมคะ แต่ต้องระวังว่า ต่อสลับข้างกัน ก็ทำให้ไฟไม่ติดได้นะคะ อิอิ โดยสามารถสังเกตว่าขาไหนบวก ขาไหนลบของหลอด LED ไดด้วยการ ดูความยาวขา ไม่ก็ดูที่ บักที่หลอดไฟ คุ้นๆเหมือนที่อาจารย์เคยสอนตอนวิชา CPE111 รึป่าวคะ อิอิ
ที่นี่เราเวลาจะควบคุมไฟ ด้วย arduino เราต้องทำกันยังไง ?
อย่างง่ายสุด เริ่มที่ LED ธรรมดาๆ
ทำได้สองแบบ ที่เค้าเรียกกันว่า Active Low และ Active High


อย่างแรก Active  High

digitalWrite(2, High); 5v => 0v แล้วไฟจะติด
เพราะ ไฟจาก Pin2(5V) ไหลลง ground ไฟเลยติด

digitalWrite(2, Low); ไฟไม่ติด
เพราะ ไฟจาก Pin2(0V) ไหลลง ground (0v => 0v  ไม่มีความต่างศักย์

ถัดมาคือ Active Low


digitalWrite(2, Low); (5V =>5V) แล้วไฟจะติด
เพราะ ไฟจาก Vsource(5V) ไหลลง จาก Pin2(ground)  ไฟเลยติด

digitalWrite(2,High); ไฟไม่ติด
เพราะ ไฟจาก Vsource(5V) ไหลลง จาก Pin2(5V =>5V ไม่มีความต่างศักย์)   


แล้วพอที่นี่เราอยากทำให้ไฟกระพริบ (Blink)
ก็ทำได้โดย

digitalWrite(2, Low);
delay(1000); //wait 1 sec
digitalWrite(2,High);
delay(1000); //wait 1 sec


จาก code นี้ก็คือ ให้ไฟติด 1 sec แล้ว ดับ 1 sec
เพียงแค่นี้เพื่อนๆก็ได้ไฟกระพริบแล้ว


แล้วถ้าอยากให้ fade ได้ต้องทำยังไง ?
การที่ไฟสว่างมากหรือสว่างน้อย ขึ้นอยู่กับ Volt (V)
ดังนั้น ถ้าเราอยากให้ ปรับความสว่างได้ ต้องไปเขียน code คุมที่ volt กัน
ซึ่ง board arduino มีความสามารถในปล่อยค่า Volt ได้ แต่ต้องเสียบช่องที่เป็น PWM นะคะ เพราะปกติช่อง digital จะปล่อยมาไฟออกมาสองค่าเท่านั้น
คือ 5V = logic1 และ 0v = logic 0

Code หลักๆ ก็อยู่ที่
analogWrite(led, brightness);  

เราก็อาจใช้วิธีวนloopในการเพิ่มค่าไปเรื่อยก็ได้คะ
For(brightness=0; brightness<255; brightness++)
{
       analogWrite(pinled, brightness);  
} 

แต่ถ้าเราไม่ใช่ช่อง PWM ละ ก็ยังทำได้อีกวิธีนึง
ก็คือ ใช้การกระพริบไฟในการหลอกตาคะ
เช่น ไฟติด 10ms ไฟดับ 100ms ก็จะให้ความรู้สึกว่าไฟสว่างน้อย

ในทางกลับกันไฟติด 100ms ไฟดับ 10ms ก็จะให้ความรู้สึกว่าไฟสว่างมาก

digitalWrite(2, Low);
delay(10); //wait 10 ms
digitalWrite(2,High);
delay(100); //wait 100 ms
จะให้ผลลัพธ์ไฟสว่างมาก
====================================================
digitalWrite(2, Low);
delay(100); //wait 100 ms
digitalWrite(2,High);
delay(10); //wait 10 ms
จะให้ผลลัพธ์ไฟสว่างน้อย

ภาพบรรยายกาศที่เราทำงานกัน ^^




วันพุธที่ 30 เมษายน พ.ศ. 2557

Lecture 9 ที่โรงละครช้าง

วันนี้เราจะเดินทางไปโรงละครกัน นั้นก็คือ โรงละครช้าง ซึ่งอยู่ใกล้กับ มหาวิทยาลัยของเรานั้นเอง 
ถ้ายังจำกันได้ ก็คือโรงละครที่เคยพูดถึงตั้งแต่สัปดาห์แรกๆของการเรียน และวันนี้ ก็จะเป็นวันที่เจอ " อ.พิเชษฐ กลั่นชื่น " เจ้าของโรงละครช้าง กันค่ะ

เราออกเดินทางจากมหาวิทยาลัยกัน ตอนห้าโมงเย็น และ ไปถึงที่นั้นประมาณห้าโมงครึ่ง
เราเดินทางกันด้วยวิธี นั่งรถกะป้อจากหน้ามอ แล้วไปลงตลาด 61 กัน จากนั้นก็เดินต่อเข้าไปในซอยอีกประมาณ 300 เมตร ซึ่งค่าใช้จ่ายการเดินทางทั้งหมด 6 บาทถ้วน!!!

ก่อนไปถึงแอบจินตนาการว่าจะโรงละครใหญ่โตแน่เลย แต่ปรากฏว่า โรงละครมีลักษณะเป็นบ้าน ซึ่งถ้ามองจากข้างนอกโดยผิวเผิ่น คนทั่วไปคงไม่รู้แน่ๆว่า ที่นี่คือเป็นโรงละคร  5555 แต่พอเข้าไปภายในบ้าน ก็พบห้องที่ดัดแปลงเป็นห้องซ้อมโรงละครขนาดเล็ก แต่พอเข้าไปเเล้วเหมือนกำลังอยู่ในโรงละครจริงๆเลย แต่แอบเสียดายที่เล็กไปหน่อย เลยไม่เพียงพอสำหรับ จำนวนคนในClass เราซักเท่าไหร่

เเละในที่สุดเราก็เจอ  " อ.พิเชษฐ กลั่นชื่น " ตัวเป็นๆ ซะที 

อาจารย์เล่าเรื่องราวที่เคยไปแสดงต่างประเทศให้ฟังคร่าวๆ และ แนวคิดการนำไฟมาแสดงร่วมกันการแสดง และคำพูดประโยคหนึ่งของอาจารย์ที่รู้สึกประทับใจมากๆ ก็คือ "บนเวที ไฟ ไม่ได้มีหน้าที่ให้แสงสว่าง มันสามารถให้ความหมายได้ ถ้าคุณสามารถทำได้อย่างนั้น คุณคือ artist ไม่ใช่ช่างไฟ" 
ฟังแล้วรู้สึกว่า โห หลอดไฟธรรมดาๆสามารถสิ่งที่ยิ่งใหญ่ให้การเต้นได้ขนาดนี้เชียวหรือเนี่ย

เป้าหมายของการไปครั้งนี้ก็คือ การไปคุยกับ อ. เกี่ยวกับ Concept ของงานชิ้นนี้ และ สิ่งที่สำคัญที่สุดคือ การนำความรุ้ที่เราเรียนมาตลอดเทอม มาประยุกต์ใช้กับงานจริงๆ ที่ใช้จริงๆ ฟังแล้วก็รู้สึก ภูมิใจ ว่าเฮ้ยยงานเราจะได้เอาแสดงบนเวทีระดับโลกเลยหรอเนี่ย 

อ.พิเชษฐ เริ่มเล่า Concept การแสดงครั้งนี้ และสิ่งที่อยากให้พวกเรามาช่วยทำกัน  เพื่อให้เข้าใจมากขึ้น เลยเล่นการแสดง บางScene ให้เราดูกัน  ลองดูกันได้ตาม VDO ด้านล่างนี่ได้เลยคะ


เป็นไงกันบ้างคะ กับการแสดงชุดนี้ สำหรับดาว อยากบอกว่าดูจบเสร็จ "งง" มากเลย  55555  เพราะการแสดง Abstract มากๆ ยากเกินกว่า Engineer อย่างพวกเราจะเข้าใจ 55555  แต่พออาจารย์ค่อยๆเริ่มเฉลยว่า เป็นการสื่อถึงอะไร ก็ทำเข้าใจมากขึ้น ซึ่งเรื่องแบบนี้มันขึ้นกับ "ประสบการณ์" ของแต่ละคนนั้นเอง สงสัยเรายังอ่อนหัด และอ่อนประสบการณ์ไปนี่เอง 5555

อาจารย์ยังเล่าต่อว่า ตอนเราอยู่บนเวที เราไม่สามารถอนาจารทางร่างกายบนเวทีได้ แต่เราสามารถทำอนาจารกับความรู้สึกคนดูได้

โดย Concept ของการแสดงชุดนี้ มาจากเรื่องคือ นายใน นั้นเอง หลายคนคงสงสัยว่ามันคืออะไร ? ก็ลอง Search ดูได้ใน Internet หรือไม่ก็อ่านตาม Pantip ก็ได้  ก็น่าจะทำให้เข้าใจในการแสดงชุดนี้มากขึ้น 

และรูปด้านล่าง คือ การ Design ชุดการแสดงคร่าวๆโดยพี่โบว์   โดย นักแสดงจะเป็นผู้ชายทั้งหมด และชุดที่ใส่จะทำจากพลาสติกใส และ ใช้ LED ไปติดประดับบนชุดตามรูปเลย   



โดยเราจะนำ Sensor ไปติดตามจุดต่างๆ เเละ เมื่อ นักแสดง ทำการ interactive ในรูปแบบต่างๆ ก็จะนำไปสู่รูปแบบการแสดงไฟของหลอด LED ที่แตกต่างกันคะ

My Opinion:
จริงแล้วๆ การนำ เทคโนโลยี อย่างเช่น การใช้ sensor กับการแสดงนั้น จริงๆแล้วใน Dev โปรแกรมนั้นไม่ได้ยาก เพียงแต่ วิศวกรส่วนใหญ่ไม่ค่อยมีหัวศิลปะกันซะเท่าไหร่ ผลงานที่ออกมาเลยไม่ค่อยน่าสนใจ แต่ถ้าหาก เอา Artist กับ Engineer มาทำงานร่วมกัน เชื่อได้เลยว่า งานที่ออกมา จะสวยและน่าตื่นเต้นแน่นอน เพราะไอเดีย หรือ Gimmick จาก Artist  จะสามารถสร้างได้ง่ายๆด้วย Engineer อย่างเรานี่เอง

ถ้าหากใครสนใจ ก็ลองไปชมการซ้อมการแสดงได้นะคะ แต่ก็ควรลองโทรไปถามหรือนัดซักนิดนะคะ เพราะไม่เช่นนั้นนอาจจะ ไปเสียเที่ยวได้ อิอิ เพราะ อ.ออกไปแสดงต่างประเทศค่อนข้างบ่อยคะ






วันพุธที่ 23 เมษายน พ.ศ. 2557

Lecture 8

          และแล้ว...วันนี้ก็ถึงวันที่แต่ละกลุ่มนำ prototype ของแต่ละกลุ่มออกมาแสดงให้กันนะคะ แล้วยังจำได้ไหมคะ..ว่ากลุ่มของพวกเราทำอะไร? ติ๊ก...ต๊อก...ติ๊ก...ต๊อก  คำตอบก็คือ  Hug me please!

Idea 
          ไอเดียของกลุ่มของเราก็คือ... "การกอดของคุณสามารถเปลี่ยนเป็นแสงสว่างและความอบอุ่นให้แก่ชาวเขาได้" นั่นเอง


Background
        ทีมาของไอเดียพวกเราก็คือ ชาวเขาที่อาศัยอยู่บนภูเขาสูง มีปัญหาใหญ่เรื่อง ไฟฟ้าไปไม่ถึง เเละนั้นก็ที่มาที่ทำให้พวกเราอยากจะทำ project อะไรก็ได้ ที่สร้างแสงสว่างให้แก่ชาวเขา ดังนั้น อุปกรณ์หลักในครั้งนี้ก็คือ หลอด LED และสิ่งที่แสดงออกถึงความห่วงใย และ กำลังใจแก่ชาวเขาได้ดี ก็คือ "การกอด" เเละนี่จึงเป็นที่มาของ project  Hug me please! ของพวกเรา :)


Scenario
          เมื่อมีผู้เดินผ่านมาพื้นที่ที่กำหนด ก็จะส่งเสียงว่า  .. Hug me please! Hug me please! เพื่อเรียกร้องความสนใจ
และนั้นก็จะสร้างความสงสัยแก่ผู้เดินผ่านว่า เสียงนั้นมาจากไหน ? แล้วเมื่อมองหา ก็จะพบเจอกับ ตุ๊กตาตัวใหญ่ ที่ร้องเรียก.. เเละด้วยความสงสัยผู้เดินผ่านก็จะลองเดินเข้าไปกอดตามเสียงที่เรียกร้องหา และตอนนั้นเอง แสงสว่างจาก LED ก็สว่างขึ้น ด้วยรูปแบบที่แตกต่างกันออกไปตามแรงกอด..

ถ้าใครนึกภาพไม่ออกก็ลองตามไปดูคลิปตามลิงค์ด้านล่างได้เลยจ้า...
http://www.youtube.com/watch?v=u2DKXEiGHKs



Equipment
        อุปกรณ์หลักๆที่ใช้ในโปรเจคนี้ ก็มีดังนี้คะ
1.LED Strips เป็นพระเอกของproject นี้ ใช้สำหรับสร้างแสงสว่าง
2. Arduino เป็น micro controller สำหรับควบคุมการทำงานทั้งหมด
3.IR เป็น sensor วัดระยะ โดยจะใช้เช็คว่ามีคนเดินผ่ามาในบริเวณนี้หรือไม่
4.MP3 shield เป็นส่วนที่เก็บและส่งเสียงเพลงออกมา
5.Flex sensor  เป็นsensor ที่เราเอามาใช้วัดแรงกอด


หลักการทำงาน
เราจะใช้IR sensor (Infrared Sensor ) ในการตรวจเช็คว่า มีคนเดินผ่านในบริเวณนี้ หรือไม่ ?
โดย IR จะ return ค่ามาเป็นค่า analog แสดงระยะความใกล้ไกล

ซึ่งเมื่อถ้ามีคนเดินผ่านมา บริเวณที่ใกล้ตุ๊กตาของเรา ก็จะทำให้ mp3 shield เริ่มทำงาน 
และภายใน mp3 shield ก็ได้ใส่ไฟล์เสียง Hug me please เอาไว้ และก็ทำให้ผู้ที่เดินผ่านเข้ามากอดตุ๊กตาของเรา

อีกทั้งภายในตุ๊กตาของเรา ก็ได้ติด flex หรือ force sensor เอาไว้ ทำให้เมื่อเวลาผู้เล่นกอด เท่ากับ เป็นแรงกด ซึ่ง flex หรือ force sensor นี้จะรับ input เข้่ามาเป็น analog   จากนั้น เราก็นำค่า analog มาให้ส่งการกำหนด ค่า แสงสว่าของ LED ซึ่งถ้ายิ่งกอดเเรงมาก ก็ยิ่งสว่างมากคะ :) 


Scenario


วันศุกร์ที่ 11 เมษายน พ.ศ. 2557

Service Design (Self-learning in youtube)

ในปัจจุบันได้มีสินค้าออกมามากมายที่แทบจะเหมือนกัน ด้วยราคาที่เท่ากัน 
แล้วอะไร ? จะเป็นสิ่งดึงดูดใจให้ ลูกค้า เลือกเข้ามาในร้านของเรา 
นั่นก็คือ Service Design หรือ การออกแบบบริการ

การออกแบบบริการ(Service Design ) จะใช้วิธีคิด ด้วยการบริหารการตลาดแบบ 7Ps 
โดยต่อยอดมาจาก 4Ps เดิม อันได้แก่

Product - สินค้า หรือบริการ โดยพิจารณาจากการตอบสนองความต้องการของลูกค้า
Price - ความเหมาะสมของราคา กับคุณค่าที่ลูกค้าจะได้รับ เมื่อเปรียบเทียบกับคู่แข่งขันอื่นๆ
Place - สถานที่จัดจำหน่าย หรือช่องทางในการจัดจำหน่าย ซึ่งจะพิจารณาจากความสะดวกและปริมาณของลูกค้า
Promotion - การส่งเสริมการขาย ที่จะทำให้เกิดแรงจูงใจในการซื้อสินค้า

และ เพิ่มอีก 3Ps ดังนี้
People การสร้างความสัมพันธ์กับลูกค้าและผู้ให้บริการ
Process การออกเเบบระบบให้ลูกค้าใช้งานได้อย่างสะดวก
Physical Evidence การออกแบบจุดให้บริการเพื่อความสะดวกแก่ลูกค้า

Service Design จะมีขั้นตอนทำงานออกเป็น 3 ส่วน ก็คือ
-Exploration 
-Creation
-Implementation :

1.Exploration :การค้นคว้า วิจัย วิเคราะห์ เข้าใจถึงปัญหา ของลูกค้า
Who = ใครคือลูกค้า หรือ กลุ่มเป้าหมาย
What = ต้องการอะไร ปัญหาคืออะไร  สิ่งที่ต้องแก้ไขคืออะไร

โดยวิธีแก้ไขปัญหา คือ
ลงไปเก็บข้อมูลของลูกค้าด้วยการสังเกตุ
สัมภาษณ์ผู้ใช้บริการ 

จากนั้นก็รวบรวมข้อมูลมาแบ่งเป็นหัวข้อต่างๆคือ
-Problems: ปัญหาที่พบ
-Opportunities: โอกาสการแก้ปัญหา
-Insights:ความเข้าใจเชิงลึก
-Needs: ความต้องการของลูกค้า
-Themes: การจัดกลุ่ม
          สุดท้าย เราก็จะใช้ได้โจทย์ของการออกแบบแนวคิดปัญหาได้อย่างถูกต้องและตอบสนองของลูกค้าได้อย่างมีประสิทธิภาพสูงสุด

2.Creation : ผลสรุปที่ได้มาออกแบบแนวคิด
          หลังจากที่เรารู้ปัญหาแล้ว ก็มาถึงขั้นตอนการออกแบบ โดยขั้นแรก  Design scenarios จำลองขั้นตอนการให้บริการ ซึ่งจะเชื่อมโยงกับ Customer Journey ที่ทำให้เราเห็นภาพรวมทั้งกระบวนการอย่างเป็นขึ้นตอน เเละสุดท้าย เราก็จะได้แนวคิดที่สามารถตอบโจทย์ของปัญหาได้จริง ที่เกิดจากเหตุผลและความคิดสร้างสรรค์ อย่างลงตัว

3.Implementation : ทดลองและปรับปรุงให้แนวคิดใช้ได้จริง
         การสร้างแบบจำลองต่างๆ ขึ้นมาลองทดสอบการใช้งานจริง เพื่อดูปฏิกริยาของการใช้งานต่างๆ
พร้อมทั้งมีแบบสอบถามหลังการใช้งาน เพื่อปรับปรุงให้ดีขึ้น สุดท้ายมีการพิมพ์เขียวเพื่อให้ลูกค้า และพนักงานทุกระดับชั้น เข้าใจตรงกัน เพื่อก่อให้เกิดประโยชน์สูงสุด

Reference:
EP 1 : http://www.youtube.com/watch?v=PZwwQgb47Ug
EP 2 : http://www.youtube.com/watch?v=JMBzJCmtBKw
EP 3 : http://www.youtube.com/watch?v=00oHjIEyn4k
EP 4 : http://www.youtube.com/watch?v=I4etsIV9fjM



แล้วเมื่อเราได้เรียนรู้ Service Design กันแล้ว ก็ลองนำประยุกต์กับของเรากันบ้างคะ

Project ของเราก็คือ Hug me please!
         ได้แนวคิดมาจาก "การกอดของคุณสามารถเปลี่ยนเป็นแสงสว่างและความอบอุ่นให้แก่ชาวเขาได้"

โดยนำแนวคิดของ 
Service Design  มาใช้ในการออกแบบ

1.Exploration

         ขั้นแรกเราตั้งประเด็นของปัญหาก่อน ก็คือ "ต้องการสร้างแสงสว่างให้แก่ชาวเขา"  ดังนั้นอุปกรณ์หลักที่ใช้สร้างแสงสว่างนั่นก็คือ "หลอด LED"  เราจึงได้ระดมความคิดภายในกลุ่มว่า อะไรคือสิ่งที่คนแสดงออกถึงความห่วงใย และ กำลังใจแก่ชาวเขาได้ และคำตอบก็คือ "การกอด"  
         ดังนั้นเราจึงได้ตั้งโจทย์ของปัญหาคือ "การสร้างแสงสว่างให้ชาวเขาที่อยู่ไกล"

2.Creation :
เราจะการจำลองขั้นตอนการทำงานไว้ดังนี้
        ขั้นแรกจะตั้งตุ๊กตาไว้ในบริเวณหนึ่ง และ เมื่อมีผู้คนเดินทาง จะส่งเสียงเชิญชวนคนเข้ามา ด้วยคำว่า "Hug me please" และ เมื่อ มีผู้มากอดตุ๊กตาของเรา แสงสว่างในบริเวณก็จะค่อยๆติดขึ้น ตามแรงกดของการกอด



3.Implementation
          เราจะนำความรู้ที่ได้รับมาตั้งแต่ปี 1 มาประยุกต์ใช้ และ สร้างสรรค์โปรเจคนี้ โดยคาดว่าอุปกรณ์หลักก็คือ LED,IR Sensor , Flexiforce Sensor และหลังจากที่เราสร้าง prototype ตัวแรกสำเร็จ ก็จะนำมาให้เพื่อนในclass ช่วยกัน discuss รวมทั้งตอบแบบสอบถาม เพื่อปรับปรุงแก้ไขชิ้นงานของเราให้ดีขึ้น สำหรับการสร้างของจริงในอนาคต

วันพฤหัสบดีที่ 20 มีนาคม พ.ศ. 2557

Lecture 7: Usability Engineering

วันนี้จะมาคุยกันเรื่อง  Usability Engineering กันนะคะ

แล้วUsability Engineering  คืออะไร ?
Usability Engineering คือ กระบวนการสร้างบางสิ่งให้เป็นมิตรกับผู้ใช้(User Friendly) โดยผู้ใช้สามารถเรียนรู้ และ เข้าใจการใช้งานเองได้ง่าย นอกจากนี้ยังต้องมีทั้งประสิทธิภาพและประสิทธิผล

ประสิทธิภาพ (Efficiency)คือ ผลงานใช้งานหรือทำงานได้ดี วัดที่ปริมาณ คุณภาพ เวลา 
ประสิทธิผล (Effectiveness) คือ   ผลงานสำเร็จตามเป้าหมาย

โดย Goal หลักUsability Engineering ของก็คือ 
  • Know the user => รู้ว่า user คือ ใคร ?
  • Know the task => รู้ว่า งาน คืออะไร ?
  • Know the environment => รู้ว่า สภาพแวดล้อมเป็นอย่างไร ?

ตัวอย่างที่ชัดเจนในช่วงนี้ก็คือ กระแสเกม 2048 ที่มีคนมากมายติดเกมนี้ เเม้แต่ใน class ที่กำลังเรียนอยู่นี้ก็เชือว่า ต้องมีอย่าง 1 คนกำลังเล่นอยู่แน่นอน 555  ถ้าใครยังไม่รู้จัก ก็ลองเข้าเล่นได้ที่เว็บนี้ http://gabrielecirulli.github.io/2048/

ซึ่งสิ่งที่ทำให้คนติดเกมนี้ นั้นก็คือ การที่คนอยากเอาชนะเกมนี้ได้ แม้หน้าตาของเกมก็เรียบง่าย ไม่มีได้มีกราฟิค ตระการตาอะไรมาก แต่ก็ภายในเกมก็แอบแฝง AI อยู่ เพื่อเรียนรู้พฤติกรรมของผู้เล่น



แล้วการมีทำให้ผลงานของเราน่าสนใจ เป็นที่ติดตา ติดตลาด ได้ ก็ต้องผ่านกระบวนการ "เก็บผลสำรวจ" ก่อนเสมอ เพื่อจะได้สร้าง Goal ไปได้อย่างถูกทิศทาง 

ตัวอย่างอย่างนึงที่ชัดเจน ก็คือ สินค้า Apple ที่ติดตลาดเป็นอย่างมากในทุกวันนี้ เพราะ Steve Job ให้ความสำคัญกับสิ่งเหล่านี้ ถึงแม้ว่าสินค้านั้นจะมี feature เยอะ function แยะ แต่ถ้าไม่ Usability กับผู้ใช้ ก็ทำให้สินค้าไม่ได้รับความสนใจอยู่ดี

การเก็บผลสำรวจ(Survey)ของผู้ใช้งานนั้นก็สามารถเก็บได้หลายวิธี ดังนี้

  • Questionnaires(แบบสอบถาม)  
  • Observation(การสำรวจ)  ,
  • Activity logging (การเก็บบันทึก) 
  • Interviews  (การสัมภาษณ์)
ซึ่งข้อมูลแต่ละประเภทก็เลือกใช้วิธีการสำรวจข้อมูลที่แตกต่างกันออกไป


Vocabulary
Ethnography = การเข้าไปฝังตัวแบบไม่แปลกเเยก ทำให้รุ้สึกว่า user กำลังถูก observe

My opinion : การสร้างผลงานบางสิ่งขึ้นมา สิ่งหนึ่งที่เราต้องควรให้สำคัญ ก็คือ Usability กับผู้ใช้หรือไม่ ? หลายคนไม่ได้มองถึงจุดนี้ จึงทำให้ feature หรือ function ในผลงานไม่ได้ใช้เต็มศักยภาพ เพราะ มีแต่ใช้ไม่เป็น หรือ ใช้ยาก เลยทำให้คนส่วนใหญ่ไม่ใช้มัน และการจะรู้ว่า มัน Usability กับ  User หรือไม่ ? เราต้องออกไป Survey จริงเพื่อให้ได้ข้อมูลที่แท้จริง กับ ผู้ใช้จริง เเละ ผลงานเราก็จะตอบโจทย์ผู้ใช้มากที่สุด