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);

Wednesday, December 7, 2016

ใช้ python ควบคุมวิทยุสื่อสาร ตอน การ import โมดูล


ผู้ที่เริ่มหัดเขียนโปรแกรม อาจจะสับสนวิธีการ เรียกใช้โมดูลในภาษา python ทำให้ไปต่อไม่ถูก ตั้งแต่ บรรทัดแรก ลองอ่านบทความนี้ดู ครับ

วิธีการ import เรียกใช้ โมดูล ในที่นี้จะยกตัว โมดูล Tkinter

มี สองวิธี คือ

วิธีที่ 1

from Tkinter import *

จะสามารถ เรียกใช้ ฟังชั่นในโมดูลได้ เลย ดังในตัวอย่างที่ ผ่านมา
window = Tk()

ลองดูรายละเอียด 

from Tkinter import *

window = Tk()
window.title("HS1ZFK")
btnTxRx = Button(window, text="Tx/Rx", bg="light blue")
btnTxRx.grid(padx=80, pady=20)
window.mainloop()

วิธีที่

ในกรณีที่ต้องใช้ โมดูล หลายๆ อันในโปรแกรมเดียวกัน อาจจะเกิดปัญหาจาก ฟังชั่นในโมดูล มีชื่อ ซ้ำกัน เพื่อแก้ปัญหาดังกล่าว จะทำการ import ด้วยวิธีนี้
Import Tkinter
เมื่อจะเรียกใช้ ฟังชั่นในโมดูล ต้อง เรียกโมดูลก่อน ตามด้วยเครื่องหมาย จุด ตามด้วยชื่อฟังชั่น
window = Tkinter.Tk()

สังเกตุ โค้ดของวิธีที่ 2

import Tkinter


window = Tkinter.Tk()
window.title("HS1ZFK")
btnTxRx = Tkinter.Button(window, text="Tx/Rx", bg="light blue")
btnTxRx.grid(padx=80, pady=20)
window.mainloop()

ซึ่งทั้งสองวิธีจะได้ ผลเหมือนกันดังในภาพ
 
 


Friday, December 2, 2016

ใช้ Python ควบคุมวิทยุสื่อสาร ตอน Tkinter GUI




   การนำ คอมพิวเตอร์ มาพ่วงต่อกับ วิทยุสือสาร ผ่าน usb-serial มีวิธีประยุกต์ใช้ได้

หลายวิธี เช่น ให้ เปิิด ไฟล์ mp3 เสียง เรียก CQ ในการแข่งขัน , การ อ่านประกาศ ของ สมาคม / ชมรม ผ่านทาง อินเตอร์ เน็ท คือ ให้ Net_Control อยู่ที่บ้าน สามารถ ควบคุม วิทยุสื่อสาร ที่อยู่ สมาคม / ชมรม ได้ , การส่งข้อมูล ที่ เข้า รหัส (codec) ลองอ่านดูบทความเก่า ครับ
 

การใช้ python script ผ่านทาง command line ไม่ยาก แต่ จะถ้าจะ

แจก จ่ายให้ เพื่อน นักวิทยุสมัครเล่น เลือก ใช้ กราฟฟิก อินเตอร์ เฟส 

 GUI ง่ายสำหรับ เพื่อนๆ มากกว่า บทความนี้ จะใช้ Tkinter ในการสร้าง 

แทน Wxpython ในบทความเก่าที่ผ่านมา



สำหรับผู้ที่ใช้ windows เมื่อทำการ ติดตั้ง python ปรกติ จะติดตั้ง Tkinter ให้อยู่แล้ว แต่ ถ้าใช้ระบบ Linuxเริ่มติดตั้งด้วย

sudo apt-get update
sudo apt-get install python-tk


ในการเรียกใช้ Gui python tkinter ก่อนอื่นต้องตรวจสอบว่าเป็น python เวอร์ชั่นไหน เพราะ คำสั่ง

import ต่างกัน โดยเวอร์ชั่นของ python ให้สังเกตุจาก ข้อมูลหลังเรียกใช้ ดังตัวอย่างเป็น เวอร์ชั่น 2.7.12
ใน python 2 จะเรียก ใช้ด้วยคำสั่ง

from Tkinter import *
สังเกตุ อักษร T เป็นตัวพิมพ์ ใหญ่

และใน python 3 จะเรียกใช้ด้วยคำสั่ง

from tkinter import *
โดยจะใช้ัอักษร t ตัวเล็ก

ในที่นี้จะเขียน สคริป เพื่อ เรียก ปุ่มกด จากนั้น จะ ค่อยๆ เพิ่ม การควบคุม usb – serial เพื่อพวงต่อกับวิทยุ
และ การเรียกใช้ ไฟล์ mp3 การตั้งเวลา เป็น ลำดับ

ลองดู สคริป นี้ 
from Tkinter import *



window = Tk()

window.title("HS1ZFK")

btnTxRx = Button(window, text="Tx/Rx", bg="light blue")

btnTxRx.grid(padx=80, pady=20)

window.mainloop()


ลองดูรายละเอียด

from Tkinter import *
เริ่มแรก ทำการ import โมดูล tkinter เครื่องหมาย * คือ เรียกทุกอย่างใน โมดูล

window = Tk()
จากนั้นทำการสร้าง instance ของ Tk class โดยตั้งชื่อว่า window

window.title("HS1ZFK")
กำหนด title ของ window

btnTxRx = Button(window, text="Tx/Rx", bg="light blue")
สร้างปุ่มกด ชื่อ btnTxRx และใช้สี light blue หากต้องการเปลี่ยนสีให้ดูรายละเอียดที่


btnTxRx.grid(padx=80, pady=20)
สังเกตุ grid method จะทำการควบคุม ตำแหน่งของ widget ด้วย จำนวนช่องวาง pixel ตำแหน่ง x และ y

window.mainloop()
เป็นคำสั่งให้ วน loop จนกว่า จะ คลิกที่ เครื่องหมาย x เพื่อเป็นการหยุดการทำงาน

เมื่อเขียน script แล้วทำการบันทึกในตัวอย่างใช้ชื่อ firstTk.py สำหรับ Linux ให้ทำการ เปลี่ยนค่า permission ด้วยคำสั่ง
$ sudo chmod +x firstTk.py

จากนัน ให้โปรแกรมทำงานด้วยคำสั่ง
$ python ./firstTk.py
จะได้ หน้าต่าง ดังในภาพ