Edison与Arduino经过USB对接通讯

虽然Edison自己就装在一块Arduino扩展板上,但当要接的传感器太多了的时候一个扩展板也不够用了。所以须要再用一Arduino板扩展功能。而二者须要通讯才能达到一个总体的效果,所以这里介绍如何用USB链接Arduino和Edison来达到通讯的目的。接下来进入教程正文:python

1、硬件ssh

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

2、为Arduino烧录程序ui

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

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。调试

3、链接
Edison在一个micro usb口供电的状况下是不会启用usb type-A口的,因此请务必用专用电源给Edison供电。而后查看Edison上链接的串口设备:在ssh链接上Edison后输入code

ls /dev/tty*

 

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

 

4、为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()

 

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

>>> hello
character received:hello

 

能够看出Edison和Arduino已经开始通讯啦。

相关文章
相关标签/搜索