1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LRA1で始めるLoRa通信|P2P送受信をBASICでやってみた!

Last updated at Posted at 2025-06-20

この記事では、i2-electronics社のLoRaモジュール「LRA1」 を使って、P2P通信を体験します。

🛰 LRA1は“インタラクティブに操作できるLoRaモジュール”

一般的なLoRaモジュールは、制御のために外付けのマイコン(MCU)を必要とすることがほとんどです。
ArduinoやSTM32などからSPIやUARTで制御するのが一般的で、LoRaの送信や受信を行うにはプログラムの準備や開発環境の構築が必要になります。
または、特定のセンサー等に限定された動作をするようになっていて、若干のパラメーターの設定しかできませんます。

それに対してLRA1は、モジュール自身にBASICインタプリタが内蔵されており、ターミナルから直接コマンドを打つだけで動作します。

✅ 外付けMCU不要
✅ Arduinoも不要
✅ いきなり send できる
✅ その場でプログラムを書いて実行できる

これがLRA1の最大の特徴です。

外部マイコンを使わずに ターミナルから直接LoRa通信を実行できる モジュールです。

Tera Termなどを使うだけで、特別な開発環境なしで、
コマンドを入力すると、即座に実行結果が返ってくる インタラクティブな操作が可能 です。
さらに、BASIC言語によるプログラミングも可能 です。

💬 BASIC言語ってあのBASIC?──そう、あのBASICです。
ただし、Visual Basicではなく、昔ながらの「行番号あり・1文字変数」のアレです。


🙋‍♂️「いまさらBASIC?」って思った人へ

正直、そう思いますよね。でもこのBASIC、ただのノスタルジーではないんです。

LRA1に搭載されているBASICは、小容量マイコンでもサクサク動く軽量インタプリタ
GUIもライブラリも不要、わずかなRAMとFlashだけでLoRa通信・LCD表示・センサー制御ができるように設計されています。

  • 💡 ターミナルから直接打てる
  • 💡 1行で完結する構文
  • 💡 インタプリタだから即実行・即反応
  • 💡 外部MCU不要=ハード設計も簡単

つまりBASICは、「制約がある環境で最大限に動かす」ことに特化したミニマルな言語なんです。

🚀 だから、メモリが少ないマイコンにはBASICがちょうどいい。
LoRaの実験もPoCも、スクリプト1行から始められます。


🎯 この記事でやること

今回は、LRA1を2台使って、P2PモードでLoRaの送受信を手動で行うところまでを紹介します。

  • BASICの構文(for, if, do-loopなど)はまだ使いません(次回!)
  • とにかく「通信が飛ぶ」という体験を手軽に得ることが目的です
  • own / dst / gid / sf などの基本設定方法も解説します

🔌 開発環境

  • 評価ボード:LRA1-EB(USB搭載評価用ボード)
  • 接続:USB(UART)
  • ターミナル:Tera Term(115200bps)
  • 使用モード:P2P(出荷時デフォルト)

OSやターミナルソフトの種類は問いません。USBシリアルで接続できればOKです。

lra1_eb_1.png
i2-electronics社のLRA1評価ボード(LRA1-EB)
ボードの左側にあるモジュールがLoRaモジュールのLRA1です。
この評価ボードには、USB-UART、LDO、LCD、BME280 などが搭載されています。


▶️ LRA1の起動と送信

LRA1-EBを接続し、Tera Termを起動した状態でリセットボタンを押すと、次のような表示が現れます:

i2-ele LRA1
Ver 1.26.a+
OK
>

この > プロンプトが、インタラクティブにコマンドを受け付ける状態です。
試しに、以下のように打ち込んでみましょう。

>? "Hello world"
Hello world
OK

よくある print文 で、"Hello!" を表示してみました。
BASICでは ?print は同等です。? の代わりに print としてもOKです。
なお、LRAのBASICでは、コマンドの大文字と小文字は区別されません。

次に、この ?send に代えて打ってみましょう。

>send "Hello world"
OK

赤LEDが一瞬点灯し、LoRaパケットが送信されます。


📡 受信側を準備する

別のLRA1でも同様に接続し、以下の設定を行います:

>own=0:dst=1
OK
>recv

※LRA1のBASICでは、複数の命令を :(コロン)で1行にまとめることができます。

受信側が recv で待機している状態で、送信側から send を実行すると…

@-42,1,Hello world

受信成功です! -42 はRSSI、1 は送信元ID、Hello world はデータ本体です。


🔐 通信には「gid(グループID)」も必要

通信をするには、own(自分)とdst(宛先)だけでなく、gid(グループID) も一致している必要があります。

>gid=123

同じチャンネル・同じパラメータでも、gidが違えば通信は通りません。
プロジェクトごとに分けて使える便利な仕組みです。


⚙ 通信パラメータを変えてみる

通信の安定性や距離・速度は、以下のパラメータで調整可能です:

>ch=26:sf=12:bw=7:cr=1:pwr=13
パラメータ 意味 設定範囲 通信特性への影響・備考
ch チャネル番号 24〜61 使用する周波数帯を決定
sf Spreading Factor 7〜12 数字が大きいほど到達距離↑、速度↓、送信時間↑
bw Bandwidth 6〜9 数字が大きいほど通信速度↑、耐干渉性↓
cr Coding Rate 1〜4 数字が大きいほど誤り訂正能力↑、送信時間↑
pwr 送信出力(dBm) -4〜13 数字が大きいほど電波強度↑、消費電力↑

※pwr以外は、受信側も同じ値にしておかないと通信できません。
パラメーターを変化させて、到達距離や送信時間が変わるのを実感できると思います。


💾 設定を保存する

起動のたびに設定を入力し直すのは大変なので、以下で保存しておきましょう:

>ssave
  • ssave:現在の設定を保存
  • sload:保存済み設定を再読込
  • default:出荷時設定に戻す

🚨 技適制限に注意(送信時間)

LoRa通信には日本国内での技適制限があります:

帯域 制限時間
CH24〜38 最大 4 秒/送信
CH39〜61 最大 400ms/送信
1時間あたり 合計360秒まで

たとえば以下は制限超過で送信できません:

>ch=40:sf=12
>send ""
*invalid_data_length

📐 詳細な送信時間は以下の計算ツールが便利です:

🔗 LoRa送信時間計算ツール(i2-electronics)


✅ まとめ

項目 内容
通信方法 send / recv を直接入力
設定保存 ssave で永続化
必須ID own, dst, gid を設定
パラメータ ch, sf, bw, cr を送受信で揃える
インタラクティブ ターミナルで即コマンド → 即応答

LRA1を使えば、マイコンもIDEも不要で、LoRa通信の世界にすぐ入れます。


🧭 LRA1 BASICはここまでできる

今回は「P2Pでの手動送受信」だけ紹介しましたが、LRA1のBASICは以下のような制御もサポートしています:

  • 📍 GPS(UART接続)
  • 📡 I2C(センサー・周辺デバイス)
  • 💡 PWM(LEDやアクチュエータ)
  • 📈 ADC(アナログセンサー)
  • 🔄 SPI(高速デバイス制御)

しかもこれらを すべてBASICのコマンドで制御可能
もちろん、行番号を使った複雑なプログラムにも対応してます。


🔜 予告

次回以降はいよいよ本領発揮!(の予定)

forifdo-loop などを使って──
たった1行で「センサー読み取り → LoRa送信 → LCD表示」まで全部やる BASICスクリプトを紹介します。

🚀 “Hello world” より速く、LoRa通信できる時代が来ました。

🎀「“LoRa通信って難しそう…”って思ってた人も、BASICで1行から始められるならワクワクしない?
  次は、センサーもLoRaもLCDも、ぜーんぶ1行でまとめちゃうよっ✨」


🐬 しゃちらぼ(Shachi-lab)について

このQiitaアカウントは、LoRaやマイコン、LPWAなどを中心に発信している
「しゃちらぼ(https://shachi-lab.com)」が投稿しています。

組み込み系やIoTネタを、ゆるく・でも本気でお届け中📡
たまに「シャチラボ」って呼ばれますが、どっちでもOKです✌️

🎀「ブログには、ろらたんも時々登場してるよ〜!よかったらのぞいてみてね🐬」

🔗 関連リンク

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?