Raspberry pi pico на мк rp2040: начало и первые шаги. что есть поесть за $4

Через что возможно взаимодействовать с GPIO Raspberry

Работать с GPIO Raspberry Pi можно практически через любой инструмент. К сегодняшнему дню созданы соответствующие библиотеки почти под все распространенные языки программирования. С GPIO Raspberry Pi возможно взаимодействовать даже через PHP и JavaScript (node.js).

Однако человеку, который только начинает знакомиться с «Малиной», рекомендуется пробовать взаимодействовать с данным интерфейсом посредством Python. Это обусловлено, во-первых, что для GPIO в Raspbian уже предустановлена соответствующая библиотека для Пайтона, а, во-вторых, этот ЯП является основным для рассматриваемого одноплатника.

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

Как перестать бояться и полюбить 1-wire

Tutorial

Мне очень нравится протокол 1-wire своей простотой и удобством для применения в системах «умный дом». Недавно я писал программную эмуляцию одной микросхемы и погрузился во внутренности этого протокола. Чтобы накопленные знания могли принести пользу не только мне, я решил написать данную статью. Но в статье я хочу рассказать не про абстрактные диаграммы сигналов и кодирование данных — перепечаток такого материала есть достаточно, а хочу рассказать про более практические вещи. А именно: рассмотрю проверенные лично схемы адаптеров, собранные из простых и доступных деталей, и расскажу, как из Linux получить доступ к устройствам 1-wire. Попутно расскажу про сам протокол, будет и пример низкоуровневой работы, и пример доступа из JavaScript, а также рекомендации владельцам Raspberry Pi. Эта статья в первую очередь для тех, кто хочет разобраться с протоколом практически с нуля, чтобы начать его использовать в своих проектах. Возможно те, кто уже хорошо знаком с протоколом, также найдут что-то новое для себя.

Возможности программ на Python

Как и сценарии оболочки, Python может автоматизировать такие задачи, как пакетное переименование и перемещение большого количества файлов. Он может использоваться как командная строка с IDLE, функцией Python REPL (read, eval, print, loop). Однако есть и другие полезные вещи, которые вы можете сделать с помощью Python. Например, вы можете использовать Python для программирования таких вещей, как:

  • Веб-приложения
  • Настольные приложения и утилиты
  • Специальные графические интерфейсы
  • Небольшие базы данных
  • 2D игры

Python также имеет большую коллекцию библиотек, что ускоряет процесс разработки. Есть библиотеки для всего, о чем вы только можете подумать — программирования игр, рендеринга графики, графических интерфейсов, веб-фреймворков и научных вычислений.

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

Лучшие IDE для Raspberry Pi

Перевод

Raspberry Pi — это, может, и не единственный одноплатный компьютер (single-board computer, SBC) на рынке, но он, определённо, является самым популярным. Raspberry Pi пользуется огромное количество людей, он является центром экосистемы, в которую входит множество официальных и неофициальных ресурсов и изделий — от книг и дополнительного оборудования до форумов и учебных курсов. Raspberry Pi снабжён отличной, поддерживаемой в актуальном состоянии документацией. Благодаря Raspberry Pi Foundation регулярно выходят новые модели SBC, появляются и усовершенствования моделей предыдущих поколений. Raspberry Pi, учитывая его серьёзную вычислительную мощность, отлично показывает себя в роли настольного компьютера. Он подходит и тем, кто занимается программированием.Raspberry Pi
Из этого материала вы узнаете о том, почему Raspberry Pi имеет смысл рассматривать как компьютер, подходящий для разработчика ПО. Здесь же мы поговорим о выборе интегрированной среды разработки (integrated development environment, IDE). Среди рассмотренных IDE можно найти инструменты для программирования практически на любом языке.

Нужно ли что-то дополнительно устанавливать и как запустить скрипт

На Raspberry Pi возможно использовать абсолютно любые языки, компиляторы или интерпретаторы, которые существуют для Linux. Однако Пайтон для «Малины» хорош тем, что в Raspbian уже установлено все необходимо для запуска соответствующих скриптов (даже если при их написании использовалась библиотека для работы с GPIO).

Рассматривать на Raspberry Pi Python примеры особого смысла нет – их легко найти в документации или на GITHUB. Однако следует посмотреть, как вообще писать скрипты и запускать их.

Для этого нужно открыть любой текстовый редактор или средство для работы с кодом и прописать в нем следующую строку:

Print («Hello, World»)

Затем нужно сохранить это в файле в формате .py (например, hw.py). После этого потребуется открыть консоль, перейти в каталог, в котором размещен скрипт (если в домашней директории, то дополнительно ничего делать не нужно) и ввести команду: python hw.py. В ответ на это отобразится строка: Hello, World.

Вот так легко можно запустить скрипт на Python под «Малиной».

Сделать приставку Smart TV на Raspberry Pi 3 – это просто

Чтобы сделать из Raspberry Pi 3 Smart TV приставку, не нужно быть выдающимся инженером, программистом, электронщиком и т.д. Для этого нужны только:

  • комплект оборудования (одноплатник, MicroSD-карточка и блок питания);
  • ПО (операционная система и один или несколько медиаплееров);
  • 1-2 часа времени и немного терпения.

В первую очередь необходимо установить на «Малину» операционную систему. С этим проблем не должно возникнуть, так как соответствующих мануалов в интернете сотни.

Единственное, что здесь заслуживает отдельного внимания – выделение достаточного объема видеопамяти. Для этого вначале нужно открыть консольную утилиту raspi-config (естественно из-под SUDO, иначе система не позволит записать изменения в конфигурацию).

Отобразится экран с меню, в котором потребуется перейти в категорию Advanced Options, а затем выбрать пункт Memory Split. Появится строка, в которой нужно указать предпочтительный размер графической памяти. Для воспроизведения видео в формате HD достаточно 160 мегабайт, но для FullHD этого уже мало. Если на «Малине» будут проигрываться видеозаписи в разрешении 1080p, следует выделить 256, 384 или 512 мегабайт.

Чтобы смотреть на Raspberry Pi 3 TV, нужно установить подходящий плеер. Лучшим решением является Kodi. На Raspbian он инсталлируется командой sudo apt-get install Kodi.

После окончания загрузки и установки можно будет запустить плеер. Но не нужно спешить кликать по значку или вводить в терминале команду kodi. Если это сделать, при закрытии приложения возникнет ошибка.

Для запуска Kodi на RPi3 следует использовать команду kodi-standalone. А, чтобы запускать плеер через иконку, следует значение переменной exec в файле /usr/share/applications/kodi.desktop заменить на kodi-standalone.

Теперь, чтобы смотреть на Raspberry Pi 3 телевизор, нужно установить из репозитория плагины kodi-pvr-iptvsimple и kodi-pvr.

Все, теперь можно запускать плеер и добавлять в него каналы. Для этого нужно перейти в «Настройки», там выбрать пункт «ТВ» и активировать пункт «Вкл». А во всплывшем предложении следует указать PVR IPTV Simple Client. Далее в подкатегории «Установки EPG» категории «Основные» в поле «Путь к M3U» нужно ввести путь к скаченному файлу *.m3u, который содержит плей-лист с каналами, а в поле «Ссылка на XMLTV» путь к соответствующему файлу *.XML.

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

Raspberry Pi 3 Smart TVRaspberry Pi 3 Smart TV

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

Библиотека RPi.GPIO написана специально для управления портами GPIO на языке python. Эти порты позволяют собирать данных с датчиков, управлять двигателями, ключами, реле и прочими устройствами с помощью программы.

В первую очередь нужно скачать архив с официального сайта https://sourceforge.net/projects/raspberry-gpio-python/files/?source=navbar. На странице можно увидеть большое количество версий библиотеки. Нужно выбрать самую свежую версию.

Архив будет загружен в папку загрузки по адресу /home/pi/Downloads. Нужно зайти в нее, найти скачанный архив, нажать правую кнопку мыши и выбрать во всплывающем меню Extract Here.

Эта команда разархивирует библиотеку в папку, в которую помещен  архив. Рядом с ним будет добавлена новая папка с названием RPi.GPIO-0.6.3.

Следующим шагом нужно установить python-dev. Запускается терминал и в него вводится команда

sudo apt-get install python-dev

Будет задан вопрос «Do you want to continue? [Y/n]», нужно нажать «Yes» и Enter.

В окне высветится отчет, который сообщает об успешно проведенной установке.

Чтобы установить библиотеку RPi.GPIO, нужно не закрывая перейти в папку, которая была распакована до этого.

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

Затем нужно запустить команду:

python setup.py build

На экране появится отчет о выполнении.

После этого нужно запустить установку библиотеки с помощью команды

sudo python setup.py install

После успешной установки на экране появится новый отчет.

Библиотека установлена, можно начинать работать.

Помимо вышеописанной библиотеки RPi.GPIO существуют и другие. Для доступа к GPIO контактам используется также библиотека WiringPi. Эта библиотека написана на языке C, используется в средах C, C++ и RTB (BASIC) и других. Она создавалась схожей с библиотекой Wiring на Ардуино.

Для программирования и настройки контактов вместе с библиотекой используется утилита gpio для командной строки. Она позволяет записывать и считывать данных с портов и управлять ими.

Как писать и запускать программы на Python?

Здесь мы рассмотрим только основы написания и выполнения программы на Python, но отличный учебник, охватывающий все, что программист должен знать о Python, — это книга «Learning Python 5th Ed.» (О’Райли) Марк Лутц.

Установка и обновление языка

Python 2 и Python 3 поставляются предварительно установленными в операционных системах Raspbian, но чтобы установить Python в другой ОС Linux или обновить его, просто выполните одну из следующих команд в командной строке:

sudo apt-get install python3

Устанавливает или обновляет Python 3.

sudo apt-get install python

Устанавливает или обновляет Python 2.

Открываем Python REPL

REPL (от англ. read-eval-print loop — цикл «чтение — вычисление — вывод») — форма организации простой интерактивной среды программирования в рамках средств интерфейса командной строки.

Чтобы получить доступ к Python REPL (где вы можете вводить команды Python точно так же, как в командной строке), введите python или python3 в зависимости от того, какую версию вы хотите использовать:

Введите Ctrl-D, чтобы выйти из REPL.

Пишем программу на Python

Чтобы продемонстрировать создание и выполнение программы на Python, мы сделаем простую программу «Hello World». Для начала откройте текстовый редактор Nano и создайте новый файл с именем hello-world.py, введя его в командной строке:

sudo nano hello-world.py

Введите этот код в Nano, затем нажмите Ctrl-X и Y, чтобы выйти и сохранить файл:

#!/usr/bin/python
print "Hello, World!";

Все программные файлы Python должны быть сохранены с расширением «.py». Вы можете написать программу в любом текстовом редакторе, таком как Notepad, Notepad++, или в нашем любимом Sublime Text 3, просто сохраните файл с расширением «.py».

Запуск программы

Чтобы запустить программу, не делая ее исполняемой, перейдите в папку, в которой вы сохранили файл, и введите в командной строке:

python hello-world.py

Делаем файл исполняемым

Создание исполняемого файла программы Python позволяет запускать программу, не вводя python перед именем файла. Вы можете сделать файл исполняемым, введя это в командной строке:

chmod +x file-name.py

Теперь, чтобы запустить программу, вам нужно всего лишь ввести:

./file-name.py

Вот некоторые дополнительные ресурсы, которые помогут вам максимально использовать программирование на Python:

  • Complete list of Python libraries
  • Complete list of Python syntax
  • The Python Package Index (PyPi)
  • Installing Python packages on the Raspberry Pi

Надеюсь, вы нашли этот материал полезным. Если у вас есть какие-либо вопросы, не стесняйтесь оставлять сообщения в нашей группе ВКонтакте и делиться ею со своими близкими и друзьями.

Что такое колодка GPIO

GPIO — сокращение, означающая General-Purpose Input-Output, или общий интерфейс ввода/вывода. Он содержит цифровые входы и выходы для подключения датчиков, разнообразных контроллеров, дисплеев, реле и прочей электронной периферии. Внешне GPIO похож на «гребенку» из штырьков-пинов. В Raspberry Pi 3 его внешний вид таков (в верхней части платы):

Колодка GPIO Raspberry чем-то напоминает интерфейс подключения жестких дисков IDE.

Для правильной работы через GPIO необходимо знать конфигурацию пинов. В Raspberry Pi распиновка такова:

Разъемов питания 4. Прочие пины способны выступать в роли входа или выхода. Кроме того, некоторые из них многофункциональны и могут работать как интерфейс UART, I2C, SPI или ШИМ.

Рассмотрим более подробно устройство «гребенки».

Почему следует прочесть «Заводим Raspberry Pi»

В Сети существуют тысячи материалов по «Малине». Однако, прыгая с сайта на сайт, трудно сформировать представление о том, что собой представляет данное устройство и на что оно способно.

Практическое руководство по микрокомпьютеру Raspberry Pi способно же это сделать. После того, как человек полностью ознакомиться с данной книгой, он сможет понять, что собой представляет Распберри и как с ним работать.

Более того, имея её у себя, станет не обязательным обращение к документации в интернете – в руководстве присутствует большое количество материалов, которые учат использовать Raspberry.

Устройство GPIO

Число пинов на колодке GPIO Raspberry Pi 3 равняется 40. Они пронумерованы и делятся на три группы:

  • питающие (power на схемах);
  • заземляющие (GND, Ground);
  • порты (часто обозначаются как BCM).

Первые необходимы для подачи электричества разных напряжений — 3.3 и 5 В. Разница между ними была рассмотрена выше. Вторые обеспечивают безопасность работы платы, отводя электричество. А третьи выступают в качестве интерфейсов, принимая и отдавая данные. Именно к ним пользователь подключает свои модули и приборы.

Схема пинов Raspberry Pi 3 Model B:

На данной схеме pinout выводы пронумерованы по следующему принципу:

  • 1 — левый в первом верхнем ряду;
  • 2 — второй в верхнем ряду, и так далее.

Выходы 1 и 17 обеспечивают питание 3.3 В, 2 и 4 — для 5 В. «Земля» расположена на 9, 25 и 39, и на 6, 14, 20, 30, 34. Прочие контакты — интерфейсные порты.

Особенности GPIO «малинки»

При работе необходимо учитывать несколько важных моментов:

  • на обоих выводах 3.3 В суммарный ток равен 50 мА. Поэтому напрямую к ним можно подключать устройства с общим потреблением до 50 миллиампер;
  • 5-вольтовые выводы поддерживают в сумме до 500 мА, что позволяет подсоединять к ним более мощную периферию, включая устройства ввода (мышки, клавиатуры и так далее);
  • GPIO допускает подачу напряжения только до 3.3 В. Если превысить это значение, велик шанс сжечь вход или весь контроллер;
  • 14-15 пины по умолчанию работают как RXD и TXD UART-интерфейса и сразу после включения выдают напряжение в 3.3 В;
  • также по умолчанию почти все конфигурируемые выводы «малинки» являются входами с высоким сопротивлением. Исключение — GPIO0 и GPIO1 (SDA и SCL соответственно);
  • работая в режиме INPUT, пин автоматически переводит подаваемую на него информацию в цифровой вид. При этом отметим, что RPi3 исходно работает только с цифровым сигналом, а для обработки аналоговых используется специальный преобразователь ЦАП/АЦП.

Поэтому при правильном проектировании приспособлений с большим количеством используемых выводов GPIO схема должна предусматривать дополнительные меры безопасности. Желательно делать защитные развязки электронными ключами, через трансформаторы напряжений и различные буферы.

Как правило, RPi3 работает под управлением ОС семейства Linux (Raspbian или другой). Сразу после загрузки системы напряжение на пинах низкое и остается таковым до изменения запустившимся скриптом или программой. Но в промежуток от подачи электропитания до инициализации системных драйверов пины в произвольном порядке способны выдавать высокое напряжение. Это следует учитывать и изолировать по питанию входы-выходы в процессе запуска системы.

Особые порты

Внешние модули можно подсоединять к любым портам «гребенки» GPIO. Но есть два особенных, которые плата резервирует для специфических задач. На обычной схеме их номера — 27 и 28. Они предназначены для плат расширения, и желательно не использовать их без необходимости.

Нумерация

Выше рассматривались номера пинов

Но важно понимать, что заложенная в центральный процессор логическая нумерация отличается от приведенной на схеме физической. Ее особенности:

  • не исполняющие функций ввода-вывода «штырьки» номеров не имеют;
  • контакт 3 является портом, но имеет логический номер BCM2.

Этот принцип следует учитывать при создании кода, поскольку ПО ориентируется именно на логические номера. Их схема:

У новичков это может вызвать недоумение и путаницу. Для помощи в решении проблемы существует программная библиотека Wiring Pi с собственной альтернативной нумерацией. Так, логический GPIO2 в ней определен как WIringPI 8. Это может показаться непонятным, но после освоения библиотеки ее принцип нумерования становится привычным и удобным.

Приложения для работы в интернете

В Raspbian и во многих других дистрибутивах GNU/Linux веб-обозреватель поставляется «в коробке». Но если хочется на Raspberry Pi 3 иметь нестандартный браузер, его можно загрузить либо из репозитория, либо установить из пакета, скаченного с сайта официального сайта проекта.

Для загрузки торрентов можно использовать программу DELUGE. Её легко найти в репозитории любого дистрибутива.

Telegram для Raspberry Pi 3 в виде приложения отсутствует. Но, как и Skype, им можно пользоваться через браузер. Однако в некоторых странах с доступом к web-telegram могут быть проблемы из-за блокировок. Поэтому при их наличии прежде всего потребуется решить данную проблему.

Для Raspberry Pi 3 есть Java. Ее можно найти на сайте Oracle (в репозиториях может отсутствовать по причине проприетарности). Но перед загрузкой пакета необходимо выбрать не только операционную систему (Linux), но еще и тип процессора – ARM. В противном случае ничего работать не будет.

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

  • cd ПАПКА_КУДА_ЗАГРУЗИЛСЯ_АРХИВ;
  • sudo tar -xvf ПОЛНОЕ_НАЗВАНИЕ_ПАКЕТА.tar.gz -C / opt;
  • ввод пароля.

После того, как это все будет выполнено, останется указать путь к файлу и установить переменную JAVA_HOME. Для этого потребуется выполнить 4 команды:

  1. chmod a+w /etc/profile (суперпользователь);
  2. echo ‘export PATH=/opt/ejre1.7.0_45/bin:$PATH’ >> /etc/profile;
  3. echo ‘export JAVA_HOME=/opt/ejre1.7.0_45’ >> /etc/profile$;
  4. chmod a-w /etc/profile (суперпользователь).

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

Приложений для Raspberry Pi 3 существует множество тысяч. Среди них – почти все программы с открытым исходным кодом, так как их практически ничего не стоит перекомпилировать под ARM. Поэтому, чтобы узнать конкретно о том, какие есть приложения для «Малины», следует обратиться к списку OpenSource-проектов. Выбрав те, которые нужны или интересны, останется просто открыть менеджер пакетов или воспользоваться терминалом, чтобы загрузить их из репозитория. А если их там нет, то обратиться к сайту проекта или GitHub.

Raspberry Pi: первое знакомство. Урок 2. Интернет, программы из Pi Store и LibreOfficeRaspberry Pi: первое знакомство. Урок 2. Интернет, программы из Pi Store и LibreOffice

Включение I2C на Raspberry Pi.

Первым делом нам следует включить интерфейс I2C. Для этого воспользуемся утилитой для конфигурации Raspberry Pi – raspi-config. Вводим в терминале команду:

sudo raspi-config

Далее переходим в пункт Interfacing options и включаем I2C:

После этого необходимо перезапустить плату:

sudo reboot

Альтернативным способом включения I2C является редактирование файла /boot/config.txt. В файле находим и раскомментируем строку:

dtparam=i2c_arm=on 

После чего аналогичным образом перезапускаем плату. При следующем включении модуль I2C будет активирован. Оба этих способа можно использовать, подключившись к плате по SSH.

Разработка под RPI на Python

«Питон» идеально подходит для Raspberry: он достаточно прост в освоении, функционален обладает множеством возможностей. На Python разрабатываются как небольшие программы для собственного использования, так и крупные проекты международного уровня. Этот язык станет хорошим стартом для новичков в мире IT и отличным инструментом обучения кодингу, устройству и принципам работы компьютеров.

С чего начать

Для разработки на «Питоне» под Raspberry потребуется изучить некоторые базовые понятия. Программист обязательно должен освоить:

  • переменные;
  • циклы;
  • функции;
  • переходы;
  • табуляцию (как способ ограничения отдельных блоков кода).

Несмотря на кажущийся объем, изучение синтаксиса языка и базовых приемов работы с ним занимает несколько вечеров.

Так, например, взаимодействие с «Малинкой» через «Питон» хорошо описано в пособии для начинающих с названием Python programming with Raspberry Pi, которое на русский не переведено.

Инструменты разработки

Программирование на Python нуждается в соответствующем инструментарии. В случае с Python это интерпретатор, компилятор и среда разработки, поставляющиеся единым пакетом и доступные для загрузки с официального сайта. На нем присутствуют дистрибутивы под разные платформы.

Можно также воспользоваться адаптированным под «одноплатник» дистрибутивом Raspbian, где весь инструментарий предустановлен.

Помимо среды разработки, понадобятся некоторые специфические библиотеки, в частности, для взаимодействия с GPIO. В «официальном» дистрибутиве ОС все они присутствуют.

Пример простой программы

Итак, допустим, что у нас есть:

  • Raspberry PI;
  • провода;
  • резистор;
  • светодиод.

Лампочка подсоединена к пину 10 платы.

Следующая программа включает диод на 5 секунд, после чего выключает.

Написанную программу следует сохранить в файл с расширением .py, который далее выполняется на «малинке». По аналогичному принципу пишутся и другие программы.

Работа с I2C через консоль.

Для I2C, как и для других модулей платы, существуют разные варианты и методы использования. И начнем мы с применения команд непосредственно в консоли, в чем нам поможет пакет i2c-tools. Устанавливаем командой:

sudo apt-get install -y i2c-tools

После успешной установки мы можем использовать команду i2cdetect для просмотра доступных шин I2C:

i2cdetect -l

Результат выполнения в моем случае выглядит так:

Двигаемся дальше, следующая команда, которую мы рассмотрим:

sudo i2cdetect -y 1

Цифра 1 здесь как раз и относится к тому, что мы будем работать с шиной i2c-1. Кроме того, используем ключ -y. По умолчанию команда i2cdetect ожидает подтверждения от пользователя прежде, чем вмешиваться в работу шины, а ключом -y мы даем ей добро на работу с I2C без дополнительного разрешения.

Итак, вывод этой команды может быть таким:

Здесь мы видим все подключенные к I2C устройства и их адреса. Поскольку я подключил датчик MPU-9250, адрес которого – 0x68, то его мы тут и обнаружили:

Кроме того, пакет i2c-tools включает в себя ряд других команд для работы с шиной, в частности:

i2cdump – позволяет прочитать значения всех регистров подключенного к шине устройства. Например:

i2cdump -y 1 0x68

Здесь мы снова указываем номер шины (1), а также адрес устройства, регистры которого хотим проанализировать (0x68). Здесь выделено одно значение, а именно 0x71, соответствующее регистру с адресом 0x75. Из документации на датчик мы можем определить, что именно такое значение и должно быть у этого регистра.

i2cget – чтение значения конкретного регистра определенного устройства. Конечно, же рассмотрим пример:

i2cget -y 1 0x68 0x75

Считываем значение все того же регистра с адресом 0x75 и проверяем, верное ли значение выдает команда:

i2cset – запись определенного значения в регистр устройства. И снова не обходимся без примера:

i2cset -y 1 0x68 0x1A 0x03

Здесь мы последовательно указываем – номер шины, адрес устройства, адрес регистра и значение, которое будет записано в этот регистр. В данном случае записываем в регистр с адресом 0x1A значение 0x03.

На этом завершаем работу с I2C через консоль, мы рассмотрели все основные и необходимые операции и переходим к работе с I2C при помощи Python.

Подготовка к включению и первый запуск.

Для первого запуска Raspberry необходимо следующее:

  • микро SD-карта с установленной операционной системой (OC) Raspbian, рекомендуемой для этого устройства (оптимальная емкость карты – 8 Гб, класс скорости – 10);
  • монитор с HDMI входом;
  • сетевой блок питания с выходным напряжением 5 В и током не менее 2 А, с выходным разъемом micro-USB;
  • USB-мышь и USB-клавитура.

Образ операционной системы Raspbian, созданной на основе Linux Debian 8 Jessi, можно скачать в разделе Downloads сайта raspberrypi.org. Для начала можно воспользоваться образом RASPBIAN JESSIE LITE, как наиболее простым в изучении. Записать образ на SD-карту удобно из-под Windows с помощью программы Win32DiskImager. Способ установки и сама программа описаны на сайте Raspberry по адресу.

Вы также можете воспользоваться файлами, размещенными на нашем сайте в карточке Raspberry Pi 3 или напрямую скачать с Яндекс диска:

  • образ операционной системы;
  • программа Win32DiskImager.

Дальнейшее описание базируется именно на этом образе.

Мышь и клавиатура, подключенные к Raspberry без проблем распознаются системой. Можно также использовать беспроводную мышь и клавиатуру, например Bluetooth, но их надо настроить после запуска Raspberry, а для этого нужна хотя бы USB-мышь. У нас в хозяйстве не нашлось USB-клавиатуры, поэтому для первого запуска мы подключили USB-мышь, а также монитор и питание:

Кстати, на плате нет выключателя питания, она запускается сразу при подключении разъема, и начинается загрузка операционной системы. После загрузки на экране появляется рабочий стол с вполне привычными (но оригинальными) обоями и иконками:

На начальном экране имеются легко распознаваемые иконки Меню, интернет-браузера, менеджера Bluetooth, регулятора громкости, настройки сети и некоторые другие. Из них, пожалуй, самая нужная при настройке и работе – это черный экранчик в правой верхнем углу: терминал. С помощью терминала вводятся команды операционной системы. Поскольку далеко не все программы для Linux имеют графический интерфейс, их можно запустить и работать в них только посредством командной строки. Именно эту возможность и предоставляет терминал. Также все системные операции Linux, например установка и удаление программ осуществляются преимущественно через терминал. В OC используется программа LXTerminal, которая и запускается при щелчке правой кнопкой мыши по иконке. Следует заметить, что многие команды требуют ввода в начале строки приставку sudo (gksudo при запуске программ с графическим интерфейсом), что позволяет выполнить команду от лица администратора компьютера, то есть с наивысшими правами (sudo – Super User Do). Только администратор может устанавливать и удалять программы, а также менять параметры OC и ее конфигурацию.

После первой загрузки системы имеет смысл сразу подключиться к интернету, чтобы обновить файлы ОС до актуальной версии. В правом верхнем углу рабочего стола есть иконка с узнаваемым изображением двух терминалов. При подключении кабеля к разъему Ethernet на плате Raspberry происходит автоматическое подключение к локальной сети. Если щелкнуть мышью по этой иконке, появляется список беспроводных сетей, из которых можно выбрать свою и подключиться к ней, введя соответствующий ключ. При этом вместо терминалов на иконке появится стандартное изображение подключение к беспроводной сети. Именно такая ситуация показана на рисунке выше.

Надо сказать, что по сравнению с ранними версиями Linux многие задачи сейчас автоматизированы. Например, если ранее было необходимо из командной строки монтировать том при подключении обычной флешки, то сейчас флешка распознается при подключении в один из четырех разъемов USB на плате вполне самостоятельно и ей сразу можно пользоваться.

Теперь можно подключить, например, беспроводные мышь и клавиатуру по Bluetooth:

Это делается щелчком на иконке с логотипом Голубого Зуба рядом с индикатором подключение к сети в правом верхнем углу экрана. Далее надо нажать Add Device и выбрать ваши устройства из списка найденных беспроводных устройств.

Следует отметить, что при всем удобстве использовании Bluetooth устройств ввода с Raspberry – они не занимают разъемов USB – эти устройства в нашем случае периодически теряли связь с платой. Поэтому для стабильной работы, все же следует использовать USB-мышь и клавиатуру, а так же, в качестве альтернативного варианта, занимающего только один USB-разъем, комплект мыши и клавиатуры с одним приемопередатчиком по радиоканалу.

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

Планы на будущее

В этой статье был рассмотрен основной минимум знаний, который необходим для реализации умного
дома, дальше всё зависит от вас.

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

К тому же не всё заканчивается на протоколе X10. Думаю, в будущем появится много нового, и вы
теперь к нему готовы.

Я с радостью отвечу на любые вопросы по умному дому и по этой статье. Можно писать мне на личную
почту axgord@gmail.com.

Ещё я с радостью приму любые замечания и Pull Requests на github.com, относящиеся
к классу , пакету pony.net и вообще
ко всей библиотеке. Возможно, когда-нибудь появится
OpenSource — программный комплекс для подключения умных домов на любых протоколах и управления ими с
любых устройств.

Будущее всё ближе!

Telegram для Raspberry Pi

Благодаря свободному API мессенджера, появились проекты Raspberry Telegram, реализующие идею удалённого взаимодействия. Это весьма удобно, когда нужно управлять оборудованием через интернет, используя GPIO. Стоит отметить, что на Raspberry Pi проекты для начинающих чаще всего применяют этот интерфейс.

Чтобы это осуществить, потребуется:

  • Устанавливаем Telegram на устройство IOS, Android или Windows
  • Через поиск находим BotFather, нажимаем «Начать» (/start)
  • Выбираем /newbot (указываем имя бота и имя пользователя)
  • Когда бот будет создан, появится сообщение с токеном
  • Вводим команды для установки Teleport в Raspberry Pi для связи с Telegram:
  • sudo apt-get install python-pip
  • sudo pip install teleport
  • Создаём скрипт на Python, где обязательно указывается ТOKEN (примеры скриптов https://github.com/nickoala/telepot/tree/master/examples):
  • telegram_bot = telepot.Bot(TOKEN)

Запускаем скрипт, и проверяем его работу

Для проверки используем светодиоды, подключенные к GPIO с определёнными номерами и Pin. Через скрипт включаются и отключаются выбранные светодиоды по команде из Telegram.

Кроме того, полнофункциональное ПО Telegram запускается на Raspberry Pi второй (Model B) и третьей версии. Порядок установки и параметры поддержки доступны на официальном сайте команды Eltechs.

Конечная настройка умного дома

До финального запуска умного дома осталось совсем немного.

Начнём с Raspberry Pi.

Первое, что нужно сделать, это поставить nodejs, затем установить к нему модуль
serialport.

Теперь нужно скопировать скомпилированный Haxe js файл на Raspberry и рядом с ним
файл client.swf. После чего можно запустить js файл под суперпользователем, передав его
аргументом к nodejs, не забыв при этом указать COM порт. В GNU/Linux это выглядит немного
иначе, должно быть что-то вроде: /dev/ttyUSB0. Права суперпользователя нужны, чтобы
получить доступ к низкоуровневому порту 80.

В итоге всё команда выглядит примерно так:

sudo /NODEJSDIR/node /JSFILEDIR/server.js /dev/ttyUSB0

Если всё работает, нужно добавить эту команду к автозапуску, на случай потери питания у Raspberry Pi.

Теперь настроим роутер.

На нём лучше задать фиксированный адрес к Raspberry для удобного обращения через браузер.
Например, по такому адресу: http://192.168.1.2. А также в самом клиенте нужно указать в
коде сокета подключение к этому адресу:

new SocketClient(‘192.168.1.2’,8080)

Теперь прячем Raspberry в укромное место, подцепляем к нему USB-X10.

Затем подключаем пару лампочек через релейные модули, программируем их через долгое удерживание
кнопки и нажатием нужного элемента на клиенте.

Всё! Можно наслаждается работой управляемого освещения через терминалы вашего умного дома!

Итог: что понадобится для работы с GPIO

В завершении следует резюмировать все вышесказанное. Если вы хотите работать с GPIO, то вам потребуется следующее:

  • сама «Малина»;
  • установленная на ней Raspbian;
  • внешнее устройство, управление которым вас интересует;
  • умение работать с документацией.

Даже с нуля и без знания ЯП в GPIO Raspberry возможно более или менее освоиться за пару вечеров. Работать с интерфейсом «Малины» очень просто. Это связано с тем, что данный одноплатник создавался, в том числе с целью обучения людей взаимодействия с компьютерами на уровне железа. Конечно, ничего сложного без глубоких знаний сделать не получится. Но так происходит всегда в процессе обучения. Со временем, с приобретением знаний и опыта можно будет реализовывать все более и более интересные вещи.

Raspberry Pi 3: GPIO - введение не для начинающих – Часть 5.1Raspberry Pi 3: GPIO — введение не для начинающих – Часть 5.1
Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий