logo
Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น

Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น

ด้วยการพิมพ์บางส่วนของชื่อตำบลหรืออำเภอ โปรแกรมจะคำนวณองศาและระยะทางสำหรับนักวิทยุสมัครเล่นที่ใช้สายอากาศทิศทาง

Pat Sadavongvivad
@jojopat
1221
Ham
Amateur radio
Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น

HS1BFR คุณพี่ประสิทธิ์ โสถิพัฒนพงษ์ แห่ง ClubStationThai ซอยวัดมะกอก

DADA 1.0 - Directional Antenna Deployment Assistant

โปรแกรมคำนวณข้อมูลระหว่างสถานีวิทยุสมัครเล่นเพื่อใช้ในการหันสายอากาศ

ปล่อยของแล้ว open source DADA1 Directional Antenna Deployment Assistant โปรแกรมคำนวณองศาการหันสายอากาศทิศทางด้วยการคีย์ส่วนหนึ่งของชื่อตำบลหรืออำเภอใด ๆ ในประเทศไทย สำหรับนักวิทยุสมัครเล่น พร้อมข้อมูลตำบล-อำเภอทั้งประเทศจาก open Government data โดยเพิ่มตำแหน่งอื่น ๆ ได้ตามใจชอบ

DADA 1.1 2023/10/19 เพิ่มความสามารถให้แสดง Maidenhead grid พร้อมตำบล/อำเภอ รวมทั้งคำนวณองศาและระยะทางจาก home QTH ถึงกลาง Maidenhead grid ที่ป้อนได้


DADA 1.2 2024/5/6 เพิ่มการแสดงตำบลและอำเภอทั้งหมดใน Maidenhead grid ที่ป้อน


โหลดได้จาก


http://github.com/jojopat/DADA1


ขอชวนเพื่อน ๆ มาเล่นสายอากาศทิศทางกัน และใครจะพัฒนาอะไรต่อ จัดเลยครับ แบ่งปันความรู้ ความสุขจากความสะดวกในการสื่อสารกันครับ


ตัวแอพเขียนโครงไว้สำหรับใช้ในเครื่องบินหรือเรือที่มีการเปลี่ยนทิศทางได้ตลอดเวลาแล้ว เหลือเพียงส่วนดึงข้อมูล heading แบบ real time จาก GPS และ/หรือ e-compass โปรแกรมก็จะชดเชยองศาให้แบบ real time เช่นกัน



ประวัติการพัฒนา


ความคิดแรกที่ทำงานนี้เกิดหลังได้สัญญาณเรียกขาน E22JNE ช่วงเดือนกุมภาพันธ์ในปีพ.ศ. 2552 (2009) หลังจากที่ตัดสินใจจะติดตั้งสายอากาศทิศทาง Clubstation Multi-beam 2x2 192E ที่บ้าน เพื่อช่วยคำนวณองศาของสายอากาศทิศทาง โดยนำ coordinate ของทุกอำเภอทั่วประเทศเป็น UTM จากแผนที่ที่มีจำหน่ายในช่วงเวลานั้นมาคำนวณเป็นแมทริกซ์ระยะทาง (Distance Matrix) และ แมททริกซ์องศา (Angle Matrix) โดยเขียนด้วย Visual FoxPro สร้างเป็น spreadsheet แล้วแจกจ่ายผ่านช่องทางผู้ผลิตและจำหน่ายสายอากาศ ClubStation ของ HS1BFR หรือคุณพี่ประสิทธิ์ โสถิพัฒนพงษ์ "เด็กวัดทำสายอากาศ" อาจารย์ผู้ให้ความรู้เกี่ยวกับสายอากาศและสายนำสัญญาณกับผม คู่ไปกับทาง Facebook ของเพื่อนนักวิทยุสมัครเล่นหลายท่าน แต่ไม่ได้ทำต่อจนถึงที่สุด เพราะข้อมูลที่มี เพียงพอแล้วกับการใช้งานในเวลานั้น

Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น


ต่อมาในปี 2561 (2019) ทันทีที่ได้อ่านข่าวนี้

https://www.facebook.com/walkietalkienepal/photos/special-amateur-radio-station-for-crowning-of-thai-new-king-may-3-5-2019we-are-p/1318968451600606


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

มาจนกระทั่งได้สัญญาณเรียกขานใหม่ E25VBE เมื่อเดือนก.ค.2566 เป็นเหตุให้งัดอุปกรณ์ทั้งหมดที่ทิ้งจนฝุ่นจับมานานแล้วกลับมาปัดฝุ่นเปิดใช้ขึ้นมาใหม่ จึงมีความคิดว่าน่าจะหาทาง opensource โปรแกรมนี้ เพื่อให้เกิดการพัฒนาวงการวิทยุสมัครเล่น จนพบว่ารัฐบาลแจกข้อมูลตำแหน่งตำบล-อำเภอทั้งประเทศในเว็บ OpenGovernmentData ที่ทุกคนสามารถโหลดไปใช้งานได้ ที่

https://data.go.th/th/dataset/item_c6d42e1b-3219-47e1-b6b7-dfe914f27910


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

โปรแกรมนี้มีส่วนการทำงานหลักคือนำข้อมูลที่ผู้ใช้ป้อนให้ไปค้นในตารางชื่อตำบล-อำเภอทั่วประเทศ แล้วหยิบ Lat/Long มาคำนวณทิศเป็นองศาและระยะทางระหว่าง MyQTH กับชื่อตำบล-อำเภอที่ป้อนเข้าไป


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


ที่คิดไว้ต่อจากนี้ จะพัฒนาความสามารถอื่นเพิ่มเข้าไป เช่น


  • การอ่านค่าองศาของสายอากาศทิศทางและส่วนควบคุมโรเตอร์ให้หันสายอากาศทิศทางโดยอัตโนมัติ (Directional Antenna Deployment Automation 2.0)
  • อ่านค่า S-meter ในกรณีที่เครื่องรับส่งวิทยุที่ใช้รองรับ CAT (Computer Aided Transceiver) เพื่อนำมาปรับทิศสายอากาศเล็กน้อยให้ได้ความแรงสัญญาณสูงสุด (Directional Antenna Detection Assistant 3.0)


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


เมื่อโค้ดต้นแบบพร้อมแล้ว จะนำขึ้น github แล้วมาประกาศ link ไว้ที่นี่ต่อไปครับ ผู้พัฒนาเป็นโปรแกรมเมอร์รุ่นไดโนเสาร์ กำลังศึกษาการใช้งาน github อยู่ครับ 😅


Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น

DADA 1.0 OpenGovernmentData

เตรียมไฟล์ตามข้อ 1-6 ให้ครบก่อนรันโปรแกรม

1 โหลด Microsoft Excel file จาก https://data.go.th/dataset/5370f16a-b553-45ca-929d-7db9a6fc5043/resource/939d6ae7-6235-4305-8a57-eacb6943fcbb/download/item_c6d42e1b-3219-47e1-b6b7-dfe914f27910-kh82rf.zip

2 แตกไฟล์ zip ออกมา

3 เปิดไฟล์ kh-muulphikad-lat-long-thiibngchiichuue-tambl-ameph-cchanghwad.xlsx

4 save เป็น CSV ด้วยชื่อ OpenGovernmentLatLong.CSV

5 โหลด DADA binary zip file for Windows จาก github แล้วแตกไฟล์ลงใน folder ที่ต้องการ เช่น C:\Dada

6 ย้ายไฟล์ CSV ในข้อ 4 ไปวางไว้ที่ folder เดียวกับ DADA exe ในข้อ 5

7 รันโปรแกรม DADA exe

8 โปรแกรมจะอ่าน CSV และแสดงข้อความพร้อมทำงาน

ตัวอย่างการใช้งาน DADA1


1 คลิกที่ช่องข้อความ พิมพ์ชื่อตำบล-อำเภอตำแหน่งสถานีฝั่งเรา เช่น จตุจ แล้วกดปุ่ม Enter จะได้ตำแหน่งของเขตจตุจักร

2 กดปุ่ม F8 เพื่อกำหนดตำแหน่งสถานีของเรา

3 พิมพ์บางส่วนของชื่อตำบลหรืออำเภอคู่สถานที่ต้องการทราบองศาและระยะทาง เช่น ตลิ่งช แล้วกดปุ่ม Enter

4 โปรแกรมจะแสดงชื่อตำแหน่งปลายทางคือ คลองชักพระ เขตตลิ่งชั้น กทม. มุมหันสายอากาศจากจตุจักร 239 องศา ระยะทาง 13.87127 km


ตัวอย่างการใช้งาน DADA1.1


1 คลิกที่ช่องข้อความ พิมพ์ชื่อตำบล-อำเภอตำแหน่งสถานีฝั่งเรา เช่น จตุจ แล้วกดปุ่ม Enter จะได้ตำแหน่งของเขตจตุจักร

2 กดปุ่ม F8 เพื่อกำหนดตำแหน่งสถานีของเรา

3 พิมพ์บางส่วนของชื่อตำบลหรืออำเภอคู่สถานที่ต้องการทราบองศาและระยะทาง เช่น ตลิ่งช แล้วกดปุ่ม Enter

4 โปรแกรมจะแสดงชื่อตำแหน่งปลายทางคือ คลองชักพระ เขตตลิ่งชั้น กทม. มุมหันสายอากาศจากจตุจักร 239 องศา ระยะทาง 13.87127 km พร้อท Maidenhead grid locator ของเขตจตุจักร

5 กรณีต้องการทิศทางจากจตุจักรไปยัง grid locator อื่น ให้พิมพ์ / ตามด้วย grid locator code เช่น /OK03fu จะได้พื้นที่ในซอยบางรักน้อย 9/4

Update History :

DADA1.1 Update 2023/10/26 add Maidenhead grid locator and the source code was lost due to older copy of folder synced to Google Drive

DADA1.2 Update 2024/5/5 Re-add Maidenhead grid locator and nearest district locator to grid center

DADA1.2 Update 2024/5/6 List province, districts and sub-districts in grid


To-do next:


DADA2 : Directional Antenna Deployment Automation

- add Bluetooth board with 3 relays 2-channel 10-bit ADC to read antenna angle

- add code to automate rotator control to target angle


DADA3 : Directional Antenna Detection Assistant

- communicate with Bluetooth CAT or CIV port

- read Received Signal Strength Index from transceiver through CAT or CIV commands

- during first few QSOs slowly adjust the antenna angle to find position with highest S-meter


DADA31

- take QSO audio signal to analyze using ML to interpret QRK1 to 5

- adjust antenna angle so to have highest QRK or least Signal-to-Noise Ratio.

Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น
Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น
Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น
Opensource โปรแกรมคำนวณองศาสายอากาศทิศทางระหว่างสถานีวิทยุสมัครเล่น

อุปกรณ์ที่เป็นเหตุให้คิดทำงานนี้ Icom IC-275 Yaesu FT-212 Anritsu MS2601B + Multi-beam 2x2 192E เกน 23.5dBd beam-width 30 องศา คอม+

3
0