• Edison与Arduino通过USB对接通信


    虽然Edison本身就装在一块Arduino扩展板上,但当要接的传感器太多了的时候一个扩展板也不够用了。因此需要再用一Arduino板扩展功能。而两者需要通信才能达到一个整体的效果,因此这里介绍如何用USB连接Arduino和Edison来达到通信的目的。接下来进入教程正文:

    一、硬件

    1.系统内装有python解释器的Edison开发板
    2.电源
    3.Arduino
    4.Arduino usb连接线

    二、为Arduino烧录程序

    打开Arduino IDE,给你的Arduino烧录以下程序:

    String txt;
    void setup(){
        Serial.begin(9600);
    }
    void loop(){
        if (Serial.available()){
            txt = Serial.readString();
            Serial.print("character received:");
            Serial.println(txt);
        }
    }

     这个程序的功能就是当Arduino接收到Edison通过串口发来的消息后,在这段消息前加上“character received:”再发送回给Edison。

    三、连接
    Edison在一个micro usb口供电的情况下是不会启用usb type-A口的,所以请务必用专用电源给Edison供电。然后查看Edison上连接的串口设备:在ssh连接上Edison后输入

    ls /dev/tty*

    再把Arduino通过USB连接线插到Edison的USB口。再查看一次Edison上的串口设备。这个时候会发现列表中多了一个设备,这个串口名就是你Arduino的啦。如图:

    四、为Edison编写代码

    这里要用到python的一个名为serial的模块,专门用来获取串口的数据。因为我的Edison上显示Arduino的串口名是/dev/ttyACM0,所以serial.Serial()的第一个参数就是/dev/ttyACM0,如果你的串口名不是这个,就替换为你设备上显示的端口名就好了。示例使用的是python2。

    import serial
    ser = serial.Serial(‘/dev/ttyACM0’, 9600, timeout=1)
    ser.open()
    try:
      while 1:
        txt = raw_input()
        ser.write(txt)
        response = ser.readline()
        print response
    except KeyboardInterrupt:
      ser.close()

    五、运行和调试
    启动程序,之后输入hello:

    >>> hello
    character received:hello

    可以看出Edison和Arduino已经开始通信啦。

  • 相关阅读:
    104每日博客
    924每日博客
    921每日博客
    928每日博客
    929每日博客
    930每日博客
    927每日博客
    大志非才不就,大才非学不成—我的博文资源汇总
    vue 项目搭建
    Vant 使用记录
  • 原文地址:https://www.cnblogs.com/philip/p/6971137.html
Copyright © 2020-2023  润新知