Wstęp do projektu Raspberry LCD Menu

Główne założenia

Celem projektu jest utworzenie biblioteki dla Raspberry Pi, umożliwiającej szybkie tworzenie menu dla wyświetlaczy LCD 16×2 (Jeez, co te studia robią z człowiekiem… Standardowe rozpoczęcie każdych wniosków do laboratoriów :D). Podstawowe, planowane cechy biblioteki:

  • open source, hostowana na githubie (na licencji MIT)
  • obiektowość kodu
  • możliwość zaprogramowania:
    • przewijalnych* (zwykłe slajdy bez animacji) widoków statycznych
    • wielopoziomowych menu
    • selektorów jednej z zadeklarowanych opcji
    • selektorów wartości liczbowej z danego zakresu i z danym krokiem
  • obsługa nawigacji po menu za pomocą metod:
    • góra
    • dół
    • prawo
    • lewo
    • ok
    • cofnij
    • home*
  • metody informujące o stanie wyświetlacza (czy jest podłączony, zainicjalizowany…) umożliwiające łatwą integrację z innymi bibliotekami
  • dokumentacja kodu
  • przykład użycia
  • testowalność*

Cechy oznaczone gwiazdką uważam za opcjonalne i nie będę się na nich skupiał. Prawdę mówiąc, nawet nie wiem czy da się sensownie przetestować kod sterujący urządzeniem bez jego podłączania. Jak już wspominałem w poprzednim poście, z Pythonem mam w zasadzie pierwszy raz do czynienia, zatem pierwsze wersje kodu mogą odbiegać od ogólnie przyjętych standardów. Szczerze liczę na code review osób bardziej zaawansowanych i aktywny udział w ulepszaniu projektu.

plans vs reality

Komponenty użyte do realizacji

Jako platformę testową użyję następujących komponentów:

  • Raspberry Pi B+ – ~180zł (cena nowego, aktualnego Raspberry Pi, na przestrzeni lat się zasadniczo nie zmieniała)
  • wyświetlacz lcd hd44780 (16×2) – ~ 14zł
  • thumb joystick (a’la ten z kontrolerów do PS2) – ~10zł
  • konwerter A/C PCF7581 8-bitowy I2C – ~16zł
  • 3 przyciski smd – ~1,50zł

counting-money

Nie wymieniłem kabli i płytki stykowej lub lutownicy, gdyż uważam, iż sposób realizacji zależy od preferencji wykonawcy. Brak też kilku rezystorów (np. do strojenia kontrastu wyświetlacza), ponieważ każda biorąca się za elektronikę osoba ma ich pełno. W jednym z kolejnych artykułów przedstawię dokładne połączenie i instrukcje dotyczące obsługi LCD 16×2. Oczywiście, zamiast joysticka, który jest analogowy i potrzebuje konwertera A/C do interpretacji ruchu gałką, można zastosować dodatkowe przyciski. W ten sposób zaoszczędzimy ok 25zł. W moim przypadku jestem zmuszony użyć leciwe Raspberry Pi B+. Sprawuje się akceptowalnie i szkoda mi wydawać 200zł (180zł + przesyłka) na nowe, które będzie realizować dokładnie te same funkcje. Osobom decydującym się na zakup nowej malinki polecam oczywiście brać wersję najnowszą (na dzień dzisiejszy Raspberry Pi 3).

Dlaczego Raspberry Pi?

Za cenę 180zł dostajemy sensowny minikomputer, z którym możemy zrobić wszystko. Gdy znudzi nam się sterowanie elektroniką można go przerobić na router, dysk sieciowy, prywatny serwer VPS, moduł Smart TV czy cokolwiek innego, co nam przyjdzie do głowy. Ogranicza nas tylko wyobraźnia. Dodatkowo zabawa Raspberry to wspaniały sposób na podszkolenie swoich umiejętności w używaniu systemów Linux.

raspberry pi b+

Można wybrać tańsze, mniejsze lub większe alternatywy innych producentów, jednak kolejnym ważnym atutem Raspberry jest wsparcie gigantycznego community na różnych forach internetowych i Youtubie. Dla Raspberry przygotowano masę poradników, więc istnieje duża szansa, że znajdziesz tam przynajmniej część swojego planowanego projektu.