Tuesday, September 29, 2020

RFzero - เริ่มต้นใช้งาน

บอร์ด RFzero เป็นการรวมกันของ Arduino + RF + GPS ซึ่งทำงานด้วยการโปรแกรมผ่าน Arduino ดังนั้นใครที่สามารถเขียน Arduino ผ่าน Arduino IDE ได้ ก็สามารถโปรแกรมบอร์ด RFzero ได้ไม่ยาก แต่สำหรับมือใหม่ ทางผู้พัฒนาได้เตรียมชุดโปรแกรมที่ชื่อว่า RFzero Manager ไว้ให้ สำหรับการทำงานร่วมกับบอร์ด RFzreo นี้โดยเฉพาะ ซึ่งใช้งานง่ายไม่ยุ่งยาก เหมาะสำหรับมือใหม่

หน้าจอ RFzero Manager


ได้บอร์ด RFzeo มาอยู่ในมือแล้วต้องทำอย่างไรต่อ?

อย่างที่เกรินไว้แล้วว่า RFzero นั้นทำงานด้วยโปรแกรม ก่อนการใช้งานจึงต้องทำการตั้งค่าโปรแกรมให้ครบถ้วนก่อนการใช้งาน การโปรแกรมก็ทำผ่าน RFzero Manager ผ่าน Port USB

เริ่มต้นขั้นตอนแรกต้อง Download RFzero Manager มาติดตั้งก่อน จาก link นี้

https://www.rfzero.net/documentation/rfzero-manager/

ซึ่งในชุด RFzero Manager นี้จะเตรียม Driver สำหรับติดตั้งมาพร้อมกันด้วย เมื่อติดตั้งแล้วจะมี COM Port เพิ่มขึ้นมามีชื่อว่า "Arduino Zero (COM#)" ดังรูปตัวอย่างจะเป็น COM4 ซึ่งเป็น COM Port ที่เราจะใข้ติดต่อกับบอร์ด RFzero เพื่อตั้่งค่าต่างๆ

หากมีปัญหาการติดตั้ง Driver สามารถดูวิธีการอย่างละเอียดได้ที่ https://www.rfzero.net/documentation/software/driver-installation/

จากนั้นเสียบสาย USB หัว Type-B เข้าที่ฝั่งบอร์ด RFzero ส่วนอีกด้านก็ต่อเข้ากับคอมพิวเตอร์ แล้วเปิด RFzero Manager ขึ้นมา ในช่อง Connection ให้เลือกไปที่ COM Port ของ RFzero แล้วกด Connect ที่หน้าจอด้านซ้ายจะมีข้อความขึ้นมา

RFzero>

ถ้าไม่มีข้อความให้ลองกด Enter ดู 2-3 ครั้งจนกว่าจะมีข้อความขึ้น หรือหากไม่มีข้อความขึ้นให้ดึงสาย USB ออกแล้วเสียบเข้าไปใหม่ เป็นการ Reset

หมายเหตุ: RFzero ใช้ไฟ 5V จาก USB Port สำหรับการทำงาน และสามารถใช้ไฟจากภายนอกได้ผ่าน Jumper JP1 ได้ด้วยเช่นกัน


เมื่อได้ Prompt RFzero> แล้วก็พร้อมที่จะตั้งค่าต่างๆ ซึ่งในบทความนี้จะกล่าวถึงเฉพาะการตั้่งค่าโปรแกรม WSPR Transmitter เท่่านัน


การตั้งค่าที่จำเป็นสำหรับโปรแกรม WSPR Transmitter

การเข้าสู่ Mode Config ให้พิมพ์คำสั่ง config แล้ว Prompt จะเปลี่ยนเป็น RFzero config> จากนั้นก็เริ่มตั้งค่าได้


1. กำหนด Call sign ใช้คำสั่ง

wr bcn CALL

CALL คือ Call sign ตัวอย่าง wr bcn HS2JFW


2. กำหนด Grid locator โดยปกติ Grid locator จะคำนวนจากค่า Lat/Long ที่ได้รับจาก GPS แต่เราควรใส่ Manual ไว้ด้วย ใช้คำสั่ง

wr loc LOCATOR

LOCATOR คือ Grid locator ของที่ตั้งสถานี ตัวอย่าง wr loc OK04HA


3. ตั้งค่าความถี่ที่จะส่ง ด้วยคำสั่ง

wr data INDEX FREQ CONTROL POWER

INDEX คือ ลำดับในตารางความถี่มีได้ 14 ค่า คือ 0 - 14

FREQ คือ ความถี่ที่จะใส่ลงในตาราง หน่วยเป็น Hz

CONTROL คือเลขฐาน 16 ที่ใช้ควบคุม Digital Output D6 - D0

POWER คือ กำลังส่งเป็น dBm (13 dBm สำหรับ RFzero เปล่า ไม่ได้มีตัวขยายกำลังส่งภายนอก)

ตัวอย่าง

    wr data 14 144490500 01 13

    ตั้งค่าความถี่ 144.490500 MHz ในตารางลำดับที่ 14 มี Control bit และกำลังส่งเป็น 01 และ 13dBm


4. ตังค่า Grid locator จาก GPS แบบอัตโนมัติ ด้วยคำสั่ง

 wr locauto ONOFF

ONOFF คือ 0 : ปิดการใช้งาน

                    1 : เปิดการใช้งานคำนวน Grid locator อัตโนมัติ


5. กำหนดลำดับการส่งในแต่ละคาบเวลาที่จะส่ง (sequence) RFzero ประกอบด้วย 2 ลำดับการส่ง (sequence 0 และ 1) ซึ่งเราจะต้องกำหนดลำดับนี้ขึ้นมาก่อน ซึ่งในแต่ละ sequence จะประกอบไปด้วยคาบเวลา (time slot) ทั้งหมด 15 time slot แต่ละ slot จะมีความยาว 2 นาที (WSPR ส่ง 2 นาทีในแต่ละรอบ) ดูภาพด้านล่างประกอบความเข้าใจ

คำสั่งที่ใช้กำหนดลำดับ sequence ของความถี่ในแต่ละคาบเวลา (time slot) คือ

wr seq NUMBER INDEX0 ... INDEX14

NUMBER คือ 0 : ใช้ลำดับความถี่แรก (sequence 0)

                        1 : ใช้ลำดับความถี่สอง (sequence 1)

INDEX0 .. INDEX14 คือ ลำดับของความถี่จากตารางความถี่ทั้ง 14




ตัวอย่าง

    wr seq 0 2 3 s 4 5 s 6 7 s 8 9 s 10 11 s

จากตัวอย่างนี้เป็นการสร้าง sequence 0 ดังนี้





s หมายถึงการไม่ส่งใน time slot นั้น (Skip)

ถ้าต้อการส่งความถี่เดียว ด้วย INDEX เดียว สามารถทำได้ เช่น

wr seq 0 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7


รายละเอียดเพิ่มเติม และการตั้งค่าอื่นๆ สามารถดูได้ที่ https://www.rfzero.net/examples/wspr-transmitter/





Friday, September 25, 2020

RFzero - WSPR Transmitter

บทความนี้แปลจาก https://www.rfzero.net/examples/wspr-transmitter/

หมายเหตุ โปรแกรมนี้จะทำงานได้จะต้องมีสัญญาณ GPS เท่านั้น เนื่องจาก WSPR จะต้องใช้เวลาที่แม่นยำในการส่งและรับ

โปรแกรม WSPR Transmitter ทำให้ RFzero สามารถส่งได้ตั้งแต่ความถี่ 2290 Hz จนถึง 200 MHz และอาจสูงกว่านั้นได้ (ต้องใช้ Harmonic)

การส่งถูกแบ่งออกเป็น 2 แบบลำดับการส่ง (Sequence) แต่ละรูแบบแบ่งเป็น 15 Time slot ซึ่งใช้ซ้ำ 2 รอบในรอบ 1 ชั่วโมง (แต่ละ Slot ส่งเป็นเวลา 2 นาที) ลำดับการส่งสามรถกำหนดได้ว่าจะตามลำดับไล่ไปเรื่อยๆ หรือจะใช้การสุ่มแบบ Random อีกทั้งสามารถเลือกส่งในเวลากลางวันและกลางคืนได้ ซึ่งจะอธิบายละเอียดอีกครั้งในการใช้ชุดคำสั่ง

สามารถกำหนดความถี่ได้ 15 ความถี่ กำลังส่ง และ control bit ซึ่งสามารถกำหนดได้อิสระ (กำหนดเองหรือกำหนดแบบอัตโนมัติ) การนำ control bit ไปใช้งาน สามรารถใช้เลือกใช้งาน filter  เลือกสายอากาศ สั่งงาน Relay สั่งงาน Tuner ซึ่ง control bit ทำงานด้วย IC ULN2803A ที่ขา D6 ถึง D0 และ Analog ที่ A0

สามารถใช้งาน WSPR ได้ทั้ง Type 1 (Call sign, square และกำลังส่ง) เช่น OZ0RF JO65 12 หรือ Type 2 (compound call sign, กำลังส่ง) เช่น OY/OZ0RF IP62

กำ config สามารถทำผ่าน port USB และ grid square สามารถกำหนดได้จาก GPS แบบอัตโนมัติหรือกำหนดเอง

ในขณะส่ง LED TX จะกระพริบ และเมื่อมีสัญญาณ GPS LED PPS จะกริบ 1 ครั้งทุก 1 วินาที และเมื่อสัญญาณ GPS สมบูรณ์ LED Valid จะติดค้าง


การ Config

การ Config ทำผ่าน port USB โดยโปรแกรม terminal เช่น Arduino IDE Serial Monito, Termite Terminal (Windows), CuteCom (Linux) หรือ Terminal (Mac OS) กำหนดค่าดังนี้

Speed: 9600 Baud

Data: 8 bits

Parity: No

Stop bit: 1

เชื่อมต่อ RFzero ผ่านสาย USB-B เข้ากับคอมพิวเตอร์ และเชื่อมต่อด้วยโปรแกรม terminal ด้วย COM port ซึ่ง RFzero จะแสดงขี้นชื่อว่า Arduino Zero เมื่อต่อแล้วหากไม่เห็น RFzero> หรือ RFzero config> ให้ลองกด enter เมื่อต่อการสั่งงานให้พิมพ์คำส่ง (command) หลังเครื่องหมาย > ได้เลย

***** คำสั่งต้องพิมพ์ด้วยตัวอักษรพิมพ์เล็กเท่านั้น *****

ถ้าขึ้น RFzero> หมายถึงอยู่ใน run mode คือ rfzero เริ่มทำงาน

ถ้าขึ้น RFzero config> หมายถึงอยู่ใน config mode


ถ้าต้องการเข้าสู่ config mode ให้พิมพ์คำสั่ง config ที่ RFzero> ตัวอย่าง

RFzero>config


ต้องการดูคำสั่งที่สามารถใช้ได้ทั้งหมดให้พิมพ์ ? ที่ RFzero config> ตัวอย่าง

RFzero config>?


หากต้องการออกจาก config mode ให้พิมพ์ exit ที่ RFzero config> ตัวอย่าง

RFzero config>exit


เมื่ออยู่ใน config mode ต่อไปนี้คือคำสั่งที่ใช้งาน


rd cfg

แสดง config ทั้งหมดที่จะถูกใช้หลังจากออกจาก config mode (กลับไป run mode)


wr default

เป็นการกำหนดค่า parameter ต่างๆ ให้กลับไปสู่ค่า default ซึ่งในแต่ละโปรแกรมของ RFzero จะมีค่า default แตกต่างกันไป


wr warmup SECONDS

SECONDS เป็นตัวเลขวินาทีที่ RFzero จะคอยหลังจากจ่ายไฟ เพื่อเป็นการ warmup


wr bcn CALL

CALL คือสัญญาณเรียกขานที่ใช้สำหรับส่งใน WSPR ใน WSPR Type 1 สามารถยาวได้ไม่เกิน 6 ตัวอักษร และจะต้องมีตัวเลขผสมอยู่ด้วย และ WSPR Type 2 จะยาวได้ไม่เกิน 10 ตัวอักษร และต้องมีตัวเลขผสมอยู่ด้วย ซึ่งปกติเราจะใช้ Type 1


wr loc LOCATOR

LOCATOR คำ grid locator ยาวไม่เกิน 8 ตัวอักษร แต่สำหรับ WSPR ใช้เพียง 4 ตัวอักษรเท่านั้นในการส่งด้วย WSPR Type 1


wr locator

เป็นการกำหนดให้ใช้ grid locator จากข้อมูลที่ได้จาก GPS มาคำนวนให้โดยอัตโนมัติ


wr locauto ONOFF

เลือกว่าจะกำหนด grid locator แบบอัตโนมัติจากข้อมูล GPS หรือจากทีกำหนดเอง

ONOFF = 0 คือกำหนดเอง

ONOFF = 1 คือแบบอัตโนมัติจากข้อมูล GPS


wr data INDEX FREQ CONTROL POWER

สำหรับใส่ข้อมูลลงในตารางกำหนดข้อมูลที่ใช้ส่ง ประกอบด้วย ความถี่ กำลังส่ง และค่า control bit

INDEX หมายถึงตำแหน่งของข้อมูลในตาราง ค่า 0 ถึง 14

FREQ หมายถึงความถี่ในหน่วย Hz ตั้งแต่ 2290 Hz ขึ้นไป ความถี่ไม่จำเป็นต้องไล่เรียงลำดับ และความถี่เดียวกับสามารถกำหนดได้มากกว่า 1 ครั้ง

CONTROL เป็นการกำหนดรูปแบบ bit pattern สำหรับควบคุมขา D6 ถึง D0 ใส่ค่าเป็นเลขฐาน 16 (Hex) โดยไม่ต้องใส่ 0x นำหน้า โดย 

  • D6 คือ Bit 6 
  • D5 คือ Bit 5 
  • D4 คือ Bit 4
  • D3 คือ Bit 3
  • D2 คือ Bit 2
  • D1 คือ Bit 1
  • D0 คือ Bit 0

เช่น 0101011 => 2B ซึ่ง D6/Bit 6 มีค่า 0 D5/Bit 5 มีค่า 1 ....

POWER กำหนดค่ากำลังส่ง ในรูปแบบ dBm หลังจาก ผ่านภาคขยาย รวม loss ในสายนำสัญญาณ และค่า loss อื่นๆ แล้ว ถ้าไม่มีค่าที่ตรงให้เลือกค่าที่ใกล้เคียงที่สุด ดังนี้

  • 0 dBm = 1 mW
  • 3 dBm = 2 mW
  • 7 dBm = 5 mW
  • 10 dBm = 10 mW
  • 13 dBm = 20 mW
  • 17 dBm = 50 mW
  • 20 dBm = 100 mW
  • 23 dBm = 200 mW
  • 27 dBm = 500 mW
  • 30 dBm =  1 W
  • 33 dBm =  2 W
  • 37 dBm =  5 W
  • 40 dBm =  10 W
  • 43 dBm =  20 W
  • 47 dBm =  50 W
  • 50 dBm =  100 W
  • 53 dBm =  200 W
  • 57 dBm =  500 W
  • 60 dBm =  1 kW
ตัวอย่างคำสั่งการกำหนดค่าข้อมูลที่ตำแหน่งที่ 7 ด้วยความถี่ 14 097 123 Hz (14.097.123 MHz) และ control bit เป็น 0101010 ด้วยกำลังส่ง 40dBm ใช้คำสั่งดังนี้

wr data 7 14097123 2a 40

จากตัวอย่างจะบันทึกข้อมูลในตารางข้อมูลดังภาพ










สามารถบันทึกข้อมูลในตารางด้วยความถี่เดียวกันได้มากกว่าหนึ่งครั้ง เช่น ต้องการใช้สายอากาศและกำลังส่งที่ต่างกันซึ่งสามารถเลือกด้วยการกำหนด control bit ไปควบคุมอุปกรณ์สลับสาอากาศ

ตัวอย่างตารางที่บันทึกข้อมูลความถี่และกำลังส่งเดียวกัน แต่กำหนด control bit ที่ต่างกัน