【问题标题】:NRF24L01 Python Library for RaspberryNRF24L01 用于覆盆子的 Python 库
【发布时间】:2019-06-12 00:19:06
【问题描述】:

我尝试使用这个库在 Raspberry Pi 3 上为 NRF24L01 编写测试函数:https://github.com/jpbarraca/pynrf24

我需要在运行时从该代码中切换列表和书写模式。不幸的是,由于图书馆,我遇到了错误。

谁能告诉我如何修复它们?或者至少给我一些其他可以正常工作的库?

Raspberry 上的 SPI 已启用 因为它在问题中(https://github.com/jpbarraca/pynrf24/issues/38):我也尝试过 set begin(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] 没有这样的文件或目录

【问题讨论】:

    标签: python-3.x raspberry-pi3


    【解决方案1】:

    对于像我这样的未来傻瓜(因为我认为没有更大的白痴) 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)
    

    很好的图片: Raspberry 3 B+ pinout

    【讨论】:

      【解决方案2】:

      我通过在 raspy-config 中启用 SPI 接口在我的 pi 4b 中解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2023-03-26
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 2018-05-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多