วันศุกร์ที่ 11 กันยายน พ.ศ. 2558

ว่างๆก็ลองเขียนโค้ด php ดูดีกว่า

อ่านๆ pantip แล้วไปเจอกระทู้ถามว่า "โค้ด Factorial ภาษา php ใครสามารถทำได้บ้างง" ไหนๆก็ลองเขียนจนออกมาแล้วเก็บไว้เตือนความทรงจำว่าครั้งนึงก็เคยเขียน php


  1. <php?
  2. echo '<table style="width:100%" >
  3.              <tr align="center">
  4.                 <td>round</td>
  5.                 <td>number</td>
  6.                  <td>factorial</td>
  7.                  <td>parameter</td>
  8.                  <td align="left">display</td>
  9.               </tr>';

  10. $round;
  11. $number=6;
  12. $param = $number-1;
  13. $factorStr = '6';
  14. for($round = 1;$round<$number;$round++)
  15. {

  16.   $factorStr=$factorStr.'*'.$param;
  17.   echo '<tr align="center">
  18.                     <td>'.$round.'</td>
  19.                     <td>'.($number-$round+1).'</td>                
  20.                     <td>'.($number-$round+1).'-1</td>
  21.                     <td>'.$param.'</td>                  
  22.                     <td  align="left">Factorial is '.$factorStr.'</td>                                                              
  23.               </tr>';
  24.   $param--;
  25. }
  26. ?>



วันอาทิตย์ที่ 26 เมษายน พ.ศ. 2558

The legend of legendary hero : Prologue I - จากสถานที่ซึ่งเทพแห่งความตายอาศัยอยู่

 Prologue I - จากสถานที่ซึ่งเทพแห่งความตายอาศัยอยู่

        ในสถานที่แห่งนี้ มันเป็นเหตุการณ์ที่เกิดขึ้นบ่อยๆ......

「 นี่.... ถ้าพวกเราได้โตเป็นผู้ใหญ่โดยที่ไม่ตายไปละก็ นายจะแต่งงานกับฉันได้ไหม?」

เด็กหญิงผมบลอนที่มีใบหน้าอ่อนโยนพูดออกมาขณะที่กำลังร้องไห้
          
การขยับตัวอย่างเชื่องช้าและดวงตาที่เฉื่อยชาของเด็กชาย..... แต่เพราะอะไรบางอย่างดวงตาแห้ง

ผากและยังเต็มไปด้วยความรู้สึกว่างเปล่า เริ่มจ้องมองกลับไปที่ดวงตาอันเปียกชุ่มของเด็กหญิง

「 ถ้าพวกเราได้โตเป็นผู้ใหญ่โดยที่ไม่ตาย...... 」

นั่นมันเป็นไม่ได้หรอก

เด็กชายคิด

ไม่มีทางเป็นไปตามที่เด็กหญิงคิดหรอก

เพราะพวกเรากำลังจะตาย

ในสถานที่แห่งนี้

ในที่เลี้ยงเด็กกำพร้าแห่งนี้ ความตายกำลังใกล้เข้ามา

ความตายอยู่ทั่วไปหมด

แม้เด็กน้อยทั้งสองจะเข้าใจถึงขอบเขตนั้น ความตายก็ยังเอ่อล้นไปทั่วโลก

นั่นเป็นเหตุผลที่........     

เด็กหญิงพึมพำ

 「 ถ้าพวกเรารอดไปได้......    นายจะ...... 」  

เด็กชายไม่ตอบ

เพราะสิ่งที่เด็กหญิงพึมพำนั้นเหมือนความฝันที่ไม่มีจุดจบ ไม่มีทางเป็นจริง 

เหมือนภาพลวงตาเพียงชั่วครู่

「 ถ้าพวกเรารอดไปได้......    นายจะ...... 」  

แต่คำพูดเหล่านั้นก็ถูกขัดจังหวะ

ชายวัยกลางคนในชุดสีดำ ดึงไหล่ของเด็กหญิงแล้วฉุดไปทางตัวเขา และบอกเธอว่า


「  ถึงเวลาแล้ว การร้องไห้จบลงตรงนี้ สำหรับคนอ่อนแออย่างเธอแล้วความรู้สึกน่ะไม่จำเป็นหรอก

เธอจะตายเพราะว่าอ่อนแอ มันไม่มีอะไรมากกว่านั้นหรอก 」  

ถูกแล้ว

ไม่มีอะไรมากกว่านั้น

เธอเข้าใจดี

เด็กหญิงแสดงความหวาดกลัวออกมาในทันที

「 ......ใช่ 」

และแล้วเธอก็พยักหน้า  

เมื่อเธอมองไปที่ใบหน้าของเด็กช่าย แต่เด็กชายก็ยังไม่ยิ้มเหมือนเดิม พร้อมกับท่าทางที่เชื่องช้า และ

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

「 ........... 」

ใช่แล้ว

เด็กหญิงเข้าใจทุกอย่าง

หลังจากที่พวกเขากำลังจะตาย มันก็ไม่มีความหมายอะไรที่จะต้องสัญญาอย่างนั้น

ใบหน้าของเด็กหญิงราวกับกำลังถูกแช่แข็ง

ฉันจะไม่ยิ้มอีก

ใช่แล้ว เด็กหญิงคิด

「 พวกเราไปกันได้แล้ว 」

เมื่อชายวัยกลางคนพูด เด็กหญิงก็เริ่มเดินไป

บนเส้นทางที่ไม่มีความหมายอะไร........

ไม่มีเป้าหมาย

ไม่มีความฝัน

ไม่มีความหวัง

ตั้งแต่นี้ไปเด็กหญิงจะกลายเพียงเป็นสัตว์เลี้ยงของชายวัยกลางคน

เป็นหุ่นเชิด

และ––––

「 Oi. 」

ในทันใดนั้นเด็กชายก็เปล่งเสียงออกมา

ในลักษณะที่ยังขาดความทะเยอทะยานเหมือนเดิม

เสียงนั้นกำลังพูดกับเธอ

「 เธอก็รู้ เธอร้องไห้มากมาย อย่าพูดเหมือนว่าพวกเรากำลังจะตายสิ เธอมันดื้อด้าน แถมฉันก็ยังไม่คิดจะตายซะด้วยสิ เพราะงั้น ... 」

เด็กหญิงที่มองข้ามไหล่ไปโดย ไม่ได้คิดอะไร ทันทีที่ความรู้สึกกลับมา

น้ำตาก็เอ่อล้นออกมา

เมื่อเห็นดังนั้นเด็กชายที่กังวลใจและทำสีหน้าราวกับกำลังเผชิญปัญหา จึงยิ้มและพูดว่า


เพราะงั้นเธอก็อย่าตายล่ะ 

「 ...............เข้าใจแล้ว  

เด็กหญิงพยักให้

สัญญาวัยเด็กได้เกิดขึ้นอย่างรวดเร็ว

คำสัญญานั้นถูกสลักอย่างหนักแน่นลงไปในหัวใจของหญิงสาว......


วันเสาร์ที่ 25 เมษายน พ.ศ. 2558

Microcontroller Ep.5 : PWM with arduino

- Microcontroller Ep.5 -

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


DC motor speed vs Applied Voltage

                               ซึ่งการควบคุมความเร็วของดีซีมอเตอร์นั้นเราจะใช้เทคนิคที่เรียกว่า "พัลส์วิดท์มอดูเลชั่น" (Pulse Width Modulation) หรือที่นิยมเรียกกันทั่วไปว่า PWM ซึ่งเทคนิคนี้เราจะใช้การควบคุมความกว้างของพัลล์เพื่อใช้ในการเปลี่ยนแปลงระดับแรงดันที่ป้อนให้กับดีซีมอเตอร์




                        การสร้างพัลส์วิดท์มอดูเลชั่นด้วย Arduino นั้นจะสามารถสร้างจากพอร์ท 3 ,5 ,6 ,9 ,10 และ 11  ด้วยการใช้คำสั่ง 
int pulsePin = 9;
int duty = 127; 

analogWrite( pulsePin, duty );

     คำสั่ง
  1. int pulsePin = 9;  ใช้กำหนดขาที่จะสร้างพัลส์วิดท์มอดูเลชั่น
  2. int duty = 127;   ใช้ในการกำหนดความกว้างของพัลส์ซึ่งมีค่าตั้งแต่ 0 -255 คิดเป็น 0% ~ 100%
  3. analogWrite( pulsePin, duty ); ใช้ในการสั่งให้สร้างพัลส์วิดท์มอดูเลชั่น
การสร้างพัลส์วิดท์มอดูเลชั่นนั้นไม่จำเป็นต้องใช้คำสั่ง pinMode() ในการกำหนดโหมดของพอร์ทที่ใช้


                   






Microcontroller Ep.4 : Arduino & LED Control

- Microcontroller Ep.4 -

          การเขียนโปรแกรมบน Arduino เพื่อใช้ในการทำวงจรไฟกระพริบ หรือควบคุมหลอดแอลอีดี  ใน Arduino นั้นจะมีพอร์ทสำหรับใช้ในการควบคุมที่มีการทำงานเพียงสองสถานะคือ มีไฟเลี้ยง กับไม่มีไฟเลี้ยง ซึ่งเราจะเรียกว่า ดิจิตอล อินพุท/เอาท์พุท พอร์ท (D I/O Port ) เนื่องจากว่าในพอร์ทเดียวกันนั้นเราสามารถตั้งค่าให้เป็นอินพุทหรือเอาท์พุทก็ได้

Arduino Uno R3
            
                ในกรอบสีแดง คือ พอร์ทที่สามารถทำมาใช้เป็นดิจตอลเอาพุทได้ทั้งหมด ซึ่งเราสามารถเลือกใช้ได้โดยการเขียนโปรแกรมลงไปบน Arduino   



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


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

                   การกำหนดค่าตามตัวอย่างจะเป็นการใช้ ดิจิตอลพอร์ท 13 ในการควบคุมแอลอีดีหลอดที่ 1 จากนั้นทำการตั้งค่า พอร์ทให้เป็นเอาท์พุทด้วยคำสั่ง


pinMode(LED_1, OUTPUT);

ซึ่งเราจะเขียนไว้ในฟังก์ชั่น setup() เมื่อเรากำหนดโหมดในการทำงานของพอร์ทเสร็จสิ้นแล้วเราก็จะสั่งให้ Arduino นั้นทำการเปิดปิดหลอดแอลอีดีซ้ำๆกันไปเรื่อยๆในฟังก์ชั่น loop() โดยใช้คำสั่ง

digitalWrite(LED_1, HIGH);
delay(1000);  
digitalWrite(LED_1, LOW);
delay(1000); 

คำสั่ง 
  • digitalWrite( , ) นั้นจะใช้ในการกำหนดสถานะของพอร์ท ซึ่งเราจะใส่พอร์ทที่จะกำหนดและค่าสถานะ HIGH หรือ LOW
  • delay( ) นั้นใช้ในการหน่วงเวลาก่อนที่จะทำตามบรรทัดต่อไปโดยที่จะมีหน่วยเป็นมิลลิวินาที(millisecond) ซึ่งในตัวอย่าง จะเป็นการหน่วงเวลาไว้ 1000 มิลลิวินาที หรือ 1 วินาที
การทำงาน
  1. สั่งให้ดิจิตอลพอร์ท 13 มีค่าสถานะเป็น  HIGH ซึ่งจะทำให้หลอดแอลอีดีสว่าง
  2. หน่วงเวลาไว้ 1 วินาที
  3. สั่งให้ดิจิตอลพอร์ท 13 มีค่าสถานะเป็น  LOW ซึ่งจะทำให้หลอดแอลอีดีดับ
  4. หน่วงเวลาไว้ 1 วินาที
เมื่อทำตามคำสั่งที่เขียนไว้ทั้งหมดแล้วก็จะกลับไปเริ่มทำงานที่ คำสั่งแรกคือ digitalWrite(LED_1, HIGH); อีกครั้งเป็นอย่างนี้ไปเรื่อยๆจนกว่าจะหยุดจ่ายไฟให้ Arduino 


Microcontroller EP.3 : Arduino



                                                           - Microcontroller Ep.3 -






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


        การพัฒนาโปรแกรมบนแพลตฟอร์ม Arduino นั้นทางผู้คิดค้นได้มีซอฟต์แวร์ให้ดาวน์โหลดไปใช้ได้ฟรี (Arduino IDE) ซึ่งเมื่อเข้าไปแล้วจะพบกับหน้าดาวน์โหลดและมีตัวติดตั้งโปรแกรมสำหรับระบบปฎิบัติการต่างๆให้เลือกตามระบบปฏิบัติการที่ใช้งานอยู่



        
       เมื่อทำการติดตั้งเสร็จแล้วจะได้โปรแกรมซึ่งมีหน้าตาดังนี้