กุมภาพันธ์ 2, 2016

การเขียนโปรแกรม Python เพื่ออ่านค่า Voltage จาก RevPi AIO

บทความฉบับนี้สอนการเขียนโปรแกรม ด้วยภาษา Python เพื่อทำการ อ่านค่า Analog Input แบบ Voltage จาก โมดูล RevPi AIO โดยการใช้ สัญญาณ ขาออก จาก โมดูล RevPi AIO เอง ด้วยโปรแกรม piTest 

อุปกรณ์ Revolution Pi เช่น RevPi Core 3 และ RevPi Connect ถูกพัฒนาขึ้น เพื่อทดแทน Raspberry Pi (RPi) สำหรับ งานอุตสาหกรรม

หากผู้อ่านมีข้อสงสัยเพิ่มเติม กรุณา ติดต่อ ทีมงาน เทคสแควร์

การกำหนดค่าเริ่มต้น
  1. ทำการ เชื่อมต่อ อุปกรณ์ ทั้งหมด ตามบทความ การใช้งาน RevPi ผ่านโปรโตคอล SSH แบบรีโมท
  2. ทำการ กำหนดค่า RevPi Core 3 ให้สามารถ เริ่มต้น การทำงานด้วย GUI Mode ได้ ตามบทความ สอนการกำหนดค่าอุปกรณ์ RevPi Core / RevPi Core 3 ให้เริ่มต้นการทำงานด้วย GUI Mode
  3. ทำการ กำหนดค่า RevPi Core 3 ให้สามารถ ใช้งาน Remote Desktop ได้ ตามบทความ สอนการใช้ Remote Desktop กับ RevPi Core / RevPi Core 3
อุปกรณ์ประกอบ
  • คอมพิวเตอร์ จำนวน 1 เครื่อง
  • อุปกรณ์ RevPi Core 3 จำนวน 1 ตัว
  • อุปกรณ์ RevPi AIO จำนวน 1 ตัว
ขั้นตอนการกำหนดค่า

1) เปิดหน้า Web Browser บนคอมพิวเตอร์ และพิมพ์ IP Address ของอุปกรณ์ RevPi Core 3 และ ทำการ Login ตาม รายละเอียด ดังต่อไปนี้

  • Username: admin
  • Password: ดูได้จากสติ้กเกอร์ด้านข้างของอุปกรณ์ RevPi

2) จะปรากฏหน้าต่าง Web Server ของ อุปกรณ์ RevPi Core 3 ให้ทำการ Click ที่ปุ่ม START เพิ่มเริ่มต้นโปรแกรม PiCtory

3) ให้ทำการลาก ไอคอน RevPi AIO ในกลุ่ม I/O Devices จากเมนูทางด้านซ้าย มาอยู่ด้านข้างของรูป RevPi Core 3 (ในที่นี้ ลากมาทาง ด้านซ้าย ของ อุปกรณ์ RevPi Core 3 เพื่อให้สอดคล้อง กับ อุปกรณ์ จริง) 

4) คลิกเลือก รูป RevPi AIO ที่เพิ่มขึ้นมา แล้วทำการ Enable Checkbox ในคอลัมน์ Export ของหน้าต่างย่อย Value Editor ทางด้านขวาล่าง ดังนี้

  • InputValue_1
  • OutputValue_1

จากนั้นให้ทำการกำหนดค่า Input1Range และ Output1Range เป็น -10 – 10V

ผู้ใช้สามารถทำการบันทึก Configuration ดังกล่าว ได้ โดยการเลือกเมนู File และ Save As จะปรากฏหน้าต่างให้ตั้งชื่อ และกด OK เพิ่มทำการบันทึกค่า เก็บไว้ใน อุปกรณ์ RevPi Core 3 

ให้ทำการเลือกเมนู File และ Save as Start-Config. เพื่อทำการบันทึกเป็นค่าเริ่มต้น

และเลือกเมนู File และ Load Start-Config. เพื่อทำการโหลดค่า Configuration ดังกล่าวเป็นค่าเริ่มต้น

5) เลือกเมนู File และ Export เพื่อทำการสร้างไฟล์ Offset List ที่จะใช้อ้างอิงตำแหน่งของ Address ในการ เขียนโปรแกรม ด้วยภาษา Python โดยให้เลือกเป็นโหมด Offset list (Template เป็น e02.json)

ในที่นี้ ได้ผลลัพธ์ ของไฟล์ OffsetList.txt เป็นตามรายการด้านล่าง

  • InputValue_1 0 //INT
  • OutputValue_1 20 //INT  

InputValue_1 หมายถึง Analog Input Channel 1 มี Offset ที่ Address 0

OutputValue_1 หมายถึง Analog Output Channel 1 มี Offset ที่ Address 20

6) ใช้โปรแกรม PuTTY จากคอมพิวเตอร์ หรือ เปิดโปรแกรม Terminal ที่อุปกรณ์ RevPi Core 3 แล้วพิมพ์คำสั่งด้านล่าง เพื่อทำการสร้างสัญญาณ Analog Output แบบ Voltage ให้มีค่า 1 Volt

  • piTest -w OutputValue_1,1000

ให้ผู้ใช้ทำการพิมพ์คำสั่งด้านล่าง เพื่อทำการอ่านค่าสัญญาณ Analog Input แบบ Voltage ที่ได้รับจากสัญญาณ Analog Output ด้วยคำสั่งก่อนหน้า

  • piTest -1 -r InputValue_1

7) ใช้โปรแกรม VNC Viewer เข้าไปยังอุปกรณ์ RevPi Core 3 แล้วเปิดโปรแกรม Python 3 (IDLE)

8) พิมพ์คำสั่งตามรายการด้านล่าง

import time
import struct
import fcntl
techsquare=open("/dev/piControl0","wb+",0)
techsquare.seek(0)
data=int.from_bytes(techsquare.read(2),byteorder='little')
print(data)

หากทำตามขั้นตอนได้ถูกต้อง จะสามารถอ่านค่า Voltage ของ Analog Input Channel 1 ได้เป็น 1000 ในหน่วย mV หรือ 1 Volt ตามที่ต่อสัญญาณไว้ได้อย่างถูกต้อง

error: Content is protected...