เริ่มต้นจากคำถามง่ายๆ เริ่มจากคำถามว่า “ถ้าฝนตกหนักแบบฝน 50 ปี น้ำพื้นที่ RESA จะระบายทันไหม?” คำถามนี้ฟังดูเหมือนเป็นงานของวิศวกรโยธาหรือวิศวกรชลประทาน แต่ถ้าคิดดูดีๆ — คนที่มีพื้นผิวออกแบบ (Design Surface) อยู่ในมือ คนที่รู้ว่าน้ำไหลไปทางไหน และคนทำอาชีพที่วัดพื้นที่และระดับมาตลอด — นั่นคือวิศวกรสำรวจ ผมเรียน Hydrology มาในมหาวิทยาลัย เนื่องจากรู้สึกว่ายากและคิดว่าคงไม่มีโอกาสได้ใช้ เกรดที่ออกมาจึงน่าสงสาร จำได้ว่าได้เกรด C ไปแบบอย่างถูลู่ถูกัง เมื่อสิบกว่าปีที่แล้วได้ใช้ตอนคำนวณขนาดท่อที่จะฝังไว้ใต้ถนนตัดใหม่ โดยคำนวณจากปริมาณน้ำฝนและทราบพื้นที่ที่รองรับน้ำฝนบริเวณที่จะวางท่อนั้นๆ วันนี้จะหยิบมันขึ้นมาทวนความจำอีกครั้ง North RESA…
Category: python
DIY RTK Base Station (survey-grade) รุ่น V3.21 ด้วย Raspberry Pi 2B + UM980 เมื่อคุณปู่กลับมาเป็นฮีโร่ ตอนที่ 4
จุดเริ่มต้นของ RTKBase/RPi3B+ เรื่องราวเริ่มจากความต้องการมี RTK Base Station จะเอามาเชื่อมต่อกับ Onocoy เงินคริปโตเล่นๆ ก่อนหน้านี้ผมทำชุด RTKBase ด้วย OPZ3 V3.2 ด้วยการสนับสนุนจากสปอนเซอร์เจ้าประจำ ช่วงเทศกาลตรุษจีนที่ผ่านมา ได้พบ UM980 (รุ่นที่มีหัวต่อ JST หนึ่งหัว) ในราคาถูกมากจากแหล่งขายของจีนอาลีเอ็กเพรสราคา 2500 บาท ผมตัดสินใจซื้อทันที! แต่ปัญหาคือไม่สามารถซื้อ OPZ3 เพิ่มได้ เนื่องจากผลพวงของแรมขาดตลาด ทำให้ราคา Orange Pi…
DIY RTK Base Station (survey-grade) รุ่น V3.2 ด้วย Orange Pi 3 Zero + UM980 ตอนที่ 3
การต่อไวไฟเพื่อใช้อินเทอร์เน็ต ตอนที่แล้วผมลืมลงเวบยูไอสำหรับการต่ออินเทอร์เน็ต จากที่ผมกล่าวไปแล้วตอนที่ 2 โครงการ RTKBase V3 จะมีไวไฟสองแบบคือแบบ AP เพื่อติดต่อกับอุปกรณ์ได้ สามารถที่จะเข้าไปคอนฟิกในเวบได้ง่ายเช่นเปลี่ยนไวไฟต่ออินเทอร์เน็ต (Wifi client) จะได้ทำได้สะดวกไม่ต้องต่อสายแลน ออกแบบวงจรเก็บข้อมูลรังวัดสแตติกแบบเนทีพ คล้อยหลัง V3 ที่ผมโพสต์ในบทความก่อนขอเรียกเป็น V3.1 ก็แล้วกัน มาในV3.2 ที่ผมได้อัพเกรดผมได้เพิ่มฮาร์ดแวร์คือตัวUSB-UART มาอีกตัวหนึ่ง จากปัญหาที่ผมบอกในตอนก่อนไม่สามารถจัดเก็บข้อมูลสแตติกแบบRaw format หรือรูปแบบเนทีฟของ Unicorecomm แท้ๆ ก่อนหน้านี้ผมได้เปิดใช้พอร์ทซีเรียลที่ว่างของ UM980 อีกตัวหนึ่ง แต่เมื่อไปต่อกับพอร์ตยูอาร์ท…
จับ AI มาไตรกรีฬา สร้างตัวติดตั้ง Snap สำหรับ Surveyor Pocket Tools กับประเด็นแฝงเร้นความเป็นส่วนตัวของผู้ใช้
ข่าวคราวเธอเงียบหายไปหลายปีนึกว่าไปได้ดี คืออารมณ์สำหรับดีพซีค (Deepseek) ประมาณนี้จริงๆ คือตอนเปิดตัวฮือฮามาก ทำให้ทราฟฟิคเข้าใช้แน่น ต้องรอนานกว่าจะตอบได้แต่ละคำถาม กาลเวลาผ่านไปไม่กี่เดือนเหมือนคนจะลืมกันไปแล้ว แต่ในความเงียบยังมีความเคลื่อนไหวยังอยู่ ผู้พัฒนาได้มีการอัพเดทข้อมูลเดือนพค. 2025 และในเดือนสิงหาคม 2025 ได้มีการอัพเกรดใหญ่เป็น V3.1 ต้องการความต่อเนื่องหรือความเป็นส่วนตัว ปกติผมใช้เจมิไน (Gemini) สลับกับดีพซีค แต่ใช้เจมิไนมากกว่าเพราะสามารถอินพุทข้อความได้มากกว่ามากๆ โดยเฉพาะการอัพโหลดไฟล์เช่นไฟล์เอกสาร โดยไม่มีการต้องเริ่มสนทนา (chat) กันใหม่บ่อย ให้เสียอารมณ์ด้วยความไม่ต่อเนื่อง ดีพซีคนอกจากจะรับโทเค็นได้น้อยต่อหนึ่งการสนทนา ยังมีปัญหาลืมเลือนการสนทนาก่อนหน้านี้ บางครั้งการมาเริ่มต้นใหม่ต้องอธิบายกันนานกว่าจะเริ่มเข้าใจ พอเริ่มจะเข้าใจเวลาก็หมดอีกแล้ว นี่คือปัญหาความไม่ต่อเนื่องของดีพซีคที่ร้ายแรงที่สุด แต่ในทางตรงกันข้ามก็รักษาความเป็นส่วนตัวมากที่สุด (ถ้าเซอร์เวอร์ของดีพซีคไม่มีการเก็บข้อมูลเข้าส่วนกลาง)…
#Update ปรับปรุงธีมมืด Surveyor Pocket Tools
นานมากแล้วไม่ได้จับภาษาไพทอนอีกเลยเกือบจะร่วมๆสองปีแล้ว เพราะผมใช้เวลาว่างพัฒนาแอพด้วย Dart/Flutter ส่วนใหญ่ขลุกอยู่กับภาษาดาร์ทตลอดมาสองปี ไม่นานมานี้ได้กลับมาใช้ไพทอนอีกครั้ง นั่งงงกับโค้ดไพทอนที่เขียนไว้ว่าตัวเองมาทำอะไรที่นี่ สักพักใหญ่ๆค่อยๆรื้อฟื้นความจำ ในครั้งนี้ใช้ Visual Studio Code (VS Code) เพื่อแก้ไขโค้ดโปรแกรมแทนเดิมๆที่เคยใช้ Pycharm เพราะหลังจากใช้ VS Code ในการพัฒนาแอพด้วยภาษาดาร์ททำให้ติดใจ ชอบในความเบาและรองรับได้หลากหลายภาษามาก แต่ผมติดตั้งสภาวะแวดล้อม (Env) ไพทอนด้วย Miniconda เหมือนเดิม จากเดิมผมปรับธีมมืดและธีมสว่างใน Surveyor Pocket Tools แบบแมนวลโดยใช้แนว Stylesheet ที่มีคนทำมาให้ใช้แลดูไม่เป็นธรรมชาติเลย…
สร้างไฟล์ยีออยด์โมเดล TGM2017 สำหรับ Hi-Target (*.grd) ด้วย Python
ผมได้แปลงแบบจำลองยีออยด์ TGM2017 ไว้หลากหลายรูปแบบเพื่อให้สามารถนำไปใช้กับเครื่องรับสัญญาณ GNSS หรือโปรแกรมไว้หลากหลายเกือบจะครอบคลุมทั้งหมด ไม่นานมานี้มีผู้ใช้ของ Hi-Target แบรนด์จากจีนต้องการยีออยด์ในรูปแบบไฟล์แอสกี้ (*.grd) สังเกตุก่อนหน้านี้ไฟล์แบบจำลองความสูงยีออยด์จะเป็นไบนารีทั้งหมด เหตุผลที่ใช้ไบนารีคือเป็นไฟล์ที่เปิดอ่านไม่ได้ด้วยโปรแกรมทั่วๆไป นอกจากจะใช้ hex editor เพื่อปิดโอกาสไม่ให้ผู้ใช้เข้ามาแก้ไขไฟล์ ด้วยความเผลอเรอ จะทำให้โครงสร้างไฟล์เสียหาย รูปแบบข้อมูลไฟล์แอสกี้ (*.grd) สำหรับไฟล์แอสกี้ (*.grd) ที่ Hi-Target ต้องการถือว่าแหกกฎ แต่ก็ไม่ใช่เรื่องใหญ่โตอะไร มาดูรูปแบบโครงสร้างไฟล์ ด้านบนบรรทัดแรกจะเป็น header: 3.000000 22.983333 95.000000 107.983333…
เมื่อลมพัดหวน : Kivy framework เครื่องมือพัฒนาแอพสำหรับโทรศัพท์มือถือ
จากที่ผมรอคอยโครงการ Beeware มาจะร่วมๆสามปีแล้ว แต่พบว่าความก้าวหน้าของโครงการมีการเคลื่อนไหวน้อยมากเหมือนจะหยุดนิ่งสนิท สำหรับโครงการ Beeware คือโครงการทำเครื่องมือพัฒนาโปรแกรมข้ามแพล็ตฟอร์มเพื่อให้ผู้ใช้งานพัฒนาซอฟท์แวร์ด้วยภาษาไพธอน ให้สามารถใช้งานได้ทุกแพล็ตฟอร์มอย่างหลากหลายโดยเฉพาะบนโทรศัพท์มือถือแอนดรอยด์และ iOS เป็นโครงการเปิดโค้ด (open-source) ที่อาศัยการระดมทุนเพื่อหาเงินให้โครงการสามารถเดินหน้าต่อไปได้ สำหรับ Kivy framework (ภาษาไทยออกเสียงกีวี เป็นคำพ้องเสียง Kiwi ที่เป็นชื่อผลไม้ชนิดหนึ่ง) ผมได้ศึกษาเบื้องต้นเมื่อเกือบจะสิบปีที่แล้ว เป็นโครงการเปิดโค้ดคล้ายกับ Beeware แต่ตอนนั้นยังไม่ได้สนใจนักเพราะโครงการเพิ่งจะเริ่มต้นช่วงนั้นยังขลุกขลักอยู่มาก เคยเอาโครงการตัวอย่างประมาณ แสดงผลว่า “Hello world!” มา build เป็นไฟล์ APK เพื่อติดตั้งบนโทรศัพท์มือถือแอนดรอยด์แต่พบว่ากระบวนการยุ่งยากมาก…
เพิ่มธีมมืดใน Surveyor Pocket Tools (มาสายดีกว่าไม่มา)
ตามสมัยนิยมก็ต้องมีธีมมีดว่ากันว่าช่วยกันประหยัดพลังงานของหน้าจอแบบ OLED และถนอมสายตาผู้ใช้ รวมทั้งใช้งานได้ดีในบริเวณที่มีแสงน้อย แต่ก็มีบางงานวิจัยกล่าวว่าการอ่านตัวหนังสือบนพื้นดำนานๆก็ทำให้สายตาล้าได้เหมือนกัน อย่างไรก็ตาม Surveyor Pocket Tools ก็เปิดทางเลือกให้ผู้ใช้สามารถปรับได้ว่าจะเปิดหรือปิดธีมมืด จาก PySide2 สู่ PySide6 ระบบการแสดงผลกราฟฟิค (GUI) จากเดิมที่ผมใช้ PySide2 อิมพลีเมนต์มาจาก Qt5 ตอนนี้เปลี่ยนมาใช้ PySide6 โดยอิมพลีเมนต์มาจาก Qt6 ที่ทันสมัยขึ้น การเปลี่ยนผ่านค่อนข้างราบรื่น แก้ไขโค้ดนิดหน่อย พร้อมปรับเปลี่ยนไอคอนใหม่ให้ดีมีมิติขึ้นมานิดหนึ่ง จาก PyInstaller สู่ Nuitka…
ภาษาไพทอนสู่เครื่องคิดเลข HP Prime
ปกติเครื่องคิดเลข HP Prime G2 ที่ผมยกให้เป็นเทพของเครื่องคิดเลขด้านวิทยาศาสตร์ทั้งหลาย ผมเขียนโปรแกรมด้วยภาษา HP PPL หรือ Prime Programming Language คล้ายๆปาสคาลแต่บางอย่างคล้ายไพทอน จากทิศทางที่เครื่องคิดเลขระดับไฮเอ็นต์ของ Casio และ TI ได้นำร่องโดยเอาภาษาไพทอนลงเครื่องคิดเลขไปก่อนหน้านี้ โดยจริงๆแล้วไพทอนในเวอร์ชั่นของเครื่องคิดเลขจะถูกออปติไมซ์ให้ใช้กับเครื่องที่มีความเร็วซีพียูที่ช้าและแรมไม่มากนัก ที่ดังที่สุดได้แก่ ไมโครไพทอน (Micropython) ที่พอร์ตภาษาไพทอนลงไมโครคอนโทรลเลอร์ ทำให้มีไลบรารีจำนวนมากที่ถูกพอร์ตลงมาใช้งานเช่นเดียวกัน อานิสงค์เลยได้มาลงที่เครื่องคิดเลขเช่นเดียวกัน ผมเห็นว่าทีมงานผู้พัฒนาเครื่องคิดเลข Prime ของ HP คงเล็งเห็นแล้วว่าการพัฒนาลากภาษา PPL ให้ใช้ในกลุ่มแคบๆ…
รวมชุดโปรแกรมพื้นฐานงานสำรวจ 4 ชุดสำหรับเครื่องคิดเลข fx-9860GII, fx-9860GIII และ fx-9750GIII (พัฒนาด้วยภาษาซี) พร้อมคู่มือ
ผมเคยลงโปรแกรมพื้นฐานสำรวจชุดที่ 1 ด้วยภาษาซีสำหรับเครื่อง fx-9860GII SD ไปนานแล้ว ตอนนี้กลับมาแก้ไขบั๊กเล็กๆน้อยๆ และพัฒนาโปรแกรมเพิ่มโปรแกรมพื้นฐานงานสำรวจชุดที่ 2, ชุดที่ 3 และชุดที่ 4 เพื่อให้เครื่อง fx-9860GII SD รุ่นเก่าที่ไม่มีภาษาไพทอนสามารถใช้งานได้เท่าเทียมกัน โปรแกรมที่พัฒนาด้วยภาษาซีจะมีดีกว่าไพทอนตรงที่กินหน่วยความจำน้อย เวลาป้อนค่าโปรแกรมสามารถเอาค่าตัวเลขไปเก็บไว้ในเมโมรีตัวอักษร A-Z และเรียกมาใช้ได้ภายหลัง เวลาเรียกโปรแกรมครั้งที่สองไม่ต้องป้อนค่าใหม่ ตรงนี้ภาษาไพทอนบนเครื่องคิดเลขทำไม่ได้ เพราะคาสิโอไม่ได้ให้ไลบรารีในการติดต่อกับเครื่องไว้เลย ไม่เหมือนกับภาษาไพทอนบนเครื่องคิดเลข TI ที่เขาเตรียมไลบรารีมาให้เสร็จสรรพ ตอนนี้ผมสั่งเครื่องคิดเลขของ TI NSpire CX II…