2016年2月4日 星期四

use usb2ttl to control raspberry or arduino



參考文章是用  raspberry 和 arduino  來做實驗


先從 raspberry 傳送到  arduino

在 arduino 

.寫程式如下 : (可以參考  File->Examples->01.Basics->Blink. )

const int ledPin = 13;

void setup(){
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  if (Serial.available())  {
     blink(Serial.read() - '0');  // convert the character '1'-'9' to decimal 1-9
  }
  delay(500);
}

void blink(int numberOfTimes){
  for (int i = 0; i < numberOfTimes; i++)  {
    digitalWrite(ledPin, HIGH);
    delay(100);
    digitalWrite(ledPin, LOW);
    delay(100);
  }
}

最主要就是使用  Serial 這個物件

void Serial.begin (9600)  ->  鲍率 9600
bool Serial.available() -> check serial 有沒有message
int Serial.read()      -> 傳回接收到的數字


在Raspberry

use python

sudo vi main.py

#!/usr/bin/python

import serial
ser = serial.Serial('/dev/ttyACM0', 9600)
ser.write('3')

大概就是RPI 傳送  3 出去....



從 arduino 傳送到  raspberry

在 arduino 

void setup(){
  Serial.begin(9600);
}

void loop(){
  Serial.println("Hello, World!");
  delay(1000);
}

多了一個function    :  Serial.println("Hello, World!");

在 raspberry


import serial
ser = serial.Serial('/dev/ttyACM0', 9600)
while 1 :
    ser.readline()</span>

多了一個function    serial .readline()  

執行的結果如下:

'Hello, World!\r\n'
'Hello, World!\r\n'
'Hello, World!\r\n'
...

不過我目前沒有arduino....所以我會用兩個RPI來互相傳送資料試試...



Reference : http://www.seeedstudio.com/recipe/166-basic-pi-lt-gt-arduino-communication-over-usb.html

沒有留言:

張貼留言