2 заметки с тегом

ILI9341

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 можно узнать на сайте.
Осталось приобрести аккумулятор большой емкости и можно отправляться подслушивать врага.

ILI9341   PiTFT   raspberry pi   RTL2832   SDR

Подключение PiTFT 2.8″ к Raspberry Pi

2 апреля 2015, 23:54

Сегодня рассмотрим работу Raspberry Pi с резистивным сенсорным дисплеем PiTFT 2.8″ на чипе ILI9341.
Существует 2 способа задействовать этот дисплей: первый, более сложный, пропатчить ядро, запустить X сервер с выводом на дисплей, и второй способ, установить библиотеку для вывода картинок, текста, различных фигур. Второй способ, как более простой для ознакомления и рассмотрим, работу с сенсором в этой статье затронута не будет.
Приступим к установке.

Установка

Необходимо установить необходимые пакеты для работы:

sudo apt-get update
sudo apt-get install build-essential python-dev python-smbus python-pip python-imaging python-numpy

Также для работы потребуется библиотека для работы с GPIO:

sudo pip install RPi.GPIO

Теперь приступим к установке самой библиотеки для работы с чипом ILI9341.
Скачиваем репозиторий библиотеки с Github и устанавливаем:

git clone https://github.com/adafruit/Adafruit_Python_ILI9341.git
cd Adafruit_Python_ILI9341
sudo python setup.py install

Использование

Вместе с библиотекой поставляются несколько примеров работы библиотеки. Запустим один из них, для этого зайдем в папку examples и запустим пример:

cd examples
sudo python image.py

После чего вы должны увидеть котика как на картинке выше.
Приведу код этого примера (image.py):

# Copyright (c) 2014 Adafruit Industries
# Author: Tony DiCola

import Image

import Adafruit_ILI9341 as TFT
import Adafruit_GPIO as GPIO
import Adafruit_GPIO.SPI as SPI

# Raspberry Pi configuration.
DC = 18
RST = 23
SPI_PORT = 0
SPI_DEVICE = 0

# Create TFT LCD display class.
disp = TFT.ILI9341(DC, rst=RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=64000000))

# Initialize display.
disp.begin()

# Load an image.
print 'Loading image...'
image = Image.open('cat.jpg')

# Resize the image and rotate it so it's 240x320 pixels.
image = image.rotate(90).resize((240, 320))

# Draw the image on the display hardware.
print 'Drawing image'
disp.display(image)

Как видно из примера, смысл заключается поместить на некий image изображение с котиком и отправить его на дисплей, для работы с image используется библиотека PIL (Python Imaging Library).
В другом примере (shapes.py) рассматривается работа с выводом на экран текста и различных фигур.
Описание работы с библиотекой PIL можно найти на следующем ресурсе.
В следующей статье рассмотрим работу с GPIO.

ILI9341   PiTFT   raspberry pi