google-sheet2Html

/*! * * Google Sheets To HTML v0.9a * * To use, simply replace the "tq?key=" value in the * URL below with your own unique Google document ID * * The Google document's sharing must be set to public * */ google.load('visualization', '1', { packages: ['table'] }); var visualization; function drawVisualization() { var query = new google.visualization.Query('https://spreadsheets.google.com/tq?key=https://docs.google.com/spreadsheets/d/1-vUEZ9tae5C_OXzSi0dQPWwUrO3H5S-gImB5afFgqDg/edit?usp=sharing'); query.setQuery('SELECT A, B, C, D label A "Duration", B "Song", C "Requested By", D "URL"'); query.send(handleQueryResponse); } function handleQueryResponse(response) { if (response.isError()) { alert('There was a problem with your query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); visualization = new google.visualization.Table(document.getElementById('table')); visualization.draw(data, { legend: 'bottom' }); } google.setOnLoadCallback(drawVisualization);

Thursday, January 26, 2017

โปรแกรม อ่าน ประกาศข่าว ชมรม ออโตเมติก

ประกาศข่าว ชมรม ด้วยคอมพิวเตอร์


   เนื่องด้วย พรบ. คอมพิวเตอร์ฉบับใหม่ ที่ประกาศใช้(25 มค.2560) มีบทกำหนดโทษผู้เผยแพร่ ซอร์ดโค้ด ที่มีผู้อื่นนำไปใช้ในทางผิดกฎหมาย จึงขอประกาศไว้ในที่นี้ว่า ผู้เขียนมีเจตนา สอนการเขียนโปรแกรมเพื่อการศึกษา เท่านั้น

   ในบทความนี้ เป็นการเขียน Python script สำหรับ เรียก CQ ในการแข่งขัน CQ contest หรือ ไปใช้ในการประกาศข่าวสมาคม โดยตั้งเวลาได้ โดยใช้ กราฟฟิก GUI ของ Tkinter

ก่อนทำการเรียกใช้ โปรแกรม
สิ่งที่ต้องเตรียมคือ ไฟล์เสียงนามสกุล wav  ซึ่งเป็นไฟล์ เสียงที่ บันทึกไว้ล่วงหน้า รูปร่างหน้าตาของ โปรแกรม มีดังนี้





แถบ slide bar เพื่อเลือกการตั้งเวลา ให้รอกี่นาที จึงอ่านประกาศ ซึ่งตั้งได้ 30 นาที เมื่อทำการตั้งเวลาแล้ว ให้กดปุ่ม Start
เมื่อครบเวลาที่กำหนด จะ เล่น ไฟล์เสียง ออกทางวิทยุสื่อสาร ดังภาพ


 ภาพด้านล่าง เป็น สคริป




ในการใช้งานจริง ให้แก้ไข ที่ บรรทัด def PlayAudio โดยทำการแทรกโค้ด สังเปิดปิด สวิท ptt ของวิทยุสื่อสาร

และ ให้แก้ไข การนับเวลา ที่ start_timer ซึ่งได้แก้ไว้ให้ เร็วกว่าจริง เพื่อ บันทึกวีดีโอ
 https://youtu.be/yyIs20I4qHo


Monday, January 23, 2017

หาตำแหน่ง QRM ตอนวิธีใช้ SoundMeter

โพสท์ที่ผ่านมาได้ ติดตั้ง โปรแกรมเสร็จแล้ว หากยังไม่ได้อ่านเรื่องตามหา QRM ด้วยการจับเวลา อาจจะดูไม่เข้าใจ ขอให้ย้อนไปดู โพสท์ เก่าก่อน ครับ

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

 การใช้งาน soundmeter ด้วยคำสั่ง

$ soundmeter --trigger +350 1 --action exec-stop --exec pt.sh

เป็นคำสั่ง --trigger +350 เป็นการตั้งค่าให้ สคริปทำงานเมื่อ มีค่า RMS ของเสียงเกินกว่า 350

หมายเลข 1 หมายถึงให้ทำตามคำสั่ง 1 ครั้ง
คำสั่ง --action exec-stop หมายถึงให้ทำงานตามสคริป จากนั้นให้หยุดทำงาน 
คำสั่ง --exec pt.sh หมายถึงให้ทำงานตามสคริปชื่อ pt.sh

 ลองดูวีดีโอ คลิป https://www.youtube.com/watch?v=31R_6wcJiPI
 

Friday, January 20, 2017

หาตำแหน่ง QRM

หาตำแหน่ง QRM ด้วย การจับเวลา

เครื่องรับ GPS มีหลักการคำนวนพิกัด โดยคำนวณ จาก ความแตกต่างของเวลาที่สัญญาณที่ส่งจากดาวเทียมแต่ละดวงส่งถึงเครื่องรับ ถ้าเราใช้หลักการเดียวกันนี้ในการหาตำแหน่ง QRM เช่น สมมุติ สถานนีควบคุมข่าย HS1AB และ สถานนี HS1AM ซึ่งทั้ง สองสถานนี เราทราบ พิกัด GPS ต้องการตรวจหาตำแหน่ง QRM โดยการจับเวลา เมื่อได้รับสัญญาณ เสียงจาก ลำโพง (เสียงของ QRM) เอาเวลาที่แตกต่างกัน มาทำการคำนวณ ก็สามารถหาตำแหน่ง QRM ได้เช่นกัน
คลื่น เดินทางได้ 299,792,458เมตร ต่อ วินาที
นั่นคือ ใน 1 นาโน วินาที จะเดินทางได้ 29.9792458 cm

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


ในบทความนี้ จะใช้ โปรแกรม  Soundmeter 0.1.3 Python Package

ซึ่งเป็น  command line tools สำหรับตรวจวัดระดับเสียงแล้วเมื่อได้ยินเสียงตามระดับความดังที่กำหนด ก็สั่งให้ ทำตามคำสั่งสคริป

ในการใช้งาน ตัวอย่าง เช่น เมื่อได้ยินเสียงทาง ไมโครโฟน
ให้ บันทึกเสียง
หรือ ให้พิมพ์ เวลา เพื่อใช้ในการคำนวนหา QRM
หรือ ให้วิเคราะห์ เสียง  sound recognizer
หรือ เข้ารหัสเสียง เป็น GSM , FSK, codec2 ก่อน ส่งออกอากาศ

วิธีติดตั้ง Dependencies System Packages ก่อน ด้วย คำสั่ง

$ sudo apt-get install portaudio19-dev python-dev alsa-utils





จากนั้นติดตั้ง PyPi packages  ดังนี้
argparse
pyaudio
pydub
python-daemon

 ด้วยการพิมพ์ คำสั่ง

$ sudo -H pip install soundmeter --allow-all-external --allow-unverified pyaudio


หลังจากติดตั้งเสร็จ ให้ทำการ reboot เครื่อง และทดสอบผลการติดตั้งด้วย คำสั่ง
$ soundmeter

จะปรากฎดังในภาพ แสดงว่า ติดตั้ง สมบูรณ์ แล้ว

ก่อนที่จะใช้งาน ต้องทำการหา ค่าเฉลี่ย เสียง รบกวน ในห้องก่อน ในวีดีโอคลิป

 แสดง การตรวจจับ 5 วินาที่ ด้วยคำสั่ง
 https://www.youtube.com/watch?v=7dTLNtQWQTY


$ soundmeter --collect --seconds 5











เมื่อต้องการ เรียกใช้งาน เมื่อมี ระดับ เสียง RMS มากกว่า 317 แล้วให้ สคริป ทำงาน 1 ครั้ง แล้วหยุดทำงาน ตัวอย่างเช่น ต้องการให้ บันทึกเสียงสนทนา เราต้องเตรียม สคริปไว้ก่อน ในตัวอย่างใช้ชื่อว่า record.sh
 ให้พิมพ์ คำสั่ง

$ soundmeter --trigger +317 1 --action exec-stop --exec record.sh

ส่วนรายละเอียด คำสั่งอื่นๆ ลองไป อ่านดูใน
https://pypi.python.org/pypi/soundmeter