บทความฉบับนี้สอนการเขียนโปรแกรม ด้วยภาษา Python เพื่อทำการ อ่านค่า Analog Input แบบ Voltage จาก โมดูล RevPi AIO โดยการใช้ สัญญาณ ขาออก จาก โมดูล RevPi AIO เอง ด้วยโปรแกรม piTest
อุปกรณ์ Revolution Pi เช่น RevPi Core 3 และ RevPi Connect ถูกพัฒนาขึ้น เพื่อทดแทน Raspberry Pi (RPi) สำหรับ งานอุตสาหกรรม
หากผู้อ่านมีข้อสงสัยเพิ่มเติม กรุณา ติดต่อ ทีมงาน เทคสแควร์
การกำหนดค่าเริ่มต้น
- ทำการ เชื่อมต่อ อุปกรณ์ ทั้งหมด ตามบทความ การใช้งาน RevPi ผ่านโปรโตคอล SSH แบบรีโมท
- ทำการ กำหนดค่า RevPi Core 3 ให้สามารถ เริ่มต้น การทำงานด้วย GUI Mode ได้ ตามบทความ สอนการกำหนดค่าอุปกรณ์ RevPi Core / RevPi Core 3 ให้เริ่มต้นการทำงานด้วย GUI Mode
- ทำการ กำหนดค่า 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 ตามที่ต่อสัญญาณไว้ได้อย่างถูกต้อง