如何用Python Gui控制Arduino程序?

2024-05-14 21:16:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助来理解如何使用pythongui控制Arduino程序。这是我第一个涉及用户界面设计和Arduino的项目,所以我不知道从哪里开始这个任务。任何开始的提示或帮助将不胜感激。在

Arduino程序提供给我,我关注的主要功能包括移动几个电机来控制一个平台。到目前为止,我已经使用pyqt5gui设计器创建了一个基本GUI,它允许在平台的x、y和z方向移动。在

首先,我想知道如何执行一个简单的命令,比如首先使用pythongui将平台设置为“Home”位置(x、y和z值设置为0)。在

这是Arduino程序中的代码,我认为它与将平台设置到“原点”位置有关:

void goHome(){  
  setPos(arr0);
  if (altech == 1) { moveDiffSpd(servo_pos, spdOld); }
  if (altech == 2) { moveBresenham(servo_pos, spdOld); }
  getSerPos0(servo_pos);
}

void presetHome(){ 
  setPos(arr0);
  // Return directly to HOME position
  for (int i=0; i<6; i++){
    if (Dynamixel.readPosition(i+1)!=servo_pos[i]) { 
Dynamixel.moveSpeedRW(i+1,servo_pos[i],spdOld);  }
  }
  Dynamixel.action();
  getSerPos0(servo_pos);
}

我对Arduino没有什么经验,所以代码中可能有比这更多的,如果需要更多的话,我可以提供。在

在Arduino命令行中输入“H”时调用此函数。在

本质上,我试图创建一个界面,它可以像输入“H”返回home一样,只需单击一个按钮而不是键入命令。理想情况下,我可以用PyQt5创建的接口来实现这一点,但如果另一个GUI程序更有效,我可以考虑一下。在

再次感谢任何帮助或起点。谢谢!在


Tags: 代码pos命令程序ifgui平台dynamixel
1条回答
网友
1楼 · 发布于 2024-05-14 21:16:52

要启动dialog arduino python程序,您必须使用python中的串行库,如下所示:

import serial

在创建串行实例并将其打开之后:

^{pr2}$

您可以使用以下命令从arduino读取数据:(arduino使用连续打印或者序列号.println向python发送数据

while arduino.inWaiting() > 0:
  message = arduino.read(1)

要将数据从python发送到arduino,可以使用write函数

arduino.write('x')

用flush清除串行缓冲区

arduino.flush()

最后关闭序列号:

arduino.close()

你有基础开始。。。。在

相关问题 更多 >

    热门问题