5 способов полезного использования Raspberry Pi
Raspberry Pi наверное есть дома почти у каждого, и рискну предположить, что у многих она валяется без дела. А ведь Raspberry это не только ценный мех, но и вполне мощный fanless-компьютер с Linux. Сегодня мы рассмотрим полезные возможности Raspberry Pi, для использования которых код писать не придется совсем.
Для тех кому интересно, подробности под катом. Статья рассчитана для начинающих.
Примечание: статья рассчитана для начинающих, но имеющих хотя бы базовые понятия о том, что такое IP-адрес, как зайти на Raspberry Pi по SSH с помощью putty или любого другого терминала, и как редактировать файлы редактором nano. В качестве эксперимента, в этот раз я не буду «грузить» читателей кодом для Python, программирования здесь не будет совсем. Для всего ниженаписанного будет достаточно лишь командной строки. Насколько такой формат востребован, буду смотреть по оценкам текста.
Разумеется, я не буду рассматривать совсем уж очевидные вещи типа FTP-сервера или сетевой шары. Ниже я постарался выделить что-то более-менее полезное и оригинальное.
Перед тем, как мы будем что-то устанавливать, важный совет: правильный блок питания (лучше фирменный на 2.5А, а не noname-зарядка от телефона) и радиатор на процессор крайне важны для стабильной работы Raspberry Pi. Без этого Raspberry может зависать, могут появляться ошибки копирования файлов и пр. Коварность таких ошибок в том, что проявляются они только изредка, например при пиковой загрузке CPU или в момент записи больших файлов на SD-карту.
Перед установкой каких-либо компонентов желательно обновить систему, иначе старые адреса для команды apt могут не сработать:
Теперь можно приступать к установке и настройке.
1. WiFi точка доступа
Raspberry Pi легко превратить в беспроводную точку доступа, причем ничего докупать не придется, WiFi «на борту» уже есть. Для этого необходимо установить 2 компонента: hostapd (Host access point daemon, сервис точки доступа) и dnsmasq (DNS/DHCP-сервер).
Устанавливаем dnsmasq и hostapd:
Задаем статический IP-адрес, который будет иметь Raspberry Pi в WiFi-сети. Для этого нужно отредактировать файл dhcpcd.conf, введя команду sudo nano /etc/dhcpcd.conf. В файл нужно добавить следующие строки:
Как можно видеть, в WiFi-сети наша Raspberry Pi будет иметь адрес 198.51.100.100 (это важно запомнить, если на ней будет работать какой-то сервер, адрес которого нужно будет ввести в браузере).
Далее, мы должны активировать IP forwarding, для чего выполняем команду sudo nano /etc/sysctl.conf и раскомментируем строку net.ipv4.ip_forward=1.
Теперь нужно настроить DHCP-сервер — он будет раздавать IP-адреса подключаемым устройствам. Вводим команду sudo nano /etc/dnsmasq.conf и добавляем следующие строки:
Как можно видеть, подключаемые устройства будут иметь IP-адреса в диапазоне 198.51.100.1… 198.51.100.99.
Наконец, настало время настроить Wi-Fi. Редактируем файл /etc/default/hostapd и вводим там строку DAEMON_CONF=»/etc/hostapd/hostapd.conf». Теперь отредактируем файл hostapd.conf, введя команду sudo nano /etc/hostapd/hostapd.conf.
Вводим параметры точки доступа:
Здесь важно обратить внимание на параметры «ssid» (имя точки доступа), «wpa_passphrase» (пароль), «channel» (номер канала) и «hw_mode» (режим работы, a = IEEE 802.11a, 5 GHz, b = IEEE 802.11b, 2.4 GHz, g = IEEE 802.11g, 2.4 GHz). К сожалению, автоматического выбора канала нет, так что наименее занятый канал WiFi придется выбрать самостоятельно.
Важно: в этом тестовом примере указан пароль 12345678, в реальной точке доступа нужно использовать что-то посложнее. Существуют программы, осуществляющие перебор паролей по словарю, и точку доступа с простым паролем могут взломать. Ну а расшаривать интернет посторонним при современных законах может быть чревато.
Все готово, можно активировать все сервисы.
Теперь мы должны уже увидеть новую WiFi-точку доступа в списке сетей. Но чтобы в ней появился интернет, необходимо активировать перенаправление пакетов из Ethernet в WLAN, для чего вводим команду sudo nano /etc/rc.local и добавляем строку настройки iptables:
Теперь все. Перезагружаем Raspberry Pi, и если все было сделано правильно, мы можем увидеть точку доступа и подключиться к ней.
Как можно видеть, скорость не так уж плоха, и пользоваться таким WiFi вполне можно.
Кстати, небольшой совет: поменять сетевое имя Raspberry Pi можно, выполнив команду sudo raspi-config. По умолчанию оно равно (сюрприз:) raspberrypi. Это наверно общеизвестно. Однако не все знают, что это имя доступно и в локальной сети, но к нему нужно добавить «.local». Например, зайти на Raspberry Pi по SSH можно, введя команду putty pi@raspberrypi.local. Тут правда, есть один нюанс: это работает в Windows и в Linux, но не работает в Android — там по-прежнему придется вводить IP-адрес вручную.
2. Медиа-сервер
Существует 1001 способ сделать медиа-сервер на Raspberry Pi, я рассмотрю лишь самый простой. Допустим, у нас есть любимая коллекция MP3-файлов, и мы хотим, чтобы она была доступна в локальной сети для всех медиа-устройств. Мы поставим на Raspberry Pi сервер MiniDLNA, который может сделать это для нас.
Для установки введем команду sudo apt-get install minidlna. После чего нужно настроить конфиг, введя команду sudo nano /etc/minidlna.conf. Там необходимо добавить лишь одну строку, указывающую путь к нашим файлам: media_dir=/home/pi/MP3 (путь разумеется, может быть другим). Закрыв файл, перезапускаем сервис:
sudo systemctl restart minidlna
Если мы все сделали правильно, мы получим готовый медиа-сервер в локальной сети, с которого можно играть музыку через настольное WiFi-радио или через VLC-Player в Android:
Совет: загружать файлы на Raspberry Pi очень удобно с помощью WinSCP — эта программа позволяет работать с папками RPi также легко, как и с локальными.
3. SDR приемник
Если у нас есть приемник RTL-SDR или SDRPlay, мы можем использовать его на Raspberry Pi с помощью программы GQRX или CubicSDR. Это позволит иметь автономный и бесшумный SDR-приемник, способный работать даже круглосуточно.
Прошу прощения за качество скриншота с экрана телевизора:
С помощью RTL-SDR или SDRPlay возможно принимать различные радиосигналы с частотой до 1ГГц (даже чуть выше). К примеру, можно слушать не только обычное FM-радио, но и переговоры пилотов или других служб. Кстати, радиолюбители с помощью Raspberry Pi вполне могут принимать, декодировать и отправлять на сервер сигналы WSPR и других цифровых режимов.
Подробное рассмотрение SDR-радио выходит за рамки этой статьи, подробнее можно почитать здесь.
4. Сервер для «умного дома»
Тем, кто хочет сделать свой дом более «умным», можно воспользоваться бесплатной программой OpenHAB.
Это даже не то, чтобы просто программа, а целый фреймворк, имеющий различные плагины, скрипты, позволяющий управлять различными устройствами (Z-Wave, Philips Hue и др). Желающие могут изучить подробнее оф.сайт https://www.openhab.org.
Кстати, раз уж зашла речь об «умном доме», на Raspberry Pi вполне может работать MQTT-сервер, который может использоваться различными локальными устройствами.
5. Клиент для FlightRadar24
Если вы любитель авиации, и живете в регионе где покрытие FlightRadar оставляет желать лучшего, можно помочь сообществу и всем путешественникам, установив приемник у себя. Для этого достаточно лишь RTL-SDR-приемника и Raspberry Pi. Как бонус, вы получите бесплатный доступ к Pro-аккаунту FlightRadar24.
Подробная инструкция уже публиковалась на Хабре.
Заключение
Разумеется, здесь перечислено далеко не все. Raspberry Pi имеет неплохую вычислительную мощность, и может использоваться в абсолютно разных задачах, от ретро-игровой консоли или видеонаблюдения, до распознавания автомобильных номеров или даже как сервис для астрономической all-sky камеры для наблюдения за метеорами.
Кстати, написанное актуально не только для Raspberry Pi, но и для различных «клонов» (Asus Tinkerboard, Nano Pi и пр), все программы скорее всего заработают и там.
Лучшие проекты на Raspberry Pi начала 2022 года, на которые стоит обратить внимание
DIY-электроника всегда была чем-то особенным, атмосферным. Ну а одноплатники и микроконтроллеры Raspberry Pi привнесли в эту отрасль много нового. Проектов на базе «малинок» просто огромное количество, и далеко не все из них имеют какую-то «изюминку», из-за которой на них стоит обращать внимание. Но проекты, о которых говорится под катом, по нашему мнению, как раз оригинальные.
Некоторые из них достаточно простые, так что сделать нечто подобное или даже лучше сможет даже новичок в электронике. Другие посложнее, так что над их реализацией придется попотеть. Но в любом случае, результат будет интересным и главное — стоит потраченного времени. Что же, самое интересное — под катом.
3D сканер на базе Raspberry Pi
Моделирование трехмерных объектов в среде CAD — не самая простая задача, даже для тех из нас, кто неплохо разбирается в моделировании и у кого есть на это время. Для решения этой задачи созданы 3D-сканеры, но многие из них слишком дорогие для того, чтобы такой девайс мог приобрести любой желающий.
Ну если нельзя купить, то, значит, можно сделать своими руками. Проект, который называется Raspberry Pi 3D Scanner OpenScan позволяет создать неплохой сканер, который дает возможность быстро создать цифровую копию реального объекта. К слову, система поддерживает работу с последней версией HD Arducam.
Проект подойдет многим читателям Хабра — ведь если раньше вы могли не интересоваться этим направлением, поскольку у вас не было сканера, то теперь он есть. Вернее, есть система, которую можно собрать своими руками.
Погружаемся в микромир
Еще один проект по работе с изображениями. Только теперь речь не о создании объёмных моделей реальных объектов, а о внедрении в микромир при помощи электроники. Посмотреть на обитателей микромира можно и в микроскоп, но «малинка» позволяет сделать этот процесс еще более увлекательным. Для любителей науки и электроники как раз то, что надо.
К слову, проект идеально подойдет для создания интересного научного инструмента для учащихся школ и вузов. Ну и профессиональные ученые вряд ли пройдут против такого проекта. Кстати, если вы уже делали что-то подобное — отпишитесь в комментариях, возможно, ваша идея еще проще в реализации?
Ну а вот ссылочка на проект, который получил название Raspberry Pi Trinocular Microscope Image Capturing.
Если вы читаете наш блог, вас могут заинтересовать эти тексты:
Портативный ПК на базе Raspberry Pi Zero 2 W
Этот девайс можно назвать КПК, поскольку на ноутбук или ультрабук он не тянет по характеристикам. Ну и коммуникатором его тоже не назовешь, поскольку нет модуля связи, характерного именно для коммуникаторов. В целом, это небольшой девайс, который может пригодиться кому-то для работы. Ну или просто в качестве пет-проекта, на который не жалко убить время и ресурсы.
Зато потом можно говорить, что у вас есть устройство, которого нет почти ни у кого — кроме, вероятно, авторов самого проекта и еще парочки гиков. Собрал девайс пользователь GitHub с ником Penk. Он взял петли от старого Game Boy Advance SP, напечатал корпус на 3D-принтере, плюс добавил дисплей Waveshare 7.9 дюймов, с разрешением 400 x 1280 точек.
У девайса есть mini HDMI, поскольку Zero 2 W позволяет выводить изображение через этот порт. micro-USB тоже есть. Питание устройства обеспечивает 3.7V Li-Po батарея.
Шикарный девайс, хотя, конечно, и очень нишевый — тут не поспоришь. Возможно, кто-то сходу придумал ему практическое применение? Если так, отпишитесь в комментариях, обсудим.
Сборщик Кубика Рубика
Роботов, которые умеют собирать Кубик Рубика, просто миллион. Но мы обратили внимание на этот проект, поскольку собран он на базе малинки. Простым его не назовешь (как и предыдущий девайс), практического применения нет. Его предназначение — удивлять друзей и знакомых, плюс можно снять обзорчик для своего YouTube-канала.
Есть роботы, которые способны решить эту головоломку за пару секунд, или даже быстрее. Робот на базе «малинки» не особо производительный, но все равно побеждает многих из нас, собирая головоломку менее, чем за минуту. Делает он это весьма уверенно.
Естественно, для того, чтобы собирать Кубик, нужно обрабатывать изображение, которое требуется как-то захватывать. Делается это при помощи стандартной камеры Raspberry Pi Camera v1.3. Подключается она к малинке без особых премудростей.
Естественно, здесь не обошлось не только без «железных» решений, но и без программирования. Программная база написана на CV2 (OpenCV) и Numpy. В основе алгоритма — решение, предложенное Hegbert Kociemba.
Несмотря на сложность проекта, его автор максимально детально все разъяснил — что, как и почему нужно делать. Описание проекта доступно на странице разработчика на сервисе Instructables.
Осциллограф
Собрать такой девайс для электронщика — интересная задача. Конечно, проще купить уже готовое решение, которых немало, как дорогих, так и не очень. Но если есть время и желание его потратить с пользой, то можно попробовать собрать DIY-осциллограф. Кстати, много деталей и модулей покупать не придется — нужна только сама «малинка» и смартфон на Android. Последний при помощи специализированного ПО будет обрабатывать полученный от одноплатника сигнал и визуализировать его для пользователя.
Собственно, проект сможет собрать даже относительно начинающий любитель DIY-проектов из мира электроники. Вот здесь есть подробное руководство по сборке такого устройства. Мануал достаточно подробный, так что вряд ли что-то может пойти не так.
Выше — видео с демонстрацией работы устройства. Вполне себе пригодная система для не самых сложных ремонтных работ, где нужен осциллограф.
Игровая консоль Super Game Boy
Ну и, наконец, последний на сегодня проект — самодельная игровая консоль, которая способна воспроизводить игры для Game Boy. Вся система выполнена в стиле классической игровой консоли (нет, не портативной) с внешним дисплеем. В «консоли» используется два микроконтроллера Pico. Один — для обработки данных игры, второй — для управления, он принимает и обрабатывает сигналы с контроллера.
Кстати, проект, о котором мы говорим, выделяется среди себе подобных тем, что в нем используются как микроконтроллеры от Raspberry, так и оригинальные элементы Game Boy. В итоге получился не самый обычный современный девайс с атмосферой ретро-гейминга. Вот по этой ссылке можно найти подробную инструкцию на GitHub по сборке устройства.