06 มิถุนายน 2559

อาร์ดุยโน : ไฟแอล อี ดี กระพริบ ตอนสอง

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

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


LED ตัวที่สองนี้ อาโนดถูกต่อเข้ากับช่องหมายเลข 5 (digital) ส่วนคาโทดต่อเข้ากับตัวต้านทาน 220 โอห์ม ส่วนของด้านหนึ่งของตัวต้านทานต่อเข้ากับกราวด์ซึ่งเราใช้สายโยงมายังต้วต้านทานตัวแรกได้เลยครับ แล้วมันจะมาลงกราวด์ที่บอร์ดด้วยกัน

ตรวจดูความเรียบร้อยอีกครั้ง ก่อนเสียบสาย USB เข้ากับคอมพิวเตอร์ แล้วดำเนินการ ดังนี้

  1. เปิด IDE
  2. เปิดไฟล์โปรแกรมที่เราได้แก้ไขไว้ เมื่อตอนที่แล้วขึ้นมา
  3. พิมพ์แก้ไขโปรแกรม ดังต่อไปนี้
  4. คลิกปุ่ม  เพื่อคอมไฟล์ ตรวจสอบ และอัพโหลด พร้อมกันเลยทีเดียว

คราวนี้ก็จะสังเกตเห็นหลอด LED ทั้งสองหลอดผลัดกันติด ผลัดกันดับช่วงเวลาละ 1 วินาที

อธิบายการทำงาน

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

ทีนี้มาดูส่วนส่วนแรก ซึ่งเป็นการประกาศตัวแปร ที่มีประเภทของตัวแปรเป็นจำนวนเต็ม โดยใช้คีย์เวิร์ดว่า int แล้วตามด้วยชื่อตัวแปร led1, led2 สำหรับเก็บหมายเลขพอร์ทดิจิทัล 10 และ 5 ตามลำดับ ส่วน delayTime1, delayTime2 สำหรับเก็บตัวเลขค่าหน่วงเวลาของการเกิดแสงสว่างของหลอดที่ 1 และ 2 ตามลำดับ

ต่อจากนั้นก็เป็นส่วน void setup()  ซึ่งเป็นการตั้งค่าให้พอร์ทดิจิทัล ทำหน้าที่เป็นเอาท์พุทส่งค่าไปยังภายนอก 
   pinMode(led1, OUTPUT) ;  //เป็นการเซ็ตพอร์ท led1 เป็นเอาท์พุด
   pinMode(led2, OUTPUT);  //เป็นการเซ็ตพอร์ท led2 เป็นเอาท์พุต

ส่วนที่สาม void loop() เป็นส่วนของการวนรอบการทำงานไม่สิ้นสุด ซึ่งก็จะเหมือนกับตัวอย่างในตอนที่แล้ว เพียงแต่ในตอนนี้ จะมีการควบคุมหลอด 2 หลอด โดยให้หลอดที่หนึ่ง led1 สว่างก่อน จากนั้นหน่วงเวลาตามค่าที่ตั้งไว้ที่ delayTime1 แล้วให้หลอดที่สอง led2 สว่าง จากนั้นก็หน่วงเวลาไว้อีกตามค่า delayTime2 จากนั้นก็ปิด แล้ววนรอบกลับไปทำซ้ำใหม่ ..... เรื่อยๆ ไม่รู้จบ

หากเราต้องการเปลี่ยนจังหวะการหน่วงเวลา ก็ทำได้โดยการแก้ไขค่าของตัวแปร delayTime1 กับ delayTime2 เราก็จะได้รูปแบบการกระพริบที่แปลกๆ ออกไปอย่างง่ายดาย 

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

แล้วพบกันใหม่ครับ


อาร์ดุยโน : ไฟแอล อี ดี กระพริบ ตอนแรก

ครูจะพาเริ่มเรียนรู้อิเล็กทรอนิกส์กับอาร์ดุยโน จะเริ่มไปพร้อมๆ กับการเขียนโปรแกรม วันนี้เราจะมาเริ่มรู้จักกับ Digital Output โดยใช้บทเรียนง่ายๆ ที่เรียกว่า ไฟแอล อี ดี กระพริบ

สำหรับใครที่ยังไม่รู้จัก LED ลองเข้าไป "รู้จักและเล่นกับ หลอด LED"  ก่อนนะครับ

จุดประสงค์ของครูในการเขียนบทความนี้ ก็เพื่อให้ผู้เริ่มเรียนรู้อาร์ดุยโน ได้ในสิ่งเหล่านี้
  1. รู้จักการใช้ Arduino IDE เพื่อเขียนโปรแกรมและอัพโหลดโปรแกรมลงอาร์ดุยโน
  2. ฝึกการใช้ Digital Output แบบง่ายๆ โดยใช้ LED ในการแสดงผล
อุปกรณ์ที่จำเป็นต้องมี
  1. บอร์ดอาร์ดุยโน (จะของแท้ ของเทียม ของเทียบก็ได้ สำหรับครูใช้ของเทียบ)
  2. หลอด LED 2 หลอด สีอะไรก็ได้
  3. ตัวต้านทาน 220 โอห์ม 2 ตัว
  4. แผ่นเบรดบอร์ด พร้อมสายไฟสำหรับเสียบเบรดบอร์ด
  5. คอมพิวเตอร์ที่ติดตั้ง Arduino Software (IDE) แล้ว (ใครยังไม่มี ไปดาวน์โหลดฟรี  ได้ที่ https://www.arduino.cc/en/Main/Software )

    *** IDE คำนี้ครูจะใช้บ่อยมาก ความหมายก็คือ ชุดโปรแกรมมาตรฐานของอาร์ดุยโนที่เผยแพร่ ผ่านเว็บไซต์ arduino.cc 

เริ่มต้นการทดลอง

ทดลองใช้หลอด LED  กับตัวต้านทาน 220 โอห์มอย่างละอันก่อน ต่อสายไฟเข้ากับช่องเสียบ ดังแสดงในภาพ


ภาพที่แสดงนี้ครูแคปเจอร์มาจากหน้าจอของโปรแกรม Fritzing ครับ ในภาพครูต่อสายไฟเส้นหนึ่งจาก ช่อง 10 ของ Digital เข้าไปยังอาโนดของหลอด LED ซึ่งเสียบอยู่บนบอร์ดทดลอง จากนั้นนำความต้านทาน 220 โอห์ม (ถ้าไม่มีก็เอาใกล้เคียงก็พอได้ครับ) แล้วอีกด้านหนึ่งของตัวต้านทาน ต่อเข้ากราวด์ (GND) บนบอร์ดอาร์ดุยโน



ตรวจเช็คความเรียบร้อยของสายไฟ (ดูภาพที่ครูขยายนะครับ) จากนั้นเสียบสาย USB เข้าที่บอร์ดอาร์ดุยโนและคอมพิวเตอร์ แล้วเปิดคอมพิวเตอร์ขึ้นมา (หรือจะเปิดคอมพิวเตอร์รอไว้ก่อน แล้วเสียบสาย USB เข้าไป ก็ได้)

ถึงเวลา IDE

  1. เปิด IDE ของอาร์ดุยโนขึ้นมา
  2. คลิก File > Examples > 01. Basics > Blink

  3. เมื่อไฟล์ Blink ได้เปิดขึ้นมาแล้ว เลื่อนแถบเลื่อนด้านขวาจนสุด เราจะเห็นข้อความ คล้ายๆ กันกับครูที่นำมาแสดง ดังภาพด้านล่าง



    เลื่อนเคอร์เซอร์ไปเปลี่ยนเลข 13 ให้เป็นเลข 10 ให้หมด ซึ่งมีอยู่ 3 ที่(ทำตามไปก่อน ครูจะอธิบายเหตุผลทีหลัง)
  4. คลิก File > Save as ... แล้วเลือกโฟลเดอร์ที่จะเก็บไฟล์ต้นฉบับโปรแกรมของเราไว้ (อาจสร้างใหม่เลยก็ได้) แล้วตั้งชื่อไฟล์ที่เราจำได้ง่าย ของครูตั้งว่า test_blink แล้วก็คลิก Save
  5. คลิกปุ่มเครื่องหมายถูก เพื่อตรวจสอบและคอมไพล์โปรแกรม ถ้าทำตามครู มันควรจะขึ้นข้อความที่แถบดำๆ ด้านล่าง ดังแสดงให้ภาพ



    หากไม่ขึ้นดังภาพ ปิดโปรแกรมแล้วย้อนกลับไปทำใหม่
  6. เมื่อเสร็จขั้นตอน 5 แล้ว ทีนี้ก็คลิกที่ปุ่มลูกศรขวา  เพื่ออัพโหลดโค้ดที่คอมไฟล์แล้ว (Object Code) ไปยังส่วนความจำแฟลชของอาร์ดุยโน
  7. สังเกตการหลอด LED ซึ่งตอนนี้มันจะติด 1 วินาที ดับ 1 วินาที สลับกันไปอย่างไม่มีสิ้นสุด หรือจนกว่าจะถอดสาย USB 

ทำความเข้าใจกับโครงสร้างของภาษาซีใน IDE

Comments

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

  • อยู่ภายในเครื่องหมาย /* ........... คอมเมนต์ ........... */   และ
  • อยู่หลังจากเครื่องหมาย // .......... คอมเมนต์

















ตัวอย่างการคอมเมนต์ในการเขียนโปรแกรม ซึ่งครูนำมาจากโค้ดตัวอย่างใน IDE

Function

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

เมื่ออ้างถึงฟังก์ชั่น จะต้องมีเครื่องหมายวงเล็บเปิด-ปิด ด้วยเสมอ  จากตัวอย่างที่ครูนำมาแสดง จะมี 2 ฟังก์ชั่นคือ setup() และ loop()  ซึ่งสองฟังก์ชั่นนี้เป็นฟังก์ชั่นหลักที่จะต้องมีอยู่ด้วยเสมอในการเขียนโปรแกรมบน IDE

Statements

Statements หรือ ข้อความคำสั่ง (ที่ครูจะใช้ในการเรียกเป็นภาษาไทย) ก็คือ ข้อความที่เราพิมพ์ เพื่อสั่งให้อาร์ดุยโนทำงาน ซึ่งแต่ละข้อความคำสั่งจะต้องจบด้วยเครื่องหมายเซมิโคลอน (;) จากตัวอย่างที่ครูนำมาให้เล่น จะมีดังนี้
   pinMode(10, OUTPUT);   // หมายถึงการตั้งค่าให้ช่องที่ 10 ของ Digital IO ใช้ส่งข้อมูลออก
   digitalWrite(10, HIGH);   // หมายถึง การตั้งค่าสถานะช่องที่ 10 ให้อยู่ในสถานะเป็น 1 ซึ่งจะมีความต่างศักย์ไฟฟ้า เท่ากับ +5 โวลท์
   delay(1000); // หมายถึง ให้มีการหน่วงเวลาไว้ 1000 มิลลิวินาที
   digitalWrite(10, LOW);   // หมายถึง การตั้งค่าสถานะช่องที่ 10 ให้อยู่ในสถานะเป็น 0 ซึ่งจะมีความต่างศักย์ไฟฟ้า เท่ากับ 0 โวลท์

ข้อความคำสั่งอยู่จะอยู่ภายในฟังก์ชั่นหลักของ IDE โดยมีเครื่องหมายวงเล็บปีกกา {......} ล้อมเอาไว้


Variables 

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

  • จำนวนเต็ม (integer) เป็นตัวแปรที่สามารถเก็บจำนวนเต็มตั้งแต่ -32,768 ถึง 32,767 ในการสร้างตัวแปรชนิดจำนวนเต็มนี้จะใช้หน่วยความจำ 2 ไบต์ (16 บิต) 
  • อักขระ (charactor)  เป็นตัวแปรที่ใช้เก็บตัวอักขระหรือตัวอักษรต่างๆ ได้ 1 ตัว ตัวแปรนี้จะใช้หน่วยความจำ 1 ไบต์ (8 บิต) รหัสที่ใช้เก็บเป็นรหัสแอสกี้ ซึ่งเราสามารถดูรหัสได้ที่ https://en.wikipedia.org/wiki/ASCII
  • บูลีน (Boolean) ใช้เก็บ "จริง" กับ "เท็จ" ใช้หน่วยความจำ 1 ไบต์ (8 บิต)
ครูแนะนำตัวแปรง่ายๆ เบื้องต้นเพียงแค่นี้ก่อนนะครับ เพราะเรายังไม่ได้ใช้งาน แม้ในต้วอย่างที่ครูยกมาในครั้งนี้ แต่เราจะลองใช้ตัวแปรในตอนต่อไป ซึ่งครูจะพาให้รู้จักตัวแปร และเริ่มใช้งานกัน

สรุปการเรียนรู้ในครั้งนี้

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

ครั้งต่อไป เราจะเริ่มเล่นกับตัวแปร และใช้ LED เป็น 2 ตัว อย่าลืมติดตามนะครับ



04 มิถุนายน 2559

อิเล็กทรอนิกส์ : รู้จักและเล่นกับ "หลอด LED"

LED ภาษาไทย เราเรียกทับศัพท์กันเลยว่า แอลอีดี (ออกเสียงเป็น แอว-อี-ดี) มาจากคำเต็มของภาษาอังกฤษว่า Light Emitting Diode แปลว่า ไดโอดเปล่งแสง

ปัจจุบันนี้มองไปทางไหน เราก็จะเห็น LED ทั้งสิ้น ไฟเขียว ไฟแดง บริเวณสี่แยก ไฟท้ายรถยนต์ ไฟหรี่รถยนต์ จอแสดงภาพยนตร์โฆษณาตามสี่แยก ไฟแสดงสถานะการเปิดปิดของโทรทัศน์ วิทยุ เครื่องเสียง ดีวีดี คอมพิวเตอร์ ฯลฯ


แอลอีดี เป็นสิ่งประดิษฐ์ที่ทำมาจากสารกึ่งตัวนำ โดยส่วนใหญ่จะใช้ธาตุแกลเลียม(Ga : Gallium) สารหนูหรืออาเซนิก (As : Arsenic) หรือไม่ก็ฟอสฟอรัส (P : Phosphurus)  ผสมกัน

ตามประวัติศาสตร์บุคคลที่นับได้ว่าเป็นคนแรกที่สังเกตปรากฏการณ์ในลักษณะของการเปล่งแสงแบบที่เรียกว่า electroluminescene  จากไดโอด คือ Captain Henry Joseph Round   ส่วน Vladimirovich Losev ก็สังเกตเห็นการเปล่งแสงออกจากรอยต่อของคาร์โบรันดัม (Carborundum) และบุคคลที่ได้พัฒนาแอลอีดีในย่านแสงที่เรามองเห็นได้ขึ้นมาเป็นคนแรกคือ Nick Holonyak, Jr. หลังจากนั้นเป็นต้นมาก็ได้มีการคิดค้นและประดิษฐ์ LED จากสีแดง สีเหลือง สีเขียว และอื่นๆ ออกมาอย่างมากมายอย่างที่เห็นก้นในปัจจุบัน

การทำงาน

ไดโอดเปล่งแสงหรือ แอลอีดีนี้เป็นสารกึ่งนำที่เกิดจากการนำสารกึ่งตัวชนิด P ก้บชนิด N มาเชื่อมต่อกัน  และเมื่อได้รับการต่อขั้วไฟฟ้าแบบฟอร์เวิร์ดไบอัส(ขั้วบวกต่อเข้าอาโนด ขั้วลบต่อเข้าคาโทด) เป็นผลทำให้เกิดกระแสไฟฟ้าไหลผ่านรอยต่อดังกล่าว และมีการเปล่งแสงออกมาได้ (แทนที่จะเป็นความร้อนเหมือนในไดโอดธรรมดา)

ลองดูแอนิเมชั่น ที่ครูลิงค์มาจากยูทูป ซึ่งจะทำให้เราเข้าใจหลักการทำงานได้ง่ายขึ้น


สัญลักษณ์ที่ใช้ในวงจร


สัญลักษณ์ที่ใช้ในวงจรของไดโอดจะเหมือนหัวลูกศร(ดังภาพ) เหมือนกับจะบอกว่ายอมให้กระแสไฟฟ้าไหลผ่านได้ทางเดียวเท่านั้น นั่นคือไปตามทิศทางของลูกศร โดยด้านที่กระแสไฟฟ้าเข้าเรียกว่า Anode หรือ อาโนด (อ่านว่า อา-โหนด) และด้านที่กระแสไฟฟ้าออกเรียกว่า Cathode หรือ คาโทด (อ่านว่า คา-โถด)

การนำไปใช้งานในวงจร

หลอด LED มีหลากหลายสี หลากหลายรูปร่าง แต่ที่ครูจะนำมาแนะนำ และสาธิตการทำงานให้เห็นในบทความตอนนี้ก็คือ LED สีแดง รุ่นธรรมดา 5 mm ดังที่เห็นในภาพ 
ครูจำไม่ได้ว่ามันมีราคากี่บาท แต่ไปหาซื้อตามร้านขายอุปกรณ์อิเล็กทรอนิกส์ทั่วไปได้ ขนาดประมาณ 5 มิลลิเมตร ความต่างศักย์คร่อมตัวมันรับได้ในระหว่าง 2 โวลท์ (บวกลบได้นิดหน่อย) กระแสไฟฟ้าไม่เกิน 20 มิลลิแอมป์ (น้อยกว่าได้แต่ไม่ควรเกิน) ความเข้มการส่องสว่าง 150-200 มิลลิแคนเดลลา (ดูจาก datasheet ของอุปกรณ์ที่เราซื้อมา)

นี่คือวงจรการใช้งาน LED

สัญลักษณ์เหล่านี้เชื่อว่า ผู้ที่เรียนวิทยาศาสตร์ ระดับมัธยมศึกษาตอนต้นขึ้นมา น่าจะรู้จักกันเป็นอย่างดี แต่ครูก็ขออธิบายให้ฟังนะครับ เริ่มจากเซลล์ไฟฟ้า 3 โวลท์(ถ่านไฟฟ้า AA 2 ก้อน) ต่อกันแบบอนุกรม ขั้วบวกต่อเข้ากับอาโนดของ LED อีกด้านหนึ่งต่อเข้ากับตัวต้านทาน 58 โอห์ม อีกด้านหนึ่งของตัวต้านทานต่อเข้ากับขั้วลบของเซลล์ไฟฟ้า ดังภาพ

ทดลอง เล่น

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

สิ่งที่ต้องมี
  1. แผ่นเบรดบอร์ดหรือบอร์ดเสียบอุปกรณ์สำหรับการทดลอง หาตัวเล็กๆ ก็ได้
  2. ลวดสายไฟ

  3. หลอด LED
  4. ตัวต้านทาน 50-100 โอห์ม
  5. รังถ่าน AA 2 ก้อน
เอามาต่อกันดังภาพ
อย่าลืมนะครับ ขายาวคือ อาโนด ต่อขั้วบวก ขาสั้น คาโทด ขั้วลบ

การคำนวณหาค่าความต้านทาน

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

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

กำหนดให้
E คือ แรงเคลื่อนไฟฟ้าที่เราจ่ายให้วงจรทั้งหมด
VLED  คือ ความต่างศักย์คร่อม LED (ดูได้จากสเปคของ LED เอง)
ILED  คือ กระแสไฟฟ้าที่เราต้องการป้อนให้แก่ LED (ดูได้จากสเปคของ LED เอง)
R คือ ค่าความต้านทานของตัวทานที่เราจะนำมาต่ออนุกรมกับวงจร
สูตรคำนวณ คือ   R = (E-VLED) / ILED

เช่น จากการทดลองเล่นในตอนต้น ครูใช้แหล่งจ่ายกำลังที่มีแรงเคลื่อนไฟฟ้า E=3 โวลท์ ใช้หลอด LED ที่มีความต่างศักย์คร่อมตัวมัน VLED= 2 โวลท์ กระแสไฟฟ้าที่ต้องการให้ผ่านตัวหลอด ILED=18 มิลลิแอมป์ ดังนั้น ค่าความต้านทานที่ต้องใช้ คือ R = (3-2)/18x10-3 =55.6 ประมาณ 56 โอห์ม แต่ความต้านทานค่ามาตรฐานคือ 58 โอห์ม จึงใช้ค่าตามตัวอย่าง แต่อย่างไรก็ตาม เราอาจหาค่าที่ใกล้เคียงมาใช้ก็พอได้เหมือนกันครับ

ดูอีกสักตัวอย่าง เช่น การใช้แหล่งจ่ายกำลัง 12 โวลต์ จ่ายให้ LED 2 ตัวที่ต่อการแบบอนุกรม
E=12 volts,  VLED2ตัว= 4 volts (เพราะเอา 2 volts มาต่ออนุกรมกัน), ILED=18 mA
ดังนั้น R = (12-4)/18x10-3 =444.4 โอห์ม ค่าความต้านทานมาตรฐานคือ 470 โอห์ม ก็นำตัวนี้มาใช้

มีคำถามอะไร ถามได้ในคอมเมนต์นะครับ

ขอบคุณที่ติดตาม


01 มิถุนายน 2559

อาร์ดุยโน : ของแท้ ของเทียม ของที่เข้ากันได้

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

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

อาร์ดุยโนของแท้ 

อาร์ดุยโนเป็นโครงการที่ริเริ่มในประเทศอิตาลี ดังนั้นบอร์ดของอาร์ดุยโนของแท้จึงผลิตที่อิตาลี โดยทีมงานของอาร์ดุยโน ซึ่งดูข้อมูลได้ที่เว็บไซต์ของเขาเองที่ www.arduino.cc

แต่ด้วยเหตุที่โครงการของอาร์ดุยโนตั้งแต่แรกนั้น เป็นโครงการโอเพ่นซอร์ส ทั้งฮาร์ดแวร์และซอฟท์แวร์ ดังนั้นคำว่า "ของแท้" จึงอาจใช้คำว่า "ต้นฉบับ" แทนก็ได้ เพราะว่าทีมงานของอาร์ดุยโนเมื่อออกแบบขึ้นมาแล้วแทนที่จะทำเองแต่เพียงผู้เดียว เขากลับเผยแพร่พิมพ์เขียวต้นฉบับของงานให้เป็นสาธารณะ ด้วย (GPL : General Public License) แต่ยังคงสงวนคำว่า "อาร์ดุยโน" และเครื่องหมายการค้าไว้ใช้เฉพาะตัวเองอยู่ โดยจะสังเกตคำว่า TM ตัวเล็กๆ มุมบนด้านขวา (ตอนหลังนี่มีคำว่า Genuino ขึ้นมาอีก นี่ก็ของแท้เหมือนกันแต่สำหรับขายนอกประเทศสหรัฐอเมริกา ????  วุ่นวายดีนะครับ)


เพราะฉะนั้นบอร์ดไหน ที่มีตราสัญลักษณ์เช่นนี้ ก็ถือได้ว่าเป็น "ของแท้" การหาซื้อบอร์ดประเภทนี้ ต้องซื้อกับร้านค้าที่ arduino.cc รับรองให้เป็นตัวแทนจำหน่ายได้เท่านั้น (ไม่แน่ใจว่าประเทศไทยมีหรือเปล่า) ยกเว้นการซื้อของหิ้ว หรือไม่ก็มือสอง


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

อาร์ดุยโนของเทียม (Counterfeit)

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

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

ในเว็บของอาร์ดุยโนเอง ก็ได้ให้ข้อสังเกตเกี่ยวกับ "ของแท้" กับ "ของเทียม" อยู่เหมือนกันนะครับ ซึ่งเมื่อเปรียบเทียบดูแล้ว ต้องบอกเลยว่า "ของเทียม" ทำได้เหมือน "ของแท้" มากๆ จนแทบแยกไม่ออก ลองฝึกแยกดูนะครับ จากหน้าเว็บนี้ https://www.arduino.cc/en/Products/Counterfeit

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

อาร์ดุยโนที่เข้ากันได้(กับของแท้)

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

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

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

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


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

ขอบคุณที่ติดตามนะครับ

30 พฤษภาคม 2559

อาร์ดุยโน : ซอฟท์แวร์

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

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

ซอฟท์แวร์ของอาร์ดุยโน

อาร์ดุยโนเป็นระบบคอมพิวเตอร์เล็กๆ ที่ถูกออกแบบมาเพื่อความเรียบง่ายในการนำไปใช้งาน  อาร์ดุยโนใช้ตัวประมวลผลขนาด 8 บิท ที่สัญญาณนาฬิกา 16 MHz หน่วยความจำชั่วคราว(SRAM) มีเพียง 2 KB และหน่วยความจำแฟลช 32 KB ด้วยพลังการประมวลผลขนาดนี้ หน่วยความจำเท่านี้ ย่อมไม่สามารถใส่ระบบปฏิบัติการใดๆ ได้  อาร์ดุยโนมีเพียงบูตโหลดเดอร์(Boot Loader)ชุดคำสั่งเล็กๆ ที่คอยเริ่มต้นการทำงานเท่านั้น  ต่อจากนั้นก็เป็นในส่วนชุดคำสั่งที่เราเป็นผู้เขียนเพื่อสั่งงานทันที ชุดคำสั่งในส่วนนี้ ภาษาของอาร์ดุยโน เรียกกันว่า "สเก็ตช์" (Sketch)

สเก็ตช์ เป็นชุดคำสั่งที่เขียนขึ้นมาด้วยภาษาระดับสูง ภาษาที่ว่านี้ก็คือ ภาษา C, C++ จากนั้นก็จะผ่านการคอมไพล์(Compile)กลายเป็นชุดคำสั่งที่ชิปอาร์ดุยโนเข้าใจและนำไปปฏิบ้ติงานได้ แต่การเขียนโปรแกรมนี้เราต้องทำบนคอมพิวเตอร์ตั้งโต๊ะ และโน็ตบุ้ค ดังนั้นเมื่อคอมไพล์แล้วเราต้องอัดโปรแกรมนี้(ภาษาอาร์ดุยโน เรียกว่า อัพโหลด) เข้าไปยังหน่วยความจำแฟลชของชิป แล้วมันจึงจะทำงาน

กระบวนการของซอฟท์แวร์ที่เรากล่าวมาทั้งหมดนี้ รวมอยู่ภายในสิ่งที่เราจะเรียกต่อไปว่า IDE ซึ่งมาจากคำว่า Integrated Development Environment  ซึ่งเราสามารถดาวน์โหลดได้ฟรี จากเว็บไซต์ของอาร์ดุยโนโดยตรง หรือจะคลิก ที่นี่ ซึ่งครูได้ทำลิงค์ไว้เรียบร้อยแล้ว

การติดตั้ง

ย้ำกันอีกครั้งหนึ่งว่า การพัฒนาซอฟท์แวร์(หรือการเขียนโปรแกรมนั่นเอง) สำหรับอาร์ดุยโนนั้น เราต้องทำบนเครื่องคอมพิวเตอร์ ทำบนอาร์ดุยโนโดยตรงไม่ได้ ดังนั้นเราต้องดาวน์โหลดโปรแกรมมาก่อน ตามลิงค์ที่ให้ไว้ ซึ่งเราต้องดาวน์โหลดให้ตรงกับระบบปฏิบัติการของเครื่องคอมพิวเตอร์ที่เราใช้ สำหรับครูใช้ระบบปฏิบัติการ Microsoft Windows ก็ต้องเลือก Windows Installer หรือไม่ก็ ZIP file for non-admin install  (ครูเลือกหัวข้อที่สอง)

ในส่วนของ Installer เมื่อได้มาแล้วก็ติดตั้งไปตามขั้นตอน Next Next Next เดี๋ยวก็เสร็จ ถ้าเป็น ZIP file ก็แตกไฟล์นี้ไปเก็บไว้ในโฟลเดอร์ที่เราต้องการ

ไฟล์ต่างๆ ของครูอยู่ตรงนี้


ในกรณีของครูต้องไปสร้างไอคอนเข้าโปรแกรมเองบนเดสก์ท็อป


ทดลองเข้าโปรแกรม

เวลาเข้าโปรแกรมก็ดับเบิ้ลคลิกผ่านตรงนี้เข้าไปเลยครับ


หน้าตาที่เรียบง่ายของโปรแกรม


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

ขอบคุณที่ติดตามครับ

28 พฤษภาคม 2559

เทคนิคการเรียนให้เก่งเหมือนฟายน์แมน

นักเรียนทุกคนล้วนปรารถนาจะเรียนเก่งทั้งนั้นล่ะ ยิ่งพ่อแม่ ผู้ปกครองยิ่งแล้วใหญ่ อยากให้ลูกตัวเองเรียนเก่ง(จะได้เอามาคุยกับคนข้างๆ บ้านได้)  บางคนอาจมีเทคนิค มีกลยุทธ์แพรวพราว เรียกว่างัดกันมาใช้ทุกรูปแบบ วันนี้ลองดูเทคนิคของฟายน์แมนกันบ้าง เพราะฟายน์แมนนี่ไม่ธรรมดาเลย คำแนะนำของเขาน่าจะสุดยอดไม่แพ้ผลงานของเขา

ว่าแต่ว่า "ฟายน์แมน" เป็นใคร

Richard Feynman(1918-1988)
ฟายน์แมน ในที่นี้ ก็คือ Richard Feynman  ซึ่งเป็นอัจฉริยะนักฟิสิกส์ชาวอเมริกัน ฟายน์แมนนอกจากได้รับการยกย่องทางด้านฟิสิกส์แล้ว ฟายน์แมนยังถือว่าเป็นครูฟิสิกส์ที่ยอดเยี่ยม  แนวความคิดเกี่ยวกับการเรียนการสอนวิทยาศาสตร์ของฟายน์แมนเองก็ได้รับการกล่าวถึงไม่น้อยในวงการศึกษา ซึ่งถือว่ามีคุณค่าอย่างมากต่อการพัฒนาการเรียนรู้วิทยาศาสตร์ในบ้านเรา ที่ดูจะเข็นกันยังไงก็ไม่ค่อยไหว วิธีคิดในหลายๆ เรื่องของฟายน์แมนน่าสนใจมาก วันหลังอาจมีโอกาสเล่าให้ฟัง วันนี้กล่าวถึงเฉพาะเทคนิคการเรียนรู้อย่างเดียวก่อน
“ผมเรียนรู้มาตั้งแต่เริ่มแรกแล้ว ถึงความแตกต่างระหว่าง การรู้จักชื่อ กับ การรู้บางสิ่งบางอย่างของมัน” - Richard Feynman
รู้จักฟายน์แมนแล้ว ทีนี้มารู้จักเทคนิคของฟายน์แมนจะช่วยให้เรา "เข้าใจ" "จำได้" และ "อธิบายได้" เทคนิคนี้ง่ายมาก เชื่อว่าไม่เกิน 20 นาที เราจะเข้าใจและนำไปปฏิบัติได้

เทคนิคนี้วางอยู่บนพื้นฐานความเห็นของฟายน์แมนต่อการเรียนรู้ ว่า การเรียนรู้ไม่ใช่การจำในสิ่งยากๆ แต่มันเกี่ยวกับการทำสิ่งต่างๆให้ง่ายขึ้น(ต่อการทำความเข้าใจ)

1) เลือกหัวข้อวิชาที่ต้องการเรียนเก่ง

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

2) อธิบายให้ตัวเองฟัง ประหนึ่งว่าตัวเองอายุสัก 5 ขวบ

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

3) หาจุดที่ยังไม่แจ่มชัด

ถ้าเราไม่สามารถหาคำอธิบายทฤษฎีหรือแนวคิดในรูปของภาษาของคนธรรมดาๆ ฟังแล้วเข้าใจ ให้เราหันกลับไปหาหนังสืออีก(หรือจะถามครู ก็น่าจะได้นะครับ) ทำความเข้าใจมันให้ถ่องแท้ แล้วพยายามสร้างคำอธิบายจากคำง่ายๆ ให้ได้ สิ่งนี้ล่ะมันจะทำให้เราเข้าใจอย่างแท้จริง ไม่ใช่การอ่านเพียงผ่านๆ เหมือนที่เคยทำมา

4) ใช้การอุปมาอุปมัย

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

5) ทำข้อสรุปให้เรียบง่าย 

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

ตัวอย่างข้อสรุป


ความโน้มถ่วงเป็นแรงดึงดูดที่วัตถุขนาดใหญ่กระทำต่อวัตถุขนาดเล็ก เหมือนโลกกระทำกับตัวเราไง

วรรณกรรม คือ หนังสือที่เขียนเล่าเรื่องราว ที่บอกถึงความคิดเห็น ความรู้ที่ตัวละครหลักๆ ในเรื่องนั้นแสดงออกมา

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

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

ลองเอาไปใช้ดูนะครับ ได้ผลเป็นยังไงเล่าให้ครูฟังบ้าง


27 พฤษภาคม 2559

อาร์ดุยโน : ฮาร์ดแวร์

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

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

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



อาร์ดุยโนรุ่นนี้จะใช้ตัวชิปที่ชื่อว่า ATMega328P ซึ่งในภาพอาจจะมองเห็นป้ายชื่อมันไม่ชัดนัก แต่ครูได้ลากเส้นชี้ให้เห็นแล้ว รุ่นนี้มีช่องเสียบสาย USB เพื่อเชื่อมต่อกับคอมพิวเตอร์ตั้งโต๊ะ หรือพีซีด้วย  มีช่องเสียบอะแดปเตอร์สำหรับการใช้แหล่งจ่ายไฟฟ้าแยกจาก USB (ซึ่งอะแดปเตอร์ตัวนี้เราต้องหาซื้อเอง ไม่ได้มีมาพร้อมบอร์ด)

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

เข้าใจสเปคของ ATMega328P

ลองป้อนข้อมูล ATMega328P ไปที่ช่องของกูเกิ้ล เราจะพบข้อมูลคล้ายๆ อย่างนี้ ซึ่งจะบอกค่าเฉพาะบางอย่างของมัน



นี่คือเรื่องแรกที่เราควรเรียนรู้ครับ คือ อ่านสเปคให้ออก ซึ่งครูจะแนะนำเฉพาะตัวสำคัญๆ เท่านั้นนะครับ

ในคอลัมน์ซ้ายมือ คำว่า Parameter เป็นการอ้างถึงขนาดหรือค่าต่างๆ ของหน่วยย่อยที่อยู่ภายในชิป ส่วน Value หมายถึง ตัวเลขที่บอกค่าในหน่วยย่อยนั้น

Flash (kBytes): 32 kBytes 

Flash หรือ Flash Memory หมายถึง หน่วยความจำแบบแฟลช ซึ่งเป็นหน่วยความจำชนิดหนึ่งที่สามารถเขียนและอ่านได้ ในขณะที่ไม่มีไฟฟ้าเลี้ยงวงจรมันก็สามารถเก็บข้อมูลไว้ได้ ถ้าจะว่าไปแล้วมันก็เหมือนกัน sd-card หรือแผ่นเก็บข้อมูลที่เราใช้ในโทรศัพท์มือถือรุ่นใหม่ๆ ที่เราใช้เก็บรูปภาพนั่นเอง ค่า 32 kBytes หมายถึงขนาดของความจุข้อมูลของมัน 32x1024=32,768 bytes นั่นเอง (น้อยมากๆ เลยใช่ไหมครับ เทียบไม่ได้เลยกับหน่วยเก็บข้อมูลที่มีอยู่ในโทรศัพท์มือถือเราที่เราใช้ ซึ่งเก็บได้หลายจิ๊กกะไบท์)

Pin Count : 32

หมายถึง จำนวนช่องเสียบหรือขาที่เชื่อมต่อกับอุปกรณ์รอบๆ ตัว ซึ่งมี 32 ช่อง

Max. Operating Freq. (MHz): 20  

หมายถึง ความถี่สัญญาณนาฬิกา หรือบางทีก็เรียกสั้นๆ ว่า คล็อก (clock) ค่านี้ยิ่งมีค่ามากแปลว่ามันยิ่งมีความเร็วในการประมวลผลมากตามไปด้วย ในที่นี้เราจะเห็นค่า 20 เมกะเฮิร์ตซ์ ซึ่งเป็นค่ามากที่สุดที่ชิปประมวลผลรุ่นนี้จะสามารถรับได้ ในทางปฏิบัติผู้ออกแบบเขาจะให้ใช้งานที่ 16 MHz คือ ใช้ไม่เต็มกำลังนัก เป็นไปได้ว่าผู้ออกแบบไม่ต้องการให้ชิปร้อนเร็วและมากเกินไปขณะทำงาน ซึ่งจะมีผลต่ออายุการใช้งานของตัวชิปด้วย

CPU : 8 bit-AVR

เป็นคำย่อของหน่วยประมวลผล ตัวเลข 8 bit หมายถึง จำนวนบิทหรือสายสัญญาณที่ CPU จะประมวลผล หรือจะพูดอีกอย่างหนึ่งว่า มันจะประมวลผลข้อมูลครั้งละ 8 บิทในแต่ละรอบการทำงานก็ได้ ส่วน AVR มาจากคำว่า Advanced Virtual RISC เป็นคำที่อธิบายไปแล้วอาจจะยากไปสำหรับระดับที่เรากำลังคลานเตาะแตะแบบนี้ เอาเป็นว่ามันเป็นรูปแบบของการออกแบบตัวประมวลผลแบบหนึ่งก็แล้วกัน ว่ากันว่ามันง่ายต่อการเข้าถึงและพัฒนา แล้วก็เหมาะกับมือใหม่อย่างเราๆ

เอาแค่นี้ก่อน ทีนี้ถ้าคลิกตรงคำว่า + more ก็จะเจอสเปคอีกหลายสิบบรรทัด เอาเฉพาะที่สำคัญๆ ก็แล้วกันนะครับ

SRAM (kBytes): 2

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

EEPROM (Bytes): 1024

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

คงหมดแล้วล่ะ ที่สำคัญๆ ที่เราควรรู้จัก สำหรับตัวชิป ATMega328P

สิ่งที่ควรรู้จักเพิ่มเติมเกี่ยวกับบอร์ดอาร์ดุยโนตัวนี้

CH340G

เป็นชิปที่ทำหน้าที่ในการติดต่อสื่อสารกับเครื่องคอมพิวเตอร์ผ่านพอร์ท USB ตัวนี้แหละที่ทำให้บางคนบอกว่า บอร์ดนี้เป็นอาร์ดุยโนปลอม เพราะว่าตัวบอร์ด Made in Italy นั้นจะใช้ชิป FTDI หรือ ATMega8U2 หรือ ATMega16U2 แล้วแต่รุ่นเป็นตัวติดต่อกับพอร์ท USB ของคอมพิวเตอร์  แต่ตัวที่ว่าปลอมนี้ใช้ CH340G ซึ่งทำให้ราคาถูกลงมาก แต่ถ้ามันทำงานได้เหมือนกัน ครูฟิสิกส์ว่า จะไปสนใจมันทำไม (แรงมั๊ย! ) บางคนอาจเป็นกังวลใจว่า เฮ้ย!  แล้วมันไปละเมิดลิขสิทธิ์เขาหรือเปล่า คำตอบ คือ เปล่าเลย โปรเจคต์ของ อาร์ดุยโน เป็นโอเพ่นซอร์ส ทั้งฮาร์ดแวร์/ซอฟท์แวร์ ใครจะเอาไปต่อยอดไปพัฒนาต่อก็ได้ ขอให้อยู่ในเงื่อนไขคือ ต้องเป็นโอเพ่นซอร์สต่อไป เพราะฉะนั้นนี่ไม่ใช่ของปลอมหรอกครับ ถ้าจะเรียกให้เหมาะ ครูว่าน่าจะเรียกว่า บอร์ดที่เลียนแบบอาร์ดุยโน น่าจะถูกต้องกว่า (ประเภทของบอร์ด ครูจะได้พูดถึงอีกที เพราะสับสนกันพอสมควร)

ถ้าอยากเห็นตัวชิปนี้ ก็ดูรูปข้างบน ตัวที่อยู่เหนือขึ้นไปจาก ATMega328P วางในแนวขวาง ถัดลงมาด้านล่างจากพอร์ท USB

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

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