Month: October 2010

บอกเล่าประสบการณ์งานสำรวจ Hydrographic Survey ในเบื้องต้น

งานสำรวจทางอุทกศาสตร์ (Hydrographic Survey)

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

Hydrographic Survey คืออะไร

  • คือศาสตร์ที่ใช้วัดและรวบรวมข้อมูลจากพื้นที่ที่เป็นผืนน้ำ เช่นแม่น้ำ บึง อ่างเก็บน้ำ ทะเลสาบ ทะเลและมหาสมุทร ข้อมูลที่ได้จากการวัดได้แก่ความลึก(Depth) สภาพของท้องน้ำ(Water bed) คลื่น(Wave) กระแสน้ำ(Current) น้ำขึ้นและน้ำลง(Tide) โดยใช้เครื่องมือที่แตกต่างออกไป สุดท้ายจากข้อมูลสำรวจต่างๆจะนำมาประมวลผลเป็นแผนที่ หรือฐานข้อมูล ซึ่งมีหลายรูปแบบแล้วแต่จุดมุ่งหมายของงาน

จุดประสงค์ของ Hydrographic Survey

  • การสำรวจร่องน้ำเพื่อการเดินเรือ (Maritime Navigation) เพื่อให้เกิดความปลอดภัยต่อการเดินเรือ นอกจากแสดงความลึกที่เหมาะสมกับการเดินเรือแล้ว สภาพท้องน้ำมีอุปสรรคอื่นหรือไม่เช่นเรือหรือโป๊ะที่จมอยู่ใต้น้ำ  งานสำรวจอาจต้องทำทุกๆปี เนื่องจากร่องน้ำเดินเรือมีการเปลี่ยนแปลงตลอดเวลา บางร่องอาจจะต้องขุดลอกด้วยเรือขุดทุกๆปี การสำรวจจะทำก่อนและหลังขุด เพื่อตรวจสอบปริมาณและความลึกว่าได้ตามเกณฑ์หรือไม่ ดูรูปด้านล่างที่แสดงได้สวย ชัดเจน สังเกตด้านซ้ายจะเห็นเรือจมอยู่ใต้น้ำด้วย
แสดงร่องน้ำเดินเรือ (ภาพจาก http://celebrating200years.noaa.gov)
  • การสำรวจเพื่อการก่อสร้าง (Marine Construction) เพื่อเป็นข้อมูลบริเวณที่จะทำการก่อสร้าง ให้สามารถออกแบบสิ่งปลูกสร้างได้อย่างเหมาะสม งาน Marine Construction ได้แก่งานก่อสร้างท่าเทียบเรือ(Jetty, Wharf & Quay) งานวางสาย Submarine cable ในทะเลเช่นสายไฟฟ้า สายไฟเบอร์ออปติก งานวาง Submarine pipeline เช่นท่อแก็ซ ท่อน้ำมัน งานติดตั้งแท่นขุดเจาะแก็ซ แท่นขุดเจาะน้ำมัน
    งานก่อสร้างท่าเทียบเรือ
    งานติดตั้งแท่นขุดเจาะน้ำมันในอ่าวไทย
    งานวางสายไฟฟ้าใต้น้ำ (Submarine cable)
    การก่อสร้างท่าเรือโดยการใช้ Caisson ที่ท่าเรือแหลมฉบัง(รูป A. การหล่อ Caisson บน floating dock – ภาพเอื้อเฟื้อจากนายช่างเบญจ นามแดง)
    (รูป B . หล่อ Caisson ได้ความสูง 12 เมตร จม floating dock ส่วน caisson จะลอย- ภาพเอื้อเฟื้อจากนายช่างเบญจ นามแดง)
    (รูป C . ลาก Caisson ที่ความสูง 12 เมตร ไปหล่อความสูงเพิ่มอีก 6 เมตรที่จุดก่อสร้างท่าเรือ – ภาพเอื้อเฟื้อจากนายช่างเบญจ นามแดง)

    อุปกรณ์และเครื่องมือที่ใช้ในงาน Hydrographic Survey

      1. ระบบพิกัด (Position System) ปัจจุบันคงไม่มีอะไรดีไป กว่า GPS อีกแล้วซึ่งสนนราคาของ GPS ขึ้นอยู่กับความละเอียดของงานเช่นสำหรับการเดินเรือทั่วๆไปราคาก็อยู่หลัก หมื่นบาท ส่วนระบบที่ต้องการค่าพิกัดที่ถูกต้องสูง อาจจะมีราคาเป็นแสนบาทจนถึงล้านบาทก็มี ผมพอจะแบ่งได้ตามประเภทการใช้งานดังนี้
        • เครื่อง GPS แบบ Stand alone สำหรับการใช้งานที่ไม่ต้องการความถูกต้องสูงมากนัก เช่นติดตั้งในเรือท่องเที่ยวชายฝั่ง เรือประมง ส่วนบางรายก็ใช้เครื่อง GPS มือถือหิ้วมาใช้ก็มี
        เครื่อง Garmin ที่ติดตั้งแผนที่ BlueChart
        • เครื่อง GPS แบบ DGPS (Differential GPS) เป็นระบบที่สามารถรับค่าปรับแก้ค่าพิกัดให้ถูกต้องมากยิ่งขึ้น ด้วยการปรับแก้ C/A Code ได้ความถูกต้องอยู่ประมาณ 1 เมตร ระบบนี้สามารถแยกย่อยเช่น
          • รับสัญญาณจากคลื่นวิทยุ (Beacon) เป็นระบบเก่าแก่ เมืองไทยก็มีใช้งานอยู่ส่วนใหญ่แล้ว support เรือเดินทะเลเข้าเทียบท่า เครื่อง GPS แบบนี้ต้องรับสัญญาณ Beacon ได้ (2 in 1) ซึ่ง Beacon เองก็คือคลื่นวิทยุย่าน 200 – 400 KHz
          • รับสัญญาณจากดาวเทียม เช่นดาวเทียม Ominstart, Landstar ซึ่งไม่ฟรีต้องเช่าสัญญาณใช้งาน และที่ฟรีได้แ่ก WAAS, EGNOS ฟรีแต่ประเทศไทยใช้งานไม่ได้เพราะไม่ได้ติดตั้งสถานีภาคพื้นดิน (ผมเคยเช่าสัญญาณของ Omnistar ใช้สำหรับงาน offshore)
          • ตั้งสถานี Base Station เอง ส่วนใหญ่จะใช้งานด้านการสำรวจมากกว่าอย่างอื่น การติดตั้งจะใช้ GPS ติดตั้งบนฝั่งบนหมุดที่รู้ค่าพิกัด ช้วิทยุ Radio modem ส่งค่าปรับแก้ค่าพิกัดมาบนเรือสำรวจ ซึ่งบนเรือสำรวจก็ติดตั้ง GPS อีกชุดหนึ่งเรียกว่า Rover การรับสัญญาณค่าปรับแ้ก้ใช้ Radio modem เป็นตัวรับค่าปรับแก้ การรับส่งข้อมูลปรับแก้อาศัยโปรโตคอลมาตรฐานที่เรียกว่าของ RTCM (Radio Technical Commission for Maritime Services) ที่เรียกว่า RTCM SC104
        Trimble ตระกูล DSM เป็นเครื่องแบบ DGPS 5 In 1 (ใช้งาน DGPS ได้ทุกรูปแบบและใช้งานในโหมด RTK ได้)
        Diagram การใข้ระบบ DGPS (ภาพจาก http://www.jneuroengrehab.com/content/2/1/28/figure/F2)
        • เครื่อง GPS แบบ RTK(Real Time Kinematic) เป็นระบบที่ใช้เครื่อง GPS แบบสองความถี่ ซึ่งจะเป็นเครื่องที่มีราคาสูงมากกว่ากลุ่มอื่น หลักการคล้ายๆกับแบบ DGPS แบบข้างบนมาก แต่จะให้ค่า Accuracry สูงทั้งค่าพิกัดทางราบและทางดิ่ง อยู่ในระดับหลักเซ็นติเมตร วิธีการคือตั้ง GPS (Base) บนหมุดที่ทราบค่าพิกัด ใช้ Radio Modem หรือโทรศัพท์ระบบ GSM ก็ได้ ทำการส่งข้อมูลปรับแก้ไปให้เครื่อง Rover ที่อาจจะใช้ในงานสำรวจ หรืองานก่อสร้างเช่นงานวางสาย Submarine cable งานตอกเสาเข็มในทะเล การรับส่งข้อมูลใช้โปรโตคอล RTCM และก็มีโปรโตคอลอื่นเช่น CMR ของ Trimble เท่าที่ผมใช้งานมาโปรโตคอล CMR (Compact Measurement Data) ของ Trimble นั้นเสถียรกว่าและใช้ band width น้อยกว่า RTCM
    ตั้ง Base Station แบบ RTK ใช้ GPS Trimble เสาด้านขวาคือเสาส่งวิทยุ Radio Modem
      1. การวัดความลึกของน้ำ (Depth Measurement)

        • การใช้สายหยั่งความลึก (Manual Measurement) เป็นวิธีการดั้งเดิมใช้วัดเป็นจุดๆ ถ้าน้ำไม่ลึกมากใช้ท่อนไม้ยาวๆหรือแ่ท่งเหล็กหยั่งลงไปถึงพื้น อ่านระดับจากหมายที่ทำไว้บนไม้หรือแท่งเหล็ก ถ้าเป็นน้ำลึกอาจจะใช้เชือกทำเป็นสายดิ่ง ด้านปลายผูกด้วยก้อนหินหรืออะไรที่หนักๆ ไม่แกว่งไปตามกระแสน้ำได้ง่ายๆ การวัดแบบนี้ใช้เวลามาก ไม่เหมาะกับพื้นที่ใหญ่ๆ
        บางสถานการณ์ก็ต้องวัดแบบแมนวล ในรูปเป็นชายฝั่งที่มีหินโสโครกมากใช้ ต้องใช้เรือยางวัดความลึกด้วยการใช้สายดิ่ง
        บางสถานการณ์ก็เป็นแบบนี้ เรือสำรวจเข้าไม่ได้ก็ต้องใช้การเดินวัดแบบ RTK
        หรือจะเป็นแบบนี้ (ภาพนี้ดูเอาสนุกนะครับ จาก www.bfmcorporation.com)
        • เครื่องหยั่งความลึกของน้ำ (Echo Sounder) ใช้หลักการคลี่นเสียง(Sonar) ความถี่ประมาณ 20 – 200 KHz ทำการส่งคลี่นจากเครื่องเดินทางผ่านมวลของน้ำแล้วสะท้อนกลับที่พื้นท้องน้ำ ถ้าทราบความเร็วของคลื่นเสียง ทราบระยะเวลาที่ส่งและรับคลื่น ก็สามารถหาความลึกได้ ส่วนใหญ่แล้วเครื่อง Echo sounder จะติดตั้งที่เรือส่งคลื่นเสียงออกที่หัว Transducer ปัจจุบันเครื่อง Echo sounder มีทั้งแบบ Single beam และ Multibeam ซึ่ง Echo sounder แบบ Multibeam ยังมีราคาแพงอยู่มากแต่ประโยชน์ของเครื่องมือแบบนี้คือสามารถเก็บความลึกแบบกวาดเป็นแนว ดูรูปด้านล่าง รูปขวาจะเห็นว่าเรือสำรวจวิ่งไปและเลี้ยวกลับในรัศมี 80 เมตร สามารถเก็บข้อมูลความลึกได้หมดจะเห็นโขดหินใต้น้ำอยู่ ซึ่ง 2 วิธีแรกจะไม่เห็น ซึ่งต้องซอยแนวสำรวจเพิ่ม เสียเวลาและค่าใช้จ่ายเพิ่ม การใช้ multibeam สิ่งที่ต้องการเพิ่มขึ้นก็คือเครื่องคอมพิวเตอร์ที่ต้องการพลังการประมวลผลสูงๆและโปรแกรมพิเศษ ที่สามารถเก็บข้อมูลและประมวลผลจุดในรูป Point clound ได้ (หลักการคล้ายกัย Lidar แต่ Lidar ใช้แสง laser เป็นตัวแสกน)
    ลักษณะการวัดหยั่งความลึกน้ำ 3 แบบ รูปด้านซ้ายเป็นการใช้สายดิ่ง รูปกลาง Single beam และรูปด้านขวาเป็น Multibeam (ภาพจาก http://celebrating200years.noaa.gov)
    การสำรวจทางน้ำในแม่น้ำขนาดเล็กใช้เรือหางยาวของชาวบ้าน ระบบพิกัดใช้ RTK ความลึกใช้ Echo sounder แบบ Single beam
    Echo sounder แบบ Single beam ของ ODOM Hydrotrac
      1. เครื่องมือบันทึกภาพพื้นผิวท้องทะเล (Side Scan Sonar) ใช้สำหรับแสกนและบันทึกภาพของท้องทะเล หลักการของเครื่องใช้ปล่อยคลื่นเสียงแบบเดียวกันกับ Echo sounder และครวจจับคลื่นเลียงสะท้อนกลับมาและวิเคราะห์ ส่วนประกอบของเครื่องมีอยู่ 3 ส่วนคือ หัวตรวจแบบลาก(Towfish), สายเคเบิลสำหรับรับส่งข้อมูลจาก Towfish และตัวเครื่องประมวลผล (Topside processing unit) การทำงานส่งคลื่นเสียงที่ Towfish จากอุปกรณ์คล้ายๆรูปพัดหมุนส่งคลื่นกวาดไปด้านข้าง ความถี่ของคลื่นจะอยู่ประมาณ 100-900KHz ความถี่มากจะให้ภาพชัดแต่คลื่นเดินทางไปไม่ได้ไกลมาก ความแรงของคลื่นทีสะท้อนมา เครื่องประมวลผลจะสร้างภาพของวัตถุที่อยู่ที่พื้นผิวท้องทะเล
        • รูปด้านล่างเป็นหลักการทำงานของ side scan sonar จะเห็นว่ามี void ตรงกลาง การแสกนจะกวาดไปด้านข้างจึงเรียกว่า side scan
    หลักการทำงานของ Side Scan Sonar (ภาพจาก http://en.wikipedia.org/wiki/Side-scan_sonar)
    แสดงโมเดลการสำรวจด้วย side scan sonar (รูปจาก http://www.starfishsonar.com/technology/sidescan-sonar.htm)
    Side Scan Sonar รุ่นราคาประหยัด เตรียมพร้อมก่อนจะลากหลังเรือสำรวจ
    แสดงกองหินโสโครกใต้น้ำที่ได้จาก side scan sonar
    ภาพของเรือจมที่ Estonia (ภาพจากผู้ผลิต side scan sonar)
    1. เครื่องตรวจวัดชั้นดินใต้ทะเล (Sub Bottom Profiler) เป็นเครื่องมือสำรวจด้านธรณีวิทยาใช้สำหรับหาชั้นดินใต้ท้องทะเล จากผิวท้องทะเล ลึกลงไปที่ความลึกไม่เกิน 500 เมตร
      • การวัดแบบนี้เป็นส่วนหนึ่งของ seismic แต่จะเป็นการวัดที่ระดับตื้นเรียกว่า Shallow seismic reflection profiling หลักการทำงานจะส่งคลื่นไหวสะเทือนซึ่งเป็นคลื่นเสียงที่มีความถี่ต่างๆลงไปใต้พื้นท้องทะเล เมื่อคลี่นเสียงเดินทางผ่านตัวกลางต่างๆคือ น้ำ ชั้นตะกอน (sediment) ชั้นหินดาน (bedrock) ซึ่งมีคุณสมบัติทางกายภาพที่แตกต่างกัน แล้วสะท้อนกลับขึ้นมายังตัวรับสัญญาณคลื่น เครื่องประมวลผลจะแสดงผลออกมาเป็นภาพหน้าตัดข้างคลื่นไหวสะเทือนแสดงลักษณะ ธรณีวิทยาตามแนวเส้นทางเดินเรือสำรวจ (อ้างอิงจาก http://www.panyathai.or.th/wiki/index.php/การสำรวจแร่)
      • ตัวต้นกำเนิดคลื่นเสียงที่มีช่วงความถี่ต่ำ ใช้ตัวต้นกำเนิดคลื่น 4 แบบ คือ Pinger(ความถี่ 2 – 12 KHz ทะลุทะลวงเข้าไปในชั้นดินตั้งแต่ 10 – 50 เมตร) หรือ Boomer (ความถี่ 300 Hz – 3 KHz ทะลุเข้าไปในชั้นดินได้ไม่เกิน 200 เมตร) Sparker (ความถี่ 50 KHz – 4 KHz ทะลุทะลวงเข้าไปในชั้นดินได้ถึง 500 เมตร) และเทคโนโลยีล่าสุดได้แก่ Chirper (1 KHz – 40 KHz ทะลุทะลวงเข้าไปในขั้นดินไม่เกิน 100 เมตร) ดูรูปด้านล่างประกอบ
      ไดอะแกรมลักษณะการทำงานของ Sub-bottom profiler แต่ละแบบ
      การติดตั้งและเตรียมการ Sub-bottom profiler ยี่ห้อ EdgeTech รุ่น 3100-P
      บนเรือสำรวจมี Topside unit, GPS และคอมพิวเตอร์สำหรับรันโปรแกรม Navigation (1 เครื่อง) และโปรแกรมสำหรับ Sub-bottom profiler 1 เครื่อง)

      สำรวจหาท่อแก็ชของปตท. ที่มาบตาพุดใช้ Sub-bottom profiler ยี่ห้อ EdgeTech

Bathymetric survey ต่างจาก Hydrographic survey อย่างไร

  • Bathymetric survey ใช้ในความหมายที่แคบกว่า Hydrographic survey ที่ผมกล่าวไปข้างต้นแล้ว Bathymetric survey คืองานสำรวจวัดความลึกและสร้างแผนที่ภูมิประเทศของท้องน้ำ แสดงจุดความลึก แสดงเส้นชั้นความลึก
  • ก็จบตอนเรื่อง Hydrographic survey เพียงแค่นี้ตอนหน้าจะมาดูเรื่อง Bathymetric survey กัน มี hardware และ software อะไรกันบ้าง มีขั้นตอนการทำงานอย่างไร


การเขียนโปรแกรมต่อ GPS ด้วยคอมโพเน็นต์ OpenGPSX (ภาค 6 ตอนจบ)

เครื่องรับสัญญาณ GPS ที่จะนำมาทดสอบ

  • คงจะเป็นตอนสุดท้ายแล้ว มาลองทดสอบด้วยอุปกรณ์จริงๆ เพื่อทดสอบการรับข้อมูลที่เป็น NMEA จากเครื่องรับ GPS ก่อนหน้านี้ผมเคยลองด้วย GPS Trimble 5700 ด้วยการใช้สาย Serial ต่อที่ Port 2 ของเครื่อง (เครื่องรุ่นนี้มีช่องต่ออยู่ 3 Port) ส่วน Port 1 ใช้โปรแกรม GPS Configuration ที่มากับเครื่อง set ให้ output เป็น NMEA ออกมาทาง Port 2  (Default ของเครื่องจะไม่ได้ตั้งไว้และเป็นเครื่องที่ใช้โหมด Fast Static และ RTK จึงไม่ได้ใช้ NMEA แต่อย่างใด) แต่ก็เจอ bug ของ GPS Configuration อย่างจังคือทุกๆ NMEA สามารถ output มาได้หมดยกเว้น RMC
  • จะลองเครื่อง Garmin มือถือทั้งหมดเป็น USB ซึ่ง OpenGPSX ยังไม่ support ในตอนนี้ ก็เลยมาตกลงที่เครื่อง GPS ตัวเล็กๆ ยี่ห้อ Globalsat รุ่น BT-355 หัวต่อเป็น PS2 มากับเครื่อง Side Scan Sonar ที่บริษัทฯผมซื้อมา พร้อมกับ Keyspan USB 4 Ports Serial Adaptor และ มีหัวต่อ PS2 อยู่ 1 Port

 

BR-355 และ USB 4 Ports Serial Adaptor

มีพอร์ต Serial แล้วทำไมต้องมีพอร์ต PS2

  • ที่จริง Keyspan ตัวนี้หัวต่อเข้ากับคอมพิวเตอร์เป็น USB แปลงเป็น Serial Port ได้ 4 ช่อง เมื่อนำ BR-355 เสียบเข้ากับ Keyspan ด้วยช่อง PS2 จะจอง Serial Port ช่องที่ 3 โดยอัตโนมัติ เมื่อมี serial port แล้วทำไมต้องทำ PS2 มาด้วย คือถ้ายังจำกันได้พอร์ต PS2 บนเครื่องคอมพิวเตอร์ตั้งโต๊ะส่วนใหญ่เราจะใช้เสียบเมาส์และคีย์บอร์ด ซึ่งพอร์ต PS2 จะจ่ายกระแสไฟให้ด้วยคิดว่าประมาณ 5 VDC ไม่มากนักแต่เมาส์กับคีย์บอร์ดก็ไม่ได้กินไฟอะไรมากนัก ส่วน serial port แบบ RS232 ไม่ได้ออกแบบให้จ่ายกระแสไฟให้อุปกรณ์ เพราะมีหนึ่งเส้นส่งข้อมุล(Tx) อีกหนึ่งเส้นรับข้อมูล(RX) เส้นที่สามเป็น ground อาจจะมีคนแย้งว่าสมัยแต่ก่อนมีเมาส์แบบ serial เอาไฟที่ไหนมาใช้ก็มีวิธีดึงไฟมาใช้ได้จาก serial port สนใจลองไปดูที่ Get power out of PC Serial port

แปลงเป็นหัวต่อแบบ Serial port

  • ตอนแรกผมคิดว่าตัว Keyspan ใน Linux คงไม่ support ผมจะเริ่มดัดแปลง หัวต่อ PS2 ตัดแล้วนำมาบัดกรีเข้ากับหัวต่อ Serial port ที่ซื้อมาใหม่เป็นตัวเมีย (DB-9) ถือเป็นโครงการทำกันสนุกๆนะครับ และมาดูกันว่าได้ผลดีหรือว่าแป๊ก

 

หัวต่อแบบ Serial DB-9 ตัวเมีย กับ GPS BR-355

 

  • จัดการตัดหัวต่อ PS2 ออกแล้วปอกสายพร้อมบัดกรี

 

ตัดหัวต่อ PS2 ออกแล้วปอกสาย

 

  • เตรียมหัวแร้งบัดกรีให้พร้อม

 

หัวแร้งบัดกรีของจีนแดงราคาประมาณ 100 บาท

 

  • ดูไดอะแกรมการต่อสาย (wiring diagram) ของหัวต่อ PS2 ที่พิน 1 และพิน 2 เป็นสายไฟขั้วลบและบวกตามลำดับ ส่วนพิน 4 และ พิน 5 เป็นสายส่งและรับข้อมูลตามลำดับ ผมนำมาต่อกับ serial port คือ
    • พิน 1 (PS2) – พิน 5 (DB-9)
    • พิน 4 (PS2) – พิน 3 (DB-9)
    • พิน 5 (PS2) – พิน 2 (DB-9)

 

Wiring diagram of BR-355 (PS2)

 

  • เสร็จจากการบัดกรีแล้วผมต่อสายไฟขาวแดงและมีสวิตส์ไฟด้วยเพื่อปิดเปิด

 

ต่อเสร็จแล้วพร้อมสวิตส์ไฟเปิดปิด

 

ปัญหายังไม่จบไม่มี Power supply จ่ายให้ GPS

  • ถ้าดูรูปข้างบนแล้วจะเห็นว่าทำไมต้องต่อ PS2 เข้าไปอีก(เพียงสองเส้นคือดำแดง)  ตอนนี้ถึงผมถึงกับบางอ้อว่า serial ไม่ได้ออกแบบมาให้จ่ายไฟให้กับอุปกรณ์ได้ ยังไงๆต้องมีแหล่งจ่ายไฟให้กับ gps ฺBR-355 อยู่ดี วิธีแก้ไขต้องใช้อุปกรณ์ DC to DC 5V Step up มาช่วยรูปด้านล่างใช้ถ่าน AA 2 ก้อนแล้วนำมาจ่ายไฟให้ GPS ผ่านสายไฟแดงดำด้วยการถอดเอาหัวต่อ PS2 ทิ้ง

 

5V DC to DC Step Up – 2xAA

 

ต่ออุปกรณ์แล้วทดสอบ

  • ตอนนี้ผมยังไม่ได้ซื้อ 5V DC to DC Step Up – 2xAA ในการทดสอบจะใช้พอร์ต PS2 จาก Keyspan ไปพลางๆก่อน

 

ต่อ GPS เข้าคอมพิวเตอร์เพื่อทดสอบคอมโพเน็นต์ OpenGPSX

 

ทดสอบโปรแกรมบนวินโดส์

  • รัน Lazarus เปิด project “OpenGPSTest.lpi” แล้วกด F9 เพื่อรัน เมื่อโปรแกรมป๊อบขึ้นมาแล้วคลิกที่เมนู GPS > Settings

 

โปรแกรมทดสอบการใช้คอมโพเน็นต์

 

  • เมื่อเสียบตัว Keyspan เข้ากับเครื่องคอมพิวเตอร์ driver ของ keyspan จะเลือก Com port ที่ว่างๆให้ เครื่องผมตัว driver เลือก 4 port เรียงดังนี้ Com5, Com6, Com7 และ Com12 ตามลำดับ ผมเสียบที่ช่องที่สามจะเป็น Com7 แต่ทั้งนี้ถ้าไม่พอใจสามารถตั้งค่าพอร์ตใหม่ได้ที่ Device manager สังเกตว่าเครื่องรับ gps ตัวนี้ตั้งค่า baud rate จากโรงงานมา 4800 b/s เท่าที่ผมทดสอบไม่สามารถตั้งค่าอื่นได้ ซึ่งที่ผมเคยกล่าวไปแล้วบาง sentence เช่น $GPGSV อาจจะหาย

 

ตั้งค่า Com port ส่วน Baud rate ตั้งได้ 4800 b/s ได้อย่างเดียว

 

  • ลองต่อ gps ด้วยเมนู GPS > Connect แล้วตอบ Yes เพื่อ confirm ผมลองโปรแกรมนี้บนทางด่วน บูรพาวิถี ตั้ง property “TargetCoordinate” ของ GPSTarget ที่ object inspector เป็น Latitude = 12.691 และ Longitude = 101.235 รูปด้านล่างเป็นการทำงานของโปรแกรมได้จากการจับภาพหน้าจอ

รูปแสดงการต่อกับ serial port ซึ่งใช้งานได้ดี

ทดสอบโปรแกรมบน Ubuntu Linux

  • มาลองดูฝั่ง Linux ซึ่งโอเอสนี้ผมใช้อยู่ 2 distro คือ Ubuntu กับ PCLinuxOS ซึ่ง Ubuntu ที่ผมใช้เป็น Gnome ส่วน PCLinuxOS รุ่นที่ใช้เป็น KDE ก็ชอบทั้ง Gnome และ KDE ไม่เทใจไปทางใดทางหนึ่งจนหมด แต่ถ้าใช้งานแล้วลื่นไหล ไม่ค่อยมีอะไรมากวนใจก็ต้องยกให้ Ubuntu ส่วน Lazarus ที่ติดตั้งใน PCLinuxOS ผมใช้ Qt เป็น Widget  แต่ Lazarus crash แค่เปิดเมนูก็พังแล้ว แต่ถ้าปรับมาใช้ Gtk2 เป็น Widget กลับทำงานได้ไม่มีปัญหาใน PCLinuxOS ตอนนี้ก็จะลองได้ใน Ubuntu ให้ดูเท่านั้น

ตรวจสอบ Hardware

  • ผมลองเสียบ Keyspan ว่า Linux จะมองเห็นหรือไม่ลองตรวจสอบดูด้วย command line ด้วยการ cd เข้าไปในไดเรคทอรี /dev/ แล้วดูว่ามี tty*** จะเห็น ttyUSB0, ttyUSB1, ttyUSB2 และ ttyUSB3 ผมสงสัยว่าน่าจะเป็น Keyspan

 

ตรวจ device ง่ายๆในไดเรคทอรี /dev/

 

    • ตรวจสอบด้วยคำสั่ง dmesg เพื่อความมั่นใจ จะเห็น Keyspan ขึ้นมาด้วยข้อความดังรูปด้านล่าง และ 4 ports ของ Keyspan จะ attach เข้าเป็น device เรียงดังนี้ ttyUSB0, ttyUSB1, ttyUSB2 และ ttyUSB3 ตามลำดับ ผมเสียบ BR-355 เข้าที่ port 1

 

ตรวจสอบด้วย dmesg จะเห็น Keyspan

 

 

    • รัน Lazarus แล้วเปิดโปรเจค OpenGPSTest.lpi กด F9 รันโปรแกรมคลิกที่เมนู GPS > Settings ผมตั้ง Com port : เป็น /dev/ttyUSB0 ต้องพิมพ์เข้าไปเพราะไม่ได้เตรียมไว้ในลิสต์ (อนาคตอาจจะออกแบบให้ค้นหา port แบบ auto)

 

 

 

    • คลิกที่เมนู GPS > Connect ถ้าไม่มีอะไรผิดพลาดจะเห็นข้อมูลไหลเข้าเหมือนรูปด้านล่าง ที่ผ่านมาการใช้ Keyspan แบบที่ผมใช้อยู่พบว่า ใน Kernel ของ Linux ได้ implement เข้าไปเป็นที่เรียบร้อย และผมคิดว่า hardware ประเภท USB to Serial ทั้งหลายน่าจะใช้ได้หมดใน Linux ทำไมถึงต้อง support เพราะว่ามีอุปกรณ์ที่ใช้งานในโลกนี้มากมายที่ยังใช้ Com port อยู่เช่นในอุปกรณ์ในโรงงาน เครื่องมือแพทย์ อุปกรณ์สื่อสาร เป็นต้น ก็มี hardware ส่วนหนึ่งเท่านั้นที่หันมาใช้ USB โดยตรง

 

ทดสอบใน Ubuntu
  • เท่าที่ลองใน Linux พบว่าความไม่เสถียรเมื่อเสียบ Keyspan เข้าไป Ubuntu มีอาการแฮงค์บ่อยครั้ง ผมเลยย้ายมาที่ Com port ที่ติดมากับเครื่อง Notebook ถ้าเป็นวินโดส์ Com1 ส่วนใน Linux จะเป็น /dev/ttyS0 ไม่มีปัญหาครับ
  • ก็ขอจบตอนสุดท้ายแค่นี้ แต่ OpenGPSX ก็จะยังพัฒนาต่อไปครับ ผมเองตอนนี้กำลัง port โปรแกรมที่เขียนด้วย Delphi มายัง Lazarus เพื่อให้โปรแกรมที่เขียนไว้สามารถนำไปใช้บน Linux ได้ แต่ก็พบหลายๆอย่างที่โค้ดทำงานได้ดีใน Delphi แต่กลับมาแป๊กบน Lazarus ซึ่งต้องใช้เวลาพอสมควรในการแก้ไขให้ทำงานได้