niedziela, 5 października 2014

HD44780 z Maliną bez kombinacji - poradnik cz. 2

Dżem dobry!

Dobrym prostym rozszerzeniem możliwości Maliny jest klasyczny wyświetlacz dwuwierszowy HD44780. Jest mnóstwo rozwiązań obsługi na necie, większość bazująca na ręcznie dolepianych komendach do programu. Ja tego nie lubię, wolę podłubać sobie tworząc nowy soft niż rozkminiać to co już rozkminione. Szperałem po necie i znalazłem najprostsze w implementacji rozwiązanie obsługi HD44780 w Pythonie. Dostępne na stronie https://pypi.python.org/pypi/RPLCD/0.3.0
Propsy dla autora, Malinowa społeczność w dużej mierze przypomina społeczność Arduino - dostajecie naprawdę dobrą wędkę i tylko Wasza rola w tym, by złowić nią jak najwięcej ryb :)
Jako że połączenie LCD na stykówce było średnio komfortowe, zrobiłem specjalny moduł z potencjometrem od kontrastu, wyprowadzeniami zasilania i pinów komunikacyjnych.

Tak to wygląda w praktyce.

Aby biblioteka zaczęła śmigać, trzeba wypowiedzieć 3 zaklęcia konsolowe w poniższej kolejności:

sudo apt-get install python-setuptools
sudo easy_install pip
sudo pip install RPLCD

Na tą intencję przygotowałem swój testowy skrypt do Pythona:
http://goo.gl/2HzDEc (forma pliku)
http://goo.gl/Wr4jJr (forma copy-paste) 



Złącze maliny w wersji B+
Skrypt wystarczająco skomentowałem, więc z interpretacją nie powinno być problemów :) Miałem rozkminę z jednym faktem, a mianowicie z trybami wyboru pinów GPIO. Dostępne są dwa:
GPIO.setmode(GPIO.BCM) - wybieramy pin po numerze GPIOxx
GPIO.setmode(GPIO.BOARD) -wybieramy pin po numerze na złączu od 1 do 40. Oczywiście te piny które są oznaczone jako GPIO :D

Świetną rozpiskę pinów i ściągawkę do poleceń w Pythonie znajdziecie w poniższym pdfie:
http://raspi.tv/download/RPi.GPIO-Cheat-Sheet.pdf
Polecam pobrać wydrukować, zawiesić gdzieś w widocznym miejscu, sporo ułatwia sprawę zanim nauczymy się na pamięć który pin jest który :)

Tymczasem zaczęły się studia, artykuły na blogu będą pojawiać się rzadziej. Niemniej postaram się zachować jakąś ciągłość, mam jeszcze pomysł co by się przydało opisać i postaram się go spełnić.

 Jakieś pytania, sugestie, groźby? :P

~Mesho