ไพทอนบนเครื่องคิดเลข ช่วงนี้ผมมีโอกาสทำงานใกล้ชิดกับภาคสนาม ทำให้มีโอกาสได้จับและใช้เครื่องคิดเลขมากกว่าปกติ ในเวลาที่ผ่านมาไม่ถึงเดือนผมได้ซื้อเครื่องคิดเลข Casio fx-CG50 Prizm เคสสีขาว ที่ซื้อมาเพราะทราบว่าถ้า update OS เป็นรุ่น 3.20 จะสามารถใช้ ไพทอน (Python) ได้ ก็ขอหมายเหตุสักนิดว่าเป็นไมโครไพทอน (Micropython) ที่ทางทีมงาน Micropython ได้พอร์ตออกมาให้มีขนาดเล็กเพื่อเอาไปรันในบอร์ด iOT ได้ หรือบอร์ดที่เป็นไมโครคอนโทรลเลอร์ทั้งหลาย เน้นขนาดเล็ก หน่วยความจำต่ำ กินไฟน้อย ต่ออินเทอร์เน็ตได้ในตัว ผมจะไม่มุ่งไปทางนี้หรอกครับ ในบทความนี้ แต่จะพูดถึงเครื่องคิดเลขคาสิโอ…
Category: Surveying
การเล็งสกัดย้อน (Resection) ด้วยการวัดมุมภายใน ระยะทางและและมุมแบริ่งด้วยวิธีการคำนวณแบบ Least Squares (ตอนที่ 2)
ตั้งสมการ Observation Equation ขอทบทวน ค่า aik, bik เรียกว่า direction coefficients และ cik, dik เรียกว่า distance coefficients ในกรณีวัดมุมเล็งสกัดย้อนจากสมการด้านบนและเอาแทนที่ในสมการด้านล่าง เขียนให้ดูง่ายดังนี้ zi คือค่าอะซิมัทเริ่มต้น เราจะมาคำนวณหาค่า aik, bik กันก่อน มาคำนวณที่จุด P ค่าพิกัด N = 193939.897 E = 110879.464…
การเล็งสกัดย้อน (Resection) ด้วยการวัดมุมภายใน ระยะทางและและมุมแบริ่งด้วยวิธีการคำนวณแบบ Least Squares (ตอนที่ 1)
จากที่เขียนโปรแกรมสำหรับเครื่องคิดเลขคำนวณเล็งสกัดย้อนสำหรับเครื่องคิดเลข Casio fx-9860G II SD ทำให้นึกถึงวิธีการคำนวณแบบ least squares ที่เป็นพื้นฐานเคยร่ำเรียนมา โดยเฉพาะการรังวัดในปัจจุบันที่การรังวัดระยะทางด้วยกล้องประมวลผลรวมทำได้ง่าย เมื่อรวมกับการรังวัดมุม จะทำให้มีค่าเกินหรือ redundant มาคำนวณในวิธีแบบ least square ได้ การรังวัดแบบเล็งสกัดย้อนบางตำราเรียกว่า free station การวัดเล็งสกัดย้อนในยุคแรกจะวัดมุมจากหมุดสถานีหลักฐานกันเป็นหลัก และหมุดสถานีหลักฐานต้องมีค่าพิกัดและมีจำนวนอย่างน้อยสามหมุด ดังนั้นการวัดมุมอย่างน้อยสองมุมจะเพียงพอต่อการมาคำนวณ ในบทความนี้ผมจะพาไปทัวร์การคำนวณวิธี least squares ด้วยการใช้การรังวัดผสมประกอบด้วยการวัดมุมภายใน วัดระยะทาง และการวัดมุมแบริ่งหรือการวัดภาคทิศ จากนั้นจะยกตัวอย่างพร้อมทั้งวิธีการคำนวณ ปิดท้ายทดสอบผลลัพธ์การคำนวณด้วยโปรแกรม Microsurvey…
Update: โปรแกรมคำนวณเล็งสกัดย้อนฉบับปรับปรุง (Resection) สำหรับเครื่องคิดเลขเทพ Casio fx 9860G II SD
ผมเขียนเรื่องการคำนวณเล็งสกัดย้อน (Resection) จากตอนก่อนหน้านี้ด้วยอัลกอริทีมใหม่ของ Josep M. Font-Llagunes อ่านได้ที่ ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 5 โปรแกรมคำนวณ Resection ด้วยอัลกอริทึ่มสมัยใหม่ ในตอนนี้ผมจะมาเรียบเรียงโปรแกรมด้วยไลบรารี MyLib ที่ใช้ก่อนหน้านี้มาหลายโปรแกรมแล้ว โดยในครั้งนี้จะใช้อัลกอริทึมหลายๆตัวมาคำนวณเพื่อเปรียบเทียบกันดู เมื่อคำนวณแล้วมีรูปกราฟฟิคหยาบๆให้ดูพอกล้อมแกล้ม การคำนวณเล็งสกัดย้อน หรือ Resection Problem มีมานานแล้วหลักๆแล้ววิธีการคำนวณแบ่งเป็น 2 วิธีหลักๆคือ แบบการตรีโกณมิติ…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 9 โปรแกรมคำนวณหาจุดตัด (Intersection)
งานในด้านสำรวจเป็นงานที่ต้องเกี่ยวข้องกับ Geometry บน plane เป็นส่วนใหญ่ ในบางครั้งอาจจะมีโจทย์ที่ต้องคำนวณหา จุดตัดระหว่างเส้นตรงสองเส้น หรือเส้นตรงกับวงกลม หรือวงกลมกับวงกลม โดยที่เส้นตรงอาจจะทราบค่าพิกัดหัวและท้าย หรือทราบค่าพิกัดเพียงหนึ่งจุดและค่าอะซิมัท ส่วนวงกลมนั้นจะต้องทราบค่าพิกัดจุดศูนย์กลางและรัศมี สูตรการคำนวณไม่ได้ยาก สมัยนี้โจทย์พวกนี้เราใช้โปรแกรมด้าน CAD เขียนแบบช่วยเสียเป็นส่วนใหญ่ อย่างที่ผมเคยบอกออกไปครับ ถ้าช่างสำรวจเรามีโอกาสได้ใช้สมองคิดด้าน geometry บ้างและสามารถใช้เครื่องคิดเลขเป็นตัวช่วย ก็จะสามารถพัฒนาทักษะด้านนี้พอสมควร โปรแกรมคำนวณหาจุดตัด (Intersection) โปรแกรมเขียนไว้นานแล้ว แต่มีโอกาสมาปรับแก้ใหม่ให้สามารถคำนวณจุดสัมผัส เช่นเส้นตรงกับวงกลมโดยสามารถตั้ง Tolerance ได้ ผมตั้งไว้ที่ 1 มม. ขอขยายความว่าเราสามารถหาจุดตัดเส้นตรงกับวงกลมได้เป๊ะๆ…
Update: โปรแกรมแปลงค่าพิกัดภูมิศาสตร์ Geographic Calculator (GeoCalc) บนเครื่องคิดเลข Casio fx-9860G II SD
Geographic Calculator สืบเนื่องจากตอนก่อนหน้านี้ผมได้นำเสนอโปรแกรมแปลงพิกัด Geographic Calculator แบบไม่ได้ใช้ไลบรารีช่วยเรื่อง User Interface โปรแกรมมีลักษณะง่ายๆ เปิดมาเจอเมนูเลือกลักษณะที่จะคำนวณ จากนั้นโปรแกรมจะถามค่าพิกัดที่ต้องการแปลงแล้วคำนวณให้ ข้อดีคือใช้ง่าย ข้อเสียถ้าป้อนข้อมูลผิดพลาด จะย้อนกลับไม่ได้ ต้องเดินหน้าผิดไปจนจบ แล้วค่อยย้อนกลับมาอีกที เปลี่ยนรูปแบบการติดต่อกับผู้ใช้ด้วยไลบรารี MyLib ไลบรารี MyLib เป็นไลบรารีภาษาซีเล็กๆที่ผู้พัฒนาใช้นาม hayzel ได้เขียนไว้เพื่อใช้บนเครื่องคิดเลข Casio fx-9860G II SD ผมนำมาใช้และชอบ ทำให้มีแรงใจที่จะเขียนโปรแกรมบนเครื่องคิดเลขรุ่นเทพรุ่นนี้ได้มาหลายโปรแกรม และก็เหมือนเดิมครับว่าโปรแกรมที่ผมเขียนนั้นใช้งานได้ฟรี (Freely Usability)…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 7 โปรแกรมคำนวณโค้งราบ (Horizontal Curve)
โปรแกรมคำนวณโค้งราบ HCurve สำหรับเครื่องคิดเลข Casio fx-9860 G ช่วงนี้อยู่ในชุดซีรี่ย์โปรแกรมเครื่องคิดเลข Casio fx-9860G ที่ใช้ไลบรารี MyLib ต่อไปขอนำเสนอโปรแกรมคำนวณโค้งราบ (Simple Horizontal Curve) ตัวโปรแกรมพัฒนาด้วยภาษาซี ใช้เป็นโปรแกรม AddIn ดังรูปด้านล่าง องค์ประกอบของโค้งราบ (Elements of Horizontal Curve) คำนิยาม (Abbrivations) R – Radius คือรัศมีของโค้งราบ รัศมีจะตั้งฉากกับเส้นสัมผัสวงกลมเสมอ PC…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 5 โปรแกรมคำนวณ Resection ด้วยอัลกอริทึ่มสมัยใหม่
การเล็งสกัดย้อน (Resection) และความเป็นมา ในที่สุดก็มาถึงตอนที่ 5 ตอนที่ผมใช้เวลามากที่สุดในการ implement อัลกอริทึ่มที่ใช้คำนวณปัญหา Resection จาก 3 จุดที่กำหนด (Three Points Resection Problem) เป็นที่ทราบกันดีว่าการคำนวณ Resection นั้นนักคณิตศาสตร์ได้คิดค้นกันมาหลายร้อยปีแล้ว มีอัลกอริทึ่มรวมๆกันไม่น้อยกว่า 500 อัลกอริทึ่ม แต่บางอัลกอริทึ่มนั้นอายุเก่าแก่มากใช้การคำนวณหาด้วยการวาดลงบนกระดาษ ถ้าจะคัดออกมาจริงๆที่ใช้กันในปัจจุบันมีประมาณ 18 อัลกอริทึ่มหลักๆ และสามารถนำมา implement เป็นโปรแกรมในคอมพิวเตอร์ได้ ก่อนจะไปต่อกันลึกๆมาดูกันว่า Resection คืออะไร…
เมื่อผมลองดี โมดิฟายด์แอพ DJI GO 4 ด้วย Deejayeye-Modder สำหรับโดรน DJI Spark
จากลองของเป็นลองดี จากตอนที่แล้วเมื่อต้องลองของเอาโดรนเซลฟี่ DJI Spark มาบินทำแผนที่ภาพถ่ายทางอากาศ ตอนนี้เลยคำว่า”ลองของ”ไปไกลหลายช่วงตัวแล้ว เพราะแพ็ตช์หรือโมดิฟายด์แอพ DJI GO 4 เรียกง่ายว่าเป็นการ “ลองดี” ไปแล้ว เพื่อนำโดรนมาบินทำแผนที่ภาพถ่ายทางอากาศโดยที่เปิดหรือใช้ฟีเจอร์ที่ซ่อนไว้ ตอนนี้ฟีเจอร์เทียบได้กับโดรนรุ่นใหญ่เช่น Phantom 4 Pro หรือ Mavic คำเตือน สิ่งที่ผมกำลังจะเล่าบอกออกไป เป็นการใช้โดรนโดยที่ไม่หวังการรับประกัน ถ้าใครอยากจะลองดีก็ให้เป็นความสมัครใจของตัวท่านเอง ผมจะไม่รับผิดชอบต่อความเสียหายของโดรนของท่าน สิ่งที่จะมาเล่าสู่กันฟังถือว่าเป็นประสบการณ์และความรู้ โดยตัวผมเองเป็นคนชอบไอที ชอบเขียนโปรแกรมเป็นงานอดิเรก นิสัยส่วนตัวกับด้านไอทีชอบล้วง แคะ แกะ เกา…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 4 โปรแกรมพื้นฐานงานสำรวจชุดที่ 1 (COGO SSE 1)
COGO (Coordinate Geometry) ผมพยายามจะแปลคำนี้เป็นภาษาไทยอยู่นานทีเดียว แต่สุดท้ายขอทับศัพท์ดีกว่า จริงๆแล้วงานสำรวจคืองานที่เกี่ยวกับทรงเรขาคณิต (Geometry) อยู่แล้ว และต้องสามารถระบุค่าพิกัด (Coordinate) ทุกๆจุดได้บนเรขาคณิตนั้นๆ ความเกี่ยวข้องระหว่างรูปทรงเรขาคณติกับค่าพิกัดจะเกี่ยวข้องกันด้วยมุมและระยะทางเป็นส่วนใหญ่ Selected Serie 1 (SSE 1) คำนี้เอามันครับ ผมนึกถึงโปรแกรมตระกูลไมโครสเตชัน (Microstation) ที่มักจะใช้คำนี้บอกรุนของโปรแกรม ดังนั้นคำว่า Selected Serie 1 คำแปลก็ประมาณว่าเลือกสรรแล้วชุดที่ 1 โปรแกรมพื้นฐานงานสำรวจชุดที่ 1 (COGO SSE 1)…