10814浏览
查看: 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

demo

day4_1

day4_1
day4_2.jpg
day4_3.jpg

ikuing  中级技师
 楼主|

发表于 2016-3-30 22:56:52

hnyzcj 发表于 2016-3-30 08:43
python 端 代码:是放在哪里?是PC,还是其它什么,怎么保存……………………请详细写出,谢谢,便于我们小 ...

在PC端 安装pyton环境    然后PYQT程序弄好之后     就可以通过在PC端   通过界面控制LED灯了
回复

使用道具 举报

hnyzcj  版主

发表于 2016-3-30 08:43:03

python 端 代码:是放在哪里?是PC,还是其它什么,怎么保存……………………请详细写出,谢谢,便于我们小白学习!!!
回复

使用道具 举报

丄帝De咗臂  高级技匠

发表于 2016-3-30 09:28:18

高端,上档次
回复

使用道具 举报

yhtjay  见习技师

发表于 2016-5-13 16:48:18

ikuing 发表于 2016-3-30 22:56
在PC端 安装pyton环境    然后PYQT程序弄好之后     就可以通过在PC端   通过界面控制LED灯了 ...

我也做过个PyQT的界面,处理转发串口数据,放手持平板上运行。python真的很方便。arduino我刚学。准备做个机器运行数据收集监控的小项目。也是准备用python加arduino.
回复

使用道具 举报

ikuing  中级技师
 楼主|

发表于 2016-5-31 23:56:48

yhtjay 发表于 2016-5-13 16:48
我也做过个PyQT的界面,处理转发串口数据,放手持平板上运行。python真的很方便。arduino我刚学。准备做 ...

看好你  加油~!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail