Praktyczny kurs GIT dla zielonych cz. 1 – instalacja i podstawy działania

W artykule znajdziemy opis i wprowadzenie do systemu GIT. W części pierwszej omówię powody i zalety stosowania Git’a, instalację na kilku wybranych, popularnych systemach operacyjnych, oraz podstawowe pojęcia związane z użytkowaniem. Kurs kierowany będzie do osób początkujących w dziedzinie programowania i/lub administrowania systemami.

Czytaj więcej

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.

Co się tu wyprawia?

Hello World!

Cześć, po nazwie bloga można domyślić się, iż mam na imię Łukasz i z zamiłowania, oraz hobbystycznie zajmuje się programowaniem. Na co dzień studiuję, jestem na trzecim roku elektroniki i telekomunikacji w Warszawie. Ponadto pracuje jako web developer, teoretycznie specjalizujący się w e-commerce. W sumie zawsze chciałem poblogować, ale jakoś nigdy mi nie było mi po drodze. Jakiś tydzień temu usłyszałem od kolegi w pracy o konkursie, o wdzięcznej nazwie „Daj się poznać”. Zaciekawił mnie, gdyż chciałbym nauczyć się języka Python, a wcześniej jakoś nie było okazji.
Jedyny sposób nauki, jaki uznaję w tej dziedzinie, to zgłębianie wiedzy poprzez realizacje postanowionych celów. Postanowiłem zatem napisać bibliotekę, którą udostępniłbym potem open-source’owo do publicznego użytku i oceny. Mam nadzieję że prowadzenie bloga będzie dodatkową mobilizacją do prowadzenia regularnej pracy 🙂

Co to będzie za projekt?

Jako, że uwielbiam robić sobie pod górkę i mimo studiowania elektroniki nie znam się na niej zupełnie, padło na bibliotekę w języku Python dla Raspberry Pi. W założeniach ułatwi ona znacząco prezentowanie danych i tworzenie menu dla wyświetlaczy LCD 16×2. Początki pracy będą wyglądać mniej więcej tak:

Dokładny opis techniczny będzie umieszczony w kolejnym poście. Muszę jeszcze dokładnie przemyśleć niektóre aspekty, ażeby po tygodniu prac, nie przepisywać wszystkiego od nowa. Pisanie biblioteki do czegoś o czym się nie ma zielonego pojęcia, w języku w którym stawia się pierwsze kroczki, jest z dużą dozą prawdopodobieństwa skazane na grubą refaktoryzację.

O czym będę tutaj pisał?

W głównej mierze będę skupiał się na poradach dla osób początkujących i średnio zaawansowanych w tworzeniu oprogramowania. Być może znajdą się tu także jakieś ciekawostki lub przemyślenia, nasunięte wydarzeniami na świecie. Z pewnością znajdzie się miejsce dla postów o Linuxie z perspektywy zarówno programisty, jak i dość świeżo upieczonego użytkownika (na ten moment niecałe 2 lata), poradach o wyborze narzędzi, oraz konfiguracji własnego środowiska do programowania, czy oczywiście raportach z postępów nad biblioteką.

Czy po konkursie będę kontynuował blogging?

Nie wiem czy wytrwam nawet do końca konkursu 🙂 W głównej mierze zależy to pewnie od poczytności i ogólnego feedbacku. Być może czekają mnie 2 miesiące pisania postów dla samego siebie. Mam jednak nadzieję, że po zatroszczeniu się w wolnym czasie o SEO, nie będzie aż tak źle. Trzymajcie kciuki!