2017-04-07 105 views
0

我需要幫助試圖讓樹莓pi與Arduino使用NRF24l01 +進行通信。樹莓pi到arduino與nrf24 - RF24庫示例不工作

來自nrf24庫的示例文件不會運行或編譯;我已經嘗試過5個arduino和pi的庫,但都沒有工作。但現在,我會與最詳細的指南,我能找到:http://invent.module143.com/daskal_tutorial/rpi-3-tutorial-14-wireless-pi-to-arduino-communication-with-nrf24l01/

我正在運行raspbian(從noobs)。到目前爲止,我已經完成了本指南告訴我要做的所有事情。當我在PI運行的程序(不發送的Arduino,只是爲了測試),代碼運行到一個錯誤:

File "sendArduino.py", line 38 
    if (n > = 32 and n <= 126): 

SyntaxError: invalid syntax 

所以我刪除if語句完全,並且未縮進的代碼行if語句。當我現在運行它時,我得到一個不同的錯誤。

Traceback(most recent call last): 
File "sendArduino.py", line 11, in <module> 
    radio.begin(0, 17) 
File "/home/pi/Desktop/NRF24L01/lib_nrf24.py", line 373, in begin 
    self.spidev.open(0, csn_pin) 
FileNotFoundError: [Errno 2] No such file or directory 

看到,這是不工作的SPI部分後,我回去再dowloaded從教程蟒蛇spidev,但它給出了同樣的錯誤。

我真的不知道該怎麼做。實際上,我想要做的就是發送一個arduino和覆盆子pi與這些nrf24模塊之間的20個int valuesfr浮點值。 (最好用python或cpp)。我已經嘗試了其他一些指南,我不知道我做錯了什麼。

+1

如果您正在使用'if(n > = 32和n < = 126):',這很明顯,它爲什麼不是有效的語法。它只是if(n> = 32和n <= 126)的html編碼字符串:'。不要複製/粘貼示例代碼。 –

+0

所以大於/小於符號的錯誤是由於副本造成的?很高興知道。 – stonercough

+0

不僅複製/粘貼,而且事實'>'和'<'都在該頁面上,因爲該網頁上有錯誤。複製/粘貼後,您必須修復它們以糾正操作員。 –

回答

0

經過一個清新的早晨和幾個小時的故障排除/調試,我得到他的代碼工作。事實證明,當我在SPI菜單>首選項中將SPI設置爲「打開」時,實際上並沒有這樣做。我不得不改變配置文件來啓用spi。

+0

我應該補充一點:代碼也是錯誤的。 arduino庫的默認數據速率是2mbps,他將rpi上的設置爲1mbps。當我刪除它,並讓它默認回到2,它的工作。當我打開SPI時,我得到了啓動打印輸出而不是語法錯誤。 – stonercough

+0

嗨,我有與語法相同的問題,但更改配置文件不適用於我。有什麼想法可能是什麼? – gil