////在arduino寫入持續送hello world
void setup()
{Serial.begin(9600); // set up Serial library at 9600 bps}
void loop()
{ delay(9000);
Serial.println("Hello world!"); // prints hello with ending line break
}
然後使用screen在ubuntu接收
screen /dev/ttyACM0
//我的usb接上去代號是ttyACM0
就可以看到螢幕上一直跳hello world
離開screen 可以按ctrl a c
或者使用ttylog
回覆刪除ttylog -f -d /dev/ttyACM0 -b 9600
卡了那麼多天promission denied後來朋友叫我在command line下sudo php xxx.php後可以執行 就去把ttyACM0 chmod變成777就OK了
回覆刪除這是在網路上找的一個使用php控制arduino led燈開關的簡單程式
回覆刪除http://missionduke.com/wordpress/arduino-projects/
http://code.google.com/p/php-serial/
使用的程式就是上面這個rizwank@uwink.com寫的php_serial.class.php程式
missionduke寫了一個簡單的serialledcontrol.php呼叫這個程式
在arduino寫入SerialLEDComm.pde就會從序列埠接收0,1,2,3四種message控制
紅綠兩個led開和關,收到0就綠燈亮1就綠燈關2就紅燈亮3就紅燈關
一開始要先確認自己的arduino usb是哪個傳輸埠 可以從arduino選單下看到是COM1
COM2,還是/dev/ttyxxx,但是arduino要用root執行才能選擇傳輸埠,不然會不能選
arduino serialport gray out的問題是在下面的網址看到的,
http://blog.markloiseau.com/2012/05/install-arduino-ubuntu/
網址內有說可以用dmesg指令在linux查詢序列埠是哪個像我的ttyACM0埠查出來會是
[20092.950139] usb 3-4: >Product: Arduino Mega 2560
[20094.901518] cdc_acm 3-4:1.0: >ttyACM0: USB ACM device
blah..blah..blah...之類的訊息
我的php環境是使用xampp和linux版本lampp,所以裝好後只要把兩個PHP檔案丟進去
php的根目錄/opt/lampp/htdocs就可以在localhost執行,因為序列埠不同,需要
在serialledcontrol.php改成自己的埠/dev/ttyACM0然後在php_serial.class.php的
function deviceSet ($device)那邊把/dev/ttyS改成/dev/tty就好
一開始我不能用改來來去,有遇到一些變數undefine的問題,最後卡在一個權限問題
promission denied,問人以後發現在php -a的command line下可以執行
sudo php xxx.php也可以執行,才去改權限,把/dev/ttyACM0改成chmod 777
然後就可以執行了,php_serial.class.php我自己亂顯示參數浪費一點時間,
除了deviveset那邊要注意一下自己的序列埠,好像就沒有遇到其他問題