26 KiB
Raspberry Pi
Raspberry Pi — это одноплатный компьютер. Вы можете подключать датчики и исполнительные устройства, используя широкий спектр устройств и экосистем. В этих уроках используется аппаратная экосистема под названием Grove. Вы будете программировать Raspberry Pi и работать с датчиками Grove с помощью Python.
Настройка
Если вы используете Raspberry Pi в качестве оборудования для IoT, у вас есть два варианта: вы можете пройти все уроки и писать код непосредственно на Raspberry Pi, либо подключиться удаленно к "безголовому" Raspberry Pi и программировать его с вашего компьютера.
Перед началом работы вам также нужно подключить Grove Base Hat к вашему Raspberry Pi.
Задача — настройка
Установите Grove Base Hat на Raspberry Pi и настройте его.
-
Подключите Grove Base Hat к Raspberry Pi. Разъем на плате надевается на все GPIO-пины Raspberry Pi, полностью опускаясь вниз, чтобы плотно прилегать к основанию. Плата накрывает Raspberry Pi сверху.
-
Решите, как вы хотите программировать Raspberry Pi, и перейдите к соответствующему разделу ниже:
Работа напрямую на Raspberry Pi
Если вы хотите работать напрямую на Raspberry Pi, вы можете использовать настольную версию Raspberry Pi OS и установить все необходимые инструменты.
Задача — работа напрямую на Raspberry Pi
Настройте Raspberry Pi для разработки.
- Следуйте инструкциям в руководстве по настройке Raspberry Pi, чтобы настроить Raspberry Pi, подключить его к клавиатуре/мыши/монитору, подключить к сети Wi-Fi или Ethernet и обновить программное обеспечение.
Для программирования Raspberry Pi с использованием датчиков и исполнительных устройств Grove вам нужно установить редактор для написания кода устройств, а также различные библиотеки и инструменты для работы с оборудованием Grove.
-
После перезагрузки Raspberry Pi откройте терминал, нажав на значок Terminal на верхней панели меню или выбрав Menu -> Accessories -> Terminal.
-
Выполните следующую команду, чтобы убедиться, что операционная система и установленное программное обеспечение обновлены:
sudo apt update && sudo apt full-upgrade --yes
-
Выполните следующие команды, чтобы установить все необходимые библиотеки для оборудования Grove:
sudo apt install git python3-dev python3-pip --yes git clone https://github.com/Seeed-Studio/grove.py cd grove.py sudo pip3 install . sudo raspi-config nonint do_i2c 0
Сначала устанавливаются Git и Pip для установки Python-пакетов.
Одной из мощных возможностей Python является установка Pip-пакетов — это пакеты кода, написанные другими разработчиками и опубликованные в Интернете. Вы можете установить Pip-пакет на свой компьютер одной командой, а затем использовать его в своем коде.
Python-пакеты Seeed Grove необходимо устанавливать из исходного кода. Эти команды клонируют репозиторий с исходным кодом пакета, а затем устанавливают его локально.
💁 По умолчанию, при установке пакета он становится доступным на всем компьютере, что может привести к проблемам с версиями пакетов — например, одно приложение зависит от одной версии пакета, которая перестает работать после установки новой версии для другого приложения. Чтобы избежать этой проблемы, можно использовать виртуальное окружение Python, которое представляет собой копию Python в отдельной папке. Установленные через Pip пакеты будут доступны только в этой папке. Однако при работе с Raspberry Pi виртуальные окружения не используются. Скрипт установки Grove устанавливает Python-пакеты Grove глобально, поэтому для использования виртуального окружения нужно будет настроить его и вручную переустановить пакеты Grove внутри этого окружения. Проще использовать глобальные пакеты, особенно учитывая, что многие разработчики Raspberry Pi предпочитают заново прошивать SD-карту для каждого проекта.
Наконец, включается интерфейс I2C.
-
Перезагрузите Raspberry Pi, используя меню или выполнив следующую команду в терминале:
sudo reboot
-
После перезагрузки Raspberry Pi снова откройте терминал и выполните следующую команду для установки Visual Studio Code (VS Code) — это редактор, который вы будете использовать для написания кода устройств на Python.
sudo apt install code
После установки VS Code будет доступен из верхнего меню.
💁 Вы можете использовать любой IDE или редактор для Python, если у вас есть предпочтения, но инструкции в уроках будут основаны на использовании VS Code.
-
Установите Pylance. Это расширение для VS Code, которое предоставляет поддержку языка Python. Ознакомьтесь с документацией по расширению Pylance для инструкций по установке этого расширения в VS Code.
Удаленный доступ для программирования Raspberry Pi
Вместо того чтобы программировать напрямую на Raspberry Pi, вы можете использовать его в "безголовом" режиме, то есть без подключения клавиатуры/мыши/монитора, и настраивать и программировать его с вашего компьютера, используя Visual Studio Code.
Настройка операционной системы Raspberry Pi
Для удаленного программирования необходимо установить операционную систему Raspberry Pi OS на SD-карту.
Задача — настройка операционной системы Raspberry Pi
Настройте "безголовую" операционную систему Raspberry Pi OS.
-
Скачайте Raspberry Pi Imager с страницы программного обеспечения Raspberry Pi OS и установите его.
-
Вставьте SD-карту в ваш компьютер, используя адаптер, если это необходимо.
-
Запустите Raspberry Pi Imager.
-
В Raspberry Pi Imager нажмите кнопку CHOOSE OS, затем выберите Raspberry Pi OS (Other), а затем Raspberry Pi OS Lite (32-bit).
💁 Raspberry Pi OS Lite — это версия Raspberry Pi OS без графического интерфейса и инструментов на основе интерфейса. Они не нужны для "безголового" режима, что делает установку меньше и ускоряет загрузку.
-
Нажмите кнопку CHOOSE STORAGE, затем выберите вашу SD-карту.
-
Откройте Advanced Options, нажав
Ctrl+Shift+X
. Эти параметры позволяют предварительно настроить Raspberry Pi OS перед записью на SD-карту.-
Установите флажок Enable SSH и задайте пароль для пользователя
pi
. Этот пароль вы будете использовать для входа на Raspberry Pi позже. -
Если вы планируете подключаться к Raspberry Pi через Wi-Fi, установите флажок Configure WiFi и введите ваш SSID и пароль Wi-Fi, а также выберите вашу страну Wi-Fi. Если вы будете использовать Ethernet-кабель, это не требуется. Убедитесь, что сеть, к которой вы подключаетесь, совпадает с той, к которой подключен ваш компьютер.
-
Установите флажок Set locale settings и задайте вашу страну и часовой пояс.
-
Нажмите кнопку SAVE.
-
-
Нажмите кнопку WRITE, чтобы записать операционную систему на SD-карту. Если вы используете macOS, вам будет предложено ввести пароль, так как инструмент записи образов дисков требует привилегированного доступа.
Операционная система будет записана на SD-карту, и после завершения карта будет извлечена операционной системой, о чем вы будете уведомлены. Извлеките SD-карту из компьютера, вставьте ее в Raspberry Pi, включите питание Raspberry Pi и подождите около 2 минут, чтобы он полностью загрузился.
Подключение к Raspberry Pi
Следующим шагом является удаленный доступ к Raspberry Pi. Это можно сделать с помощью ssh
, который доступен на macOS, Linux и последних версиях Windows.
Задача — подключение к Raspberry Pi
Удаленно подключитесь к Raspberry Pi.
-
Откройте терминал или командную строку и введите следующую команду для подключения к Raspberry Pi:
ssh pi@raspberrypi.local
Если вы используете Windows старой версии, где
ssh
не установлен, вы можете использовать OpenSSH. Инструкции по установке можно найти в документации по установке OpenSSH. -
Это должно подключить вас к Raspberry Pi и запросить пароль.
Возможность находить компьютеры в вашей сети с помощью
<hostname>.local
— это относительно новая функция для Linux и Windows. Если вы используете Linux или Windows и получаете ошибки о том, что имя хоста не найдено, вам нужно будет установить дополнительное программное обеспечение для включения ZeroConf-сетей (также называемых Apple Bonjour):-
Если вы используете Linux, установите Avahi, выполнив следующую команду:
sudo apt-get install avahi-daemon
-
Если вы используете Windows, самый простой способ включить ZeroConf — установить Bonjour Print Services for Windows. Вы также можете установить iTunes для Windows, чтобы получить более новую версию утилиты (которая недоступна отдельно).
💁 Если вы не можете подключиться, используя
raspberrypi.local
, вы можете использовать IP-адрес вашего Raspberry Pi. Ознакомьтесь с документацией по IP-адресу Raspberry Pi для инструкций по различным способам получения IP-адреса. -
-
Введите пароль, который вы задали в Advanced Options Raspberry Pi Imager.
Настройка программного обеспечения на Raspberry Pi
После подключения к Raspberry Pi необходимо убедиться, что операционная система обновлена, и установить различные библиотеки и инструменты для работы с оборудованием Grove.
Задача — настройка программного обеспечения на Raspberry Pi
Настройте установленное программное обеспечение Raspberry Pi и установите библиотеки Grove.
-
Из вашей
ssh
-сессии выполните следующую команду для обновления и перезагрузки Raspberry Pi:sudo apt update && sudo apt full-upgrade --yes && sudo reboot
Raspberry Pi будет обновлен и перезагружен.
ssh
-сессия завершится, когда Raspberry Pi перезагрузится, поэтому подождите около 30 секунд, а затем подключитесь снова. -
Из вновь подключенной
ssh
-сессии выполните следующие команды для установки всех необходимых библиотек для оборудования Grove:sudo apt install git python3-dev python3-pip --yes git clone https://github.com/Seeed-Studio/grove.py cd grove.py sudo pip3 install . sudo raspi-config nonint do_i2c 0
Сначала устанавливаются Git и Pip для установки Python-пакетов.
Одной из мощных возможностей Python является установка Pip-пакетов — это пакеты кода, написанные другими разработчиками и опубликованные в Интернете. Вы можете установить Pip-пакет на свой компьютер одной командой, а затем использовать его в своем коде.
Python-пакеты Seeed Grove необходимо устанавливать из исходного кода. Эти команды клонируют репозиторий с исходным кодом пакета, а затем устанавливают его локально.
💁 По умолчанию, при установке пакета он становится доступным на всем компьютере, что может привести к проблемам с версиями пакетов — например, одно приложение зависит от одной версии пакета, которая перестает работать после установки новой версии для другого приложения. Чтобы избежать этой проблемы, можно использовать виртуальное окружение Python, которое представляет собой копию Python в отдельной папке. Установленные через Pip пакеты будут доступны только в этой папке. Однако при работе с Raspberry Pi виртуальные окружения не используются. Скрипт установки Grove устанавливает Python-пакеты Grove глобально, поэтому для использования виртуального окружения нужно будет настроить его и вручную переустановить пакеты Grove внутри этого окружения. Проще использовать глобальные пакеты, особенно учитывая, что многие разработчики Raspberry Pi предпочитают заново прошивать SD-карту для каждого проекта.
Наконец, включается интерфейс I2C.
-
Перезагрузите Raspberry Pi, выполнив следующую команду:
sudo reboot
ssh
-сессия завершится, когда Raspberry Pi перезагрузится. Повторное подключение не требуется.
Настройка VS Code для удаленного доступа
После настройки Raspberry Pi вы можете подключиться к нему с помощью Visual Studio Code (VS Code) с вашего компьютера. Это бесплатный текстовый редактор для разработчиков, который вы будете использовать для написания кода устройств на Python.
Задача — настройка VS Code для удаленного доступа
Установите необходимое программное обеспечение и подключитесь удаленно к Raspberry Pi.
-
Установите VS Code на ваш компьютер, следуя документации по VS Code.
-
Следуйте инструкциям в документации по удаленной разработке с использованием SSH в VS Code, чтобы установить необходимые компоненты.
-
Следуя тем же инструкциям, подключите VS Code к Raspberry Pi.
-
После подключения следуйте инструкциям по управлению расширениями, чтобы установить расширение Pylance удаленно на Raspberry Pi.
Hello world
Начинать изучение нового языка программирования или технологии традиционно с создания приложения "Hello World" — небольшого приложения, которое выводит текст вроде "Hello World"
, чтобы убедиться, что все инструменты настроены правильно.
Приложение Hello World для Pi поможет убедиться, что Python и Visual Studio Code установлены корректно.
Это приложение будет находиться в папке nightlight
, и в дальнейшем оно будет использоваться с другим кодом для создания приложения ночного света.
Задача - Hello World
Создайте приложение Hello World.
-
Запустите VS Code, либо непосредственно на Pi, либо на вашем компьютере, подключившись к Pi с помощью расширения Remote SSH.
-
Откройте терминал VS Code, выбрав Terminal -> New Terminal или нажав
CTRL+`
. Терминал откроется в домашней директории пользователяpi
. -
Выполните следующие команды, чтобы создать директорию для вашего кода и файл Python под названием
app.py
внутри этой директории:mkdir nightlight cd nightlight touch app.py
-
Откройте эту папку в VS Code, выбрав File -> Open... и выбрав папку nightlight, затем нажмите OK.
-
Откройте файл
app.py
в проводнике VS Code и добавьте следующий код:print('Hello World!')
Функция
print
выводит в консоль всё, что передано ей в качестве аргумента. -
В терминале VS Code выполните следующую команду, чтобы запустить ваше приложение на Python:
python app.py
💁 Возможно, вам потребуется явно указать
python3
, чтобы запустить этот код, если у вас установлены обе версии Python — Python 2 и Python 3 (последняя версия). Если Python 2 установлен, то вызовpython
будет использовать Python 2 вместо Python 3. По умолчанию, последние версии Raspberry Pi OS содержат только Python 3.В терминале появится следующий вывод:
pi@raspberrypi:~/nightlight $ python3 app.py Hello World!
💁 Вы можете найти этот код в папке code/pi.
😀 Ваше приложение "Hello World" успешно создано!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Несмотря на наши усилия обеспечить точность, автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.