Вопрос:

NRF24L01 Библиотека Python для малины

python-3.x raspberry-pi3

12 просмотра

1 ответ

8 Репутация автора

Я пытался использовать эту библиотеку, чтобы написать тестовую функцию для NRF24L01 на Raspberry Pi 3: https://github.com/jpbarraca/pynrf24

Мне нужно из этого кода переключаться между списком и режимом записи во время выполнения. К сожалению, из-за библиотеки у меня есть ошибки.

Может кто-нибудь сказать мне, как их исправить? Или, по крайней мере, дать мне какую-нибудь другую библиотеку, которая бы работала правильно?

SPI для Raspberry отключен, как это было в проблемах ( https://github.com/jpbarraca/pynrf24/issues/38 ): я также попытался установить начало (0,0 ... но это привело к:

Traceback (последний вызов был последним): файл "TestNRF.py", строка 8, в

radio.begin(0, 0, "P8_23", "P8_24")  # Set CE and IRQ pins   File "/home/pi/Commander/NRF24L01/nrf24.py", line 232, in begin
GPIO.setup(self.ce_pin, GPIO.OUT) 

ValueError: Channel должен быть целым числом или списком / кортежем целых чисел

Я также пытался: https://github.com/BLavery/lib_nrf24, но я не смог найти, где я могу получить модуль virtGPIO

from NRF24L01.nrf24 import NRF24
import time
import struct

pipes = [[0xe7, 0xe7, 0xe7, 0xe7, 0xe7], [0xc2, 0xc2, 0xc2, 0xc2, 0xc2]]

radio = NRF24()
radio.begin(1, 0, "P8_23", "P8_24")  # Set CE and IRQ pins
radio.setRetries(15, 15)
radio.setPayloadSize(5)
radio.setChannel(0x60)

radio.setDataRate(NRF24.BR_250KBPS)
radio.setPALevel(NRF24.PA_MAX)


def writeMode():
    radio.stopListening()
    radio.openWritingPipe(pipes[1])
    radio.openReadingPipe(1, pipes[0])

    # radio.startListening()
    # radio.stopListening()


def listenMode():
    radio.openWritingPipe(pipes[0])
    radio.openReadingPipe(1, pipes[1])

    # radio.startListening()
    # radio.stopListening()

    radio.startListening()

    i = 0
    while True:
        listenMode()
        print("Listen Mode")
        recv_buffer = []
        pipe = [0]
        if radio.available(pipe, True):
            radio.read(recv_buffer)
            values = struct.unpack_from('HBBB',recv_buffer)
            print(values)
        else:
            writeMode()
            print("Write Mode")
            msg = struct.pack('HBBB', 3000, 243, 234, 254)
            radio.write(msg)
            time.sleep(0.2)
        i = +1
        if i == 4:
            exit()

Ошибка: трассировка (последний вызов был последним): файл "TestNRF.py", строка 8, в

radio.begin(1, 0, "P8_23", "P8_24")  # Set CE and IRQ pins   File "/home/pi/Commander/NRF24L01/nrf24.py", line 213, in begin
self.spidev.open(major, minor) 

FileNotFoundError: [Errno 2] Нет такого файла или каталога

Автор: Takahashi Источник Размещён: 12.06.2019 12:19

Ответы (1)


0 плюса

8 Репутация автора

Для будущих манекенов, таких как я (потому что я не думаю, что есть более крупный идиот) Raspberry Pi 3 B + имеет только SPI0, что означает, что эта строка:

radio.begin(1, 0, "P8_23", "P8_24")

должен быть изменен на что:

radio.begin(0, 0, "P8_23", "P8_24")

Также не забудьте установить контакты для CE и IRQ (например):

radio.begin(0, 0, 23, 24)

хорошая картина для этого: малина 3 B + распиновка

Автор: Takahashi Размещён: 12.06.2019 06:21
Вопросы из категории :
32x32