Reklama

Raspberry Pi to idealny komputer do nauki. Oparty na Linuksie system operacyjny Raspbian ma wbudowany Python, co czyni go świetnym pierwszym systemem dla początkujących programistów. Jego styki wejścia / wyjścia ogólnego przeznaczenia (GPIO) ułatwiają początkującym twórcom eksperymentowanie z projektami elektroniki budowlanej.

Jest to szczególnie łatwe, gdy korzystasz z bibliotek kodów sterujących tymi pinami i popularnych RPi. Biblioteka GPIO Python jest doskonałym przykładem takiej biblioteki. Ale czy to najlepsza ścieżka dla początkujących? Dołącz do nas w trakcie dochodzenia.

Co to jest GPIO Zero?

Biblioteka GPIO Zero to biblioteka Pythona do pracy z pinami GPIO. To było napisane przez Menedżer społeczności Raspberry Pi Ben Nuttall. Dążąc do intuicyjności i „przyjazności”, usprawnia kod Pythona w większości zwykłych przypadków użycia Raspberry Pi.

Łącząc proste praktyki nazewnictwa i funkcje opisowe, GPIO Zero jest łatwiej dostępny dla początkujących. Nawet doświadczeni użytkownicy RPi. Biblioteka GPIO może to preferować - i aby zrozumieć, dlaczego, rzućmy okiem na to, jak RPi. GPIO porównuje się do GPIO Zero.

instagram viewer

Co jest nie tak z RPi. GPIO?

Nic. W ogóle nic. RPi. GPIO został wydany na początku 2012 roku przez programistę Ben Croston. Jest to solidna biblioteka pozwalająca użytkownikom kontrolować piny GPIO z kodu. Jest wyposażony w prawie każdy projekt dla początkujących 11 najlepszych projektów Raspberry Pi dla początkującychTe projekty Raspberry Pi dla początkujących są świetne na rozpoczęcie pracy z możliwościami dowolnego modelu Raspberry Pi. Czytaj więcej omówiliśmy.

Pomimo szerokiego zastosowania, RPi. GPIO nigdy nie zostało zaprojektowane dla użytkowników końcowych. Jest to świadectwo RPi. Dobry projekt GPIO, z którego korzysta tak wielu początkujących.

Co jest takiego dobrego w GPIO Zero?

Kiedy jesteś nauka kodu Python, dowiadujesz się, że powinien być łatwy do odczytania i jak najkrótszy. GPIO Zero ma na celu objęcie obu punktów. Zbudowany na bazie RPi. GPIO jako front-endowe opakowanie językowe upraszcza konfigurację i użytkowanie GPIO.

Rozważ następujący przykład, konfigurowanie i włączanie diody LED:

Kod do skonfigurowania i LED do wyjścia za pomocą RPi. Biblioteka GPIO

Powyższy kod powinien być znajomy dla każdego, kto ma użyli swojego Pi do sterowania diodami LED.

RPi. Biblioteka GPIO jest importowana i deklarowany jest pin dla diody LED. Typ układu pinów jest ustawiony (tryb BCM i BOARD to wyjaśnione w naszym przewodniku GPIO Wszystko, co musisz wiedzieć o pinach GPIO Raspberry PiRaspberry Pi to fantastyczny mały komputer, ale co dokładnie robią piny GPIO (wejście / wyjście ogólnego przeznaczenia)? Krótko mówiąc, otwierają cały świat majsterkowania elektronicznego i wynalazków. Czytaj więcej ), a pin jest skonfigurowany jako wyjście. Następnie pin jest włączony.

Takie podejście ma sens, ale sposób na zrobienie tego w GPIO Zero jest znacznie prostszy:

Konfigurowanie diody LED za pomocą GPIO Zero

GPIO Zero ma moduł dla diod LED, importowany na początku. Oznacza to, że możesz zadeklarować numer PIN i zadzwonić pod numer led.on () metoda.

Dlaczego podejście GPIO Zero jest lepsze?

Istnieje kilka powodów, dla których ta metoda pracy stanowi ulepszenie RPi. GPIO.

Po pierwsze, spełnia wymóg „łatwy do odczytania, możliwie najkrótszy”. Podczas gdy RPi. Instrukcje konfiguracji GPIO są wystarczająco łatwe do zrozumienia, nie są konieczne. Dioda LED zawsze będzie wyjściem, więc GPIO Zero ustawia piny za sceną. Rezultatem są tylko trzy linie kodu do skonfigurowania, a następnie zaświecenie diody LED.

Możesz zauważyć, że w przykładzie GPIO Zero nie ma skonfigurowanego trybu tablicy. Biblioteka używa tylko numeracji Broadcom (BCM) dla pinów. Projektant biblioteki Ben Nuttall wyjaśnia dlaczego w 2015 roku Wywiad z RasPi.tv:

„Numeracja BOARD może wydawać się prostsza, ale powiedziałbym, że prowadzi nowych użytkowników do myślenia, że ​​wszystkie piny są ogólnego przeznaczenia - a nie są. Podłącz diodę LED do styku 11, dlaczego nie podłączyć więcej do styków 1, 2, 3 i 4? Cóż 1 to 3V3. 2 i 4 to 5 V. Brak świadomości, jaki jest cel pinów, może być niebezpieczny. ”

Mówiąc w ten sposób, absolutnie sensowne jest używanie liczb BCM. Biorąc pod uwagę, że GPIO Zero będzie standardem w dokumentacji Raspberry Pi w przyszłości, warto się nauczyć!

Czy GPIO Zero jest rzeczywiście lepszy?

Choć na pozór wydaje się to prostsze, czy nowa biblioteka ma jakieś problemy? Podobnie jak w przypadku każdej nowej biblioteki kodowania, jest to kwestia opinii. Z jednej strony usunięcie kodu instalacyjnego jest doskonałe zarówno dla początkujących, jak i doświadczonych programistów. Pisanie kodu jest prostsze i szybsze.

Z drugiej strony wiedza na temat tego, co się dzieje, jest ważna dla nauki. Weź przykład konfiguracji przycisku z Dokumentacja GPIO Zero:

Przykładowy kod GPIO Zero Button

The przycisk moduł upraszcza konfigurację przycisków. Wie, że przyciski są wejściami, więc używa zadeklarowanego numeru pinu do konfiguracji. Sprawdzanie naciśnięcia przycisku jest również łatwiejsze dzięki .is_pressed do wykrywania naciśnięć przycisków.

Wykorzystaliśmy tę dokładną funkcjonalność w Samouczek przycisku Raspberry Pi 2 sposoby dodania przycisku do projektu Raspberry PiJak podłączyć przycisk do Raspberry Pi? Oto dwa sposoby rozpoczęcia pracy, przedstawione za pomocą Pythona i diody LED. Czytaj więcej , co jest doskonałym sposobem na zapoznanie się z różnicami w bibliotekach.

Użytkownicy RPi. Biblioteka GPIO zauważy, że wewnętrzne oporniki podciągające / podciągające Pi nie są ustawione w kodzie. Rodzi to interesujące pytanie. Czy początkujący powinni wiedzieć o opornikach podciągających / opadających? Ponownie Ben Nuttall ma odpowiedź na to pytanie:

„Możesz argumentować, że dobrze jest wiedzieć o podciąganiu i zwijaniu, i miałbyś rację - ale dlaczego muszę tego uczyć pierwszego dnia? […] chcesz uczyć elektroniki bardziej szczegółowo, jest na to duży zakres - ale nie powinno to być obowiązkowe, jeśli tylko dostajesz Rozpoczęty."

Ogólnie rzecz biorąc, proste podejście GPIO Zero jest prawdopodobnie dobrą rzeczą zarówno dla początkujących, jak i weteranów. Poza tym RPi. GPIO nigdzie się nie wybiera. Zawsze będzie tam, aby w razie potrzeby wrócić do.

Czy Python jest jedyną opcją?

Python jest językiem znanym z Pi, ale nie jest to jedyna opcja. Jeśli znasz już programowanie w języku C, to Wiring Pi obejmuje cię

Alternatywnie, jeśli już programujesz w JavaScript, Node.js można łatwo zainstalować na Pi. Dostęp GPIO jest dostępny poprzez biblioteka rpi-gpio npm. Ruby on Rails można również zainstalować na Raspberry Pi, choć Pi może nie być najlepszy sposób na naukę Railsów!

Wszystkie te alternatywy, a także biblioteki wielojęzyczne, takie jak doskonałe Pigpio może sprawić, że wybór biblioteki będzie mylący. Tutaj wyróżnia się GPIO Zero: dla początkujących zastanawiających się, jak i od czego zacząć.

Jeśli jesteś w miejscu, w którym potrzebujesz czegoś, czego nie zapewnia, będziesz bardziej niż gotowy do nurkowania w tych innych bibliotekach we własnym tempie.

Pierwsze kroki w GPIO Zero Yourself

GPIO Zero to najnowsza biblioteka, która robi plusk dla Pi i nie bez powodu. Dla większości użytkowników kodowanie pinów GPIO jest łatwiejsze do odczytania i szybsze.

Biorąc pod uwagę wykorzystanie Raspberry Pi w edukacji, wszystko, co czyni naukę bardziej naturalnym, jest dobrą rzeczą. Podczas gdy RPi. Do tej pory GPIO było idealne, GPIO Zero ma dobry pomysł i czyni go jeszcze lepszym.

Świetnym sposobem na rozpoczęcie pracy z GPIO Zero jest podjęcie projektu dla początkujących, takiego jak Muzyczny czujnik drzwi Zagraj we własną melodię motywu, gdy wejdziesz do pokoju z Raspberry PiCzy kiedykolwiek chciałeś przyjechać do domu na osobiste powitanie? W tym prostym projekcie Raspberry Pi użyjemy przełącznika kontaktronowego, aby uruchomić melodię po otwarciu drzwi. Czytaj więcej i przenieś go do nowej biblioteki.

Ian Buckley jest niezależnym dziennikarzem, muzykiem, performerem i producentem wideo mieszkającym w Berlinie w Niemczech. Kiedy nie pisze ani nie występuje na scenie, majstruje przy elektronice lub kodzie DIY, mając nadzieję, że zostanie szalonym naukowcem.