雖然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已經開始通訊啦。