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

How to make this projec + Knowledge (โรงละครช้าง)

    ในบล็อคนี้ผมจะพูดถึงรายละเอียดของขั้นตอนการทำงานของ projec ที่ทำร่วมกับโรงละครช้าง นะครับ โดยจะนำเสนอรายละเอียดของอุปกรณ์ในการทำงาน การใช้โปรแกรมต่างๆ วิธีเซ็ตโปรแกรม และการต่อวงจรนะครับ โดยเนื้อหาทั้งหมดจะทำการแบ่งเป็นเรื่องๆเพื่อที่จะทำการอ่านได้ตามเรื่องที่สนใจ
    1.)รายละเอียดของไฟ LED ชนิดต่างๆที่ใช้ทำโปรเจ็ค
           -ws2812b
           -5050-60-RGB,5050-RGB
           -El Wire
           -มะรุม
    2.)Arduino
          -Atmega 1280
          -LilyPad
          -วิธีใช้ Arduinoขั้นพื้นฐาน(การต่อportและเขียนCode)
          -วิธีการทำเสา+piezo sensor (วัดแรงสั่นสะเทือน)+ws2812b
          -วิธีการส่งข้อมูลผ่านwireless network
          -Processing (User Interface)
   3.)วิธีการออกแบบวงจรและทำแผ่นPCB
             



ไฟLEDรูปแบบต่างๆที่ใช้ในโปรเจ็คนี้
1.1 ws2812b เป็นไฟLEDที่มีทั้งหมด3ขาคือขาเข้า3ขาคือ ขาไฟ+ ,ขากราว,และขาdata ซึ่งไฟLEDแต่ละดวงนี้จะมี controllerคอยควบคุมอยู่โดยจะเห็นได้ว่าในสายLEDนี้มีลูกศรที่ชี้อยู่หมายถึงการส่งdataไปในทิศทางเดียวเวลาเราจะส่งข้อมูลจะต้องส่งด้านที่อยู่ดวงแรกสุดแล้วcontrollerจะส่งข้อมูลต่อไปยังดวงถัดไป นั่นจึงเป็นเหตุผลในที่ไฟLEDจะดับทั้งสายหากดวงแรกดับในขณะทำโปรเจ็ค และไฟLEDชนิดนี้สามารถกำหนดสีแต่ละดวงได้ทุกสีและกำหนดการเปลี่ยนสีได้อย่างอิสระผ่าน codeเพราะมี controllerอยู่ข้างในทำให้สายไฟชนิดนี้ราคาสูงตามความสามารถของมัน
มีขา ไฟ ดาต้าและกราว

ws2812b 

1.2 5050-60-RGB,5050-RGB เป็นไฟRGBที่มีการต่อขาทั้งหมด4ขาคือคือขา RED GREEN BLUEซึ่งเป็นแม่สีที่จะนำมาผสมกันโดยสามารถกำหนดความเข้มอ่อนของแต่ละสีได้โดยใช้ขา analogจาก controller โดยที่การควบคุมนั้นจะแบ่งไฟแต่ละจุดเป็นกลุ่มละ3ดวง โดยแต่ละเส้นที่ทำการแสดงสีออกมานั้นจะแสดงได้เพียงเส้นละสีเท่านั้น
แบ่งไฟเป็นกลุ่มละ3จุด

ผสมสีออกมาแล้วแสดงสีเดียวกันทั้งเส้น
1.3 El Wire คือสายไฟที่เคลือบสารแบบเดียวกับหลอดฟลูออเรสเซนท์ สามารถเปล่งแสงได้ตลอดทั้งเส้น โดย1เส้นจะมีแค่สีเดียว โดยหากต้องต่อวงจรEl Wire และจะต้องทำการปลอกสายอย่างประณีตมากๆเพราะสายไฟที่ใช้ต่อกับEl Wireอย่างด้านในของสาย และที่สำคัญขาดง่ายมากๆ


ส่วนประกอบด้านในของEl Wire
El Wire

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


2. Arduino  เป็นระบบที่ใช้ในการพัฒนาอุปกรณ์อิเล็กทรอนิกส์ต้นแบบ  ซึ่งออกแบบให้ใช้งานง่ายทั้งฮาร์ดแวร์ และซอฟแวร์   กลุ่มเป้าหมายผู้ใช้งานอาดูยโน่ ได้แก่ ศิลปิน  นักประดิษฐ์ นักออกแบบ  ใช้ในงานอดิเรก หรือ ใครๆก็ตามที่สนใจในการประดิษฐ์นวัตกรรม งานสร้างสรรค์
     ถึงปัจจุบัน Arduino มีบอร์ดหลายแบบให้เลือกใช้งานตามความถนัดและความเหมาะสมมากกว่า 20 รุ่น  แต่ละรุ่นก็มีขนาด ความจุ ความเร็ว จำนวนขาพอร์ตอินพุต เอาท์พุต แตกต่างกันออกไป  มีตั้งแต่ราคาหลักสองสามร้อยบาท ไปจนกระทั่งพันกว่าบาท  นอกจากนี้ยังมีอุปกรณ์ต่อพ่วง  (Shield) ให้อีกมากมาย  ราคาก็เป็นไปตาม concept เดิมครับ คือ สมเหตุสมผลสุดๆ  ทำให้เป็นที่นิยมมากขึ้นเรื่อยๆ 
     โดยในบทความนี้ผมจะพูดถึง Arduino รุ่นที่นำมาใช้ทำโปรเจ็คกลุ่มซึ่งมีอยู่ 2 ชนิดคือ Arduino Atmega 1280 และ LilyPad โดยการใช้งานพื้นฐานของทั้ง2  บอร์ดนี้ไม่ต่างกันเพียงแต่ LilyPad นั้นมีportที่น้อยกว่าเท่านั้นเอง 


ATMEGA1280

LilyPad


วิธีใช้ Arduinoในขั้นแรกต้องรู้จักPortต่างๆเสียก่อนครับโดยผมจะอธิบายแบบง่ายๆและคร่าวๆเพื่อให้เข้าใจหลักการทำงานครับ ซึ่งในความเป็นจริงแต่ละ portจะมีรายละเอียดที่ลึกซึ้งกว่านั้นโดยอาจต้องเปิดดูใน datasheetเอาแต่นั่นเป็นการใช้งานระดับยากครับ
      Portของarduino จะแบ่งportเป็น2ประเภทใหญ่ๆคือ
      1.)Port ที่เป็น Analog จะมีการรับค่า-ส่งค่าเป็น analog ทำงานได้หลายค่า
      2.)Port ที่เป็น Digital จะมีการรับค่า-ส่งค่าเป็น Digital ทำงานแค่2ค่าคือ 0และ1
โดยส่วนมากแล้ว Port Analogจะเป็น Port ที่ใช้รับค่ามาจาก Sonsorต่างๆ เพราะการอ่านค่าจาก Sensor นั้นจำเป็นจะต้องได้รับค่าที่หลายค่าที่ต่อเนื่องกันได้ และนำค่าที่วัดได้มาประมวลผลและแสดง output ผ่านPortที่เป็น Daigital เพราะจะทำการบังคับLEDหรืออุปกรณ์ๆว่าให้ทำงานหรือไม่ทำงาน แต่ในบางครั้งการรับค่าอาจใช้เป็นแบบDaigitalหรือการแสดง output เป็นแบบAnalogก็ได้
     อย่าลืมใช้หลักการต่อไฟและกราวเพื่อให้การทำงานของอุปกรณ์ครบวงจรด้วยนะครับ!!


ขั้นต่อไปเป็นการเขียน Code ขั้นพื้นฐานที่ใช้รับค่าจาก Analog Potและแสดงผลที่ Digital Port
Code ขั้นพื้นฐานในการรับค่าจากฆำืหนพแล้วแสดงผล
อธิบายcode
int sensorPin = A0 // หมายถึงการประกาศให้ตัวแปร sensorPin คือ port Analog 0
int ledPin = 13 // หมายถึงการประกาศให้ตัวแปร ledPin คือ port Digital 13

void Setup(){
pinMode(ledPin, OUTPUT);  // เป็นการประกาศให้port13 แสดงผลเป็น Output Port
}

void loop(){
sensorValue = analogRead(sensorPin);  //รับค่าเข้าตัวแปร sensorValue แบบanalog จาก port A0
digitalWrite(ledPin, HIGH); //แสดงผลแบบ Digital ออกจาก Port 13
}

ในงานโปรเจ็คกลุ่มตัวผมเองได้ทำการรับผิดชอบในส่วนของการเขียนโค้ด เสาและการส่งข้อมูลผ่าน wireless network ซึ่งผมจะอธิบายการต่อวงจรและการแก้โค้ดของทั้ง 2 งานนะครับ

1.วิธีการทำเสา+piezo sensor (วัดแรงสั่นสะเทือน)
      - วิธีต่อวงจรรับ sensor piezo เข้ากับ Arduino คือขา+ของpiezoจะต่อลงกราวและขา-ต่อเข้าport Analogของarduino
Piezo with Arduino
         - วิธีเขียนโค้ดเป็นการ import Library ที่ชื่อว่า Adafruit_NeoPixel.h มาลงในโปรแกรมก่อนแล้วทำการ include ก่อนเขียนโปรแกรม โดย Library Adafruit_NeoPixel.h นี้ใช้ควบคุมไฟLED ws2812b ซึ่งเสานี้ใช้ LEDชนิดนี้ครับ



อธิบายโค้ด
#include <Adafruit_NeoPixel.h> //เพิ่ม Libraryที่ควบคุมไฟLED ws2812bมาลองใช้งาน
ส่วนของloop()
Sensor = analogRead(7)/4  //เป็นการรับค่าanalogมาจาก piezo sensor เก็บไว้ที่ตัว analog
colorWipe() //เป็นฟังก์ชันที่รับค่าสีที่ต้องการ และจำนวนหลอดของLEDที่ต้องการให้ติดได้
เช่นcolorWipe(strip.Color(0, 0, 255), 0,30);
//พารามิเตอร์ 3 ตัวแรกเป็นการรับสี ซึ่ง0,0,255เป็นสีโทนฟ้า และพารามีเตอร์อีก 2 ตัวคือเริ่มที่หลอด0และจบที่หลอด 30
      colorWipe(strip.Color(0, 100, 200), 31,60);
//พารามิเตอร์ 3 ตัวแรกเป็นการรับสี ซึ่ง0,100,200เป็นสีโทนฟ้าอ่อน และพารามีเตอร์อีก 2 ตัวคือเริ่มที่หลอด31และจบที่หลอด 60



2.วิธีใช้การติดต่อสื่อสารผ่านทางไกล
  2.1)การติดต่อสื่อสารผ่านทางไกลที่เราได้ทดลองใช้คือ xbee และทำการติดต่อระหว่าง2ตัวโดยใช้
 X-CTUซึ่งไม่สำเร็จเพราะว่าไม่สามารถทำให้การส่งข้อมูลระหว่าง2ตัว สำเร็จได้
การตืดต่อXbeeโดยใช้ X-CTU

2.2สร้างWireless networkโดยใช้ NRF24l01 โดยรายละเอียดของการต่อวงจรคือ


ชื่อของขาต่างๆในNRF
การต่อNRFเข้ากับ Arduinoแต่ละรุ่น


โดยในขั้นทดลองเป็นการส่งสัญญาญระหว่าง Arduino กับArduino


arduino - arduino
วิธีการเขียนโค้ด

ตัวส่งสัญญาณ

อธิบายโค้ด
- ทำการimport library nRF24L01.h มาลงในโปรแกรม
- การ initial ค่าในตอนแรกจะทำการ include "nRF24L01.h"
- RF24 radio(9,53) // คือการเซ็ตset port9ให้เชื่อมต่อกับ port CE และset port53เข้ากับ portCSNของ NRF
- uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0x7365727631LL }//0xF0F0F0F0E1LLคือหมายเลขแอดเดรสของตัวส่งสัญญาณ และ 0x7365727631LL คือหมายเลขแอดเดรสของตัวรับสัญญาณ




-กำหนดค่า Dataที่ต้องการส่ง
ตัวรับข้อมูล


อธิบายโค้ด
- การ initial ค่าในตอนแรกจะทำการ include "nRF24L01.h"
- RF24 radio(9,53) // คือการเซ็ตset port9ให้เชื่อมต่อกับ port CE และset port53เข้ากับ portCSNของ NRF
- uint64_t pipes[6] = { 0x7365727631LL, 0xF0F0F0F0E1LL, 0xF0F0F0F0E2LL, 0xF0F0F0F0E3LL, 0xF0F0F0F0E4LL, 0xF0F0F0F0E5LL }//คือการประกาศแอดเดรสของตัวรับและตัวส่งที่สามารถรับได้ทั้งหมด


โดยจะเป็นการสื่อสารระหว่าง Arduino -Arduino เป็นเพียงการทดลองใช้ซึ่งจริงๆแล้วจะต้องเป็นการสื่อสารระหว่างArduino - LilyPad แบบ 1-many ซึ่งจะทำการแก้ที่การต่อวงจรของLilyPadเท่านั้นซึ่งเป็นไปตามรูปด้านล่างนี้

port ที่ใช้เชื่อมต่อกับ NRF

ซึ่งหลักการที่จะทำให้ตัวส่งเพียง 1 ตัวส่งไปยัง LilyPadหลายๆตัวพร้อมๆกันนั้นคือการประกาศให้ LilyPadทุกตัวมี Adressเดียวกันหมด จะมีปัญหาที่ว่าบางครั้งจะมีการ Loss ของการส่งข้อมูลบ้างเพราะเหมือนตัวส่งจะสลับการทำงานทีละตัว แต่ยังอยู่ในขั้นที่พอรับได้

โดยcode ของตัวรับสัญญาณนี้จะทำการรับค่าเหมือนๆกันทั้งหมด3ตัวเพียงแต่จะเขียนโค้ดเพิ่มในการดักเพื่อให้รู้ว่าต้องการส่งข้อมูลให้ตัวไหนเพื่อจะเป็นการควบคุมการติดของLEDถูกจุด
การเขียนโปรแกรมดักเพื่อให้รู้ว่าเป็นของLilyPadตัวไหน
การส่งข้อมูลแบบ 1-many
เมื่อการทำการสื่อสารสำเร็จแล้วขั้นต่อไปคือการทำ User Interfaceเพื่อใช้ในการควบคุมจากระยะไกลได้ซึ่งเราใช้ภาษา Processing ในการทำงานครับ



ขั้นตอนในการทำงานของProcessingคือ
1.ทำการเชื่อมต่อเข้ากับบอร์ด Arduino
2.สร้างUser Interface
3.กำหนดการการกดUser Interfaceส่งค่าที่แตกต่างกันเข้าไปยังArduinoโดยตรงเพื่อให้Arduinoสามารถรับค่าได้ขณะที่โปรแกรมรันอยู่ซึ่งจะทำให้สามารถควบคุม LEDตามจุดต่างๆสลับไปมาได้


ตัวอย่างโค้ดProcessing(1)

ตัวอย่างโค้ดProcessing(2)

Interfaceในเบื้องต้น

3.)การออกแบบวงจรและทำแผ่น PCB เพื่อความสมบูรณ์ของชิ้นงาน
จากในการทดลองต่างๆเราจะใช้สายไฟมีจิ้มใน โฟโต้บอร์ด แต่การที่จะนำไปใช้งานจริงได้นั้นชิ้นงานต้องมีการต้องการความแข็งแรง คงทนและสะดวกซึ่งเราจำเป็นจะต้องออกแบบวงจรเพื่อทำแผ่นPCB
โดยการออกแบบสามารถทำได้โดยใช้โปรแกรม Proteus หรือ Eagleครับ
การออกแบบวงจรLilyPad จากEagle


การออกแบบวงจร ควบคุมไฟจาก Proteus

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






วันอาทิตย์ที่ 11 พฤษภาคม พ.ศ. 2557

Start Project with โรงละครช้าง

Start Project with โรงละครช้าง

หลังจากที่ตกลงและรับงานมาจากคุณ พิเชษฐ กลั่นชื่น โดยสรุปแล้วมีงานคร่าวๆคือ 1.) การทำชุดทั้งหมด 4 ชุด (เสื้อและกางเกง) โดยแต่ละชุดจะมีไฟ LEDแบบต่างๆปะปนกันซึ่งไฟแต่ละดวงจะมีการติดดับไม่เหมือนกันโดยผ่านการบังคับจาก sensorต่างๆ ซี่งเหมือนกับว่าชุดนี้เป็นชุดที่สามารถ interactive กับผู้สวมใส่ได้
2.) เสาของนักเต้น ต้องการให้มีไฟ LED ติดเพื่อแสดงอารมณ์ของนักเต้น โดยหากนักเต้นต้องการแสดงอารมณ์ออกมา ไฟLEDที่ติดอยู่กับเสาช่วยนักเต้นให้สื่อสารได้มีพลังมากยิ่งขึ้น โดยที่เสานี้จะทำการติด sensor และ LED ทำให้เมื่อนักเต้นทำการตบเสาหรือแสดงกับเสาแล้วมีการสั่นสะเทือนจะทำให้ไฟLEDติดโดยจะมีระดับของสีที่แตกต่างกัน สำหรับการสั่นสะเทือนในแต่ละระดับ 
3.)ทำถุงใส่น้ำที่สามารถสื่ออารมณ์ได้โดยใช้ LED เป็นตัวสื่อสารเรื่องราว ความรู้สึกอีกทางหนึ่งโดยสีของ LED นั้นจะเปลี่ยนแปลงเมื่อเรื่องราวเปลี่ยนไปและนักเต้นต้องการสื่ออารมณ์ต่างๆที่เปลี่ยนแปลงออกมาทาง LED
ชุดของนักเต้น

ถุงน้ำที่นักเต้นใช้สื่ออารมณ์(1)

ถุงน้ำที่นักเต้นใช้สื่ออารมณ์(2)

ถุงน้ำที่นักเต้นใช้สื่ออารมณ์(3)




*ส่วนตัวผมเองคิดว่าโปรเจ็คนี้เป็นโปรเจ็คที่ท้าทายและน่าทำ แต่ยังติดอยู่ที่ว่าเวลาในการทำและปริมาณของงานสัมพันธ์ยังไม่สัมพันธ์กันเพราะงานทั้งหมดนี้ถือว่าเยอะเลยทีเดียว และถึงการใช้งานจริงเป็นการเต้นที่ต้องใช้ท่าทางต่างๆอย่างหนักหน่วง ซึ่งผมคิดว่าเรื่องนี้ต้องเป็นการบ้านที่พวกเราทุกคนต้องช่วยกันออกแบบช่วยกันคิด ว่างานของเราจะออกมาเป็นอย่างไร เมื่อโปรเจ็คเสร็จแล้วนักเต้นจะใช้งานได้จริงโดยไม่พังขณะใช้งาน(แอบหวั่น) เพราะอุปกรณ์ที่เราเคยเรียนเคยใช้กันมาไม่ได้ถูกออกแบบมาให้รับการเคลื่อนไหวได้เยอะขนาดนี้มาก่อน
09/05/2557
     ในขั้นแรกของการทำโปรเจ็คนี้คือการแบ่งหน้าที่โดยเป็นการสอบถามจากพี่เบสซึ่งหน้าที่หลักๆจะแบ่งเป็น 2 ฝ่ายคือ hardware และ software ซึ่งในวันที่พี่เบสเปิดให้ลงชื่อ ตัวผมเองได้ลงชื่อว่าสนใจทำด้าน hardware ลงไป แต่เมื่อได้เริ่มงานวันแรกผมได้เปลี่ยนไปลงชื่อทำงานด้าน software แทนเพราะคนทำ softwareน้อยมากแต่ในขณะที่คนลงชื่อทำ hardwareเยอะมากจนเหมือนจะต้องแย่งงานกันทำ ฮ่าๆ
    ในวันเริ่มงานวันแรกนี้มีคนในคลาส Interactive มาทำงานเยอะมาก ซึ่งในส่วนของ softwareนั้นจะทำในห้อง Esic lab เป็นห้อง Labของภาคที่ใช้ทำงานด้าน Hardware และ software ซึ่งตัวผมเองก็ต้องทำการรื้อฟื้นความรู้ในการเขียนโค้ด arduino เป็นอย่างมากเพราะเกือบจำไม่ได้ว่าต้องเขียนโค้ดอย่างไร ซึ่งวิธีใช้งานและเขียนโค้ดลงarduinoนี้ผมจะพูดถึงในบล็อกถัดๆไปครับผม
   (โหลดโปรแกรมarduinoจากwww.arduino.cc) 


      ซึ่งในขั้นตอนเริ่มก็เจอกับปัญหาเลยคือ พอเขียนโค้ดลง arduino แล้วทำการ upload ลง arduino  จะไม่ผ่านซึ่งผมคิดว่าน่าจะเป็นเพราะ arduino upload ผ่านเครื่อง MAC Bookไม่ได้ ทำให้เสียเวลาไปหลายชั่วโมงเพราะไม่รู้ว่าต้องทำอย่างไร สุดท้ายพี่เบสก็ได้ลง driverให้ ทำให้สามารถ upload ได้ตามปกติ
ซึ่งในเวลานั้นผมก็ได้ทำการทดลอง upload โปรแกรมเล็กๆน้อยๆจาก example ใน library เพื่อลองทดสอบการเขียนโปรแกรมพื้นฐานเพราะจำไม่ค่อยได้ ซึ่งยังไม่ได้ลงมือทำโปรแกรมไฟ LED ของโปรเจ็คแต่อย่างใด ซึ่งในตอนนั้นก็มีพี่ปี 4 ที่พอเขียนโค้ด arduino เป็นก็ได้เขียนโค้ดได้บ้างโดยวันแรกนี้สามารถสั่งให้ไฟLEDกระพริบได้บ้างซึ่ง ประเภทของLED ที่ใช้ในโปรเจ็คนี้มีอยู่หลายชนิดเช่น RGB Strip,LED Strip ต่างๆ และไฟ EL Wire เป็นต้น ซึ่งข้อมูล และวิธีใช้ LED แต่ละประเภทผมจะพูดถึงในบล็อกถัดไปอีกเช่นกันครับ
   
LED Strip(1)

LED Strip(2)

LED Strip(3)

 EL Wire(4)
Hardware Part

Software Part

Software Part
     *หลังจากจบวันนี้ไปทำให้ผมเห็นความสำคัญถึงการแบ่งงานที่ดีอย่างเป็นระบบ ซึ่งจะทำให้งานกินแรงกันน้อยลงและกระบวนการทำงานจะเป็นระบบระเบียบมากยิ่งขึ้นซึ่งอาจส่งผลให้งานเสร็จได้ไว ซึ่งในตอนนี้ผมยังคิดว่าการแบ่งงานของโปรเจ็คนี้ยังไม่ดีเท่าที่ควร เพราะบางคนทำงานเยอะ บางคนยังไม่มีหน้าที่อะไรเพียงแต่ทำงานเล็กๆน้อยๆเท่านั้นเพราะเห็นว่าเป็นงานส่วนรวม


12/05/2557

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

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

   
ฝ่ายเย็บชุด
รูปอะไรน้าที่แขนเสื้อ อิอิ



ลองต่อไฟดู


ใกล้เสร็จทั้งชุดแล้ว


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



14/05/2557
 
    หลังจากสอบไฟนอล Software Engineer เสร็จในช่วงครึ่งเช้าแล้ว เมื่อพักกินข้าวแล้วในช่วงบ่ายๆพวกผมได้รวมตัวกันไปทำ Interactiveกันต่อ ในวันนี้งานหลักๆคือการทำ Hardware เพราะงานเขียนโค้ดส่วนนึงที่บังคับไฟ LED ที่ติดกับชุด พี่ดาวปี4 เขียนไปได้พอสมควร วันนี้พวกผมจึงมาซ่อมชุดและเย็บชุดกัน
   อย่างแรกที่พวกผมทำก็คือการเทสไฟ LED ทุกเส้นของชุดกันเลยครับ ผลที่ได้ออกมาคือบางเส้นก็ติด บางเส้นก็ไม่ติดและบางเส้นก็อไม่ติดบางดวง ทำให้เราต้องทำการซ่อมโดยเส้นที่บัดกรีไม่ดีต้องแกะออกแล้วบัดกรีใหม่แล้วใช้กาวร้อนอัดให้แน่นเพราะว่าในบางครั้ง ตรงที่บัดกรีถ้ามีการขยับบ่อยๆจะทำให้ไฟดับบ้างติดบ้างจนสุดท้ายแล้วอาจจะขาดอีกได้ แต่หากเมื่อทำการเทสแล้วปรากฏว่า LED Strip ไม่ติดทั้งเส้นเลยแสดงว่าตัว control ตัวแรกๆเสีย อาจเป็นเพราะการใช้ความร้อนในการบัดกรีนานเกินไป ซึ่งพี่นุ๊กบอกว่าตัวcontrol ของ LEDนั้นเล็กมากจึ่งรับความร้อนในการบัดกรีได้แค่นิดเดียว หากตอนบัดกรีแช่หัวแร้งนานเกินไปจะทำให้ไฟ LED ตัวนั้นเสีย แล้วจะส่งผลกระทบให้ดวงถัดๆไปไม่ติดทั้งหมด วิธีแก้ที่เราคิดตอนแรกคือจะเปลี่ยน LED ทั้งเส้นเลยเพราะไม่รู้ว่า LED นั้นเสียแค่ที่ดวงแรกเพราะเมื่อเทสไฟแล้วไม่ติดทั้งเส้น แต่พอได้รู้ว่า LED เมตรละ 600บาททำให้เราต้องคิดกันหนักเลยครับจนสุดท้ายค้นพบว่าเสียแค่ดวงแรกดวงเดียวจึงทำการตัดดวงแรกทิ้งแล้วน้ำดวงใหม่มาติดแทนเป็นอันใช้งานต่อได้ครับ
     กว่าเราจะเทส Hardwareทั้งหมดเสร็จก็ใช้เวลาไปหลายชั่วโมงเพราะในวันนี้คนมาน้อยครับ เพราะพึ่งสอบเสร็จ แต่ก็ไม่เป็นไรครับ พวกผมอยากให้งานนั้นเสร็จให้ไวที่สุดเพราะงานยังเหลืออีกเยอะมากๆ จึงคิดว่าใครว่างตอนไหนก็มาทำจะทำให้งานเสร็จไวขึ้น
    หลังจากเราเทสรอยเชื่อบัดกรีและจุดเชื่อมต่างๆเรียบร้อยแล้วก็อัดกาวร้อนทับทุกทางเชื่อมเพื่อพยายามให้ตรงรอยเชื่อมมีการขยับน้อยที่สุดเพราะหากขยับแล้วคงต้องมีการซ่อมกันทุกวันแน่ๆ
ขมักเขม่น

ซ่อมชุด!!

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

15/05/2557

     เมื่องาน Hardware เสร็จไปได้บางส่วนแล้วการเขียนcodeก็ต้องพยายามตามให้ทัน โดยในวันนี้เป็นวันที่เริ่มมีการเขียนโปรแกรมควบคุมไฟกันอย่างจริงจัง ในขั้นแรกของการเขียน code การเป็นการนำ example ใน Library ต่างๆมาลองใช้กับไฟและลองต่อ LEDกับ Arduino แล้วทำการ uploadโปรแกรมเพื่อลองการแสดงผลต่างๆ ซึ่งการเขียน code และการต่อ LED (ผมจะอธิบาย codeและการต่อLEDในบล็อกถัดๆไปเพื่อเป็นการสอนใช้สำหรับผู้ที่สนใจนะครับ )เมื่อการทดลองควบคุมไฟ LED ในแบบต่างๆขั้นพื้นฐานได้แล้วก็ทำการเขียน codeเพื่อควบคุมให้ได้ตามที่ต้องการเช่นให้ไฟติดสีอะไรหรือ กระพริบยังไงเป็นต้นซึ่งในขั้นตอนนี้ไม่มีปัญหาอะไรเพราะ เป็นการควบคุมพื้นฐานที่มี Libraryให้เรียกใช้อยู่แล้ว
    ในวันนี้การเขียน Code ที่ควบคุมชุดในขั้นทดลองก็ได้สำเร็จแล้วแต่ในขั้นต่อๆไปอาจมีอุปสรรคต่างๆทำให้อาจต้องทำการแก้ไข codeต่อไป และนอกจากการเขียนcodeแล้วในวันนี้ก็ยังมีการทำชุดเพิ่มเติมอีก(ปรับปรุงชุด) และการใช้ รวมถึงมีการเพิ่มอุปกรณ์ในการต่อไฟLEDเช่น ไฟLEDบางตัวต้องใช้ไฟกระแสตรงทำใช้ต้องมีตัวช่วยในการแปลงค่ากระแสไฟฟ้าเช่น Inverter

Software + Hardware

LED and Inverter





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




16/05/2557
         ก่อนอื่นต้องพูดถึงการ ฺBack up การควบคุมชุด หากเกิดเหตุสุดวิสัยในตอนที่นักเต้นกำลังเต้นอยู่แล้วชุดหรือ Sensorต่างๆไม่ทำงานทำให้ไฟ LEDที่ใช้สื้ออารมณ์นั้นไม่แสดงออกมาหรือแสดงออกมาผิดเพี้ยนทำให้ต้องทำการควบคุมที่นอกเหนือจากการ Ineractive จาก Sensor ต่างๆซึ่งที่เราคิดกันไว้จะมีการ Backup อีก2 ชั้คือ 1.) ทำปุ่มติดตามตัวนักเต้นแล้วให้ทำการกดด้วยตัวนักแสดงเองหากsensorไม่ทำงาน และ2.) การควบคุมชุดจากระยะไกลโดยใช้คนคอยกดควบคุมจากหน้าจอ computer
         ในวันนี้เป็นการเริ่มทำการ backupตามข้อที่2.) ก็คือการควบคุมชุดจากระยะไกลโดยใช้คนคอยกดควบคุมจากหน้าจอ computer โดยอุปกรณืที่พวกเรานึกถึงเป็นอันดับแรกคือ xbeeครับ
        เนื่องจากเมื่อวานพี่เบสเป็นคนเริ่มนำ xbee มาเริ่มลองใช้งานแต่ติดอุปสรรคที่ไม่สามารถทำใช้ xbee ตัวผมเองจึงได้บอกให้คนอื่นๆที่อาจจะเคยใช้มาช่วยทำผ่าน facebook และวันนี้ก็มีคนที่ทำส่วน softwareคือกลุ่มของพี่บอส พี่อาย และกลุ่มพวกผมมาช่วยกันทำครับ โดยโปรแกรมที่เราใช้ติดต่อระหว่าง xbee ที่เราใช้คือ โปรแกรม X-CTU ซึ่งก็พบปัญหามากมายเช่น ส่งค่าจาก xbee ไม่ได้,computer ไม่เจอport ของ xbee หรือ คิดว่า xbeeเสียและไปทำการยืมจากห้อง  i-neng บ้าง แต่สุดท้ายก็ยังใช้ไม่ได้อยู่ดี ผมจึงหันไปทำโปรแกรมcontrol เสาแทนโดยที่พี่บาสกับพี่เบสยังวุ่นอยู่กับการใช้งาน xbee


Xbee

X-CTU


     หลังจากที่ผมกับอาร์มและเพื่อนๆอีก2-3คนหันมาทำเสาวัดแรงสั่นสะเทือนจากการตบของนักเต้นและแสดงผลเป็นสีของไฟเป็นหลายๆระดับเพื่อแสดงอารมณ์ โดยตัวไฟ LEDนี้มีชื่อว่าws2812b ซึ่งไฟของ LEDนี้จะติดเมื่อได้รับสัญญาณสั่นสะเทือนจาก Piezo (เซ็นเซอร์วัดแรงสั่นสะเทือน)
   โดยcodeหลักเราของเราจะใช้ libraryที่ชื่อว่าAdafruitแล้วมาทำการปรับเปลี่ยน ซึ่งผมจะอธิบายการใช้library นี้และการต่อวงจร piezoเพื่อรับค่าเข้า Arduinoใน บล็อคถัดไปครับผม
ws2812b


Piezo (วัดแรงสั่นสะเทือน)

กำหนดค่าสีที่ต้องการ




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

      *จากในตอนแรกที่ผมคิดว่างานนี้อาจมีโอกาสการผิดพลาดเกิดขึ้นในตอนแสดงได้มากเนื่องจากนักเต้นมีการขยับตัวที่รุนเร็ว ทางกลุ่มโปรเจ็คจึงมีการคิดวิธีป้องกันการผิดพลาดไว้ถึง 2 ชั้น คือ 1.) ทำปุ่มติดตามตัวนักเต้นแล้วให้ทำการกดด้วยตัวนักแสดงเองหากsensorไม่ทำงาน และ2.) การควบคุมชุดจากระยะไกลโดยใช้คนคอยกดควบคุมจากหน้าจอ computer ซึ่งการป้องกันความผิดพลาดนี้เป็นส่วนที่ทำให้โปรเจ็คของเรามีความน่าเชื่อถือและมีโอกาสสำเร็จมากยิ่งขึ้นโดยจะต้องออกแบบให้นักเต้นและผู้เกี่ยวข้องใช้งานอุปกรณ์ได้ง่ายโดยอาศัยหลักการพื้นฐานของ Usability  แต่อย่างไรก็ดี การทำการ backup นี้ก็เป็นการเพิ่มงานชิ้นใหญ่ขึ้นอีกชิ้นนึงเช่นกัน ทำให้ต้องทำการแบ่งเวลาและต้องได้รับการใส่ใจจากทุกๆคนมากยิ่งขึ้นครับ

19/05/2557
     วันสุดท้ายของการสอบไฟนอล ในตารางครับ ผ่านไปด้วยดีเนื่องจากเป็นวิชาเจนครับ แต่ถึงการสอบหมดไปแล้วก็ยังไม่หมดห่วงเพราะงานยังเหลืออีกเต็มเลยครับ โดยเฉพาะงานวิชา Interactive ที่มีทั้งโปรเจ็คและ ไดเอรี่ ซึ่งเป็นงานใหญ่ของผมเลยทีเดียว แต่นอกจากนั้นก็ยังมีงานวิชา OS และ วิชา seminar อีก เริ่มหวั่นๆละครับ มีเวลาแค่ไม่กี่วัน แต่ก็ต้องสู้ต่อไปละครับ ฮ่าๆ
     หลังจากสอบเสร็จในช่วงเช้า ก็ขอไปอู้เอาแรงก่อนครับ และกลับมาทำ Interactive ในช่วงเย็นๆ เมื่อมาถึงแล้วก็ทำการแก้ไขไฟ LED ให้สวยๆขึ้นครับเพราะได้ข่าวมาว่าอาจารย์พิเชษฐ กลั่นชื่น จะมาดูงานและคุยเกี่ยวกับงานต่างๆ 
     โดยเมื่ออาจารย์พิเชษฐ กลั่นชื่น และคนในทีมมาถึงก็ได้คุยกับอาจารย์จูนในเรื่อง cost ต่างๆและยังพูดคุยถึงด้านสโคปของงานที่อาจมีการเพิ่มลดเพื่อให้ทันกับเวลาที่ต้องใช้แสดงจริงเพราะเท่าที่ผ่านมาการออกแบบต่างๆนั้นยังไม่ลงตัวสักเท่าไรทั้งในด้านการสั่งซื้อของและการออกแบบชุดเพราะดีไซเนอนั้นไม่มีความรู้ด้านอิเล็กทรอนิก ซึ่งก็เป็นเรื่องปกติครับเพราะหากให้วิศวกรไปออกแบบชุดมั่งก็คงไม่รู้เรื่องเช่นเดียวกัน ซึ่งอาจารย์พิเชษฐ บอกว่าต้องเก็บไปเป็นการบ้านพอสมควรแต่ก็ไม่น่ามีปัญหาเพราะมีนักออกแบบจึงไม่น่าเป็นห่วงสักเท่าไร โดยในวันนี้ยังลองให้นักเต้นลองใส่ชุดจริงๆครั้งแรกอีกด้วย ซึ่งการใส่และถอดก็อย่างที่คิดไว้ครับ ยากพอสมควร และหลังจากนั้นทำให้ต้องพิจารณาและขบคิดกันในประเด็นของการออกแบบชุดให้สามารถใส่และถอดได้ง่ายขึ้นจะทำได้อย่างไร การใช้แบตเตอรี่ควรใช้แบบไหนเพราะมีข้อดีข้อเสียแตกต่างกัน และสุดท้ายงานนี้อาจารย์พิเชษฐ ได้ทำการลดสโคปลงโดยอีก3 ชุดที่เหลืออาจเป็นเพียงชุดที่ติดไฟเท่านั้น และมี1ชุดที่เป็นชุดที่ Interac ได้ นั่นคือชุดที่เรากำลังทำอยู่ตอนนี้ ซึ่งคงจะช่วยลดสโคปงานลงได้บ้าง
    ก่อนที่ทีมงานนักเต้นจะกลับอาจารย์พิเชษฐ ได้มาทดลองเสาที่พวกผมทำขึ้นด้วย และบอกว่าสวย (แอบดีใจ555) ซึ่งอาจารย์จูนบอกว่าความจริงอยากมีการสอนการเขียน codeนี้ให้กับ artist เพราะหากartist เป็นคนออกแบบเองได้จะทำให้งานออกมาสวยกว่าให้วิศวกรที่ไม่ค่อยมีหัวศิลปะออกแบบเอง
ทดลองการใช้เสาให้นักเต้นดู


นักเต้นได้เห็นชุดครั้งแรก


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




20/05/2557
       พอเริ่มทำงานไปเรื่อยๆผมรู้สึกว่าคนที่มาทำงานมีแต่พวกเดิมๆ มีไม่กี่คนครับ ผมเลยเริ่มหวั่นใจเพราะงานเหลือเยอะมาก ความจริงอยากให้ทุกๆมาช่วยกันเพื่อที่งานจะได้เสร็จไวๆและได้ไม่เหนื่อยเกินไปเพราะคนทำน้อย
     ในวันนี้งานหลักๆของพวกผมคือการทำเสาต่อเพราะพอทำไปทำมาเสาก็ไม่ติดอีกแล้ว ไม่รู้ว่าเป็นเพราะอะไรจึงต้องเอาออกมาแก้ใหม่โดยการเทสโปรแกรมและเทสการต่อไฟ โดยสุดท้ายก็สรุปได้ว่าไฟดวงแรกๆพังอีกแล้วครับ ซึ่งสาเหตุไม่ได้มาจากการบัดกรีแบบครั้งที่แล้ว เพราะใช้ๆอยู่ก็พังไปเอง(พังเฉยเลย!!) วิธีแก้ของเราก็คือตัดดวงที่เสียออกเลยครับ ซึ่งก็ทำให้กลับมาใช้ได้อีกครั้ง
    อีกงานนึงที่เราพึ่งเจอในตอนเย็นๆคือไฟที่สายสะพายไม่ติด โดยวิธีแก้ของเราก็เหมือนเดิมครับ ก็คือการตัดออก แต่ที่ยากกว่ามากๆก็คือต้องเอาดวงใหม่ติดกลับไปแทนที่เดิมด้วย โดยการติดกลับนี้บัดกรียากมากเพราะไฟ2ดวงไม่มีทองแดงเชื่อมกันอยู่ ทำให้บัดกรีแล้วไม่ติดกันสักที และหากบัดกรีนานเกินไปไฟ LED ดวงนั้นก็จะเสียอีก และข้อสำคัญในสายสะพายนี้ เสียหลายดวงครับ!! ทำให้กว่าจะเสร็จงานวันนี้ก็ดึกอีกตามเคย แต่ว่ามีพี่ๆพาไปเลี้ยงส้มตำก็หายเหนื่อยแล้วครับ
   ในขณะเดียวกับที่พวกผมซ่อมเสาก็มีเพื่อนๆอีกกลุ่มนึงที่คอยวัดกระแสที่ต้องใช้เลี้ยงไฟLEDตามจุดต่างๆ เพื่อนำไปคำนวณการใช้แบต
ซ่อมไฟ LED ที่เสีย

กระแสไฟที่ต้องใช้ในจุดต่างๆ




*บางครั้งในการทำงานถึงแม้ว่าจะเหนื่อย แต่หากได้รับกำลังใจที่ดีจากคนรอบข้าง ทั้งเพื่อน พี่ หรืออาจารย์ และเป็นสังคมที่ดีก็อาจให้คนที่ทำงานมีกำลังใจที่อยากทำงานต่อไป และไม่เบื่องานที่ทำครับ

21/05/2557
    หลังจาก 2-3วันก่อนคุณพิเชษฐ ได้มาคุยและตกลงสโคปงานใหม่ ในวันนี้พี่โบจึงมาออกแบบชุด โดยนำพร้อบต่างๆมาติดและลองเปิดไฟไปพร้อมๆกัน และในงานส่วนของพวกผมก็เป็นงานเดิมๆครับคือแก้ไฟต่างๆ แก้โปรแกรมเสาให้ดีขึ้น และการบัดกรีอุปกรณ์ต่างๆให้แข็งแรง
พี่โบออกแบบชุด


สวยงาม

*จากในห้องเรียนที่อาจารย์เคยสอนว่า Engineer จะใช้ความคิดไปบนพื้นฐานของ Function base แต่หากรวมกับความคิดสร้างสรรค์บนพื้นฐานของActivity จาก Artist จะทำให้ได้งานออกมามีคุณค่าและน่าสนใจมากยิ่งขึ้น ผมจึงฉุกคิดขึ้นแล้วรู้สึกตื่นเต้นอยากเห็นผลที่ออกมาสุดท้ายว่าจะออกมาเป็นอย่างไรในการรวมตัวกันของ ความคิดสร้างสร้างของนักเต้น+การทำงานโดยอาศัยเทคนิคต่างๆของวิศวกรฝึกหัดอย่างพวกเรา ><"

22/05/2557
    หลังจากที่ได้เริ่มทำการติดต่อสื่อสารระหว่าง xbee ในวันที่ 16 พี่เบสก็ได้หาวิธีใช้วิธีติดต่อกันของ xbee โดยเปลี่ยนxbeeหลายๆตัวเพื่อลอง และในบางครั้งการติดต่อกันนั้นสำเร็จ แต่ก็ต้องมาจบด้วยการส่งข้อมูลไม่ได้ซึ่งเมื่อมาถึงวันนี้ทำให้ เราคิดที่จะเปลี่ยนวิธีการส่งข้อมูลระยะไกลจาก xbee เป็นตัวอื่นบ้าง
   NRF24l01 เป็นอุปกรณ์ตัวแรกเมื่อพี่อินดี้แนะนำ เพราะว่าเค้าใช้ในโปรเจ็คจบ จึงพอใช้เป็นอยู่บ้าง โดยเจ้าตัวNRF24l01  เป็นตัวส่งสัญญาณเป็น Wireless network ทำการส่งข้อมูลแบบserial โดยระยะการส่งขึ้นอยู่กับสถานที่ว่ามีสิ่งกีดขวางเยอะขนาดไหน ซึ่งหากยิ่งมีสิ่งกีดขวางเยอะระยะก็จะสั้นลงไป แต่ถ้าเป็นที่โล่งแจ่งเลยจะส่งข้อมูลได้ประมาณ 200 ฟุตครับ
     หลังจากที่คุยกันเสร็จเรียบร้อยแล้ว พี่อินดี้ก็ไปเอาอุปกรณ์ที่มีมาลองต่อโดยมียูกับพี่ดาวที่มาเรียนรู้กับพี่อินดี้ ในเริ่มแรกเราจะส่งข้อมูลจาก Arduino ไปยัง Arduino และส่งแบบ 1-1 ก่อนครับ โดยหากของจริงจะต้องเป็น Arduino ไปยัง Lily pad แบบ1-manyครับ ซึ่งวิธีการใช้การติดต่อแบบ  Wireless networkนี้ ก็ไม่ยุ่งยากเท่าที่คิดครับ เพราะส่วนใหญ่จะนำ  Libraly มาแก้ค่าต่างๆเอา โดยในวันนี้ก็ถือว่าประสบความสำเร็จไปขั้นนึงในการส่งข้อมูลจากตัวส่งไปยังตัวรับได้ครับ(วิธีการเขียน Codeและวิธีการต่อวงจรNRF24l01 จะอธิบายเพิ่มในบล็อคถัดไปนะครับ)โดยจะมีงานที่เหลือคือการต้องปรับเปลี่ยน code ให้สามารถส่งข้อมูลไปยัง Lily pad แบบ1-many ให้ได้และ การออกแบบ User Interface เพื่อให้สามารถควบคุม LED จากระยะไกลได้ในกรณีฉุกเฉิน
NRF24l01


Arduino to Arduino


*ในการเจอสิ่งใหม่ๆที่อาจดูว่ายากเกินไปสำหรับเรา ถ้าไม่ได้ลองทำดูก่อนมัวแต่พูดว่ายากก็ไม่สามารถบอกได้ว่าจริงๆแล้วมันยากเกินไปจริงๆสำหรับเรามั้ย

23/05/2557
    วันนี้เป็นอีกหนึ่งวันที่มีกลุ่มคนบางส่วนไปทำงานที่โรงละครช้าง ซึ่งชุดอีก3ชุดจะได้ในวันนี้โดยจะให้นักเต้นลองใส้ชุดจริงและทำการแบ่งชุดมาเย็บไฟLEDซึ่งงานเย้บชุดนี้เป็นงานใหญ่พอสมควรเพราะชุดหนึ่งชุดต้องใช้เวลาในการเย็บมากทีเดียว
เท่มาก

พี่ๆนักเต้น ลองชุด
    ในส่วนของผมวันนี้ก็เป็นการทำต่อจากเมื่อวานครับ(ไม่ได้ไปโรงละครช้าง)ซึ่งมาถึงก็เจอกับพี่บอสที่กำลังต่อวงจรที่ผมทำไว้เมื่อวานแต่ยังไม่สำเร็จ ซึ่งผมจึงสอนวิธีต่อและวิธีดูให้จึงส่งข้อมูลได้ครับ หลังจากนั้นผมและพี่บอสจึงลองหาวิธีส่งข้อมูลให้กับ LilyPad ซึ่งก็ใช้เวลาอยู่พอสมควร เพราะในเว็บที่เราใช้อ้างอิงเมื่อวานนี้ไม่ได้แสดงการต่อวงจรกับ LilyPadครับ จนสุดท้ายลองผิดลองถูกจนสามารถส่งข้อมูลได้ ก็ใช้เวลาไปนานพอสมควรครับโดยการเขียนโปรแกรมนั้นเหมือนเกับการส่งข้อมูลจากArduino ไปยัง Arduinoเลยครับ เพียงแค่เปลี่ยน portนิดหน่อยแต่มีข้อควรระวังอยู่1ข้อคือ เจ้าตัวNRF24l01ใช้ไฟ3.3V ไม่ใช่5V ซึ่ง LilyPadจะจ่ายไฟ5Vเท่านั้นจึงจะต้องรับไฟจากที่อื่น(รายละเอียดการต่อวงจรNRF24l01 เข้ากับ Lilypadผมจะอธิบายในบล็อคถัดไปนะครับ ) ซึ่งเมื่อทดลองส่งข้อมูลแล้วผลก็ได้ตามที่คาดหวังไว้ ซึ่งตอนนี้งานของ Wireless network ก็จะเหลือการส่งแบบ 1-many และการทำ User Interface
port ต่างๆของ LilyPadที่ใช้เชื่อมต่อกับ NRF24l01

วงจร LilyPadที่สามารถรับข้อมูลจากตัวส่งจากระยะไกลได้

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

ตารางแบ่งงานและ Deadline
หลังจากที่ประชุมเสร็จแล้วในช่วงหัวค่ำผมและพี่บอสก็วางแผนที่จะทำ User Interface กันต่อโดยมีพี่เบสแนะนำให้ใช้ภาษา  Processing ในการเขียนเพราะมันสามารถเข้าส่งข้อมูลเป็น Serialเข้าถึง Arduino ได้โดยตรง เราจึงลองใช้และหาวิธีใช้Processing ดูครับ เพราะเราทั้ง 2คนก็ไม่เคยใช้เสียด้วย โดยเราจะให้มันส่งค่าเข้า Arduino จากการกดปุ่มผ่าน InterfaceของProcessing ให้ได้ ซึ่งเราก็ได้หาโค้ดตามเว็บต่างๆมาลองใส่และแก้ๆดูจนพอเข้าใจการทำงานจึงทำการแก้ไขเล็กๆน้อยๆและให้พี่เบสสอนบ้าง จนได้Interface ที่สามารถใช้งานได้ออกมา แต่ตอนแรกหน้าตาของInterfaceนั้นเน่ามากเพราะเป็นแค่ 4เหลี่ยมกับวงกลมเท่านั้น พี่เบสจึงเอาไปทำต่อจนได้ User Interface ที่สวยงามออกมาเพราะผมไม่ถนัดการตกแต่งภากสักเท่าไรครับ
User Interface คร่าวๆ
ซึงหลังจากนี้คงมีการเปลี่ยน User Interface อีกนิดหน่อยเพราะว่าการควบคุมไฟLEDจะมีให้เลือกเฉพาะคนได้และทำการเลือกทุกคนพร้อมกันเพื่อความรวดเร็วในการควบคุม

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


24/05/2557
       การเริ่มต้นทำงานในวันนี้ต่อยอดมาจากการออกแบบแผ่นปริ้นขอวงจร LilyPad ซึ่งมาในวันนี้พี่อินดี้ได้สอนผมใช้โปรแกรม Eagle ในการออกแบบลายวงจรเพื่อให้การใช้งานมีความคงทนมากยิ่งขึ้น ซึ่งการออกแบบนี้ก็ไม่ค่อยมีความซับซ้อนมากเท่าไร เพียงแค่ต้องใช้ความใจเย็นสักหน่อยในการทำให้เป็นระเบียบ ซึ่งการออกแบบนั้นก็เสร็จได้ด้วยดี และรอการลองนำไปกัดแผ่นปริ้นจริงๆ

ยังไม่สวยเท่าไร

การเชื่อมต่อกันขา Portต่างๆ

ลองเทียบดู -_-
     จากตอนแรกที่คิดว่าการกัดปริ้นคงไม่มีปัญหาอะไรมากเพราะทำเป็นอยู่แล้วและมีพี่อินดี้มาสอนเทคนิคใหม่ๆเพิ่มทำให้การกัดปริ้นเป็นไปได้ง่ายขึ้น เช่นในระหว่างการรีดลายปริ้นให้ติดกับทองแดงให้นำน้ำมาฉีดเพื่อดูลายว่าติดหรือยัง ก็ทำให้ลดปัญหาของการรีดที่บางครั้งลายปนิ้นติดไม่ครบได้(ความรู้ใหม่)
     แต่อย่างไรก็ตามงานที่คิดว่าง่ายสุดท้ายก็ไม่เสร็จภายในวันนี้เพราะว่า ที่ผมได้ออกแบบไปแล้ว มันไม่สามาตรครับ พี่นุ๊กจึงให้แก้งานจึงต้องออกแบบใหม่ เพราะอยากให้ลายที่ออกมาสวยกว่านี้ ซึ่งก็ต้องทำใหม่ทั้งๆที่กัเปริ้นเสร็จเรียบร้อยแล้ว ซึ่งพอออกแบบใหม่เสร็จแล้วแล้วทำการกัดปริ้นออกมาได้ตามขนาดที่ตั้งไว้ แต่พอมาเจาะรูพบว่า ทองแดงร่อนออกมาหมดเลย อาจเป็นเพราะเพื่อนพึ่งเคยทำครั้งแรกแล้วเอาหัวแร้งไปจ่อนานเกินไป ครั้งสุดท้ายพี่อินดี้จึงลงมือทำเองเพื่อไม่อยากให้งานผิดพลาดและมีต้นแบบไปใช้ออกแบบต่อไป ซึ่งก็ทำได้จนเสร็จออกมา กัดปริ้น+เจารูเรียบร้อย เหลือนำมาติดกับLilyPadเพียงอย่างเดียว แต่ก็ต้องพบข้อผิดพลาดอีกครั้งเพราะก่อนปริ้นลายออกมาไม่ได้ปรับขนาดให้พอดีทำให้ต้องเสียงานไปอีก1ชิ้นอย่าง งงๆครับ T-T
    แต่อย่างน้อยก่อนกลับบ้านผมและพี่บาสได้ลองปรับเปลี่ยน codeของ Wireless network ให้สามารถส่งข้อมูลแบบ 1-manyได้ละครับ ซึ่ง Codeนั้นต้องทำการเปลี่ยนเยอะอยู่พอสมควร ส่วนมากพี่บาสจะเป็นคนแก้ codeครับเพราะผมอ่านcodeตามไม่ค่อยทัน (ไม่ค่อยถนัดเขียนโปรแกรมครับ หากเขียนต้องใช้เวลาในการทำความเข้าใจ) ผมเป็นก็เป็นลูกมือคอยกดและต่อวงจรเพื่อส่งข้อมูลต่างๆอยู่ตลอดครับ ซึ่งระหว่างการแก้นั้นก็มีปัญหาที่ Mac Book จะชอบจอฟ้าครับซึ่งเกิดหลายครั้งด้วยกัน สุดท้ายจึงพบว่าขา Groundเสียบไม่แน่นอาจทำให้ไฟลัดวงจร และจากนั้นไม่นานก็แก้โปรแกรมจนเสร็จครับ
จอฟ้า (เซ็งเป็ดเลยครับ เจอไปหลายรอบ)
ส่งข้อมูลแบบ 1 to many




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


25/05/2557
   และแล้วแผ่น PCB อันแรกก็เสร็จจากที่เมื่อวานพังไปหลายอันเย้
แผ่น PCB ของ LilyPad
 หลังจากได้แผ่นPCBต้นแบบของLilyPad ก็ได้ออกแบบวงจรของLilyPadที่ควบคุม LED ผ่านทรานซิสเตอร์ ULN2003AN โดยเหตุผลที่ต้องใช้ทรานซิสเตอร์ แทนการต่อตรงเข้าLEDคือ
     1.LilyPad มีไฟเลี้ยงแค่ 5 โวลล์แต่ LEDบางแบบใช้มากกว่านั้น จึงทำให้มี โวลล์ไม่เพียงพอ
     2.หากใช้ต่อไฟผ่านLilyPad มากกว่า5โวลล์ LilyPadจะพัง
โดยการออกแบบนั้นจะใช้หลักการการส่งข้อมูลเข้า ทรานซิสเตอร์ เพื่อบังคับกระแสให้ออกไปเลี้ยงไฟ LED โดยทรานซิสเตอร์แต่ละขาจะให้ไฟเลี้ยงได้ 500 mA ซึ่งหากLED ใช้ไฟเลี้ยงเกินกว่า 500mA จะต้องใช้ไฟจากทรานสิสเตอร์หลายๆขารวมกัน
ลิสรายการ LEDทั้งหมดที่จะนำมาออกแบบ

ออกแบบคร่าวๆ

ทรานซิสเตอร์ULN2003AN 


ออกแบบวงจรจากโปรแกรม Proteus
*อธิบายการออกแบบ
จะเห็นได้ว่าขาที่เข้าทรานซิสเตอตัวแรกเป็นขาเดียวกันทั้งหมด ซึ่งขากที่เข้ามานั้นเป็นการส่งข้อมูลควบคุมมาจากLilyPad ซึ่งต่อเข้าทรานซิสเตอทั้งหมด6ขาทำให่สามารถมีไฟเลี้ยงได้ถึง 500mA*6 = 3Aเลยครับ ซึ่งการต่อวงจรในอันอื่นๆก็ใช้หลักการเดียวกันครับ


26/05/2557
เนื่องจากในวันพรุ่งนี้มีนัดส่งโปรเจ็คในวิชาโอเอสทำให้วันนี้ผมเข้าไปช่วยงานแค่ไม่นาน ส่วนใหญ่งานในวันนี้เป็นการเขียนโค้ดของ Wireless Network ต่อจากของเดิมโดยเนื่องจากการset addressของตัวรับทั้ง3ตัวให้เหมือนกันเพื่อรับข้อมูลพร้อมๆกันจากตัวส่ง ทำให้ต้องเขียนโปรแกรมดักในตัวรับว่าความจริงแล้วข้อมูลที่ส่งมาเป็นของตัวไหนและแยกข้อมูลออกเพื่อไปควบคุมLEDตามจุดต่างๆ
การดักข้อมูลที่รับเข้า ให้ทำงานในส่วนที่อย่างถูกต้อง


28/05/2557

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

ออกแบบวงจร






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


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