Защо GPIO Zero е по -добър от RPi.GPIO за проекти на Raspberry Pi

Защо GPIO Zero е по -добър от RPi.GPIO за проекти на Raspberry Pi

Raspberry Pi е перфектният компютър за учене. Базираната на Linux Raspbian OS има вграден Python, което я прави чудесна първа система за начинаещи програмисти. Неговите пинове за въвеждане/изход (GPIO) с общо предназначение улесняват начинаещите производители да експериментират с проекти за електроника „направи си сам“.





Особено лесно е, когато използвате кодови библиотеки, които контролират тези пинове, а популярната библиотека RPi.GPIO Python е отличен пример за такава библиотека. Но дали това е най -добрият път за начинаещи? Присъединете се към нас, докато разследваме.





Какво е 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.





Помислете за следния пример за настройка и включване на светодиод:

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





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

Този подход има смисъл, но начинът на GPIO Zero е много по -прост:

GPIO Zero има модул за светодиоди, импортиран в началото. Това означава, че можете да декларирате пин номера и да се обадите на led.on () метод.

как да стартирате двойно Windows 10 и Linux

Защо подходът на GPIO Zero е по -добър?

Има някои причини, поради които този метод на работа е подобрение на RPi.GPIO.

Първо, той отговаря на изискването „лесен за четене, възможно най -кратък“. Въпреки че инструкциите за настройка на RPi.GPIO са достатъчно лесни за разбиране, те не са необходими. Светодиодът винаги ще бъде изход, така че GPIO Zero настройва щифтовете зад кулисите. Резултатът е само три реда код за настройка, след което запалете светодиод.

Може да забележите, че в примера GPIO Zero няма настройка на режим на платка. Библиотеката използва само Broadcom (BCM) номериране за щифтовете. Библиотечният дизайнер Бен Нътъл обяснява защо през 2015 г. Интервю за RasPi.tv :

„Номерирането на борда може да изглежда по-просто, но бих казал, че кара новите потребители да мислят, че всички пинове са с общо предназначение-а те не са. Свържете светодиод към щифт 11, защо не свържете още малко към щифтове 1, 2, 3 и 4? Кладенец 1 е 3V3. 2 и 4 са 5V. Липсата на информираност за целта на щифтовете може да бъде опасна. “

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

GPIO Zero всъщност по -добър ли е?

Въпреки че на пръв поглед изглежда по -ясна, новата библиотека има ли проблеми? Както при всяка нова библиотека за кодиране, това е въпрос на мнение. От една страна, премахването на кода за настройка е отлично както за начинаещи, така и за опитни програмисти. Писането на код е по -лесно и по -бързо.

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

The бутон модул опростява настройката на бутоните. Той знае, че бутоните са входове, затова използва декларирания пинов номер за настройка. Проверката за натискане на бутон също е по -лесна с .is_pressed за откриване на натискане на бутони.

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

Потребителите на библиотеката RPi.GPIO ще забележат, че вътрешните резистори за издърпване/изтегляне на Pi не са настроени в код. Това повдига интересен въпрос. Важно ли е за начинаещите да знаят за издърпващи/надолу резистори? Отново Бен Нътъл има отговор на този въпрос:

„Може да спорите, че е добре да знаете за издърпвания и падения, и бихте били прави --- но защо трябва да преподавам това на първия ден? [...] Ако искате да преподавате електроника в по-дълбоко има много възможности за това --- но не би трябвало да е задължително, ако тепърва започвате. “

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

Python е единственият вариант?

Python е езикът, с който Pi е известен, но това не е единственият вариант. Ако вече сте запознати с програмирането на език C, тогава Окабеляване на Pi покрихте ли се

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

Всички тези алтернативи, заедно с многоезични библиотеки като отличните евтини може да направи избора на библиотека объркващ. Тук GPIO Zero се отличава: за начинаещи, които се чудят как и откъде да започнат.

Ако сте в момент, в който имате нужда от нещо, което не предоставя, ще бъдете повече от готови да се потопите в тези други библиотеки със свое собствено темпо.

Първи стъпки с GPIO Zero

GPIO Zero е най -новата библиотека, която направи впечатление за Pi и с основателна причина. За повечето потребители това прави кодирането за GPIO щифтове по -лесно за четене и по -бързо за писане.

как да архивирате gmail по дата

Като се има предвид използването на Raspberry Pi в образованието, всичко, което прави ученето по -естествено, е добро нещо. Докато RPi.GPIO е бил перфектен досега, GPIO Zero взема добра идея и я прави още по -добра.

Чудесен начин да започнете с GPIO Zero е да вземете начинаещ проект като сензора за музикални врати и да го пренесете в новата библиотека.

Дял Дял Туит електронна поща 5 съвета за зареждане на вашите VirtualBox Linux машини

Уморени ли сте от лошото представяне на виртуалните машини? Ето какво трябва да направите, за да увеличите производителността на VirtualBox.

Прочетете Напред
Свързани теми
  • Направи си сам
  • Програмиране
  • Малина Пи
  • Python
  • GPIO
За автора Иън Бъкли(216 статии са публикувани)

Иън Бъкли е журналист на свободна практика, музикант, изпълнител и видео продуцент, живеещ в Берлин, Германия. Когато не пише или е на сцената, той се занимава с „направи си сам“ електроника или код с надеждата да стане луд учен.

Още от Иън Бъкли

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате