Raspberry pi обучение python. Программы для Raspberry Pi. Управление светодиодом с помощью кнопки

Raspberry pi обучение python. Программы для Raspberry Pi. Управление светодиодом с помощью кнопки

12.03.2019

В уже довольно не новом посте, посвященном Raspberry Pi , это устройство рассматривалось исключительно, как маленький и очень дешевый компьютер. Бесспорно, Raspberry Pi им и является. Но, помимо этого, у Raspberry Pi есть еще и 26 пинов GPIO (General Purpose Input Output), что очень кстати в свете моего недавнего увлечения электроникой . Почему? Давайте разберемся.

Отмечу, что все написанное ниже справедливо для Raspberry Pi 2 Model B. Если у вас другая малина, то расположение пинов и другие детали могут отличаться. Поэтому обязательно сверьтесь с официальной документацией. В качестве операционной системы я использовал релиз Raspbian от 2016-09-28, который можно . Более поздние релизы мне не нравятся, потому что из соображений безопасности в них решили по умолчанию отключать SSH . Что довольно смешно, потому что в этот же релиз решили включать Adobe Flash.

На этой картинке явно изображен один из углов устройства (слева вверху), поэтому по ошибке пронумеровать пины вверх ногами довольно сложно. Очень интересно, что курили ребята, решившие так нумеровать пины. Если кто-нибудь знает ответ, расскажите, пожалуйста, в комментариях. Чтобы окончательно всех запутать, они решили сделать две нумерации. Выше представлена «логическая» нумерация. Под этими номерами пины видны операционной системе. Есть еще и «физическая» нумерация, про которую можно прочитать по приведенной выше ссылке. В рамках данной заметки используется исключительно «логическая» нумерация, изображенная на картинке.

Допустим, мы хотим программно управлять напряжением, подаваемым на 2-й пин. Проще всего это сделать через sysfs.

Первым делом «экспортируем» пин, без этого шага им не получится управлять:

echo 2 > / sys/ class/ gpio/ export

Делаем его out-пином, то есть, он будет либо подавать, либо не подавать напряжение в 3.3 вольта:

echo out > / sys/ class/ gpio/ gpio2/ direction

Подаем напряжение:

echo 1 >

Перестаем подавать напряжение:

echo 0 > / sys/ class/ gpio/ gpio2/ value

Узнаем, подается ли сейчас напряжение:

cat / sys/ class/ gpio/ gpio2/ value

По завершении работы пину можно сделать unexport:

echo 2 > / sys/ class/ gpio/ unexport

А вот и скрипт на Python, который при нажатии на кнопку тушит текущий светодиод и зажигает следующий за ним:

#!/usr/bin/env python

import RPi.GPIO as GPIO
import time

# Use "logical" pin numbers
GPIO.setmode (GPIO.BCM )

# Disable "This channel is already in use" warnings
GPIO.setwarnings (False )

# Setup LED"s: 2 - green, 3 - yellow, 4 - red
for i in range (2 , 5 ) :
GPIO.setup (i, GPIO.OUT )
GPIO.output (i, False )

Current_led = 2
GPIO.output (current_led, True )

# Prepare to read button state
BUTTON = 5
PRESSED_CODE = 0
GPIO.setup (BUTTON, GPIO.IN , pull_up_down= GPIO.PUD_UP )

while True :
# GPIO.wait_for_edge(BUTTON, GPIO.FALLING)
# print("Button pressed")
# GPIO.wait_for_edge(BUTTON, GPIO.RISING)
# print("Button released")
time .sleep (0.05 )
if GPIO.input (BUTTON) == PRESSED_CODE:
GPIO.output (current_led, False )
current_led = max (2 , (current_led + 1 ) % 5 )
GPIO.output (current_led, True )
time .sleep (0.1 )

Опытным путем удалось подобрать временные задержки, при которых светодиоды переключаются в точности так, как ожидает пользователь. Закомментированный в приведенном коде метод wait_for_edge на практике работает совершенно непредсказуемо. Например, если зажать кнопку на несколько секунд, то последующие нажатия будут приводить к зажиганию светодиодов в каком-то почти случайном порядке.

Одно из главных преимуществ Raspberry Pi — это наличие выводов общего назначения (General Purpose Iinput/Outputs). GPIO — это группа контактов, которыми можно управлять с помощью программы. Причем управление это может быть совсем простым, например, включение/выключение светодиода. Либо весьма сложным — обмен данными с периферийными устройствами по специализированным протоколам.

С помощью GPIO можно собирать данные с разных датчиков, управлять реле, двигателями, силовыми ключами. В общем, управлять реальным миром по составленной нами программе.

В этой статье я расскажу как установить на Raspberry Pi библиотеку управления GPIO для python — RPi.GPIO, и приведу несколько простых примеров работы с ней.

1. Загрузка и подготовка библиотеки RPi.GPIO

Первое что мы сделаем — скачаем архив с библиотекой с официального сайта:

По-умолчанию, штатный браузер Chromium скачает библиотеку в папку /home/pi/Downloads . Зайдем в эту папку с помощью проводника:

Теперь жмем правую кнопку мыши на архиве и выбираем пункт Extract Here .

Этим самым мы просим разархивировать библиотеку в ту же папку, в которой находится сам архив. В результате рядом с архивом появится папка RPi.GPIO-0.6.3.

2. Установка дополнительного пакета для python

Перед тем, как установить библиотеку RPi.GPIO, нам потребуется дополнительный пакет python-dev. Для этого запустим терминал (черная иконка на верхней панели рабочего стола) и запустим в нем следующую команду:

Sudo apt-get install python-dev

На вопрос «Do you want to continue? » пишем символ «Y» и жмем Enter.

В результате появится отчет об успешной установке. Выглядит он так:

3. Установка библиотеки RPi.GPIO

Теперь приступим к установке самой библиотеки для работы с GPIO. Не выходя из терминала, переходим в разархивированную ранее папку:

Cd /home/pi/Downloads/RPi.GPIO-0.6.3

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

Python setup.py build

В результате получим примерно такой отчет:

Sudo python setup.py install

Результат выполнения:

Ну вот и готово! Приступим к сборке стенда и составлению первой программы, которая будет управлять состоянием светодиода.

4. Подключение светодиода к Raspberry Pi

Разъем GPIO у Raspberry Pi имеет два типа нумерации. Первый тип — это последовательный номер контакта. Второй тип — BCM, соответствует выводам микропроцессора. Оба эти нумерации представлены на картинке.

В большинстве примеров используется тип нумерации BCM, последуем традиции. Подключаем светодиод к выводу GPIO23 по следующей схеме.

Анод светодиода (длинная ножка) соединим с выводом GPIO23 через резистор 200 Ом, а катод с землей (GND). Хорошо бы сначала вспомнить

До сих пор Raspberry Pi остается одним из самых популярных технологических гаджетов.На эту плату Вы можете установить практически любую операционную систему. Но сегодня мы поговорим о том, как писать программы для этой платы без операционной системе, пользуясь лишь аппаратными средствами.

В чем подвох?

На первый взгляд задача кажется тривиальной: скачиваем keil, создаем проект… Но все не так просто. Все среды программирования(keil, IAR, Atolic) поддерживают максимум ARM9.У нас же ARM11. Это связано с негласным правилом, что на голом железе пишут до ARM9, а после на Линуксе. Но все-таки есть одна лазейка: arm-none-eabi-gcc поддерживает любой ARM.
Вторая проблема заключается в том, что под данный процессор(BCM2835) нет никаких конфигурационных файлов, header"ов и т.д. Здесь нам на помощь придет загрузчик Raspberry Pi. И ничего, что он пропритетарный. Он выполняет две функции: инициализирует процессор и его периферию, а также передает управление ядру kernel.img. Мы просто замаскируем свою программу под ядро и загрузчик её запустит.

Что нам понадобится?

1) Сама Raspberry Pi, карта памяти к ней и питание.
2) Даташит на процессор
3) Компьютер с установленным Linux (но может быть можно и на Винде. Не знаю, не пробовал).
4) Кросскомпилятор, установленный на компьютере из пункта 3. Я использую arm-none-eabi-gcc
5) Содержимое этой папочки.

Приготовления.

Нам нужно отформатировать карту памяти в FAT16 и закинуть на нее содержимое этой папки . Это загрузчик плюс ядро. Затем удаляем оттуда файлы kernel.img и kernel_emergency.img. Это ядро Linux, а оно нам не нужно.

Первая программа.

Теперь мы можем приступить к написанию первой программы. Создаем файл main.c и пишем следующий код
int main (void) { while(1) { } } void exit (void) { while(1) { } }
Как видите, эта программа ничего не делает. Функция exit зачем-то нужна компилятору.
Теперь соберем её.
arm-none-eabi-gcc -O2 -mfpu=vfp -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -nostartfiles main.c -o kernel.elf
arm-none-eabi-objcopy kernel.elf -O binary kernel.img

Полученный файл kernel.img кидаем на карту памяти. Готово!

GPIO

Вряд ли Вас устроит программа, которая не будет делать абсолютно ничего. Сейчас попробуем зажечь лампочку.
Для начала объявим адрес, по которому лежит GPIO(это можно прочитать в даташите).
#define GPIO_BASE 0x20200000UL

И объявим переменную, которая определяют, что порт настроен на выход (GPIO_GPFSEL1) и переменную, подающую низкий уровень(то есть лампочка горит) на порт (GPIO_GPCLR0).
#define GPIO_GPFSEL1 1
#define GPIO_GPCLR0 10

Ну и наконец модифицируем главную функцию для зажигания лампочки:
volatile unsigned int* gpio; int main(void) { gpio = (unsigned int*)GPIO_BASE; gpio |= (1 << 16); gpio = (1 << 16); while(1) { } }

Собираем, прошиваем и радуемся.

В следующей части попробуем поиграться с таймерами и прерываниями.

Программирование Raspberry Pi 3 - это как раз то, для чего большинство людей и берет этот одноплатный компьютер. Здесь сразу же следует отметить, что в этом материале не будет изложено инструкций, подробно раскрывающих, как и что нужно делать - таких в «сети» полно. Однако, рекомендуется читать официальную документацию и специализированные формы. Вместо этого в статье будут рассмотрены основные моменты, из которых станет понятно, что на Raspberry Pi программирование не отличается сложностью.

Python - это основной язык Raspberry Pi

Почти все владельцы Raspberry Pi понимают, что означает первое слово в названии одноплатника - "малина". Однако второе многие интерпретируют неверно.

Некоторые считают, что оно означает "Пи" (3,14…), другие думают, что это первые две буквы слова Pie (пирог, и в этом есть смысл - "малиновый пирог"). Однако на деле все иначе.

Pi - это сокращение от Python, только с заменой y на i. Так часто делают в программировании. Взять, например, хотя бы KDE, где во многих программах вместо С написано K (в угоду стилю): Konsole (правильно - Console), Konqueror (Conqueror) и т. д.

То есть, как не трудно догадаться, в Raspberry основным языком является "Пайтон". Поэтому владельцу "Малины", который пока не знает никакого ЯП, рекомендуется изучать именно этот. Причин, почему Raspberry Pi 3 программирование на Python наиболее лучшее решение, существует множество.

Вот лишь некоторые из них:

  • работа из коробки в Raspbian;
  • наличие обширной, хорошо документированной официальной библиотеки, которая уже включена в пакет;
  • простота языка и т. д.

Здесь по понятным причинам не будем рассказывать о языке и особенностях программирования на нем - это можно и нужно делать на официальных ресурсах (или, если не позволяет плохое знание английского - на специализированных).

Вместо этого будет рассмотрено, насколько легко можно программировать "Малину". Для примера возьмем Raspberry Pi 3 GPIO программирование. Сделаем предположение, что в наличии имеется все необходимое: провода, светодиод, резистор и прочее, а также присутствует понимание распиновки - нумерации пинов. Также предположим, что светодиод подключен к 11 порту.

Написанный ниже код включает лампочку на 5 секунд, а затем выключает ее:

# вначале подключим необходимую библиотеку

import RPi.GPIO as GPIO

# также понадобится библиотека, которая отвечает за ожидание (она нужна, чтобы установить интервал включения и выключения лампочки)

# чтобы запустить GPIO, понадобится выполнить следующую функцию

GPIO.setmode(GPIO.BOARD)

# теперь Python знает о GPIO, и ему можно указать на то, с каким портом нужно будет работать и что он должен делать (в данном случае - 11-м и он будет работать на выход)

GPIO.output(11, 1)

# теперь выключим (0 - значит false)

GPIO.output(11, 0)

Указанный код можно скопировать, вставить в документ и сохранить его с расширением.py, расположив, например, в домашней директории. Затем его нужно запустить командой: python ~./имя_файла.py.

Если все работает, то оборудование исправно.

Следует отметить, что, если вы плохо понимаете вышеуказанный код, обратитесь к документации и изучите основы программирования на Python, а также библиотеку GPIO. А если у вас есть хотя бы базовое понимание любого ЯП, то осознаете, что приведенный пример предельно прост.

Программирование на других языках под Raspberry

Программирование на C для Raspberry Pi или на других языках программирования почти ничем не отличается от того, что предполагает написание кода под другими платформами. Единственное - необходимы специальные библиотеки.

Библиотека WiringPi для работы с GPIO

Если интересует Raspberry Pi программирование на C/С++ и работа с GPIO, то требуется установить в систему непосредственно сам gcc, а затем библиотеку wiringPi - ее можно найти на GitHub. В описании к ней присутствует мануал по использованию.

Следует отметить, что для установки библиотек из GitHub, требуется утилита GIT. Если в системе ее нет, понадобится поставить из репозитория (полное имя: git-core).

Программирование "Малины" при помощи Java

Желающие программировать Raspberry Pi на Java, должны обратить внимание на Pi4J - библиотеку, которая предназначена специально для работы с "Малиной". Загрузить и узнать о ее особенностях можно на официальном сайте проекта.

Интересно то, что изначально "Малина" разрабатывалась непосредственно для обучения детей программированию. Создатель этого устройства заметил, что уровень понимания функционирования компьютеров у современных студентов значительно ниже, чем у тех, кто учился в 90-х. Он связал это с тем, что вычислительные устройства стали предельно просты: если раньше увлеченным электроникой детям и подросткам приходилось разбираться в командах терминала и даже самостоятельно писать код, теперь все делается посредством нажатия на пару кнопок.

Поэтому, естественно, предусмотрено визуальное программирование Raspberry Pi. В частности, для этого применяется язык Scratch со специальным сервером - GPIOSERVER. В Сети существует множество мануалов, которые помогают освоиться с соответствующими программами, поэтому рассматривать их смысла нет.

Перечисленными языками не ограничиваются возможности "Малинки". С ней можно взаимодействовать в том числе и при помощи PHP, Ruby, Perl и прочих ЯП. Почти под каждый популярный язык существуют хоть и не официальные, но зато рабочие и достаточно функциональные библиотеки. Однако опять следует упомянуть, что лучше для программирования Raspberry использовать именно "Пайтон".

Я не особо большой знаток Linux (почти новичок), поэтому буду очень рад конструктивной критике в комментариях.

Все, кто хотел, давно купили себе Raspberry Pi 3, а я ждал непонятно чего 🙂 Однако недавно этот компьютер попал ко мне в руки, поэтому хочу поделится впечатлениями и полезными (для кого-то) советами по его настройке.

Аппаратная часть

Компьютер заказывался на AliExpress сразу с корпусом и блоком питания (Model B, 1 ГБ ОЗУ). Карта памяти, microSD SanDisk 16 GB class 10, уже валялась дома. С учётом её цены весь «системный блок» стоил примерно 3000 р.

В качестве экрана был подключён обычный телевизор Full HD (кабель HDMI в кладовке случайно завалялся). Из периферии изначально подключил только клавиатуру и мышь, подсоединив их к USB-портам.

Raspberry в определённых случаях ощутимо греется (показывая при этом иконку-градусник в правом верхнем углу экрана), поэтому в корпусе почти сразу были просверлены дополнительные вентиляционные отверстия. Эффективность комплектных радиаторов так себе, нужно искать что-то посерьёзнее, если собираетесь нагружать компьютер на 100%.

Операционная система

Выбор ОС для Raspberry Pi 3 - вопрос деликатный. Если кто-то не в курсе, то здесь ARM-процессор. Т. е. обычный дистрибутив Linux на устройство не встанет, нужна специально подготовленная сборка.

Собственно, из-за относительно специфичного железа в дальнейшем будет много других сложностей с программами и т. п.

Существует несколько официальных и неофициальных сборок Linux для этого мини-компьютера. Какую из них использовать - зависит от поставленной задачи. В моём случае Raspberry Pi 3 будет использоваться, как обычный домашний компьютер для работы и развлечений (звучит несколько амбициозно). Попробовав несколько ОС, я остановился на основном официальном дистрибутиве, Raspbian Stretch 9.1 (новейшем на тот момент). На мой взгляд, он быстрее, стабильнее и универсальнее остальных.

Установка ОС на «Малину» очень проста. Скачиваем образ, распаковываем файл.img и записываем его на карту памяти с помощью специальной программы (для Windows это, например, Win32 Disk Imager).

Более подробное описание процесса записи ОС легко найти в Интернете.

После окончания записи карту памяти нужно вставить в соответствующий слот Raspberry Pi. Затем включаем устройство в электрическую сеть и начинаем первоначальную настройку (вставка блока питания в розетку - штатный способ включения этого компьютера).

Если вы подумали, что Raspberry Pi 3 сможет на равных конкурировать с обычным домашним компьютером за 20 000 р., то это совсем не так. Работать Raspberry будет гораздо медленнее, а ряд задач для него вообще недоступен. Однако с определёнными функциями мини-компьютер справляется неплохо. Например, с ролью терминала для не слишком «тяжёлых» веб-приложений он справится отлично.

Настройка Raspberry Pi 3 (ОС Raspbian)

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

Хотя радоваться здесь особо нечему - просто придётся больше вещей настраивать уже в установленной системе 😉

Сначала подключаемся к Интернету. При проводном соединении Интернет уже должен работать сам. В моём случае используется Wi-Fi, поэтому нужно нажать на красные кресты на панели задач (иконка сетевых подключений), выбрать беспроводную сеть и ввести пароль. Всё почти так же, как в других операционных системах.

Она позволит выполнять все дальнейшие действия в терминале с правами суперпользователя. В противном случае придётся добавлять sudo в начале каждой второй строки (а то и чаще).

Все остальные команды приведены в статье без sudo. Т. е. предполагается, что вышеописанная рекомендация была выполнена.

Сразу обновляем пакетную базу и прошивку устройства:

Apt update apt upgrade rpi-update

Затем заходим в настройки Raspberry Pi: «Пуск» (значок малины) > Preferences > Raspberry Pi Configuration. Нажимаем «Change Password…» и задаём новый пароль (одновременно для пользователя и суперпользователя). Это позволит избежать некоторых проблем в будущем.

По умолчанию в Raspbian создан пользователь pi с паролем raspberry.

Настраиваем дальше. Hostname (имя компьютера в сети) можно не менять. У меня изображение выводится не на весь экран (толстая чёрная рамка по периметру), поэтому параметр Underscan переключаю в положение «Disabled». На вкладке «Performance» изменяем значение GPU Memory на 128 (можно и 64 оставить, но некоторым приложениям может не хватить).

Переходим во вкладку «Localization». Нажимаем «Set Locale…». Выбираем Language: ru (это даст хоть какой-то перевод ОС на русский). Настраиваем время через «Set Timezone…». В моём случае Europe/Moscow. Выбираем основную раскладку клавиатуры через «Set Keyboard…». Советую United States/English (US), т. к. к ней все уже привыкли. На всяких случай заходим в «Set Wi-Fi Country…» и тоже выбираем RU.

После всего этого нажимаем «OK» внизу окна и соглашаемся на перезагрузку.

Для интереса посмотрим сколько ОЗУ занимает операционная система в новом состоянии (диспетчер задач вызывается через Ctrl + Alt + Del или из меню приложений). 92 МБ! Вот бы Windows столько занимала 🙂

Настройка внешнего вида

Для удобства приводим рабочий стол к более привычному виду (в данном случае к виду подобному Windows). Правый клик по панели, «Panel Settings». Edge переключаем в положение «Botton» - панель перемещается вниз. Переходим во вкладку «Panel Applets», удаляем лишнее, добавляем нужное. Удалил Ejecter и CPU Usage Monitor. Добавил Minimize All Windows и Keyboard Layout Handler (переключатель раскладки клавиатуры).

Через последний добавляем русскую раскладку. Правый клик по флагу, «Keyboard Layout Handler Setting». Снимаем флажок «Keep system layouts», нажимаем «Добавить», выбираем ru. Меняем сочетание клавиш для переключения раскладок кнопкой под надписью Change Layout Options.

Кнопка «Закрыть» в этом окне не работает, но работает крестик в углу. Это старый баг многих сборок Linux (странно, что его не убрали до сих пор).

На панели есть значок Bluetooth. Отключаем через него модуль Bluetooth, если не собираемся подключать какие-либо беспроводные устройства.

Меняем набор значков слева. Правый клик на одном из значков, «Application Launch Bar Settings». Вытаскиваем пару ярлыков из меню на рабочий стол. Меняем обои (предпочитаю что-то более однотонное):

Numlock

К этому времени не работающая цифровая клавиатура уже начала раздражать. При загрузке системы Numlock выключен (в других версиях Linux такое тоже бывает). Каждый раз включать его не хочется. Пора исправить ситуацию. Устанавливаем программу numlockx:

Apt install numlockx

Добавляем её в автозагрузку. Например, открываем файловый менеджер, переходим в папку /home/pi/.config , создаём там файл autostart (без расширения) с единственной строкой: @numlockx -on .

Можете использовать любой другой способ добавления в автозагрузку.

Проблема с USB-флешками и жёсткими дисками

На первый взгляд, со съёмными носителями всё в порядке. Они корректно определяются при подключении, все файлы отображаются и нормально открываются. Только вот записывать на флешки ничего нельзя, т. к. подключаются они в режиме «readonly» (за редким исключением).

Решается проблема просто, установкой дополнительного драйвера:

Apt install ntfs-3g

После установки требуется перезагрузить систему.

Проверялись все накопители, имеющиеся в распоряжении - запись, изменение и удаление стали работать (не только в NTFS, но и в FAT32).

На одном USB-накопителе небольшого объёма только что отформатированном в Windows проблемы почему-то не было изначально.

Программы в комплекте

Настало время посмотреть, что уже установлено в системе. Просто пробежимся по меню приложений (консольные утилиты в расчёт не берём).

В разделе «Программирование» находится больше десятка приложений собственно для программирования (оставим их без внимания).

Категория «Офис» содержит исключительно программы из пакета LibreOffice (знаменитого бесплатного аналога Microsoft Office). Полезные приложения для работы с документами. Создание и правка не очень сложных файлов в них на Raspberry Pi 3 происходит с минимальными притормаживаниями.

Раздел «Интернет» содержит, на мой взгляд, два полезных приложения. Первое - VNC Viewer. Неплохой вариант управления удалёнными устройствами. Скорость работы приемлемая. Второе - браузер Chromium. Практически тот же Chrome, только без излишеств. Сайты работают с разной скоростью. Некоторые прямо быстро, некоторые очень туго (зависит от типа сайта и его оптимизации). Например, ВКонтакте листается с небольшими рывками, а Одноклассники уже идут со скрипом (хотя в целом пользоваться можно и тем и другим). Даже YouTube в нём сносно работает (установлено специальное расширение). В полноэкранном режиме видео, конечно, дёргается, а вот в широкоэкранном смотрится нормально. Т. е. на этом компьютере более или менее доступна работа в Интернете (по крайней мере, она комфортнее, чем на среднем смартфоне).

При работе на Raspberry Pi 3 в большинстве приложений заметен небольшой разрыв кадра (нижняя часть изображения обновляется чуть позже верхней). Эта неприятность связана с отсутствием вертикальной синхронизации (tearing). На обычных компьютерах проблема легко решается, но для Raspbian решения я не нашёл. Опять же многое упирается в специфическое железо.

В «Стандартных» минимальный набор полезных приложений: калькулятор, терминал, просмотрщик файлов PDF, блокнот, архиватор (который почти ничего не умеет), диспетчер задач, программа для просмотра изображений, файловый менеджер и утилита для создания копии системы - SD Card Copier.

Всё необходимое есть, лишнего немного, остальное ставим по потребностям.

Skype

Со Skype в Linux почти всегда были какие-то заморочки. Нынешняя версия является просто оболочкой для веб-интерфейса. Вместо того, чтобы пытаться запустить её под Raspbian, просто воспользуемся веб-версией напрямую.

В Raspberry Pi 3 отсутствует разъём mini-jack для микрофона. Вариант 1 - найти микрофон с разъёмом USB. Вариант 2 - подключить дешёвую внешнюю USB-звуковую карту с привычными разъёмами. В моём случае всё было ещё проще (хотя не совсем) - веб-камера оказалась со встроенным микрофоном, т. е. два устройства заняли только одно гнездо.

Откроем Skype. Через Chromium заходим по адресу web.skype.com/ru и выполняем вход в свой аккаунт. Затем нажимаем на зелёный замок в адресной строке: разрешаем камеру, микрофон и Flash. Микрофон работать всё равно не хотел. Оказалось, что нужно было кликнуть по значку видеокамеры (в адресной строке справа), затем вместо по «По умолчанию» выбрать правильное аудиоустройство.

Сделал тестовый видеозвонок знакомым. Звук в обе стороны проходит нормально, видео тоже передаётся (немного притормаживает).

Расширение офисных приложений

Пакет LibreOffice, конечно, неплох, но сейчас он на английском, не проверяет правописание и не очень правильно отображает документы MS Office, т. к. в системе нет ни одного шрифта из Windows. Открываем терминал, устанавливаем русскую локализацию, орфографический словарь и шрифты:

Apt install libreoffice-l10n-ru hunspell hunspell-ru ttf-mscorefonts-installer

Вот так гораздо привычнее:

Наш штатный архиватор умеет работать только с типичными для Linux форматами, поэтому нужно помочь ему, добавив поддержку более ходовых типов архивов (7z, RAR и ещё парочки):

Apt install p7zip-full unrar-free

Установим более продвинутые программы для чтения электронных книг Evince и FBReader, чтобы открывать разные типы электронных книг:

Apt install evince fbreader

Evince у меня не появился в меню самостоятельно, поэтому пришлось зайти в «Параметры» > «Main Menu Editor» и отметить его флажком.

Настройка локальной сети

Если у вас есть локальная сеть, то Raspberry Pi 3 уже подключен к ней (в случае открытой и корректно настроенной сети). Чтобы иметь к ней удобный доступ, в стандартном файловом менеджере нужно открыть меню «Перейти», выбрать «Сеть», открыть меню «Закладки», нажать «Добавить в закладки», переключить вид «Дерево директорий» на «Точки входа». Теперь ссылка на сеть будет под рукой при каждом открытии файлового менеджера.

Также можно установить другой файловый менеджер, например, Thunar.

Вроде, всё неплохо: сетевые ресурсы доступны, файлы открываются, копируются и даже удаляются. Только при входе чуть ли не в каждую сетевую папку система запрашивает пароль (который мы меняли в самом начале работы с ОС). Другие компьютеры в моей сети (и на Windows, и на Linux) заходят на те же ресурсы без паролей. Убрать ввод этого пароля пока не удалось (ввожу каждый раз).

Для того, чтобы компьютеры, входящие в ЛВС, отображались на верхнем уровне, правим настройки Samba /etc/samba/smb.conf . Только файл нужно открыть с правами суперпользователя. Например, вводим в терминале следующую команду (предварительно выполнив sudo -i ):

Leafpad /etc/samba/smb.conf

Меняем значение параметра workgroup на название нашей рабочей группы, сохраняем изменения, делаем перезагрузку. Теперь при заходе в «Сеть» можно сразу переходить к нужному компьютеру (не открывая ещё две папки).

Настройки сети приведены для примера. В других случаях данный подход к работе с ЛВС может просто не сработать.

Подключение к сетевому принтеру

Раз уж у нас есть офисные программы, то и печать документов, скорее всего, потребуется. В рассмотренной выше сети установлен единственный принтер, подключённый к ПК на Windows 10. Принтер уже сетевой, но нужно как-то добавить его в Raspbian. Для этого установим программы CUPS и samba-client:

Apt install samba-client cups

CUPS не пустит нас в настройки просто так. Поэтому нужно добавить нашего текущего пользователя в группу lpadmin:

Usermod -aG lpadmin pi

Управление в CUPS происходит через веб-интерфейс. Вводим в браузер адрес 127.0.0.1:631 , затем переходим в раздел «Администрирование», нажимаем «Добавить принтер». Вводим имя пользователя pi и пароль, который задали при настройке системы (в начале статьи). Отмечаем «Windows Printer via SAMBA» и нажимаем «Продолжить».

Дальше важный момент. В поле «Подключение» нужно ввести адрес принтера в сети. В данном случае smb://192.168.1.6/hp1010 . Из чего он состоит: smb:// - протокол SAMBA, 192.168.1.6 - локальный адрес компьютера, к которому подключён принтер, hp1010 - сетевое имя принтера.

Адрес компьютера в ЛВС должен быть статическим, а имя принтера желательно задавать только латиницей (без пробелов).

Нажимаем «Продолжить». Вводим название принтера для нашей системы и на всякий случай ставим флажок «Разрешить совместный доступ к этому принтеру», нажимаем «Продолжить». Выбираем драйвер для принтера (список впечатляет), нажимаем «Добавить принтер». Сохраняем параметры. Печатаем для теста какой-нибудь документ и радуемся жизни.

Работа с графикой

На Raspberry Pi 3 можно установить классические графические редакторы GIMP и Inkscape:

Apt install gimp inkscape

Работают они в целом корректно, но медленно. Несложные манипуляции с не очень большими картинками мини-компьютер потянет (обрезать фотографию, цвета поправить, надпись добавить, логотип нарисовать). Серьёзные графические задачи, естественно, требуют серьёзной мощности.

Просмотр видео

Вот здесь всё опять упирается в нестандартное железо. Привычные плееры просто на нём не работают (либо работают с большими проблемами). Получилось найти только две программы, которые справляются с проигрыванием видео: OMXPlayer и Kodi. Использовать будем обе.

OMXPlayer уже установлен в системе, но он консольный, поэтому пользоваться им не слишком удобно. Чтобы видеофайлы открывались двойным кликом делаем следующее. Кликаем по файлу правой кнопкой, выбираем «Открыть с помощью…». Переходим на вкладку «Пользовательская команда». В верхней строке вводим omxplayer -b . Отмечаем флажками «Выполнить в эмуляторе терминала» и «Установить выбранное приложение по умолчанию для данного типа файла». В имени приложения пишем, например, omxplayer . Нажимаем «OK».

Эти действия нужно проделать для каждого расширения видеофайлов.

Переключатся между окнами OMXPlayer не даёт. Клавиши управления: «q» - выход, «-» и «+» - регулировка громкости, «←» и «→» - перемотка.

Kodi - это довольно серьёзный медиацентр. Понимает значительно больше кодеков, чем OMXPlayer, имеет встроенный DLNA-клиент и другие плюшки. Для начала его нужно установить:

Wi-Fi у Raspberry слабоват, поэтому видео приличного размера по сети смотреть через него не получится. Позаботьтесь о проводном подключении.

С Kodi на Raspberry Pi 3 можно смотреть весьма увесистые фильмы. Проверял на файле Full HD размером 40 ГБ с битрейтом 40 Мб/с (по DLNA). За 2 с лишним часа ни одного подтормаживания или других проблем. Некоторые Smart-телевизоры при проигрывании этого же файла с того же DLNA-сервера зависали на середине видео (приходилось выключать/включать).

Прослушивание музыки

С воспроизведением звука всё гораздо проще. Поддерживаются многие проигрыватели. Штатный OMXPlayer тоже умеет играть музыку, но в этом нет необходимости. Был установлен Audacious, который ничем особо не перегружен, но имеет привычный вид и нормальный функционал:

Apt install audacious

Торрент-клиент

Здесь тоже всё нормально. Установил Deluge:

Apt install deluge

Почему именно его? Потому что привык к нему. Deluge не лучше и не хуже других. Просто выполняет свою работу как полагается. Для теста скачал через него Raspbian Stretch Lite. Никаких проблем не заметил.

Игры

Конечно, сложно назвать Raspberry Pi игровой платформой, однако поиграть на нём вполне возможно. Речь по большей части идёт о запуске игр, выходивших на старых приставках. Долгие попытки собрать что-то вроде RetroPie в виде отдельного приложения (а не целой ОС) не увенчались успехом. Поиск отдельных приложений для каждой приставки тоже довольно нудное дело, поэтом остановился на Mednafen:

Apt install mednafen

Первым делом переходим в «Global Settings» и выбираем Video Driver sdl вместо opengl (ну нет у «Малины» нормальной поддержки OpenGL). После этого образы игр (ROMs) начнут нормально работать (не все, конечно).

С нормальной скоростью заработали только NES и Sega Mega Drive (хотя большинство платформ не проверялось, т. к. нет к ним интереса).

Можно добавлять игры в интерфейс Mednaffe и запускать их оттуда, а можно даже не запускать Mednaffe - просто открывать файл с образом игры, как любой другой, двойным кликом (не для всех платформ сработает).

Играть в приставочные игры на клавиатуре неудобно, а под рукой как раз есть геймпад от Xbox 360. Контроллер работает без дополнительных драйверов, остаётся только настроить кнопки. Для этого в Mednaffe открываем раздел «Systems», переходим к нужной приставке, открываем подраздел «Input», нажимаем «Controller Setup». Выбираем «Port 1» (первый контроллер), делаем двойной клик в столбце Key и нажимаем на геймпаде кнопку, соответствующую надписи в столбце Action/Button (для каждой строки).

Если настройки не применились, запускаем игру нужного формата из интерфейса (новые параметры должны вступить в силу), после чего настройки уже будут действовать и при запуске двойным кликом.

Несколько «родных» игр, заслуживающих внимания, тоже можно установить. Например, Битва за Веснот (напоминает HOMM III) и OpenTTD (напоминает SimCity 2000). Обе игры переведены на русский язык.

Apt install wesnoth openttd

Последний штрих

После установки многих программ остаётся всякий «мусор». Хорошо бы его удалить следующей командой (ещё и немного места освободится):

Apt autoremove

Дополнительные сведения

  • Снимок экрана делается клавишей Print Screen и автоматически сохраняется в домашнюю папку (/home/pi).
  • Если хотите немного повысить скорость работы Raspberry Pi 3, подключите его к экрану с низким разрешением (например, 1366×768).
  • Приложения можно поискать в штатной утилите «Add / Remove Software», которая чем-то похожа на Synaptic.
  • Для подключения к монитору без разъёма HDMI может использоваться дешёвый переходник с HDMI на DVI-D или такой же кабель.
  • Raspberry может показывать на экране три специальных значка-индикатора (независимо от установленной ОС и среды рабочего стола): молния - низкое напряжение, наполовину красный термометр - высокая температура чипа (80–85 градусов), полностью красный термометр - критическая температура (выше 85 градусов).

Заключение

В целом мини-компьютером я остался доволен. За свою стоимость он предоставляет очень даже широкий функционал (в статье рассмотрены только некоторые варианты его использования). Для опытных пользователей Linux настройка Raspberry Pi 3 покажется несложной. Остальные без проблем смогут использовать уже настроенную систему.

Кликать мышью по окнам можно хоть кота научить.

Помимо энтузиастов Raspberry может быть интересен и компаниям с большим парком машин. Например, покупка 20 классических системных блоков для колл-центра по 12 000 р. и покупка 20 «малиновых» компьютеров по 3000 р. - это совсем разные вещи (180 000 р. экономии).

Только мониторы нужно брать хотя бы с DVI-D - ещё 15 000 вычитаем.

При домашнем использовании Raspberry Pi 3 хорошо справится с ролью бесшумного медиасервера, ретро-приставки, вспомогательного компьютера для другой комнаты и т. д и т. п…



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows