Fw: [問題] arduino uno跟jetson nano的溝通問題

看板C_and_CPP (C/C++)作者 (晴日橘子)時間2年前 (2021/06/05 03:16), 編輯推噓2(2011)
留言13則, 4人參與, 2年前最新討論串1/1
※ [本文轉錄自 Electronics 看板 #1Wkdbk0m ] 作者: hydebeast (晴日橘子) 看板: Electronics 標題: [問題] arduino uno跟jetson nano的溝通問題 時間: Sat Jun 5 03:05:12 2021 各位先進好 小弟打算做一台簡單的無人車 可以根據影像辨識的結果來做不同應對 無人車方面用的是irobot create第一代 然後利用arduino uno來控制irobot的行走 jetson nano負責做影像辨識 若是jetson辨識到特定的人 他就會傳特定訊號給arduino 讓arduino把車停下來 並根據辨識到的是誰來做不同反應(發出聲音 首先irobot方面 小弟用arduino控制起來沒什麼問題 簡單的行走、避障跟發出聲音都OK 另外arduino跟jetson溝通的方面 因為arduino的UART邏輯輸出是0V~5V 而jetson的GPIO的UART邏輯輸出則是0V~3.3V 所以我有加了一個level shifter 我試過讓兩台互傳訊息並用jetson印出內容 基本上也OK 小弟遇到問題的地方是三者一起運行的時候 首先這是arduino的程式碼 https://ideone.com/L8uTXT Jetson.Serial是對jetson通訊的串口 而face變數則是用來存jetson傳過來的訊號 裡面大多函式都是用來控制車子的 重點是在patrol()跟scan()兩個函式 patrol()是arduino的loop 他會讓車子行走0.1秒之後先判斷有沒有撞到東西(bump() 接著再scan()看看jetson有沒有輸入 https://ideone.com/fqHFyw jetson的程式碼 jetson基本上就是不停的傳100這個訊號 直到arduino回傳OK表示收到了才停止 而arduino的scan()則是在讀到東西後會先讓車子停下兩秒 如果讀到100或200會回傳OK 然後根據讀到的是100或是200來發出不同的聲音(現在的測試程式jetson只會送100 之所以我會讓jetson在收到OK前不斷送訊號 是因為我怕jetson送訊號跟arduino讀訊號會不同步 前面說的測試jetson連arduino的時候 我是用while(!Serial)的方式 讓arduino直到收到東西才讀取 但現在因為還要讓車子動 所以我是用每0.1秒讀一次訊號的方式 另外因為pyserial似乎只能傳送字串 但arduino的C語言判斷字串是否相等很麻煩 所以我是jetson傳100 然後arduino再用toInt()轉成數字100之後再做判斷 不過我用這個方式做測試 車子只會不停的行走 先不說收到100後發出聲音 車子連有收到訊號先停下兩秒這個動作都不會出現 代表scan()後根本都沒進到迴圈 想請問各位大大 不知道問題是出在哪裡呢... 小弟的問題如果很笨請見諒...本身對開發板 機器人 UART這些東西都是新手 光是arduino跟jetson互傳訊息就用了好久... 再麻煩各位大大幫個忙了... -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.242.127.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Electronics/M.1622833518.A.030.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: hydebeast (101.9.176.33 臺灣), 06/05/2021 03:16:44

06/05 03:33, 2年前 , 1F
strncmp?
06/05 03:33, 1F

06/05 03:34, 2年前 , 2F
會不會是接線鬆了 收不到 會
06/05 03:34, 2F

06/05 03:34, 2年前 , 3F
*哈
06/05 03:34, 3F

06/05 03:48, 2年前 , 4F
d大晚上好 我有把接線都動一動~而且事後有再改回單純
06/05 03:48, 4F

06/05 03:48, 2年前 , 5F
arduino跟jetson互傳那個程式沒有問題QQ
06/05 03:48, 5F

06/05 09:27, 2年前 , 6F
看起來可能是 jetson 傳太多、太快了,arduino 那邊來
06/05 09:27, 6F

06/05 09:27, 2年前 , 7F
不及處理
06/05 09:27, 7F

06/05 09:41, 2年前 , 8F
痾 看你描述的問題的狀況好像也不是這樣,你可能要先確
06/05 09:41, 8F

06/05 09:41, 2年前 , 9F
定 arduino 執行時卡在什麼地方
06/05 09:41, 9F

06/05 11:37, 2年前 , 10F
封包有沒有lost?
06/05 11:37, 10F

06/05 23:26, 2年前 , 11F
感謝各位的回答 我後來發現 在跟jetson互傳訊息正常的
06/05 23:26, 11F

06/05 23:26, 2年前 , 12F
那個程式碼 加入打開第二組軟串口的指令之後互傳就不
06/05 23:26, 12F

06/05 23:26, 2年前 , 13F
正常了囧 第二組串口只是打開而已都沒做任何動作
06/05 23:26, 13F
文章代碼(AID): #1WkdmTOa (C_and_CPP)
文章代碼(AID): #1WkdmTOa (C_and_CPP)