10814| 5
|
[项目] 关于用pyQT和arduino进行交互之串口通信篇 |
本帖最后由 ikuing 于 2016-4-2 19:36 编辑 测试篇 ====================== Arduino 端代码 int red = 10; int yellow = 9; int blue = 8; String com = ""; void setup(){ pinMode(8, OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); Serial.begin(9600); //设置波特率为9600 bps } void loop(){ while(Serial.available()>0) { com += char(Serial.read()); delay(2); } if(com.length()>0) { if (com == "10\n") { for(int i = 8;i<11;i++) { digitalWrite(i,LOW); } digitalWrite(red,HIGH); Serial.println(com); } else if(com == "9\n") { for(int i = 8;i<11;i++) { digitalWrite(i,LOW); } digitalWrite(yellow,HIGH); Serial.println(com); } else if(com == "8\n") { for(int i = 8;i<11;i++) { digitalWrite(i,LOW); } digitalWrite(blue,HIGH); Serial.println(com); } else { com = ""; } com = ""; } } ================== python 端 代码: #kuing import sys from PyQt4 import QtCore, QtGui from make_arduino import Ui_Form from PyQt4.QtGui import * from PyQt4.QtCore import * import serial import win32api import win32con import time import string class MyForm(QtGui.QMainWindow): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.ui = Ui_Form() self.ui.setupUi(self) self.ser = serial.Serial() self.ser.baudrate = 9600 self.ser.port = 'com11' self.ser.open() def set_red(self): self.ser.write('10\n') print '10' def set_yellow(self): self.ser.write('9\n') print '9' def set_blue(self): self.ser.write('8\n') print '8' app = QtGui.QApplication(sys.argv) myapp = MyForm() myapp.show() sys.exit(app.exec_()) ========================== ===============持续更新..============== ps : 由之前的实验慢慢演变为 准备做一个Arduino 智能小车的控制软件 ,上面可以搭载很多传感器,并实时获取传感器返回的数据,并用图表打印出来~.. 并简易的做个 方向控制器~ 控制小车的移动方向 。 现在正在向这个想法努力ing~ 到时想用 wifi 取代串口控制小车 这个难度感觉还是有点大的 现在的温度数据 是通过usb 连线取回的~... 如果有哪位大神有什么更好的建议 可以留言 相互交流~ 在此谢谢啦~ |
demo
day4_1
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed