RFM95 LORA 모듈과 함께 LowPowerLab의 Moteino Mega를 사용하여 사용하도록 설계된 RNODE 펌웨어의 맞춤형 버전입니다.
이 작업은 Mark Qvist가 개발하고 판매 한 RNODE의 파생물입니다. Rnode는 Mark Qvist의 저작권입니다.
나는 맞춤형 rnodes를 판매하거나 배포 할 의도가 없습니다. 여기서 가정은 당신이 왜 여기에 있는지 알고 있으며,이 파생물에 언급 된 필수 하드웨어를 구매하고 구축하는 이유와 방법을 알고 있다는 것입니다. Mark QVIST와 Steve Miller는 파손, 불 태우거나 시공간 연속체를 무너 뜨리는 것을 포함하여 바람직하지 않은 운영에 대해 책임을지지 않습니다. 당신은 경고를 받았습니다.
이 펌웨어를 작성하려면 Rnodeconfigutil을 사용하여 추가 단계가 필요합니다. 펌웨어를 Moteino Mega로 플래시하면 장치가 필요한 EEPROM 데이터를 작성하지 않기 때문입니다.
사용자 정의 RNODE 모델 E4에 맞춤형 RNODE 구성 도구를 사용하는 것이 좋습니다.
이것은 매우 유연한 LORA 기반 통신 장치 인 RNODE 용 펌웨어입니다. rnode는 다음과 같이 기능 할 수 있습니다.
RNODE는 강력한 ATMEGA1284P MCU에 의해 제어되며 완전히 Arduino 호환성입니다. 이 펌웨어를 사용하거나 Arduino IDE에서 또는 AVR 개발에 사용 가능한 도구를 사용할 수 있도록 원하는 방식으로 프로그래밍 할 수 있습니다. 이 펌웨어는 Arduino IDE에서 직접 편집하고 컴파일 할 수도 있습니다.
Arduino 환경에 Rnode를 추가하려면이 게시물을 참조하십시오.
이 펌웨어로 RNODE를 구성하려면 RNODE 구성 유틸리티를 살펴보십시오.
이 시점에서 Rnode 펌웨어는 안정적으로 간주 될 수 있습니다. 버그를 찾거나 의도하지 않은 행동을 발견하면 여기에서 문제로보고하십시오.
RNODE는 호스트 제어 (기본값) 및 TNC 모드의 두 모드로 작동 할 수 있습니다.
RNODE가 호스트 제어 모드에 있으면 전원이 켜져있을 때 대기 상태로 유지됩니다. 호스트가 주파수, 대역폭, 전송 전원 및 기타 필요한 매개 변수를 지정할 때까지 대기 상태로 유지됩니다. 이 유틸리티의 -n 옵션을 사용 하여이 모드를 활성화 할 수 있습니다. 호스트 제어 모드에서는 LORA 프레임을 스니핑하기 위해 무차별 모드를 활성화 할 수 있습니다.
rnode가 TNC 모드에 있으면 PowerUp에서 자체적으로 구성되고 즉시 라디오를 활성화합니다. 이 유틸리티의 -t 옵션을 사용 하여이 모드를 활성화 할 수 있습니다 (유틸리티는 직접 지정하지 않으면 설정을 안내합니다).
온보드 USB 커넥터를 통해 또는 보드의 직렬 핀 (RX0 및 TX0으로 표시)을 통해 RNODE와 통신 할 수 있습니다. RNODE는 표준 FTDI USB 칩을 사용하므로 대부분의 운영 체제에서 추가 드라이버없이 상자 밖으로 작동합니다.
보드를 오가는 모든 커뮤니케이션은 사용자 정의 명령 세트와 함께 키스 프레임을 사용합니다. Rnode는 또한 명령 바이트에서 HDLC 포트를 사용하지 않으므로 실제 명령에 사용할 수 있습니다. 지원되는 명령은 아래 표를 참조하십시오.
| 명령 | 바이트 | 설명 |
|---|---|---|
| 데이터 프레임 | 0x00 | 장치에 대한 데이터 패킷 |
| 빈도 | 0x01 | 주파수를 설정하거나 쿼리합니다 |
| 대역폭 | 0x02 | 대역폭을 설정하거나 쿼리합니다 |
| TX 전원 | 0x03 | TX 전원을 설정하거나 쿼리합니다 |
| 확산 계수 | 0x04 | 확산 계수를 설정하거나 쿼리합니다 |
| 코딩 속도 | 0x05 | 코딩 속도를 설정하거나 쿼리합니다 |
| 라디오 상태 | 0x06 | 무선 상태를 설정하거나 쿼리합니다 |
| 라디오 잠금 | 0x07 | 라디오 잠금을 설정하거나 쿼리합니다 |
| 장치 감지 | 0x08 | 장치 감지를위한 프로브 명령 |
| 난잡한 | 0x0E | 무차별 모드를 설정 또는 쿼리합니다 |
| RX 통계 | 0x21 | 바이트 수신 쿼리 |
| TX 통계 | 0x22 | 전송 된 바이트 쿼리 |
| 마지막 RSSI | 0x23 | 수신 된 마지막 패킷의 RSSI를 나타냅니다 |
| 깜박거리다 | 0x30 | 깜박임 LED |
| 무작위의 | 0x40 | 무작위 숫자에 대한 쿼리 |
| 펌웨어 버전 | 0x50 | 설치된 펌웨어 버전의 쿼리 |
| ROM 읽기 | 0x51 | eeprom 바이트를 읽으십시오 |
| ROM 쓰기 | 0x52 | eeprom 바이트를 작성하십시오 |
| TNC 모드 | 0x53 | TNC 모드를 활성화합니다 |
| 일반 모드 | 0x54 | 호스트 제어 모드를 활성화합니다 |
| ROM 지우기 | 0x59 | Eeprom을 완전히 지 웁니다 |
| 오류 | 0x90 | 오류를 나타냅니다 |
자체 소프트웨어에서 RNODE를 쉽게 사용할 수 있도록 "라이브러리"폴더를 살펴보십시오.
파이썬 예는 다음과 같습니다.
from RNode import RNodeInterface
def gotPacket ( data , rnode ):
print "Received a packet: " + data
rnode = RNodeInterface (
callback = gotPacket ,
name = "My RNode" ,
port = "/dev/ttyUSB0" ,
frequency = 868000000 ,
bandwidth = 125000 ,
txpower = 2 ,
sf = 7 ,
cr = 5 ,
loglevel = RNodeInterface . LOG_DEBUG )
rnode . send ( "Hello World!" )RNODE는 LORA PROMISCUUSUD 모드로 넣을 수 있으며, 이는 RAW LORA 프레임을 호스트에 버릴 수 있습니다. 원시 로라 프레임은이 모드에서도 전송 될 수 있으며 표준 LORA 페이로드 크기는 255 바이트입니다. 무차별 모드를 가능하게하려면 "무차별"명령을 보드로 보내거나 프로그래밍 라이브러리 중 하나를 사용하십시오. 사용하기 쉬운 Lora Packet Sniffer를 위해 예제 프로그램 Loramon을 사용할 수도 있습니다.