Почему 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 из кода. Он представлен в почти каждый начинающий проект мы покрыли.



код остановки Windows при неисправимой ошибке

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

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

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





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

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





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

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

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

Windows 7 против Windows 10 2018

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

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

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

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

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

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

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

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

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

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

Именно эту функциональность мы использовали в Руководство по кнопке Raspberry Pi , что является отличным способом познакомиться с различиями в библиотеках.

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

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

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

Python - единственный вариант?

Python - это язык, которым известен Pi, но это не единственный вариант. Если вы уже знакомы с программированием на языке C, то Подключение Pi ты прикрыл.

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

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

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

Начало работы с GPIO Zero самостоятельно

GPIO Zero - новейшая библиотека, которая произвела фурор для Pi и не без оснований. Для большинства пользователей это упрощает чтение и запись кода для контактов GPIO.

стоит ли покупать ps4 в 2020 году

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

Отличный способ начать работу с GPIO Zero - взять проект для начинающих, например, Musical Door Sensor, и перенести его в новую библиотеку.

Делиться Делиться Твитнуть Эл. адрес 5 советов, как зарядить ваши машины VirtualBox Linux

Устали от низкой производительности виртуальных машин? Вот что вам нужно сделать, чтобы повысить производительность VirtualBox.

Читать далее
Похожие темы
  • Сделай сам
  • Программирование
  • Raspberry Pi
  • Python
  • GPIO
Об авторе Ян Бакли(Опубликовано 216 статей)

Ян Бакли - независимый журналист, музыкант, исполнитель и видеопродюсер, живущий в Берлине, Германия. Когда он не пишет или на сцене, он возится с электроникой или кодом своими руками в надежде стать безумным ученым.

Ещё от Ian Buckley

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться