一、LoRa技术大概
LoRa调制解调技术(下面简称LoRa)采用专有的调制和解调程序,将扩频调制与循环纠错编码技术结合起来,与传统的调制技术(FSK或OOK)相比,这种技术扩大了无线通讯链路的覆盖范围,提高了链路的鲁棒性。具有更强的抗干扰性。对同信道GMSK干扰信号的抑制能力达到20dB,所以LoRa用于频谱使用率较高的频段和混合通讯网络,方便在网络中原有的调制方案失败时扩大覆盖范围。开发人员通过调整扩频因子、调制带宽和编码率这三个关键设计参数对LoRa进行优化,可在链路预算、抗干扰性、频谱占用度及标称数据速率之间达到平衡。
LoRa 收发器的全功能 GNU Radio 软件定义无线电 (SDR) 实现,具有所有必要的接收器组件,即使在非常低的 SNR 下也能正常工作。这项工作已在 EPFL 的电信电路实验室进行。
二、为了解决的问题
本文章是对https://github.com/tapparelj/gr-lora_sdr.git的补充,原操作环境使用的是gnuradio3.10,这并不适用于gnuradio3.8,所以在gnuradio3.8界面打开lora example显示其模块为missing block。为了解决这个问题,这里采用OOT模块,即在gnuradio中插入编译模块实现功能。
三、使用环境
系统为debian11.11版本
gnuradio版本为3.8.2
四、具体操作步骤
建议使用apt二进制安装,利用其自带的gnuradio包进行操作;
查看debian所携带的gnuradio版本的命令为:
apt policy gnuradio
博主最开始想利用源码安装的方式去安装,但是在test中发生了五至六处错误,遂放弃此方案,在伟大的宋师兄建议下采用apt二进制安装得以解决问题。
首先更新软件包
sudo apt update
安装gnuradio3.8
sudo apt install gnuradio
进入gnuradio
cd gnuradio
从原网站中克隆
git clone https://github.com/tapparelj/gr-lora_sdr.git
进入克隆库中
cd gr-lora_sdr
如果此时运行gnuradio3.8,打开gr-lora里的example文件,我们就会收获一群missing block
![]()
所以就需要在外部编译模块
我们退出克隆库,退出gnuradio,到达gnuradio同一级目录
cd ..
cd ..
开始着手编译模块,编译模块用到的命令为
(sudo)gr_modtool newmod lora_sdr
后面的名字建议使用lora_sdr,如果提示权限不够,在命令前面加上sudo
由于博主已经使用了lora_sdr这个名字,这里用gr-ssm作为替代演示,创建成功的提示如下

完成后进入此文件夹
![]()
需要操作的是“grc” “include” “lib”这三个文件夹
现在需要确定之前在克隆库中这三个文件夹的路径,并将他们的文件用命令复制到刚刚提到的三个文件夹;
复制结束后开始cmake编译
mkdir build
cd build
cmake..
make -j4
sudo make install
其中make中可能会报错,个人采用的是忽略make -j4直接sudo make install,最后的结果是一个过滤器模块无法使用,无伤大雅,不影响lora总体功能。
让我们回到开头的目录,并打开gnuradio
gnuradio-companion
在左上角中打开gr-lora_sdr,如图


然后就可以使用我们所需要的lora模块,至此结束。
五、可能会遇到的问题及解决办法
1、在对OOT模块进行cmake时可能会报这个错误

提示我们lib文件的CMakeLists.txt有问题,这里的解决办法是去gr-lora_sdr/lib文件中打开CMakeLists.txt,如图
删掉find_package(GNURadio 3.8.0 REQUIRED)这一行,并检查文件名是否与下面所提到的名字相同,如果不同则需要将txt文件中的每个名字进行修改为相同,大概率为文件名与文档中名字不同的问题。
make时遇到Error报错,后面install能正确运行并实现功能,这个错误就而蜜罐

至此在树莓派gnuradio 3.8中安装好gr-lora_sdr,以上内容可能有错误,欢迎交流指正(鞠躬)
7766

被折叠的 条评论
为什么被折叠?



