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

Raspberry Pi — идеальный компьютер для обучения. В Linux Raspbian OS встроен 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 года:

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

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

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

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

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

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

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

Мы использовали именно эту функциональность в учебнике по кнопке Raspberry Pi

Это отличный способ познакомиться с различиями в библиотеках.

Пользователи библиотеки 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 — взять проект для начинающих, например, Musical Door Sensor

и перенести его в новую библиотеку.

Ссылка на основную публикацию
Adblock
detector