ประเภทลักษณะของโค้ง (Type of Curve) โค้งในงานถนน งานรถไฟมีสองแบบคือโค้งราบ (Horizontal Curve) และโค้งดิ่ง (Vertical Curve) โค้งราบเป็นตัวกำหนดรูปรางและทิศทางของถนนในแนวราบ ส่วนโค้งดิ่งเป็นโค้งที่รองรับลักษณะภูมิประเทศขึ้นๆลงๆ การออกแบบโค้งสำหรับงานวิศวกรรมงานถนนนั้นเพื่อให้มีความปลอดภัยต่อยวดยานผู้ขับขี่ตลอดทั้งผู้โดยสาร ประเภทโค้งดิ่ง (Type of Vertical Curve) โค้งดิ่งจะแบ่งเป็นเส้นโค้งพาราโบลา (Parabola Vertical Curve) ลักษณะนี้จะเป็นโค้งที่นิยมกันมากที่สุดในโลกนี้แทบจะว่า 99% ก็ได้เพราะเวลารถยนต์หรือรถไฟเข้าโค้งนี้จะมีความนุ่มนวลมากที่สุด และเส้นโค้งประเภทต่อไปคือเส้นโค้งวงกลม (Circular Vertical Curve) ตามที่ได้ยินมาคือโค้งวงกลมนี้จะมีความสบายและความนุ่มนวลน้อยกว่าเส้นโค้งพาราโบลา จึงมีความนิยมน้อยกว่า…
Author: priabroy
ติดปีกเครื่องคิดเลขเทพ 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)…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 3 โปรแกรมคำนวณหาระยะทางจากค่าพิกัดภูมิศาสตร์ (Geodetic Dist Calc)
มาถึงตอนที่ 3 ขอนำเสนอโปรแกรมคำนวณหาระยะทางที่สั้นที่สุดบนทรงรีด้วยสูตรการคำนวณของ Vincenty และระยะทางที่สั้นที่สุดบนทรงกลมด้วยสูตรของ Haversine โดยที่กำหนดค่าพิกัดภูมิศาสตร์ (แลตติจูด/ลองจิจูด) มาให้ 2 จุด Geodesic Distance ระยะทางที่สั้นที่สุดบนทรงรี (Ellipsoid) จะเรียกว่า Geodesic distance ผมใช้ไลบรารี GeographicLib ที่พัฒนาโดย Charles F. F. Karney ไลบรารีตัวนี้ใช้ c standard library เฉพาะ math อย่างเดียว ดังนั้นมั่นใจได้เลยว่าสามารถเอามาคอมไพล์บนเครื่องคิดเลข Casio…
แนะนำโปรแกรมมิ่งภาษาซีบนเครื่องคิดเลข Casio fx-9860G II SD ด้วยเครื่องมือพัฒนา SDK ของ Casio
เคยเกริ่นมาก่อนว่าต้องการเขียนบทความนี้ขึ้นมาเพื่อวงการศึกษาบ้านเราที่สนใจเรื่องโปรแกรมมิ่งบนเครื่องคิดเลขสามารถจะพัฒนาโปรแกรมภาษาซีบน Casio fx-9860G II SD หรือรุ่นที่ใกล้เคียงนี้ได้ โดยที่มีไม่มีข้อจำกัดด้านภาษาโปรแกรมมิ่ง เหมือนกับภาษา casio basic อาจจะส่งผลให้ในอนาคต มีโปรแกรมที่พัฒนาโดยบุคคลากรท่านอื่นๆ เข้ามาสู่วงการนี้มากขึ้น และได้ตัวโปรแกรมงานสำรวจที่มีความหลากหลายและความสามารถมากขึ้นทั้งนี้เพื่อขยายขีดความสามารถโปรแกรมบนเครื่องคิดเลขให้สามารถคิดงานที่ยาก ซับซ้อนได้ บางครั้งเกือบจะเทียบเท่าโปรแกรมที่ใช้งานบนคอมพิวเตอร์ เครื่องมือพัฒนา Software Development Kit (SDK) เครื่องมือตัวนี้เดิมทีสามารถดาวน์โหลดที่เว็บไซต์ตามลิ๊งค์นี้ได้ http://edu.casio.com/support/en/agreement.html#2 ขั้นตอนแรกยอมรับเงื่อนไขแล้วเลื่อนหน้าไปด้านล่างๆจะเห็นเครื่องคิดเลขรุ่น fx-9860 เมื่อคลิกลิ๊งค์ SDK เข้าไปจะเห็นว่าลิ๊งค์เครื่องมือพัฒนาโปรแกรมขาด แต่คู่มือยังสามารถดาวน์โหลดมาอ่านศึกษาได้ ผมอาศัยลงใต้ดินที่มีคนปล่อยให้ดาวน์โหลด (ถ้าใครอยากได้เครื่องมือตัวนี้ก็ขอมาหลังไมค์กันได้ครับ) และดาวน์โหลดโปรแกรม FA-124 มาด้วยอยู่ในหมวด Support…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 2 โปรแกรมคำนวณค่าพิกัดจุดศูนย์กลางวงกลม (Circle Center Calc)
จุดศูนย์กลางวงกลมนั้นสำคัญไฉน ในงานสำรวจสำหรับการก่อสร้างเช่นเข็มเจาะ ในขั้นตอนแรกช่างสำรวจจะวางตำแหน่งจุดศูนย์กลางของเสาเข็ม จากนั้นจะวัด offset อย่างน้อยสามด้านตั้งฉากแล้วตอกเหล็กเช่นเหล็กข้ออ้อยลงไปเป็นหมาย ขั้นตอนต่อไปจะปักปลอกเหล็ก (Casing) ในชั้นดินอ่อนเพื่อกันดินทลายตัวลง ในขั้นตอนนี้ช่วงการปักปลอกเหล็กจะมีการวัดระยะจากหมายที่ offset ไว้เพื่อให้ปลอกเหล็กอยู่ในตำแหน่งทั้งทางราบและทางดิ่ง เมื่อปลอกเหล็กลงไปสุดแล้ว เพื่อความมั่นใจว่าได้ตำแหน่งที่ถูกต้องแล้ว จะสำรวจเพื่อเก็บค่าพิกัดคือจุดศูนย์กลางของปลอกเหล็ก แต่คำถามคือจะวัดค่าพิกัดจุดศูนย์กลางของปลอกเหล็กวงกลมได้อย่างไร ในทางปฏิบัติบางครั้งจะใช้ตะแกรงเหล็กปิดปากปลอกเหล็ก แล้วช่างสำรวจจะใช้ตลับเมตรวัดระยะครึ่งหนึ่งของเส้นผ่าศูนย์กลางสองด้านตั้งฉากกันแล้วทำเครื่องหมายไว้บนกระดานไม้ จากนั้นจึงจะวัดค่าพิกัดโดยการตั้งเป้าปริซึม ถ้าใช้มินิปริซึม ตั้งต่ำจะให้ค่าที่ถูกต้องดียิ่งขึ้น แต่ปัญหาคือตอนใช้ตลับเมตรวัดกึ่งกลาง (เส้นที่ผ่านจุดศูนย์กลางคือเส้นที่ยาวที่สุด) เพื่อหาตำแหน่งศูนย์กลางนั้นใช้เวลาพอสมควรและมี error จากการคาดคะเน วิธีต่อไปที่จะนำเสนอเพื่อทำให้การวัดค่าพิกัดทำได้เร็วขึ้น จะใช้สูตรทางคณิตศาสตร์มาช่วย โดยการวัดค่าพิกัดสามจุดโดยแบ่งให้ระยะห่างแต่ละจุดเท่าๆกัน จากนั้นช่างสำรวจจะใช้เครื่องคิดเลข คำนวณหาค่าพิกัดจุดศูนย์กลาง วิธีการนี้จะใช้เวลารวดเร็วกว่าวิธีแรกพอสมควร…
ติดปีกเครื่องคิดเลขเทพ Casio fx 9860G II SD ด้วยโปรแกรมภาษาซีบน AddIn ตอนที่ 1 โปรแกรมแปลงพิกัดภูมิศาสตร์ (Geographic Calc)
รอคอยมานานแต่ไม่รู้ว่าสิ่งที่รอคอยมันคืออะไร สำหรับคนที่เคยเขียนโปรแกรมลงเครื่องคิดเลขคาสิโอ ถ้าเคยเขียนโปรแกรมมิ่งบนระบบใหญ่ๆมาก่อนเช่นจาวา ซี หรือไพทอน จะรู้สึกว่าโดนมัดมือมัดเท้าทำอะไรไม่ถนัด ภาษาเบสิคของคาสิโอ (basic casio) ก็ดูจะหน่อมแน๊ม ตัวแปรก็จำกัดไม่กี่ตัว เมมโมรีสำหรับเก็บโปรแกรมก็น้อยนิดเดียว เขียนฟังก์ชั่นก็ไม่ถนัด ก็เลยได้แต่โปรแกรมอะไรที่ง่ายๆ ใช้ตัวแปรไม่มาก แต่ไม่นานที่ผ่านมา เผอิญไปค้นหาในอินเทอร์เน็ต โดยที่หาโปรแกรมแบบ basic casio บนเครื่องคิดเลขระดับเทพในวงการสำรวจบ้านเราคือ fx-9860G II SD ที่ผมเคยร่ำๆจะซื้อหามาใช้หลายเที่ยวแต่ติดที่ความรู้สึกว่าแพงไปนิดเมื่อเทียบกับ fx-5800P ที่ใช้อยู่ โปรแกรมที่ค้นหาก็ไม่ได้มีอะไรมากแค่เอามาเปรียบเทียบอัลกอริทึ่มที่ผมมีอยู่ บังเอิญไปเจอว่าการเขียนโปรแกรม AddIn ต้องใช้ SDK…
DJI Spark – เมื่อต้องลองของเอาโดรนเซลฟี่ไปบินทำแผนที่ภาพถ่ายทางอากาศ
DJI Spark ผมมีโอกาสได้ซื้อโดรนตัวแรกสุดในชีวิตเป็นโดรนของ DJI รุ่นเล็กสุดมาลองใช้งานดู สปาร์คถูกออกแบบมาเพื่อด้านสันทนาการเป็นหลักครับ ถ่ายรูปถ่ายคลิปเซลฟี่ มีลูกเล่นเยอะมาก มีตังค์เหลือใช้ก็ซื้อมาใช้ได้ ไม่ผิดหวังแม้แต่ประการใด ข้อดี ใช้ง่าย ราคาย่อมเยาว์ บังคับได้สามอย่างคือทั้งภาษาท่าทางมือ (Gesture), โทรศัพท์มือถือต่อตรงกับโดรน และ รีโมทคอนโทรล (Remote control) ถ้าใช้รีโมทคอนโทรลต้องซื้อมาต่างหากหรือซื้อมารวมเรียกว่า Fly More Combo ข้อเสีย สำหรับผมแล้ว ปัญหาประการที่หนึ่งคือสปาร์คไม่สนับสนุนการบินตามเส้นทางที่เรากำหนด (Waypoint) นี่เป็นปัญหาหนักใจสำหรับภารกิจนี้ ผมพยายามดูแอปอื่นที่ไม่ใช่ DJI…
คอมไพล์ Python Script เป็นไฟล์ Executable ด้วย PyInstaller
PyInstaller คือเครื่องมือที่ช่วยการแปลงโปรแกรมที่เขียนด้วยไพทอนเป็น execute binary file ที่สามารถนำไปรันได้โดยที่เครื่องคอมพิวเตอร์ปลายทางไม่ต้องติดตั้งไพทอน สำหรับ PyInstaller เป็น cross-platform สามารถใช้งานได้บนวินโดส์ แมค และลีนุกซ์ สนับสนุนไพทอนรุ่น 2.7 และ ไพทอน รุ่น 3.3 ถึง 3.6 จุดมุ่งหมายของ PyInstaller คือต้องการช่วยผู้ใช้ในการแปลงโปรแกรมไพทอน ที่ใช้โมดูลไลบรารีภายนอกเช่น Matplotlib, DJango, wxPython, PyQt เป็นต้น ให้สามารถทำได้ง่ายสะดวก ติดตั้ง…