DiyПрограммирование

Почему GPIO Zero лучше, чем RPi.GPIO для проектов Raspberry Pi

Почему GPIO Zero лучше, чем RPi.GPIO для проектов Raspberry Pi

Raspberry Pi — идеальный компьютер для обучения. В ОС Raspbian на основе Linux встроен Python, что делает ее отличной первой системой для начинающих программистов. Его выводы ввода / вывода общего назначения (GPIO) позволяют начинающим производителям экспериментировать с электронными проектами.

Это особенно легко, когда вы используете библиотеки кода, которые управляют этими выводами, и популярная библиотека Python RPi.GPIO является отличным примером такой библиотеки. Но лучший ли это путь для начинающих? Присоединяйтесь к нам, как мы расследуем.

Что такое GPIO Zero?

Библиотека GPIO Zero — это библиотека Python для работы с выводами GPIO. Он был написан менеджером сообщества Raspberry Pi Беном Наттолом . Направленный на то, чтобы быть интуитивно понятным и «дружественным», он оптимизирует код Python для большинства обычных случаев использования Raspberry Pi.

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

Что не так с RPi.GPIO?

Ничего такого. Вообще ничего RPi.GPIO был выпущен в начале 2012 года разработчиком Беном Кростоном. Это надежная библиотека, позволяющая пользователям управлять выводами GPIO из кода. Он присутствует практически в каждом проекте мы уже рассмотрели.

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

Что хорошего в GPIO Zero?

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

Рассмотрим следующий пример настройки и включения светодиода:

Код для настройки и светодиод для вывода с использованием библиотеки RPi.GPIO

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

Библиотека RPi.GPIO импортирована, и объявлен вывод для светодиода. Тип расположения выводов (режимы BCM и BOARD описаны в нашем руководстве по GPIO. ), и этот вывод настраивается как выход. Затем штифт включен.

Этот подход имеет смысл, но способ GPIO Zero сделать это гораздо проще:

Настройка светодиода с помощью GPIO Zero

GPIO Zero имеет модуль для светодиодов, импортируемый при запуске. Это означает, что вы можете объявить номер пин- кода и вызвать метод led.on () .

Почему подход GPIO Zero лучше?

Есть несколько причин, почему этот метод работы является улучшением RPi.GPIO.

Во-первых, он отвечает требованию «легко читать, как можно меньше». Хотя операторы настройки RPi.GPIO достаточно просты для понимания, они не нужны. Светодиод всегда будет выходом, поэтому GPIO Zero устанавливает контакты за кулисами. Результат — всего три строки кода для настройки, а затем загорается светодиод.

Вы можете заметить, что в примере GPIO Zero нет настройки режима платы. Библиотека использует только нумерацию Broadcom (BCM) для выводов. Дизайнер библиотеки Бен Наттолл объясняет, почему в интервью RasPi.tv 2015 года:

«Нумерация платы может показаться более простой, но я бы сказал, что это заставляет новых пользователей думать, что все выводы имеют общее назначение, а это не так. Подключите светодиод к контакту 11, почему бы не подключить еще несколько к контактам 1, 2, 3 и 4? Скважина 1 3V3. 2 и 4 5В. Недостаточная осведомленность о назначении контактов может быть опасной ».

Говоря таким образом, имеет смысл использовать цифры BCM. Учитывая, что GPIO Zero будет стандартом в документации Raspberry Pi, стоит учиться!

Действительно ли GPIO Zero лучше?

Хотя это кажется более простым на первый взгляд, есть ли у новой библиотеки какие-либо проблемы? Как и с любой новой библиотекой кодирования, это вопрос мнения. С одной стороны, удаление установочного кода отлично подходит как для начинающих, так и для опытных программистов. Написание кода проще и быстрее.

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

Пример кода нулевой кнопки GPIO

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

Мы использовали эту точную функциональность в учебнике , это отличный способ ознакомиться с различиями в библиотеках.

Пользователи библиотеки RPi.GPIO заметят, что внутренние понижающие / понижающие резисторы Pi не заданы в коде. Это поднимает интересный вопрос. Обязательно ли для новичков знать резисторы с повышением / понижением? И снова у Бена Наттолла есть ответ на этот вопрос:

«Вы можете утверждать, что хорошо знать о подтягиваниях и спусках, и вы были бы правы, но почему я должен учить этому в первый день? […] Если вы хотите научить электронике более глубоко, есть много возможности для этого — но это не должно быть обязательным, если вы только начинаете ».

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

Является ли Python единственным вариантом?

Python — это язык, которым известен Pi, но это не единственный вариант. Если вы уже знакомы с программированием на языке Си, то Wiring Pi вам поможет.

Кроме того, если вы уже программируете на JavaScript, Node.js можно легко установить на Pi. Доступ к GPIO доступен через библиотеку rpi-gpio npm . Ruby on Rails также может быть установлен на Raspberry Pi, хотя Pi может быть не лучшим способом изучения Rails !

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

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

Начало работы с GPIO Zero Yourself

GPIO Zero является новейшей библиотекой, созданной для Pi, и для этого есть все основания. Для большинства пользователей это делает кодирование для выводов GPIO более простым для чтения и более быстрым.

Учитывая использование Raspberry Pi в образовании, все, что делает обучение более естественным, является хорошей вещью. Хотя RPi.GPIO до сих пор был идеальным, GPIO Zero берет хорошую идею и делает ее еще лучше.

Отличный способ начать работу с GPIO Zero — это взять проект для начинающих, например, « Музыкальный датчик двери». и перенесите его в новую библиотеку.

Похожие посты
Программирование

Что такое канал RSS? (И где его взять)

Программирование

7 причин, почему изображения не загружаются на ваш сайт

Программирование

Запустите агент SQL Server: настройте SQL Server 2012

Программирование

15 лучших бесплатных обоев дня Святого Патрика