Quantcast
Channel: Mechatronics City
Viewing all 32 articles
Browse latest View live

Bandai NetTansor WiFi webcam : หุ่นยนต์เว็บแคม จากค่าย Bandai

$
0
0

Bandai NetTansor WiFi webcam

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

 

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

  

     เจ้าหุ่นยนต์ NetTansor เป็นหุ่นยนต์ประเภทเว็บแคม (Robotic Webcam) เคลื่อนที่ด้วยล้อ สามล้อ โดยมีล้อหลังเป็นตัวกำหนดทิศทางในการเคลื่อนที่ โต้ตอบการสนทนาทางไมค์โครโฟน และส่งสัญญาณผ่านเครือข่ายไร้สาย (wireless network) ตามมาตรฐาน Wi-Fi (802.11b/g) มีเซ็นเซอร์ด้านหน้า เพื่อตรวจจับวัตถุสิ่งกีดขวางด้านหน้า 3 ตัว.

 

     ด้วยรูปทรงที่กระทัดรัด แต่ความสามารถเหลือร้าย เจ้าหุ่นยนต์ Bandai NetTansor เราสามรถควบคุมเจ้าตัวหุ่นยนต์ผ่านทาง internet ก็ได้ โดยผ่านตัวโปรแกรมที่ติดตั้งลงบนเครื่อง PC ของเรา และเจ้าหุ่ยนต์ Bandai NetTansorนี้ได้รับการติดตั้งระบบการมองเห็นโดยใช้เทคโนโลยี ViRP (Visual Pattern Recognition:การมองเห็นแบบจำรู้รูปแบบ ) เป็นเทคโนโลยีการมองเห็นที่ดีที่สุดสำหรับหุ่นยนต์เลยในขณะนี้ ตัวอย่างการนำหุ่นยนต์ Bandai NetTansor ไปใช้งานที่นิยม คือเป็นหน่วยลาดตระเวนภายในบ้าน

 

     ขอเสริมเกี่ยวกับระบบ ViRP (Visual Pattern Recognition:การมองเห็นแบบจำรู้รูปแบบ ) ที่ติดตั้งอยู่บน Bandai NetTansorสักนิดนึง เป็นระบบการมองเห็นอัจฉริยะที่ติดตั้งบนตัวหุ่นยนต์ ด้วยการทำงานที่มีปฏิสัมพันธ์กับสิ่งแวดล้อมที่มันเจอ มันสามารถระบุและจดจำวัตถุที่มันเจอได้ ตัวอย่างเช่น พ่อแม่ผู้ปกครอง สามารถที่จะทำการโปรแกรมเจ้าหุ่นยนต์ให้เดินทางไปยังห้องครัว หรือแม้กระทั่งให้มันโต้ตอบสนทนากับลูกได้ เมื่อเจ้าหุ่นยนต์เคลื่อนที่ไปเจอ

 

หุ่ยนต์ Bandai NetTansor ข้อมูลทางด้านเทคนิค

- ผลิตโดยบริษัท Bandai

- ใช้พลังงานจากถ่าน alkaline

- สามารถโปรแกรมข้อมูลได้

- มีเซ็นเซอร์ตรวจจับวัตถุด้านหน้า 3 ตัว และเว็บแคม

- ขนาดความสูง 11.4 นิ้ว

- น้ำหนัก 980 กรัม

- สามารถทำงานได้นาน 2.5 ชั่วโมง ต่อการชาร์ตไฟ 1 ครั้ง

 

    องค์ประกอบ ประกอบได้ด้วย

* Video camera.
* Microphone and speaker.
* Wireless card and antenna.
* Three forward facing sensors.
* Three-wheel driving base.
* ViPR visual pattern recognition technology.

 

 

 

หุ่นยนต์ Bandai NetTansor ทำความสะอาดบ้าน

 

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


Highlightcam: webcam video service | บริการกล้องวงจรปิดออนไลน์แบบฟรีๆ (ที่ยังมีในโลก)

$
0
0

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

 

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

 

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

 

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

 

ข้อมูลการติดตั้งจากเว็บ www.manager.co.th

เริ่มต้นใช้งาน HighlightCam
       1. สมัครสมาชิกเว็บไซต์ฟรี ที่นี่ (ถ้าไม่สมัครสมาชิกจะไม่สามารถตั้งค่าให้มีการส่งอีเมลมาแจ้งเมื่อเกิดความเคลื่อนไหวที่หน้าจอเว็บแคมได้)
       2. ถ้าคุณใช้เว็บแคมที่เป็นอุปกรณ์เสริมของคอมพิวเตอร์ก็ต้องมั่นใจว่าได้ติดตั้งตัวเว็บแคมให้ใช้งานได้แล้ว เข้าไปที่เมนู Recordจะเห็นจอสีดำปรากฎขึ้นที่ด้านซ้ายมือ จากนั้นกดปุ่ม Allowเพื่ออนุญาตให้เว็บไซต์นี้เชื่อมต่อการทำงานกับเว็บแคม สักพักก็จะเห็นภาพของคุณปรากฎที่หน้าจอ ถ้าพร้อมแล้วก็กดปุ่ม Start Recordingบนจอได้ทันที

 

Highlightcam recording

 

      3. ระบบก็จะเริ่มอัดภาพและเสียงที่เกิดหน้าจอเว็บแคมให้สังเกตตรงด้านล่างของจอจะมีปุ่มให้เปิดหรือปิดการเตือนว่ามีการเคลื่อนไหวสำคัญๆ เกิดขึ้นให้คุณทางอีเมล นอกจากนี้ยังตั้งค่าความอ่อนไหวของการจับภาพ (Sensitivity)เลือกได้ตั้งแต่ระดับ 10-90%

 

Highlightcam setting

 

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

 

Highlightcam send mail 

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

 

Highlightcam div

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


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

 

เกร็ดเล็กเกร็ดน้อยเกี่ยวกับ HighlightCam
       HighlightCam เป็นเว็บไซต์น้องใหม่มาก เพิ่งเปิดตัวเมื่อเดือนกรกฎาคม ที่ผ่านมานี้ โดยได้รับเงินทุนจาก "Y Combinator" บริษัทระดมทุนสนับสนุนเว็บไซต์ใหม่ๆ ทั้งบริษัทมีพนักงานแค่ 2 คน ประกอบไปด้วยผู้ก่อตั้งคือ Michael J.T. O’Kellyนักศึกษาปริญญาเอกด้านฟิสิกส์ชีวภาพแห่งมหาวิทยาลัยเทคโนโลยี MIT มหาวิทยาลัยด้านเทคโนโลยีที่ดีที่สุดของสหรัฐอเมริกา ซึ่งได้ไอเดียการสร้างเว็บไซต์ใช้เว็บแคมเป็นกล้องวงจรปิดเพราะเขาและภรรยา อยากหาวิธีดูแลกระต่ายน้อยของพวกเขาอย่างใกล้ชิด และเล็งเห็นว่าอุตสาหกรรมอื่นๆ ก็ต้องการการดูแลความปลอดภัยด้วยวิธีง่ายๆ และไม่ต้องลงทุนมากเช่นกัน ส่วนพนักงานอีกคนคือ Mike Katsevman

แขนหุ่นยนต์ความเร็วสูง (Hi-speed Robot Hand)

$
0
0

 

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

นับว่าเป็นการปฏิวัติวงการอุตสาหกรรมหุ่นยนต์เลยก็ว่าได้ เจ้าอุปกรณ์หลักที่เป็นหัวใจของการเคลื่อนไหวที่รวดเร็วตัวนี้เป็นของ Sensory Motor  Fusion ซึ่งประกอบไปด้วย multiprocessor system , massively parallel active vision แล้วก็ multifingered hand-arm โดยในภายในเวลา 1 ms ( 0.001 วินาที)  เจ้า Sensory Motor  Fusion มีกระบวนการทำงาน 3 อย่างภายในเวลา 1 ms ได้แก่ กล้องความเร็วสูงจะทำการแปลงสภาวะสิ่งแวดล้อมในโลกแห่งความเป็นจริง เป็นโลกของกุ่นยนต์ซึ่งมันจะนำไปใช้ในการประมวลผลตัดสินใจ ต่อมา sensor หลายๆตัว จะทำการรับข้อมูลจากหลายๆแหล่งข้อมูลเข้า แล้วนำข้อมูลมาประมวลผลแบบขนาน ซึ่งจุดนี้เอง ทำให้การประมวลผลและการตัดสินใจกระทำได้รวดเร็วมาก

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

คิดนอกกรอบ “พลังงานของหุ่นยนต์” (Robot Energy Problem)

$
0
0

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

 

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

 

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

 

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

 

Energy of Robot

 

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


       ในทีมงานหุ่นยนต์สำรวจดาวอังคาร “Ambler”ที่ สถาบันหุ่นยนต์ มหาวิทยาลัยคาร์เนกี้เมลลอน ออกแบบและสร้างให้องค์การนาซ่า เพื่อนผมคนหนึ่งได้เสนอให้ใช้ Nuclear Fuel ในการป้อนพลังงานให้หุ่นยนต์หกขาขนาดใหญ่ตัวนี้ แน่นอนครับการควบคุมค่อนข้างซับซ้อนและต้องดำเนินไปอย่างอัตโนมัติ เราไม่สามารถใช้ลักษณะการควบคุมภายใต้การดูแลของมนุษย์ (Supervisory Mode) ด้วยเหตุผลสองประการ คือ ไม่เร็วและไม่ละเอียดพอ ที่ว่าไม่เร็วพอนั้นเพราะมนุษย์นั่งบังคับการอยู่ที่ศูนย์ปฏิบัติการฮุสตัน สัณญานวิ่งไปถึงดาวอังคารต้องใช้เวลาอย่างน้อย 17 วินาที ทั้งนี้ยังไม่นับการถูกรบกวนจากคลื่นแม่เหล็กไฟฟ้าอื่นๆระหว่างทางอีก เราจึงต้องออกแบบให้หุ่นยนต์สามารถควบคุมการใช้พลังงานด้วยตัวเขาเอง (Autonomous)

 

Face Robot

       วันก่อนผู้บริหาร บริษัทโคโกโร จากประเทศญี่ปุ่น ได้มาหาผมเพื่อหารือสร้างความร่วมมืองานวิจัยกับสถาบันวิทยาการหุ่นยนต์ภาค สนาม (ฟีโบ้) ด้าน Actroid: Actor(ress) + Humanoid บริษัทนี้มีความสามารถสูงในการออกแบบและสร้างหุ่นยนต์สำหรับงาน Exhibition ต่างๆ ในขณะนี้ได้รับงานกระทรวงวัฒนธรรมของเรา ไปสร้างหุ่นยนต์ ”ยักษ์วัดแจ้ง” ขึ้นที่บูธแสดงผลิตภัณฑ์และผลงานไทยที่นครเซี่ยงไฮ้ หุ่นยนต์ตัวนี้จะมาซักซ้อมที่ อิมแพคเมืองทองปลายเดือน พ.ย. นี้ ผมมีโอกาสได้ชมวิดีโอคลิบแล้ว พบว่าการเคลื่อนไหว ค่อนข้างเป็นธรรมชาติมาก ทั้งนี้คงเป็นเพราะต้นกำลังใช้ระบบลม (Pneumatics) ที่มีการดูดซับพลังงานส่วนเกิน (Damping) ผ่านการอัดตัวของอากาศแล้วกลายเป็นความร้อนไป(Dissipation) หากพิจารณาทางคณิตศาสตร์แล้ว เราจะพบว่ารากของสมการ (Eigen Value) วิ่งหนีจากแกนจินตภาพ(Imaginary Axis)เข้าสู่แกนจริง (Real Axis) ลักษณะการสั่นจึงลดลง ขอให้ท่านผู้อ่านนึกถึงระบบกันกระเทือนของรถยนต์ เวลาโช๊คเสื่อมสภาพเหลือแต่สปริง รถเราจะกระเด้งมาก เพราะสปริง (Stiffness) ดูดและคายพลังงานออกมาในรูปพลังงานจลน์เหมือนเดิม ไม่ทำการ dissipate เป็นความร้อนเช่นโช๊ค อย่างไรก็ตามเมื่อเปรียบเทียบกับการขับเคลื่อนด้วยมอเตอร์ไฟฟ้า ระบบลมนี้เสียงจะดังกว่า และความละเอียดในการเคลื่อนที่ต่ำกว่า

 

      ผมเพิ่งทราบว่า หุ่นยนต์ Repilee ของมหาวิทยาลัยโอซาก้า ที่มีหน้าตาคล้ายมนุษย์ มาก ก็เป็นผลงานออกแบบทางกลของบริษัทนี้เช่นกัน ผมและลูกศิษย์นักศึกษาปริญญาโทสองท่าน กำลังศึกษาผลรวมของอารมณ์ต่างๆที่แสดงออกมาทางหน้าตาหุ่นยนต์ผ่านระบบปัญญา ประดิษฐ์ ซึ่งต้องอาศัยความเชี่ยวชาญของบริษัทในการสร้าง Face Robot ขึ้นมา หากงานวิจัยนี้สำเร็จแล้ว ทางบริษัทจะได้ประโยชน์ด้วย นั่นคือผลิตภัณฑ์หุ่นยนต์ต้อนรับของบริษัท และหุ่นยนต์สำหรับการฝึกฝนการถอนฟัน และ การผ่าตัดอื่นๆ ก็จะมีการตอบสนองได้เสมือนจริงยิ่งขึ้น
แม้ ว่า Damping ช่วยให้การเคลื่อนที่ราบเรียบขึ้น แต่เป็นการสูญเสียพลังงานไปฟรีๆ สำหรับบางกรณี เราก็สามารถใช้ประโยชน์จากสะสมพลังงานแบบสปริง (Stiffness)ได้เช่นกัน ในสมัยที่ผมต้องลงแข่งขันหุ่นยนต์ที่ ปรมาจารย์ด้านหุ่นยนต์ของโลก: Prof. Matthew Mason จัดขึ้นเป็นประจำทุกปีที่มหาวิทยาลัยคาร์เนกี้เมลลอน โดยท่านให้หุ่นยนต์ขับเคลื่อนด้วยเคเปิลตัวเล็กมาหนึ่งตัว ชุด Tinker Toy คล้ายๆตัวเลโก้ มาหนึ่งชุด โจทย์คือผู้แข่งขันต้องโปรแกรมให้หุ่นยนต์โยนแท่งยางลบไปให้ไกลที่สุด มอเตอร์ตัวนิดเดียว แถมส่งกำลังผ่านเคเบิลอีก คำนวณทางทฏษฎีแล้วไม่มีทางที่หุ่นยนต์จะโยนยางลบไปได้เกินสองเมตรเลยครับ เพื่อนๆผมจาก School of Computer Sciences ที่เก่งก็เก่งจริง คงจะคิดซับซ้อนแบบ John Nash (ศิษย์เก่าในภาพยนตร์เรื่อง “Beautiful Mind”) สามารถโปรแกรมให้โยนไกลได้ถึง 1.8 เมตรเลยที่เดียว


       ผมไม่มีทางสู้ทาง Programming ได้เลยครับ โชคดีที่ผมนั้นมีพื้นฐานได้รับการฝึกฝนอย่างหนักจากมหาวิทยาลัยเทคโนโลยีพระ จอมเกล้า ธนบุรี ให้เข้าใจระบบทางกายภาพ (Physical System) จากการปฎิบัติจริง ระบบทางกายภาพเป็นอนาลอก ผมจึงไม่จำเป็นต้องพึ่งระบบดิจิตอล (Computer Programming) มาจัดการเรื่องพลังงานน้อยๆจากมอเตอร์ตัวเล็กนั้น ซึ่งต้องมีการสูญเสียเพิ่มขึ้นอีกแน่นอน ผมจึงตัดสินใจประกอบ Tinker Toy เป็นเสาสูงห้านิ้ว โดยให้มีความยืดหยุ่นพอประมาณ ต่อจากนั้นเขียนโปรแกรมสองสามบรรทัดสั่งให้หุ่นยนต์หยิบยางลบวางไว้บนเสา แล้วหุ่นยนต์จึงทำการง้างเสาดังกล่าว พลังงานจลน์จึงถูกแปรเกือบทั้งหมด (Integration)ไปเป็นพลังงานศักย์สะสมไว้เสา จนเต็มที่แล้วจึงปลดปล่อยพลังงานทั้งหมดออกมาที่เดียวกับการใช้ง่าม หนังสติ๊ก พลังงานทั้งหมดนี้คือผลคูณของกำลังมอเตอร์กับเวลาที่ง้างเสา มีค่ามากกว่าการทำงานจุดจุดหนึ่งของมอเตอร์หลายเท่านัก
ปรากฏ ว่า ต้องใช้คำว่า “ยิง” แทนคำว่า “โยน” เพราะแท่งยางลบไปได้ไกลถึง 46 เมตร ที่จริงถ้าไม่กระทบผนังห้องเสียก่อน น่าไปได้อีกสัก 3-4 เมตร ผมจึงฟลุ๊กได้เป็น Robot Champion ในปีนั้นครับ

โดย ASTVผู้จัดการออนไลน์ 31 ตุลาคม 2552 09:36 น.

โปรแกรม PROTEUS จำลองการทำงานของวงจรไฟฟ้า

$
0
0

Proteus : circuit simulation

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

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

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

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

อันนี้เป็น tutorial โปรแกรม Proteus ที่มีคนทำไว้ใน YouTube ครับ น่าจะพอทำให้เห็นภาพ ลองๆทำตามดูแล้วกัน

Balancing One-Wheeled Scooter ล้อเดียว ซิ่งๆ กันไปเลย

$
0
0

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

      เจ้า scooter ล้อเดียวนี้ เล่นเหมือนคล้ายๆ snow board นั่นแหละ (แต่ผมไม่เคยเล่นหรอก) อาศัยการถ่ายเทน้ำหนักของผู้เล่นไปข้างหน้าหรือไปข้างหลัง ก็จะทำให้ sensor balancing ส่งสัญญาณไปสั่งให้มอเตอร์หนุนไปข้างหน้าหรือข้างหลังเพื่อให้เกิดผลให้เจ้า scooter นี้รักษาตำแหน่งที่จะไม่ทำให้มันเอียงเลยจุดที่จะทำให้มันล้ม

      

ภาพโดยรวมของเจ้า scooter ล้อเดียวนี้ ประกอบไปด้วย

Balancing One-Wheel Scooter

แบตเตอรี่แบบแห้ง DCมอเตอร์  สายพาน และชุดควบคุมมอเตอร์ซึ่งมีชุด balancing sensor ประกอบอยู่ด้วย

Balancing One-Wheeled Scooter

Balancing One-Wheeled ScooterBalancing One-Wheeled ScooterBalancing One-Wheeled Scooter

Balancing One-Wheeled Scooter

แบตเตอรี่

Battery

ใช้แบตเตอรี่ขนาด 12 V 12Ah เป็นแบตเตอรี่แบบตะกั่วกรดแบบแห้ง จำนวน 2 ก้อนแล้วนำมาต่ออนุกรมกันเพื่อทำให้เกิดแรงดันไฟฟ้าขนาด 24 V เพื่อนำไปใช้เป็นแหล่งพลังงานของ DC มอเตอร์

 

 

 

 

DC Motor

DC Motor24V

ใช้ DC motor ขนาดแรงดัน 24V 400 watt เพื่อใช้ในการฉุดสายพานเพื่อหมุนล้อที่ติดอยู่กับเฟือง มอเตอร์นี้ไม่ควรจะกินกระแสไฟฟ้าเกิน 21 A

 

 

 

OSMC - High Current Motor Driver Driver OSMC - High Current Motor

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

 

 

 

 

Controller

ไมโครคอนโทรลเลอร์ที่ใช้ในการควบคุมการทำงานทั้งหมดของ scooter ล้อเดียวนี้ ก็คือ ไมโครคอลโทรลเลอร์จากค่าย Rate GyroscopeMicrochip คือเจ้า PIC16F878 ทำงานที่ความถี่ 20MHz โดยทำหน้าที่ประมวลผลสัญาณที่ส่งมาจาก  ADXRS300 Rate Gyro ซึ่งเป็นเซ็นเซอร์วัดอัตราการโน้มเอียง มีการตอบสนองดีต่อความถี่สูง ส่งสัญญาณออกเป็น อะนาลอก สามารถตอบสนองอัตราเร็วได้ถึง 300 องศาต่อวินาที เมื่ออินทิเกรตสัญญาณจะได้สัญญาณบอกตำแหน่ง

ADXL202

และเจ้าตัวเซ็นเซอร์อีกตัวหนึ่งที่ขาดไม่ได้ ก็คือ ADXL202 คือ ไอซีที่พัฒนาบนพื้นฐานของเทคโนโลยีที่ชื่อว่า MEMS® สามารถวัดค่าความเร่งแบบเต็มค่าสเกลในช่วง -2g ถึง +2g และมีความไวหรือ Sensitivity 12.5% ต่อ g สามารถวัดค่าได้ทั้งความสั่นสะเทือน(dynamic หรือ vibration ) และ วัดค่าความโน้มถ่วง(static acceleration หรือ gravity )โดยทำการป้อนกลับแบบ PID ไปที่ตัวไมโครคอลโทรลเลอร์ด้วยความถี่ 100 Hz เพื่อไม่ให้เจ้า scooter เอียงไปข้างหน้าหรือข้างหลังมากไปจนล้ม โดยการส่งควบคุม PWM เพื่อป้อนให้กับมอเตอร์เพื่อให้มอเตอร์หมุนเพื่อต่อต้านการเอียงที่มากเกินไป

Chassis ตัวโครงรถ

ในโครงงานนี้ เค้าทำขึ้นมาเองโดยใช้เหล็กแผ่น 100mm x 3mm แล้วพับขึ้นรูป แต่ทั้งนี้ทางเจ้าของโปรเจคเค้าไม่ได้ให้แบบพิมพ์เขียวไว้ อาจจะต้องออกแบบขึ้นมาเอง

Drive Belt สายพานขับเคลื่อน

ใช้เฟืองทดขนาด 4.28:1 จำนวน 14 ฟัน เพื่อทำเป็นมูเล่ย์ โดยสายพาน และ pulleys ถูกจัดจำหน่ายโดย Wyko

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

Numerical Method ระเบียบวิธีเชิงตัวเลข (ด้วย MATLAB)

$
0
0

การใช้ไฟไนต์เอลิเมนต์เพื่อคำนวณผลกระทบกับ Space Shuttleก็ผ่านกันไปอีกเทอมสำหรับการศึกษาของผม 1 ในวิชาที่ผ่านมานั้น คือวิชา Numerical Method ซึ่งเป็นวิชาที่ว่าด้วยการประมาณการของผลเฉลยสมการ ซึ่งค่าที่ได้จะมีค่าแตกต่างจากผลเฉลยแม่นตรง จะมากหรือน้อยขึ้นอยู่กับ step size ที่เราต้องการคำนวณ ยิ่ง step size มีค่าน้อยๆ ยิ่งทำให้ค่า error มีค่าน้อยตามไปด้วย ทำให้คำตอบที่ได้มีค่าเข้าใกล้ความเป็นจริง แต่ผลของการคำนวณค่า step size น้อยๆ ก็ทำให้การคำนวณต้องกระทำซ้ำๆ จำนวนหลายๆรอบมากยิ่งขึ้น แต่ด้วยความสามารถของคอมพิวเตอร์ในปัจจุบัน การสั่งให้คอมพิวเตอร์คำนวณด้วยจำนวณรอบเป็นล้านๆครั้ง ไม่ใช่เรื่องที่เป็นปัญหาอีกต่อไป

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

ก็เลยจะอาศัยพื้นที่บนบล๊อกแห่งนี้ เก็บรวบรวมงาน assignment ของวิชา numerical ที่เราได้ทำผ่านไปแล้วไว้สักหน่อย ไม่งั้นเดี๋ยวต้องมาวิ่งหากันอีกแน่ๆเลย

ดาวน์โหลดวิธี Fourth-order predictor-corrector and Two-step Adams-Moulton method

Fourth-order predictor-corrector and Two-step Adams-Moulton method

 

ดาวน์โหลด Second-order predictor-corrector และ Second-order Runge Kutta

Second-order predictor-corrector และ Second-order Runge Kutta

ดาวน์โหลด Laplacian difference equation and Liebmann’s method to solve for temperature

Laplacian difference equation and Liebmann’s method to solve for temperature

ดาวน์โหลด Explicit and Crank- Nicolson method แก้ปัญหาสมการ PDEs

Using Explicit and Crank- Nicolson method

ดาวน์โหลด Implicit method แก้ปัญหาสมการ PDEs Wave Equation

Implicit method แก้ปัญหาสมการ PDEs Wave Equation

ดาวน์โหลด Optimization with Newton’s method

Optimization with Newton’s method

สาธิตการใช้งาน Proteus เบื้องต้น

$
0
0



PIC16F877 with LCD 16x2 on Proteusหลังจากได้ไปแล้ว วันนี้ผมมีโอกาสได้ทำวีดีโอสาธิตการใช้งาน Proteus เบื้องต้น เป็นการใช้งานแบบง่ายๆ โดยทำการต่อวงจรสาธิตการแสดงผลผ่านทางจอ LCD 16x2 ด้วยไมโครคอนโทรลเลอร์ PIC16F877

ผมได้พยายามทำวีดีโอสอน และอัพโหลดขึ้น youtubeของผม อาจจะมีปัญหาเรื่องความคมชัดนิดหน่อย ยังหาโปรแกรมแปลงไฟล์วีดีโอดีๆ ยังไม่เจอ หากเพื่อนๆเคยทำการแปลงไฟล์วีดีโอดีเจ๋งๆ บอกผมหน่อยแล้วกัน

ในวีดีโอสาธิตชุดนี้ ผมไม่ได้ลงรายละเอียดไปถึงการเขียนโปรแกรม CCS C Complier เพราะเนื้อหาอาจจะเยอะเกินไป อาจมีปัญหาในการอัพโหลดวีดีโอได้ เอาไว้คราวหน้าแล้วกัน ผมจะทำวีดีโอสาธิตการใช้งาน CCS C Complier มาให้เพื่อนมาชมกัน

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

ดาวน์โหลด source code และไฟล์วงจร proteus ได้ ที่นี่


PIC18F458 error $MCLR$ is low. Processor is in reset.

$
0
0



image      โดยปกติแล้ว ในการจำลองการทำงานใน proteus บางอย่างเราไม่จำเป็นจะต้องต่อวงจร อย่างเช่น oscillator หรือวงจรรีเซต microcontroller แต่อย่างไร

ซึ่งปกติผมมักจะชอบ simulate กับ PIC16F877 เป็นประจำ แต่วันนี้ผมทดลองใช้เบอร์ 18F458 ซึ่งต้องการอยากให้มันตรงกันกับบอร์ดที่เราใช้งานอยู่จริง

    ทำการทดลองโค๊ด แสดงตัวหนังสืออกหน้าจอ LCD 20x4 ปรากฏว่าไม่มีข้อความปรากฏเลย แล้วแถมเจอ error message ขึ้นมาเพียบเลย มันโชว์ error ว่า “$MCLR$ is low. Processor is in reset.”

ไอ้เจ้า MCLR มันเป็นวงจรสำหรับเอาไว้รีเซต microcontrller ซึ่งปกติ ผมมักจะไม่ต้องต่อ เมื่อทดลองกับ PIC16F877 แต่พอมาเจอ PIC18F458 ปรากฏว่า มันจำเป็นต้องต่อด้วย ถึงแม้เราจะ simulatre ใน proteus ก็ตาม –_-“

MCLR reset circuit

 LCD 20x4

ทำการต่อวงจร reset เข้าไปที่ขา 1 ของ PIC18F458 ซะ แล้วทดลองโปรแกรมอีกที error หายไปแล้ว หน้าจอ LCD แสดงผลได้ตามปกติ

นิทานเรื่องนี้ สอนให้รู้ อย่าคิดว่า ที่ทำตามๆกันมา มันจะถูกเสมอไป เวลาเปลี่ยน ใจก็เปลี่ยน (เกี่ยวกันไหมเนี่ย)

New Engineer, Listen to him

$
0
0



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

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

AVR+VB.NET+WEB จาก Hardware สู่ WEB

$
0
0

VB.NET+RS232+MySQLหายไปนานสำหรับ บทความนี้ พอดีช่วงนี้ยุ่งสุดๆ ทั้งสอบ ทั้งงาน ทั้งโปรเจค โอ้ยเยอะ เอาเป็นว่ายุ่งหล่ะกัน แต่ก็อยากเอามาแชร์ๆ กันมั่ง

พอดีมีโอกาสได้ทดลองเขียนโปรแกรมด้วย VB.NET express รับค่าจาก AVR ซึ่งคอยเช็คว่ามีวัตถุมาบัง sensor หรือยัง แล้ววัตถุออกไปตอนไหน จากนั้นก็จะเก็บค่าไว้ใน memory ของ AVR จากนั้น ก็รอให้ โปรแกรม Counter v1.0 มารับค่าไป เพื่อนำค่าที่ได้ไปบันทึกลงดาต้าเบส MySQL นั่นคืองานในส่วนของ VB.net กับ AVR ซึ่งจะทำงานแบบนี้ไปเรื่อยๆ

ในส่วนของ WEB PAGE จะใช้ PHP + SAJAX เพือทำการดึงข้อมูลจากดาต้าเบส MySQL แล้วทำการส่งออกทางหน้าเว็บบราวเซอร์ ในส่วนนี้ เราจำเป็นต้องพึ่งพา SAJAX เพื่อทำให้หน้าเว็บแสดงผลแทบจะ Realtime ซึ่งตรงนี้ เราสามารถปรับแต่งค่าได้ ว่าจะให้หน้าเว็บ refresh ถี่ขนาดไหน

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

Hot-Cool Stage by Peltier

$
0
0

Peltier Projectเสร็จไปอีกหนึ่งผลงานกับแท่น ร้อน-เย็น ( Hot-Cool Stage) ไม่รู้ว่าจะตั้งชื่อว่าอะไร เอาเป็นว่าเจ้าแท่นนี้ มีหน้าที่ทำร้อน หรือทำเย็นก็ได้ ตามที่เราต้องการ (แต่ผมจำกัดอุณหภูมิไว้ที่ 0 – 75 องศาเซลเซียส) 

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

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

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

อุปกรณ์หลักๆ ของงานนี้ก็คือ

  • Peltier TEC1-12710 จำนวน 2 แผ่น ตัวผลิตความร้อน ความเย็น
  • Corsair Hydro Series H50 2 เครื่อง ตัวระบายความร้อนชั้นยอด
  • บอร์ดไมโครคอนโทรลเลอร์ PIC16F877 เป็นตัวควบคุม
  • บอร์ด H-Bridge เอาไว้กลับทิศทางกระแสไฟฟ้า
  • Switching Power supply จ่ายกระแสไม่ต่ำกว่า 15 แอมป์

Peltier Project

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

Beginning with PIC เริมต้นที่ไหนดี

$
0
0

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

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

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

ลองคลิกเข้าไปดูที่รูป PIC แต่ละตระกูล มันก็ยังประกอบไปด้วยแต่ละเบอร์ คิดแล้วน่าปวดหัวไหมหล่ะ ถ้าจะถามว่าจะต้องใช้เบอร์ไหนหล่ะ มันก็ต้องถามกลับไปว่า แล้วงานของคุณมันต้องการอะไรมั่งหล่ะ ช่องการแปลงสัญญาณ A/D , จำนวนพอร์ตดิจิตอล , memory หรือว่า ฟังก์ชั่นที่เกี่ยวข้องกับ   DSP อะไรจำพวกนี้ ล้วนเป็นสิ่งที่ต้องเอามาพิจารณาทั้งนั้น

PIC Microcontroller 

แล้วถ้าเราไม่รู้หล่ะ ถ้าเป็นพวกมือใหม่ อยากเอาไปศึกษาหล่ะ ถ้าเป็นมือใหม่จริงๆ ขอแนะนำ PIC ตระกูล 18F ก็แล้วกัน เพราะเบอร์นี้ มันกำลังคาบเกี่ยวกันระหว่าง 8 บิต และ 16 บิต อยู่ สามารถทำอะไรได้หลายอย่าง น่าจะเพียงพอสำหรับการเรียนรู้ได้นานพอสมควร ลองดูจาก Application Noteของทางไมโครซิฟ ว่าเค้าทำไรได้มั่ง

PIC18 Architecture

PIC18 Block Diagram

  • 83 (16-bit wide) powerful C-optimized instruction
  • Up to 2 MB addressable program memory
  • 4K Bytes RAM (max)
  • 32 level hardware stack
  • 1 (8-bit) File Select Register
  • Integrated 8x8 hardware multiply
  • Highest performance 8-bit architecture

ซึ่งในตระกูลของ PIC 18F เองก็ยังมีตั้งมากมายหลายเบอร์ คลิก

แต่ถ้าถามว่าจะเอาเบอร์ไหนมาเล่นก่อน ก็อยากจะบอกว่า เอาเบอร์ที่มีขายในบ้านเราเหอะ อย่าไปเพิ่งไปแอดวานซ์มากนัก เดี๋ยวให้เก่งกว่านี้ก่อน

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

แบบแรก ข้อดี คือว่า ราคาถูกกว่าแบบที่สอง ข้อเสีย คือต้องหาอุปกรณ์ต่อทดลองเอาเอง

บอร์ดไมโครคอลโทรลเลอร์ PIC18F

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

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

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

ET-PGM PIC USB V2

ซึ่งเจ้าตัว ET-PGM PIC USB V2 ผมก็ซื้อมาเหมือนกัน เพราะขี้เกียจทำเอง หลังจากได้ตัวโปรแกรมไมโครคอลโทรลเลอร์มาแล้ว เราก็สามารถที่จะไปโปรแกรมลงบนคอนโทรลเลอร์เบอร์อะไรก็ได้ ตามที่มันสามารถรองรับได้ โดยต่อไปที่ขาของไมโครคอลโทรลเลอร์ ตามที่ระบุในดาต้าชีท

 

ตัวอย่างการโปรแกรมที่ขาของไมโครคอลโทรลเลอร์ 

ตัวอย่างการโปรแกรมที่ขาของไมโครคอลโทรลเลอร์

ส่วนโปรแกรมที่ใช้เบิร์นไมโครคอลโทรลเลอร์ก็ใช้ PICkit 2 V2.55.01 Install  หรือ
PICkit 2 V2.55.01 Install with .NET Framework
ก็ได้

Pickit 2 Program

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

ถ้าเรามีพอจะเข้าใจภาษาซี อยู่แล้ว ขอแนะนำ MPLAB C18 , CCS C Complier แล้วก็ Hi-tech C ถ้าถามว่าตัวไหน ดีกว่ากัน จากที่ฟังผู้รู้มา

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

สำหรับ MPLAB กับ Hi-Tech C ผมแนะนำ MPLAB C18 ดีกว่า เพราะ ค่ายเดียวกันกับเบอร์ PIC Microcontroller เพราะต่างก็มาจาก MIcrochip เหมือนกัน ย่อมได้เปรียบมากกว่า ไม่ว่าจะเป็น โค๊ดตัวอย่าง หรือการนำไปใช้งาน ตลอดจนเอกสารต่างๆ ของ MPLAB ทำได้ค่อนข้างดีกว่า เยอะกว่า เวลามีปัญหา จะได้ไม่เหงา มีคนคอยปรึกษาได้

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

แหล่งความรู้ที่สำคัญที่ดังๆ ของไทยก็มีเยอะ ไม่ว่าจะเป็น Electoday , PANTIPหรือว่า เว็บพี่สันติก็มีให้เข้าไปฝากคำถาม หรือข้อสงสัยกันได้ แต่อย่างหนึ่งที่อยากย้ำก็คือ การที่เราต้องมีพื้นฐานมาบ้างสมควร ไม่ใช่ว่าจะให้คนอื่นแสดงให้ดูตั้งแต่ต้นเลย แบบนี้ก็ไม่ไหว เพราะเราเองก็ไม่ได้จ้างเค้ามาเป็นที่ปรึกษา ทุกคนก็มีภาระหน้าที่ด้วยกันทั้งนั้น อย่าเกริยน พี่เค้าขอร้อง

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

Labview 8.5 – มันกลับมาอีกแล้ว!!!

$
0
0

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

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

The first step is always the hardest
  การเริ่มต้นทำสิ่งใดสิ่งที่ยากที่สุดก็คือตอนเริ่มต้นทำ

โม้มากไปหน่อยอีกแหละ เรามาเริ่มกันเลยดีกว่าครับ

Labview คืออะไร

Labview National Instrument

Labviewคือโปรแกรมที่ถูกสร้างขึ้นมาเพื่อทำงานด้านเครื่องมือวัด สำหรับงานวิศวกรรม (Laboratory Virtual Instrumentation Engineering Workbench) โดยโปรแกรมที่ถูกพัฒนาขึ้นภายใต้โปรแกรม Labview จะถูกพัฒนาภายใต้สภาวะ Visual Programming จากบริษัท National Instrument ซึ่งจุดประสงค์หลักของโปรแกรม ที่เค้าสร้างขึ้นมาก็เพื่อที่จะให้การทำงานกับเครื่องมือวัดภายในห้องแลปให้มีประสิทธิภาพมากที่สุดและเป็นไปอย่างอัตโนมัติ คือเราสามารถใช้โปรแกรม Labview สามารถทำการคำนวณค่าที่ได้จากเครื่องมือวัดใดๆ ที่ driver ของ Labview สามารถติดต่อได้ มาทำการประมวลผลต่อได้

ลักษณะการเขียนโปรแกรมของ Labview อาจจะต้องมีการปรับจูนสมองกันนิดหน่อยสำหรับโปรแกรมเมอร์รุ่นเก่า ที่คุ้นเคยกับการเขียนโปรแกรมประเภท Text base หรือพวกทีชอบ Coding ทีเป็นพันๆ บรรทัด เพราะเจ้าตัว Labview เองเกือบจะร้อยเปอร์เซนต์ของการพัฒนาโปรแกรม ใช้การเขียนโปรแกรมแบบที่เรียกว่า Graphic-base Programming ซึ่งถ้าเป็นการเขียนโปรแกรมแบบ Text-base เราจะต้องเขียนโปรแกรมแบบจากบนลงล่าง แล้วเรียกฟังก์ชันไปมา แต่ถ้าเป็นการเขียนโปรแกรมบน Labview ลักษณะแนวคิดของโปรแกรมจะเป็นแบบ Data Flow โดยข้อมูลของโปรแกรมจะไหลตาม wire หรือเส้นทางข้อมูลที่เราทำการเชื่อมต่อกันแต่ละบล๊อก (วันแรก ก็เล่นเอามึนเหมือนกัน ) O_o

แล้วเริ่มต้น เขียนโปรแกรมบน Labview ยังงัยหล่ะ ???

เนื่องจากโปรแกรม Labview เป็นการเขียนโปรแกรมสไตล์ Graphic-base Programming เพราะฉะนั้นการเขียนโปรแกรมส่วนใหญ่เป็นการจัดการด้านกราฟฟิค การโยงข้อมูล การทำหน้าต่าง GUI (Graphic User Interface )  ซะมากว่า โดยเค้าแบ่งการพัฒนาโปรแกรมออกเป็น 2 อย่างก็คือ

  1. Front Control ทำหน้าที่เป็นหน้ากากของโปรแกรมเพื่อติดต่อกับผู้ใช้
  2. Block Diagram เป็นส่วนของการจัดการไหลของข้อมูล (ยากสุดตรงนี้แหละ)

Front Control and Block Diagram of Labview 

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

Simple Program Labview

$
0
0

เริ่มต้นเขียนโปรแกรม Labview

simple Labview by Mr.P

โปรแกรมที่ถูกเขียนขึ้นด้วย Labview เราเรียกว่า Virtual Instrument (VI) เป็นเหมือนการเอาไอคอนที่เป็นหน้าตา ของอุปกรณ์เครื่องมือวัด ไม่ว่าจะเป็น สโคป หน้าปัดวัดแบบเข็ม แบบสเกล หรือแบบตัวเลข ปุ่มปรับค่าแบบ Knob หรือปุ่มกด Push Button ต่างๆ ที่ใช้เป็นหน้าต่าง GUI โต้ตอบกับผู้ใช้ โดยไอคอนเหล่านี้ เราจะทำการสร้างที่ส่วนของ Front Control แล้วทำการปรับแต่งสีสัน และข้อความที่ปรากฏตามความต้องการ หลังจากนั้น ก็ทำการ wire สายของ Data Flow ในส่วนของ Block Diagram ตาม Alogorthm ที่เราคิดไว้ ก็สามารถทำให้โปรแกม VI ที่เราสร้างขึ้นสามารถทำงานได้อย่างง่ายดาย

แล้ว Labview มันดีกว่ายังงัย
หลายคนอาจจะบอกว่า ถ้าเขียนหน้าต่างการใช้งานแบบนี้ โปรแกรม Visual C++ ก็สามารถทำได้เหมือนกัน แน่นอนหล่ะ ผมว่ามันก็ทำได็เหมือนกัน แต่ถ้าเป็นคนที่ไม่ได้เรียนเน้นทางโปรแกรมมา การจะสร้างโปรแกรมลักษณะเช่นนี้ เป็นการยากมาก เราอาจจะต้องเสียเวลาไปกับการ Develope software เพื่อทำงานติดต่อกับเครื่องมือวัด และทำหน้าต่างโปรแกรม GUI ไปอย่างมาก โดยที่เนื้องานจริงๆ เราอาจจะไม่ใช่แค่ตัวโปรแกรม แต่เป็นการเก็บต่า และวิเคราะห์ผล ซึ่งการเลือกใช้ Labview ในการพัฒนาเป็นการย่นระยะเวลาของปัญหาที่ไม่เกี่ยวข้องออกไป ทำให้เราบรรลุวัตถุประสงค์ได้เร็วกว่าอย่างแน่นอน 

ข้อดีที่เห็นได้ชัดของ Labview ก็คือ ตัวโปรแกรม Labview เมื่อทำงานร่วมกับ Hardware ที่ใช้เก็บสัญญาณข้อมูล เช่น DAQ card ที่รองรับสามารถทำให้เครื่องคอมพิวเตอร์ของเรากลายเป็นเครื่องมือวัดราคาแพงๆ ได้ และเราเองยังสามารถที่จะเปลี่ยนแปลงเครื่องมือวัดของเราผ่านการออกแบบโปรแกรม Labview ได้โดยตรง ไม่ว่าจะเป็น Oscilloscope , Multimeter หรือ Functiona Generator ก็ได้ พูดง่ายๆก็คือ Labview สามารถสร้างอุปกรณ์เสมือน (Virtual Instrument : VI) ให้เราได้นั่นเอง

ตกลงกันก่อน
ในที่นี้ ผมใช้
คอมพิวเตอร์โนตบุค Lenovo T61
ระบบปฏิบัติการ Windows XP SP3
Labview เวอร์ชั่น 8.5

เริ่มต้นโปรแกรม VI ง่ายๆกันก่อน
ในที่นี้ เราจะลองสร้าง VI ง่ายๆกันก่อน เพื่อให้ผู้ใช้ ได้ทำความคุ้นเคยกับส่วนของ Front Control และ Block Diagram กันก่อน เพื่อแยกให้ออกว่าทั้งสองส่วนนี้ทำงานอย่างไร มีหน้าที่อย่างไรบ้าง แต่จะยังไม่ลงรายละเอียดอื่น แต่ผมจะไปอธิบายเพิ่มในตัวอย่างอื่นๆต่อไป (เดี๋ยวจะเบื่อกันซะก่อน)

 


Labview : Front Panel หน้ากาก VI

$
0
0

    ในตอนนี้ เราจะมาทำความรู้จักกับ Front Panel ว่ามันมีความสัมพันธ์กับ Block Diagram อย่างไร Front Panel Object แต่ละตัวแตกต่างกันอย่างไร แล้วเราจะหาอุปกรณ์ หรือว่า Front Panel Object ได้อย่างไร เราจะได้เรียนรู้กันในตอนนี้

    Front Panelเป็นส่วนของหน้าต่างที่ทำหน้าที่เป็นส่วนติดต่อกับ user หรือเป็นส่วนของ VI (Virtual Instrument ) นั่นเอง Front Panel ประกอบไปด้วย Control ทำหน้าที่เป็น input และ Indicator ทำหน้าที่เป็น output ซึ่งทำหน้าที่โต้ตอบก้บผู้ใช้งาน ในขณะที่เราวาง Indicator และ Control ลงบน Front Panel โปรแกรม Labview จะทำการสร้าง Control และ Indicator ลงบน Block Diagram อัตโนมัติ ซึ่งเราจะได้มาศึกษา Block Diagram กันต่อไป

หน้าต่าง Front Panel

Front Panel Labview

     หลังจากเราเปิดโปรแกรม Labview ขึ้นมาแล้ว เราสามารถที่จะสร้าง new VI ขึ้นมาได้ หน้าต่าง Front Panel จะปรากฏขึ้นมา โดยเราสามารถที่จะทำการสร้างหน้าต่าง User Interface หรือหน้าต่างโปรแกรมของเรา เพื่อให้ผู้ใช้ สามารถใช้งานได้ตามที่เราได้ออกแบบไว้แล้ว (ตรงนี้ ต้องใช้ประสบการณ์ และความคิดสร้างสรรค์ในการออกแบบสักหน่อย)

   ที่หน้าต่าง Front Panel ประกอบไปด้วยส่วนของ Toolbar ที่อยู่ด้านบน และส่วนของ Control Pallete ซึ่งเราสามารถที่จะเปิดตรงไหนก็ได้ที่หน้าต่าง Front Panel     โดยทำการคลิกขวาที่หน้าต่าง Front Panel หลังจากเราเปิดหน้าต่าง Control Pallete แล้วเราก็จะพบกับ Control และ Indicator แล้วสามารถที่จะลากพวกมันลงบนหน้าต่าง Front Panel ได้เลย

Control Pallete Control and Indicator

    Contrrol ได้แก่ Knobs , Push button , dial , และอุปกรณ์ที่ทำหน้าที่เป็น input อื่นๆ ทำหน้าที่เป็นตัวโต้ตอบ ทำหน้าที่เป็นตัวรับ ในขณะที่ Indicator ซึ่งได้แก่ graphic , LED ,หรืออุปกรณ์ที่ทำหน้าที่เป็นตัวแสดงผล ทำหน้าที่เป็นผลลัพธ์ ของหน้าต่าง VI

VI User Interface

จากรูปด้านบน เรามีตัว Control 2 ตัว ได้แก่ Number of Measurements และ Delay (sec) และ 1 ตัวสำหรับ indicator ในที่นี้คือตัว waveform graph ที่เราตั้งชี่อว่า Temperature Graph 

    ทุกๆ Control และ indicator จะมีชนิดของข้อมูลเป็นความสัมพันธ์ของตัวมัน ตัวอย่างเช่น Delay (sec) ทีเป็นตัวปุ่ม slide ในแนวนอน เป็นค่าตัวเลข เมื่อเรา Double Click ที่ตัว Control ในหน้า Front Panel โปรแกรมจะทำการเปิด Block Diagram ขึ้นมาให้ แล้วจะแสดงสัญลักษณ์ หรือไอคอน ของตัว Delay (sec) ที่หน้า Block Diagram โดยที่ตัวมันเองจะมีสีส้ม ซึ่งบ่งบอกว่า มันมีข้อมูลเป็นชนิดตัวเลขที่เป็น Double (DBL)

Slide Control

Numeric Control and Indicators

เราจะลองมาสร้าง Numeric control แล้วทดลองเปลี่ยนค่าของมัน

1. ทำการคลิกขวาที่  Front Panel แล้วทำการเปิด Control pallete จาก Pallete ย่อยให้เราไปที่ Numeric แล้วลาก Numeric control ลงบนที่ว่าง Front Panel

Numeric Pallete

2. เปลี่ยน ป้ายกำกับ Label ด้วยการดับเบิลคลิก ที่ป้าย label แล้วทำการพิมพ์คำว่า “input”

Numeric Input control

3. เราสามารถเปลี่ยนแปลงค่าของ control ได้ด้วยการกดปุ่ม เพิ่มหรือลดค่า หรือ ทำการดับเบิลคลิกไปที่บริเวณที่แสดงค่า แล้วทำการพิมพ์ค่าใหม่ ลงไปโดยตรง แล้วทำการกดปุ่ม ENTER ที่คีย์บอร์ด เพื่อทำการเปลี่ยนแปลงค่าใหม่ได้โดยครง

Numeric Input control

Boolean Controls and Indicators 

Control และ Indicator ที่เป็นชนิด Boolean จะรับและส่งข้อมูลได้เพียงสองสถานะเท่านั้น คือ TRUE และ FALSE เท่านั้น จากรูปข้างล่างจะเห็นว่า สวิทช์ในแนวตั้ง และ หลอด LED เป็น Control และ Indicator แบบ Boolean

toggle control Boolean Pallete

String Controls and Indicators

ข้อมูลชนิด ตัวอักษร เป็นข้อมูลแบบเรียงลำดับของ รหัส ASCII เรามักใช้ String Control และ String Indicator ทำหน้าที่รับข้อความจากผู้ใช้ ตัวอย่างเช่น password และ username ในขณะที่ String indicator จะทำหน้าที่แสดงผลที่เป็นข้อความ เราสามารถหา String Control และ String Indicator ได้จากString and Pathใน pallete ย่อย

String Control and String Indicator

Front Panel Window Toolbar

เรามาดูสัญลักษณ์และการทำใช้งาน Toolbar กัน

Toolbar Labview

RUN

ทำหน้าที่สั่งให้ VI ที่เราเขียนทำงาน ; Labview จะทำหน้าที่ complie โค๊ดที่เราเขียนอัตโนมัติ

ERROR

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

RUN Continuously

เป็นการรันโปรแกรมแบบต่อเนื่อง วนลูปไม่รู้จบ จนกว่าเราจะกดปุ่ม abort หรือ ปุ่มหยุดโปรแกรม

Abort Executionขณะหน้าต่าง VI กำลัง run อยู่ ปุ่มนี้ จะโชว์ขึ้นมา ถ้าเราคลิกที่ปุ่มนี้ โปรแกรม VI ของเราก็จะหยุดทำงานอย่างทันที

คำเตือน : โดยปกติแล้ว เรามักที่จะไม่นิยม หยุดโปรแกรมของเราด้วยปุ่มนี้ เพราะอาจจะทำให้เกิดอาการค้างของข้อมูล เรามักจะทำปุ่ม stop ขึ้นมาเอง

Pause

กดปุ่มหยุดชั่วคราว หากเราต้องการหยุดโปรแกรม VI ของเราชั่วคราว แล้วกดปุ่มนี้อีกครั้ง หากต้องการให้โปรแกรมของเราทำงานต่อ

Text Setting

คลิกเลือกที่ปุ่มนี้ หากต้องการปรับแต่งข้อความบนหน้าต่าง Front panel

Alignment - Resize - Order object

เป็นการจัดเรียง control และ indicator ให้เรียงตรงกัน ทั้งในแนวตั้ง และแนวนอน นอกจากนี้ ยังมีปุ่มสำหรับเรียงลำดับการซ้อนทับของหน้าต่าง และปุ่มปรับขนาดให้เท่าๆกันด้วย

Help Labview

ปุ่มขอความช่วยเหลือ หากต้องการคำอธิบาย ของ control หรือ indicator

 

Enter Text

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

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

มาเล่น Arduino กันเถอะ

$
0
0

Freeduino_Arduino

ก่อนหน้านี้ ผมเคยไปเทรน ARM7 ที่ขอนแก่น ตั้งหลายชั่วโมง เป็นเวลาหลายสัปดาห์ในช่วงปิดเทอมฤดูร้อน ประมาณเดือนเมษา พอกลับมาทำงาน ไม่ค่อยได้ใช้ ARM7 เพราะที่ทำงานมีแต่ PIC16F877 , PIC18F458 ไปๆมาๆ ก็ชักจะลืมๆ แล้ว ว่า ARM7 มันเซ็ทค่า Register ยังงัย

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

โดยที่บอร์ด Arduinoใช้ไมโครคอนโทรลเลอร์หลักเป็น AVR ตระกูล 8 บิต โดยถูกออกแบบให้มีการต่อใช้งานเป็นขา Digital I/O จำนวน 13 ขา และเป็นขารับสัญญาณ Analog จำนวน 6 ขา ซึ่งการกำหนดจำนวนขาแบบนี้ ได้กลายเป็นมาตรฐานของบอร์ด Arduinoไปแล้ว ถึงว่า Arduinoเองจะถูกผลิตออกมาหลายแบบ แต่ที่เหมือนกัน ก็ยังคงเป็นขาที่เอาไว้ใช้งาน แต่แตกต่างกันตรงที่แต่ละรุ่น ที่ทำออกมามี memory ที่ไม่เท่ากันนั่นเอง (แต่ปัจจุบัน บอร์ด Arduino มีจำนวนขาให้ใช้  มากกว่าที่ได้กล่าวไว้แล้ว แตกต่างกันออกไปในแต่ละรุ่น)

Arduino table model

นอกจากลายวงจรที่เค้าแจกฟรีเป็น Open source ให้เราสามารถนำไปสร้างเองได้แล้ว ตัวโปรแกรมที่เป็น IDE ที่เอาไว้เขียนโค๊ดภาษา C/C++ ก็ยังสามารถให้เราสามารถโหลดเอาไปใช้งานฟรีได้อีกด้วย (โหลด IDE Arduino)  ซึ่งในตัว IDE ที่เราติดตั้งไปนี้ ประกอบไปด้วย Example มากมายที่ทำให้เรา เรียนรู้ไมโครคอนโทรลเลอร์ได้อย่างไม่น่าเบื่อหน่าย

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

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

ขั้นตอน ง่ายๆ ในการทดลอง Arduino

  • หาบอร์ด Arduino สักบอร์ด ในที่นี้ ผมแนะนำของป๋าช้าง Ayarafun.comราคาถูกมากๆ (ถูกกว่าค่าเหล้า เบียร์ซะอีก)
  • โหลด IDE สำหรับเขียนโค๊ด ดาวน์โหลด
  • ต่อสาย USB เข้าบอร์ด Arduino
  • เปิดโปรแกรม Arduino เลือกบอร์ด และพอร์ตให้ตรงกับบอร์ดของเรา
  • เปืด Example Blink ทดลองทำไฟกระพริบกันก่อน (ถือเป็นโปรแกรมไหว้บอร์ด)
  • สังเกตไฟ LED ที่พอร์ด Digital 13 ต้องติด ดับ สลับกัน

ศึกษาเพิ่มเติม

Labview : wire tutorial สายข้อมูล

$
0
0

    ในโหมดของ text base programming เราสามารถส่งข้อมูลเข้าไปประมวลผลในฟังก์ชัน ผ่านตัวแปร แต่ใน Labview Graphical programming แล้ว wire หรือสัญลักษณ์สายไฟ ทำหน้าที่ในการนำข้อมูลจาก block diagram หนึ่งไปอีก block diagram หนึ่ง

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

    ในขณะที่ชนิดข้อมูลของโปรแกรมมีหลายประเภท (integer , charector , float, double , boolean ,….) การเรียกใช้และการประกาศตัวแปร เป็นสิ่งที่แยกแยะความแตกต่างของข้อมูลในการเขียนโปรแกรมแบบ text base แต่ใน Labview เราใช้ สี และ ขนาดของสายไฟ เป็นตัวบ่งบอกถึงความแตกต่างของข้อมูลนั้นๆ  

Labview : wire tutorial

     Labview จะมีการแจ้งให้ทราบว่าข้อมูลไม่ได้ถูกเชื่อมโยงกัน โดยจะแสดงลักษณะที่เรียกว่า broken wire เพื่อให้ผู้เขียนโปรแกรมทราบว่า ยังมีจุดที่สายไฟ ไม่ได้เชื่อมโยงกัน และจะไม่ยอมให้เราทำการ excute หรือ run โปรแกรม

Labview wire broken      การเกิด broken wire มีได้หลายสาเหตุ ตัวอย่างเช่น ระหว่าง object ที่มีความแตกต่างกันทางชนิดของข้อมูล ตัวอย่างเช่น เราไม่สามารถที่จะเอา out put ที่เป็น array จากบล๊อกไดอะแกรมหนึ่ง ไปต่อเข้ากับ input ที่เป็น numerical ของบล๊อกไดอะแกรมหนึ่ง ซึ่งแบบนี้จะทำให้เกิด broken wire ได้ ความแตกต่างของข้อมูลสามามารถแสดงได้ทั้งสี และขนาดของ wire ดังรูปต่อไปนี้

Labview data type

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

good connect wire

แต่ถ้าหากชนิดข้อมูลไม่ตรงชนิดกัน เราก็จะพบปัญหา broken wire ดังเช่นที่ได้กล่าวไว้แล้ว

Broken wire in subVI

Tip: คุณสามารถลบสายไฟ broken wire ออกจาก block diagram ได้อย่างรวดเร็วด้วยการกดปุ่ม Ctrrl + B

เราสามารถตั้งค่าให้ทำการ wiring สายไฟเวลาที่เราเคลื่อนเม้าส์เข้าไปใกล้ object จะทำให้เม้าส์เราเปลี่ยนจากลูกศร กลายเป็น ม้วนสายไฟ เพื่อพร้อมที่จะทำการเดินสายไฟ ได้ตลอดเวลา โดยให้เราไปที่เมนู Tools –> Options ---> Block Diagram (ทางซ้ายมือ) แล้วติ๊กที่ช่อง Enable auto wiring

image

image

ในกรณที่เราทำการลากสายไฟไปแล้ว ไม่ต้องกลัวที่จะไม่สวยงามครับ ให้เราลากเชื่อมโยงไปก่อน แล้วทำการคลิกขวาบริเวณสายไฟ แล้วเลือก Clean Up Wireโปรแกรมจะทำการจัดสายไฟ ให้อย่างสวยงาม

image

เรียนรู้การใช้สายไฟ เพิ่มเติมได้จากตัวอย่างต่อไปนี้ เป็นการสร้าง control และ indicator ที่มีความแตกต่างกันทางชนิดของข้อมูล จะเห็นได้ว่า สีของ object และสีของสายไฟ เปลี่ยนแปลงตามชนิดของข้อมูล

wire block diagram

Labview example wire data

วีดีโอสาธิตการทำการ wire ข้อมูลของ Labview

ที่มา http://zone.ni.com/devzone/cda/tut/p/id/7567

ไปอบรม VHDL มาได้ไรมาเยอะเลย

$
0
0

พอดี วันลาพักร้อนเยอะเกิ๊น ก็เลยต้อง plan ลาพักร้อนสักสองวัน เพื่อเป็นไปตามนโยบายเบื้องบน ไม่ได้คิดจะไปเที่ยวไหนหรอก อยากอยู่บ้านเล่นไมโครคอนโทรลเลอร์มากกว่า พอดีไปเห็นเค้าประกาศไว้ในเว็บ ว่า มีคอร์สอบรม VHDL สำหรับผู้สอน 28-29 มีค., 28-29 เมย.และ 23-24 พคพอดีเลย สองวัน ว่าแต่ มันเป็นคอร์สสำหรับผู้สอนนี่หว่า เราจะไปได้ไหม อย่ารอช้าเมล์ไปถามเค้าดีกว่า

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

BookVHDL2009

CX1A Design Kit

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

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

มีกาแฟเสิร์ฟตลอด ไม่ต้องห่วงว่าจะง่วงนอน (ความจริง ผมก็ทานมาแล้วหล่ะ) สรุปว่าวันนั้น ล่อไปสามแก้ว ไม่ต้องนอนกันหล่ะ ช่วงเช้าก็ปูพื้นฐานภาษา VHDL แล้วก็ทำความรู้จักกับ FPGA/CPLDกันก่อน พอหลังจากทานมื้อกลางวัน (ไก่ย่าง ที่ท่านอาจารย์บอกว่า อร่อยกว่า ไก่ห้าดาว) เราก็เริ่มทำการลง Lab โดยท่านอาจารย์พาทำตาม Lab ในหนังสือ แล้วใช้โปรแกรม Xilinx ISE 8.1i ในการเขียนภาษา VHDL โดยท่านอาจารย์ได้ยกตัวอย่างให้เห็นในหลายๆ รูปแบบ แต่ให้ผลลัพธ์เหมือนๆกัน เพื่อให้เกิดความรู้ ความเข้าใจ เวลาที่เราไปอ่านโค๊ดของคนอื่น เราจะได้เข้าใจ ว่ามันมีสไตล์การเขียนหลายแบบ แล้วแต่ใครถนัด

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

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

ถ้าผมมีเวลาผมก็อยากจะนำความรู้ที่ได้รับมาไปถ่ายทอดต่อไป อาจจะเป็นในรูปแบบการนำ CPLD ไปใช้งานมากกว่า  (อาจจะเป็นที่เว็บ 123Microcontroller)

เช่นเคย เมื่อเราได้เรียนรู้มาแล้วว่า VHDL เขียนอย่างไร เราก็ต้องมาทดลองกับบอร์ด CPLD ที่เรามีอยู่ เพื่อพิสูจน์ว่าเราสามารถที่จะเขียนโปรแกรมสั่งงานมันได้จริง

พื้นที่นี้ เพื่อแก (เพื่อนฉัน)

$
0
0

เดิมที ผมตั้งใจจะเขียนเรื่องงาน Image Processing ที่ทำส่ง อจ. กำลังเริ่มลงมือเขียนแล้วหล่ะ แต่ พอดีทางบ้านโทรมาบอกว่า ไอ้อิ๋ง หมาที่ป่วยไข้หัดอยู่ที่บ้าน ตายเสียแล้ว ก็เลยเอาเป็นว่า พื้นที่นี้ยกให้แก (เพื่อนฉัน) แล้วกัน

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

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

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

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

 

Good_dog2

Good_dog

Viewing all 32 articles
Browse latest View live