|
Tài trợ cho PIC Vietnam |
PIC và Robot trên nền Ubuntu Đây là một chủ trương mới mà chúng ta cần chú ý. |
|
Ðiều Chỉnh | Xếp Bài |
15-09-2015, 02:36 AM | #2 |
Đệ tử 1 túi
Tham gia ngày: Dec 2005
Bài gửi: 12
: |
5. Để giao tiếp với cổng com, có thể dùng cutecom, hoặc chính bản thân terminal. Nếu dùng cutecom thì cũng tương tự với các chương trình khác. Ví dụ với terminal thôi:
Code:
#Thiết lập com /dev/ttyUSB0 với baudrate cần thiết, stty -F /dev/ttyUSB0 speed 115200 raw #raw tức là hiển thị tất cả, không dấu thứ gì #Dùng lệnh cat để đưa chuỗi nhận được ra stdout (tức là màn hình terminal) cat /dev/ttyUSB0 #Nếu muốn có thể cho chuỗi này vào một file định sẵn cat /dev/ttyUSB0 > filename.txt Code python: Code:
import pyqtgraph as pg from pyqtgraph.Qt import QtCore, QtGui import serial import numpy as np ser=serial.Serial('/dev/ttyUSB1',115200) win=pg.GraphicsWindow() win.setWindowTitle('DC motor speed display using PyQtGraph') p1=win.addPlot() p2=win.addPlot() data1=[] curve1=p1.plot(data1,pen=(255,255,0),name='Speed (RPM)') curve2=p2.plot(data1,pen=(0,255,255)) ptr1=0 def update(): global data1, curve1, ptr1 speed=float(ser.readline()) data1.append(speed) ptr1+=1 curve1.setData(data1) curve2.setData(data1) curve2.setPos(ptr1,0) if ptr1>50: del data1[0] timer=pg.QtCore.QTimer() timer.timeout.connect(update) timer.start(50) ## Start Qt event loop unless running in interactive mode or using pyside. if __name__ == '__main__': import sys if (sys.flags.interactive != 1) or not hasattr(QtCore, 'PYQT_VERSION'): QtGui.QApplication.instance().exec_() Đây là đồ thị thời gian thực, đáp ứng rất nhanh theo thực tế ở mạch điều khiển. Code python trên nếu chiu khó tinh chỉnh sẽ cho ra đồ thị đẹp và chuyên nghiệp hơn. Nếu muốn đẹp hơn nữa thì matplotlib, nhưng matplotlib khá chậm, không đáp ứng được yêu cầu thời gian thực. |
|
|