让Arduino读取一个字符串(通过Python发送),根据输入移动电机,然后接收下一个字符串

2024-09-28 17:00:27 发布

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

我正在研究一个Rubiks立方体解算器,它使用Arduino和马达来移动每个面。我使用的Python脚本每行编写一个move,然后是第一行,然后是第二行,依此类推

x = 0
    with open(FILEPATH, "r") as f:
        lines = f.readlines()
        FileEnd = False
        while FileEnd == False:
            try:
                ser.write(lines[x])
                print lines[x]
                x += 1

            except serial.SerialException:
                time.sleep(1)

             except IndexError:
                FileEnd = True

Arduino应该接收这个字符串,停止从序列中读取,相应地处理字符串中的内容,然后接受下一个字符串。在

^{pr2}$

我面临两个问题:

1)Python脚本不停地发送每一个移动,而忽略了这一点序列结束()应该已经发生了

2)当我读串行监视器时,我看到了相同的一组看似随机的字符,它们在接收到来自Python脚本的输入时淹没整个监视器

请帮忙?:3个


Tags: 字符串脚本falsemovewith序列openarduino
2条回答

我建议以G代码格式发送命令。在

有几个Arduino公司已经接受G代码并驱动多个电机。 这样你就不需要重新发明串行接收器、多个电机命令队列和多个电机软件驱动程序。在

我建议使用Grbl固件。它将在UNO上运行,并通过各种防护罩驱动步进电机。在

这样Python就可以根据需要发送并忽略G代码命令。在

我对做这种事有一点经验。 我认为pyserial在这种情况下可能会有所帮助http://pyserial.sourceforge.net/ 就串行监视器而言,我相信有一种方法可以在使用pyserial发送之前刷新数据。 有很多关于arduino和Pyserian的东西。在

相关问题 更多 >