2017-04-07 10 views
0

NRF24l01 +を使用してArduinoと通信するためにラズベリーパイを得るのを助ける必要があります。ラズベリーパイとアルドゥイノとのnrf24 - RF24ライブラリーの例が正常に動作しない

nrf24ライブラリのサンプルファイルは実行されず、コンパイルされません。私はarduinoとpiの両方で5つのライブラリを試しましたが、どれも動作しません。しかし今のところ、私はこれについて最も詳細なガイドに行くよ、私は見つけることができた:http://invent.module143.com/daskal_tutorial/rpi-3-tutorial-14-wireless-pi-to-arduino-communication-with-nrf24l01/

私はraspbian(noobsから)を実行しています。これまでのところ、私はこのガイドが私に言いましたようにすべてを行ってきました。私は(無送信アルドゥイーノと、単なるテストへ)パイ上でプログラムを実行すると、コードがエラーに実行されます。

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チュートリアルからのpython spidevを、それは同じエラーが発生します。

ここで何をすべきかわかりません。実際には、これらのnrf24モジュールでarduinoとraspberry piの間に多分20のint valuesfr float値を送るだけです。 (好ましくはpythonまたはcppで)。私はすでにそこに他のガイドの束を試した、私は間違って何をしているのか分からない。

+1

'if(n > = 32 and n < = 126):'を正確に使用している場合は、それが有効な構文ではないことは明らかです。 'if(n> = 32、n <= 126):'のhtmlエンコード文字列です。サンプルコードをコピー/貼り付けするだけではありません。 –

+0

したがって、より大きい/より小さい兆候上のエラーは、コピペスティングによるものでしたか?知っておいてよかった。 – stonercough

+0

コピー/貼り付けだけでなく、そのウェブページ上の間違いのために、そのページには「>」と「<」と表示されます。コピー/貼り付け後にオペレータを修正するためにそれらを修正する必要がありました。 –

答えて

0

新鮮な朝と数時間のトラブルシューティング/デバッグの後、私はコードを稼働させました。これは、piメニュー>環境設定でSPIを 'on'に設定すると、実際には行われません。私はspiを有効にするために設定ファイルを変更しなければならなかった。

+0

私は追加する必要があります:コードも間違っていた。 arduinoライブラリのデフォルトのデータレートは2mbpsで、rpiのものを1mbpsに設定しました。私はそれを削除し、それが2に戻ってデフォルトにするとき、それは働いた。私はSPIをオンにしたとき、私はシンタックスエラーの代わりにスタートアッププリントアウトを得ました。 – stonercough

+0

こんにちは、構文で同じ問題がありますが、設定ファイルを変更することは私のためには機能しません。他に何ができるか考えていますか? – gil

関連する問題