SDR на Raspberry Pi

15 апреля 2015, 21:34

Несколько статей назад я рассказывал как подключить 2.8″ PiTFT дисплей к Raspberry Pi.
В прошлой статье я рассказал с помощью какого софта можно принимать радио в Mac OS.
Сегодня мы рассмотрим как это легко сделать с Raspberry Pi.
Для этого нам понадобится сама плата Raspberry Pi, 2.8″ PiTFT дисплей с разрешением 320х240 px и usb RTL-SDR приемник.
Для работы PiTFT в качестве автономного дисплея требуется поддержка ядра, в первой части будет рассказано, как установить дисплей, во второй части будут установлены необходимые утилиты для работы приемника.

Установка PiTFT

Есть 2 способа установить дисплей. Первый и самый простой, скачать готовый образ и распаковать его на SD карту. Этот способ может не подойти, если у вас уже есть рабочая система и требуется только добавить поддержку дисплея.
Рассмотрим второй вариант, с установкой вручную.
Добавим репозиторий apt.adafruit.com в список локальных репозиториев и установим необходимый софт.

curl -SLs https://apt.adafruit.com/add | sudo bash
sudo apt-get install -y adafruit-pitft-helper

Укажем тип нашего дисплея: 2.8″ и резистивный тачскрин

sudo adafruit-pitft-helper -t 28r

И перезагрузимся:

sudo reboot

В момент загрузки можно видеть текстовую консоль на экране, для работы X требуется отредактировать файл ~/.profile:

sudo nano ~/.profile

Добавив в него строчку:

export FRAMEBUFFER=/dev/fb1

И после этого добавим автозагрузку X, нужно добавить в файл:

sudo nano /usr/share/X11/xorg.conf.d/99-pitft.conf

Следующее содержимое и сохранить:

Section "Device"
  Identifier "Adafruit PiTFT"
  Driver "fbdev"
  Option "fbdev" "/dev/fb1"
EndSection

Далее необходимо утилитой raspi-config разрешить загрузку рабочего стола или Scratch.
После перезагрузки на экране должен появится привычный рабочий стол Raspbian.

Установка RTL-SDR

Для работы нам потребуются следующие пакеты:

sudo apt-get install cmake build-essential python-pip libusb-1.0-0-dev python-numpy git

А также нужно скачать и установить RTL-SDR библиотеку:

cd ~
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make
sudo make install
sudo ldconfig

И еще потребуется установить обертку библиотеки RTL-SDR для Python:

sudo pip install pyrtlsdr

Весь необходимый софт установили, перейдем к установке утилиты FreqShow (утилита с открытым исходным кодом, написанная на Python) в которой и будем наблюдать за эфиром:

cd ~
git clone https://github.com/adafruit/FreqShow.git
cd FreqShow

Запускается утилита командой:

sudo python freqshow.py

Посмотреть возможности можно на видео.
Единственный и жирный минус всего, это невозможность услышать сам эфир.
Но и из этой ситуации есть выход. С помощью маленькой утилиты rtl_fm из проекта RTL-SDR можно слушать радио, например:

rtl_fm -f 104.7М -M wbfm -s 200000 -r 48000 - | aplay -r 48k -f S16_LE

Подробнее о утилите rtl_fm можно узнать на сайте.
Осталось приобрести аккумулятор большой емкости и можно отправляться подслушивать врага.

Поделиться
Запинить
1 комментарий
Михаил

А какие частоты видятся и какой спектр?
Будет ли в дальнейшем поддержка звука?
Есть вариант установки другого модуля?
Экран сенсорный или нет?
Какая функциональность программы, зачем кнопки снизу на дисплее?

Александр Кропочев

Диапазон частот зависит от приемника.
На счет звука ответ от разработчика FreqShow https://github.com/adafruit/FreqShow/issues/1
Будут работать любые модули, но только на чипе RTL2832U
Экран сенсорный, резистивный, как в статье https://learn.adafruit.com/downloads/pdf/adafruit-pitft-28-inch-resistive-touchscreen-display-raspberry-pi.pdf
Кнопки можно запрограммировать на любые действия.

Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное