Содержание
- Обзор
- Операционные системы
- Установка Raspbian
- Работа с GPIO
- Программирование GPIO
- Часто Задаваемые вопросы FAQ
Обзор плат Raspberry Pi
Raspberry Pi – это миниатюрный одноплатный компьютер, который с лёгкостью поместится на ладони взрослого человека. Несмотря на свои скромные размеры, плата имеет высокую производительность, что позволяет ей выйти на один уровень со стационарными ПК. Изначально Raspberry Pi была разработана, как учебное пособие по информатике. Но сама идея оказалась настолько удачной, что за несколько лет мини-компьютер стал популярен в очень широких кругах. С течением времени Raspberry Pi пережила несколько модификаций, каждая из которых отличалась от предшественника каким-либо параметром. Такой подход позволил регулировать стоимость изделия в зависимости от потребностей пользователя, что также положительно сказалось на популярности устройства. Вся линейка Raspberry Pi применяет процессоры с АРМ-архитектурой, которая зарекомендовала себя с лучшей стороны. На рисунке №1 показан внешний вид одной из популярных плат Raspberry Pi В+.
Рисунок №1 – обзор составных элементов Raspberry Pi
На сегодняшний день (период 2012-2019гг.) существует 11 разновидностей Raspberry Pi. Последние версии оснащены беспроводными WiFi и Bluetooth модулями, расширяющими границы применения мини-пк в области Ethernet-технологий. Ниже приведена сравнительная таблица, в которой отражены особенности каждой модификации с указанием некоторых технических данных.
Как видно из вышеприведенной таблицы, даже самая младшая модель в линейке имеет вполне серьёзные характеристики, учитывая то, что это одноплатный компьютер размером чуть больше кредитной карты.
На рисунке №2 изображена последняя на момент написания статьи модификация Raspberry Pi 4В, запущенная в продажу в июне 2019г. Она оснащена дополнительным графическим процессором VideoCore VI (OpenGL ES 3.x), а также аппаратным декодером 4Kp60 для воспроизведения HEVC видео. Два порта microHDMI с возможностью пропускать сигнал до 4К, позволяют подключить одновременно два монитора.
Рисунок №2 – внешний вид Raspberry Pi 4В
Основной отличительной чертой Raspberry Pi от обычных компьютеров, является наличие программируемых портов ввода-вывода GPIO. С помощью них можно управлять различными устройствами и принимать телеметрию с различного рода датчиков.
Где приобрести?
Купить Raspberry Pi вы можете в нашем магазине с доставкой по всей России.
Операционные системы
Хоть Raspberry Pi внешне может напомнить нам Arduino, он всё-таки использует кардинально другой метод функционирования. Данная плата, как и обычный ПК, работает под управлением одной из специализированных операционных систем. В зависимости от области применения или личных симпатий, каждый может выбрать для себя свою. Ниже приведён перечень наиболее популярных «операционок» для Raspberry Pi с их кратким описанием.
Raspbian – данная операционная система в 2015 году была представлена как основная для Raspberry Pi. Она по максимуму оптимизирована для процессоров с АРМ-архитектурой и достаточно активно продолжает развиваться. Основой операционной системы является Debian GNU/Linux. Среда рабочего стола состоит из LXDE (среда для UNIX и других POSIX-совместимых систем типа Linux и BSD), а также менеджера окон Openbox (бесплатный менеджер для X Window System). В состав дистрибутива входят: программа компьютерной алгебры Mathematica; модифицированная версия Minecraft PI; урезанная версия Chrome.
Debian – операционная система с открытым исходным кодом. В состав Debian входит более 59000 пакетов уже скомпилированного ПО. Система использует ядро Linux или FreeBSD. В стандартный дистрибутив включены: среда рабочего стола GNOME с набором наиболее популярных программ, таких как Firefox, LibreOffice, Evolution, и прочий набор для работы с мультимедиа. Также есть возможность установки образов с используемыми средами рабочих столов KDE, Xfce, LXDE, MATE и Cinnamon.
Ubuntu – система основана на Debian GNU/Linux. По популярности Ubuntu занимает первое место среди дистрибутивов Linux, предназначенных для web-серверов. В состав дистрибутива входят: программа для просмотра Интернет; офисный пакет, программы для коммуникации и т.д.
Fedora – эта операционная система основана на дистрибутиве Linux от известной фирмы Red Hat. В состав дистрибутива входят LibreOffice, Mozilla Firefox, а также другое ПО, которое можно дополнительно установить через Цент Приложений GNOME.
Arch Linux – это свободно распространяемый дистрибутив GNU/Linux общего назначения. Особенностью данной системы является отсутствие графического установщика, что может изрядно потренировать навыки ярых исследователей Linux.
Gentoo Linux – один из популярных дистрибутивов GNU/Linux с гибкой технологией управления пакетами. В системе предусмотрена возможность максимальной оптимизации под конкретное аппаратное решение. Алгоритм управления пакетами даёт возможность легко реализовать как рабочую станцию, так и сервер.
RISC OS – операционная система специально разрабатывалась для процессоров с архитектурой АRМ. Особенности ядра RISC OS позволяют системе производить ускоренный запуск за счёт хранения данных в ПЗУ. Такой подход также помогает защитить данные при различного рода сбоях и влияния вредоносного ПО.
OpenELEC – это программный комплекс для организации домашнего кинотеатра под управлением GNU/Linux.
OSMC – ещё один комплекс для реализации домашнего кинотеатра.
В сети Интернет, помимо перечисленных операционных систем, можно найти ещё множество модификаций для самых различных предназначений. Но так как Raspbian является основной средой для Raspberry Pi, то в дальнейшем будем опираться именно на неё.
Установка Raspbian
Для установки операционной системы необходимо подключить к плате Raspberry Pi минимальный набор периферии, а именно: монитор, клавиатуру и мышь. Далее, необходима SD-карта с записанным образом Raspbian. Именно с неё и будет производится установка.
Для того, чтобы записать образ на карту памяти, её необходимо вставить в компьютер и отформатировать в системе FAT32. Сделать это можно как стандартными средствами Windows, так и сторонними программами, например – SD Memory Card Formatter. После чего, скачиваем дистрибутив операционной системы с официального сайта Raspberry. Для неопытных пользователей, доступна упрощённая версия установщика NOOBS. По окончании загрузки, архив необходимо распаковать в корень карты памяти. На этом подготовительный этап окончен.
Вставляем карту памяти в плату Raspberry Pi (клавиатура, мышь и монитор уже подключены) и подаём питание через разъём micro-USB. Начинается установка Raspbian, которая длиться порядка 10 минут. В это время от пользователя практически ничего не требуется кроме самых простых и интуитивно понятных действий, таких как выбор языка, ввод пароля и т.п. На завершающем этапе появиться меню, в котором можно выбрать тип пользовательского интерфейса (консольный или графический). Выбираем графический и завершаем установку нажатием кнопки Finish. Система попросит перезагрузиться и как следствие запуститься уже в более привлекательном виде.
Работа с GPIO
Как уже говорилось ранее, основной отличительной черной Raspberry Pi от обычного ПК, является наличие на плате портов общего назначения GPIO (General-purpose input/output). Пользователю доступна возможность управления этими выводами, а это значит, что к Raspberry Pi можно подключать дисплеи, кнопки, датчики, реле и прочие электронные модули, которыми можно манипулировать на своё усмотрение.
Внешне GPIO выполнен в виде двухрядной штыревой колодки с шагом 2,54мм, которая расположена на краю платы. Ранние модели, такие как В и А содержат 26 выводов, а более современные – 40. На рисунке №3 показан внешний вид портов общего назначения для платы Raspberry Pi 3В+ с указанием нумерации выводов.
Рисунок №3 – выводы GPIO
Но для того, чтобы полноценно использовать GPIO, знать их нумерацию недостаточно. Необходимо точно понимать где расположен тот или иной вывод, как он называется и за что он отвечает. На рисунке №4 приведена полная распиновка разъёмов GPIO для различных модификаций Raspberry Pi.
Рисунок №4 – распиновка GPIO в платах Raspberry Pi
Как видно из вышеприведенного рисунка, на колодке помимо самих GPIO выведены штырьки с напряжениями 3,3V, 5V, а также выводы GND. Некоторые GPIO имеют альтернативные функции, назначение которых указано в синих блоках. К тому же нельзя нарушать нагрузочные способности порта, чтобы не вывести Raspberry Pi из строя. Следует помнить, что GPIO работает с напряжением 3,3V и максимальным током нагрузки 50mA на один вывод. Это означает, что любое превышение указанных параметров негативно скажется на работоспособности платы, поэтому лучше использовать гальваническую развязку между GPIO и внешним исполнительным устройством. То же самое относится и ко входным цепям, к которым применяются резистивные делители и всевозможные преобразователи уровней. На рисунке №5 показан пример правильного и неправильного подключения базовых элементов.
Рисунок №5 – примеры правильного и неправильного подключения
В левой части рисунка прямое подключение светодиода приведёт к превышению максимально допустимого тока 50mA. Это, в свою очередь, выведет GPIO10 из строя. В правой части рисунка добавлен ограничительный резистор, который будет удерживать ток в допустимых рамках. Что касается кнопки, то может возникнуть ситуация, когда GPIO10 ошибочно будет сконфигурирован на выход, и её нажатие приведёт к прямому соединению 3,3V и GND. При добавлении резисторов R2 и R3 все выводы будут гарантировано защищены от перегрузок. Исходя из вышеизложенного можно сделать вывод, что мелочится в элементах защиты не стоит, так как работоспособность Raspberry Pi гораздо важнее кучки дешёвых резисторов.
Программирование GPIO
Операционная система Raspbian предлагает пользователям удобный модуль для программного управления GPIO. Называется он RPi.GPIO и является стандартным приложением. Перед его применением, модуль рекомендуется обновить. Сделать это можно набрав в консоли следующие строки:
sudo apt-get update sudo apt-get install python-rpi.gpio
Чтобы иметь практическое представление о работе с GPIO, создадим небольшой проект, который заставит Raspberry Pi мигать светодиодом один раз в секунду, а при нажатии на кнопку увеличивать частоту мигания в 5 раз. Схема будущего проекта показана на рисунке №6.
Рисунок №6 – схема управления светодиодом
За управление светодиодом будет отвечать GPIO4, а за чтение состояния кнопки GPIO17.
По классике, программы для Raspberry Pi пишутся на скриптовом языке программирования Python. Особенность его в том, что для запуска программы не требуется компилятор. Скрипт запускается и начинает работу сразу, но его необходимо сохранить в файл с последующей загрузкой в плату. Для этого открываем терминал и прописываем следующую строку:
nano /home/pi/led_key_test.py
Тем самым мы создаём файл «led_key_test.py» в директории «/home/pi». Как следствие откроется редактор, в который необходимо написать нижеследующий код.
#!/usr/bin/env python # -*- coding: utf-8 -*- # Подключение библиотек для работы с GPIO и организации задержек по времени import time import RPi.GPIO as GPIO # Определение выводов GPIO, к которым подключены светодиод и кнопка LED = 4 KEY = 17 # Сброс портов (все выводы настраиваются на вход - INPUT) GPIO.cleanup() # Режим нумерации пинов - по названию (не по порядковому номеру на колодке) GPIO.setmode(GPIO.BCM) # Настройка пина LED на выход (OUTPUT) GPIO.setup(LED, GPIO.OUT) # Установка логического (0) на выводе LED GPIO.output(LED, GPIO.LOW) # Настройка пина KEY на вход (INPUT) GPIO.setup(KEY, GPIO.IN) # Вывод приветствия на экран print 'Hello Raspberry Pi' # Проверка на прерывание программы по нажатию (CTRL+C) на клавиатуре try: # Бесконечный цикл while True: # Если кнопка нажата (на пине KEY логический 0) if GPIO.input(KEY) == False: # Выставляем задержку 0,1 сек. и выводим сообщение timeout = 0.1 print 'Key is pressed.' else: # иначе задержка - 0,5 сек. timeout = 0.5 # Включаем светодиод GPIO.output(LED, GPIO.HIGH) # Задержка time.sleep(timeout) # Гасим светодиод GPIO.output(LED, GPIO.LOW) time.sleep(timeout) # Если CTRL+C была нажата – сбрасываем порт и завершаем выполнение программы except KeyboardInterrupt: GPIO.cleanup()
Ещё одной немаловажной особенностью программы Python является строгое соблюдение отступов (табуляций) при написании программ. Учитывайте это правило при создании своего кода.
Итак, переходим к последнему этапу. Чтобы выйти из редактора жмём CTRL+X и сохраняем программу нажатием «у» + ENTER. Осталось только сделать скрипт исполняемым. Для этого вводим в терминале следующие строки:
chmod +x /home/pi/led_key_test.py /home/pi/led_key_test.py
Видим на экране приветствие и мигающий 1 раз в секунду светодиод. Теперь проверяем работоспособность кнопки, и если всё сделано правильно, то при её нажатии частота мигания возрастёт и возвратиться к прежней при её отпускании.
Часто задаваемые вопросы (FAQ)
Ответ: В этом плане нет особых ограничений. Например, такие устройства, как колонки, мышь и клавиатура, с лёгкостью могут быть подключены к плате. Метод сопряжения зависит от операционной системы, которая установлена Raspberry Pi.
Ответ: Всё зависит от операционной системы. К примеру, для Raspbian, паролем будет «raspberry».
Ответ: По большому счёту, применить Raspberry Pi для управления 3D-принтером возможно, но не слишком удобно. Дело в том, что стандартные операционные системы, предназначенные для Raspberry Pi, не способны обеспечить RealTime-режим, необходимый для чёткой работы принтера. Другой преградой является недостаточное количество GPIO для подключения всей необходимой периферии без применения специальных плат расширения.
Ответ: Этом можно сделать стандартными Linux-командами:
sudo apt-get install apache2 php5 libapache2-mod-php5
sudo apt-get install php5-mysqlnd
sudo apt-get install phpMyAdmin