【问题标题】:How to get arduino port with python [duplicate]如何使用 python 获取 arduino 端口 [重复]
【发布时间】:2014-12-16 17:35:45
【问题描述】:

我正在开发一个嵌入式项目,我需要连接 Arduino 和 Raspberry pi,因为我想通过串行端口使用 Raspberry Pi 控制 Arduino。我的问题是如何使用 python 在 Linux 中动态获取 Arduino 端口?

我的 python 程序将循环向 Arduino 发送命令,如果有人连接和断开 Arduino,我不想失去通信。

感谢您的帮助。 祖林

【问题讨论】:

    标签: python linux serial-port arduino raspberry-pi


    【解决方案1】:

    第一次安装Pyserial

    如果您已将 arduino 与您的电脑连接,您可以看到所有串行消息:

    sudo screen /dev/ttyAMC0
    

    现在来python控制arduino:

    import serial
    ser = serial.Serial('/dev/ttyACM0', 9600)
    ser.write("something")           # this will write "your stuff" to Arduino serial.
    

    现在使用 Cprogram 您可以从串行读取输入是什么。你可以使用 python 命令你的 arduino

    从串行读取和写入串行的 C 程序:

    char a[10];
    void setup()
    {
      Serial.begin(9600);
    }
    void loop()
    {
      if(Serial.available()>0)
      {
          Serial.readBytes(a,10);
          Serial.println(a);
      }
    } 
    

    【讨论】:

      【解决方案2】:

      你可以这样做:

      def get_serial_port():
          return "/dev/"+os.popen("dmesg | egrep ttyACM | cut -f3 -d: | tail -n1").read().strip()
      

      然后你就可以连接 arduino 做:

      device = serial.Serial(get_serial_port(), baudrate=9600, timeout=3)
      

      (假设您使用默认速率 9600,您可以更改参数...)

      【讨论】:

      • os.popen从python 2.6开始贬值,应该使用子进程模块
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-19
      • 2013-04-14
      • 1970-01-01
      • 2015-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多