neděle 8. února 2015

Printscreen na Raspberry Pi



Občas je potřeba uložit obsah obrazovky z Maliny, například pro obrázek na blog...

Pěkně pracuje program SCReenshOT neboli Scrot .

Instalace je snadná:

sudo apt-get install scrot

a použití ještě snažší:

scrot

udělá fotku obrzaovky a uloží ji s aktuálním časem a datem do home adresáře. 

Pokud příkaz modifikujete:

scrot -d 5 obrazek.png

pak udělá screen shot za 5 vteřin a uloží ho pod definovaným názvem. Paráda...

OLED display s SSD1306 a Raspberry Pi



Máme-li na Raspberry Pi zprovozněnu I2C sběrnici, můžeme se pustit do připojení OLED displeje a něco pěkného si zobrazit.

Displej si připojíme k Malině následovně:

VCC na pin 1 (3V3)
SDA na pin 3 (GPIO02)
SCL na pin 5 (GPIO03)
GND na pin 9 (GND)



Sluchátka, flash disk a bluetooth dongle nejsou potřeba


Pěkné příklady použití nabízí Lada Ovocná a tak je využijeme.

sudo apt-get update
sudo apt-get install build-essential python-dev python-pip


sudo pip install RPi.GPIO

přidáme pěknou knihovnu pro práci s obrázky Python Imaging Library

sudo apt-get install python-imaging python-smbus

a od Lady z GitHubu přidáme příklady a ovladače:

sudo apt-get install git
git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
cd Adafruit_Python_SSD1306
sudo python setup.py install


Příklady se nám nainstalují do Home složky a když do ní vejdeme, najdeme složku Examples, kde si otevřeme ukázkový shapes.py (nejlépe opět editorem nano)

sudo nano shapes.py

a vybereme správný display, který používáme. Takže odkomentujeme řádek a uložíme

disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

a pak si jako root pustíme upravený příklad.

sudo python shapes.py


Videoukázka zde:






I2C na Raspberry Pi



Sběrnici I2C známe a připojit skrze ni snímače a zobrazovače je super.

Pro zprovoznění této sběrnice na Malině je třeba udělat pár věcí.


1) Nejprve si nainstalujeme potřebné nástroje:

sudo apt-get install python-smbus
sudo apt-get install i2c-tools



2) Poté si I2C povolíme v configu:


sudo raspi-config

a v Advanced option si najdeme I2C, kterou povolíme.


3) Aby nám I2C dobře fungovala, je vhodné přidat dva řádky do modules ve složce etc, nejlépe v editoru nano:

sudo nano /etc/modules

přidáme řádky:

i2c-bcm2708
i2c-dev


4) V souboru raspi-blacklist.conf příkazem:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

zakomentujeme řádky přidáním # před každý příkaz

5) V souboru config.txt příkazem

sudo nano /boot/config.txt

přidáme dva řádky:

dtparam=i2c1=on
dtparam=i2c_arm=on



a restartujeme např. příkazem sudo shutdown -r now

Po restartu je vhodné vyzkoušet, zda je I2C funkční a zařízení je připojeno. To uděláme příkazem:


sudo i2cdetect -y 1

který nám vypíš připojená zařízení.






OLED display s SSD1306 a Arduino



Že OLED znamená Organická lehce emitující dioda, jistě víte. Podrobnosti o této technologii lze najít na Wikipedii

Zakoupil jsem na Ebay tento malý 0.96" OLED display pro odzkoušení za cenu cca 100 kč. 
Součástí je populární řadič SSD1306, a tak lze display snadno ovládat pomocí I2C. Display díky OLED technologii nepotřebuje podsvícení, což snižuje spotřebu na 0.08 W. 
A k čemu je tento display dobrý? Právě díky své velikosti je vhodný do malých zařízení, kde je potřeba zobrazit více informací a použití několika LED diod by bylo nesrozumitelné.
Je vhodný pro zobrazení krátkých textů a jednoduché grafiky.



Parametry jsou následující:

- rozlišení 128 x 64 pixelů
- pozorovací úhel 160 °
- spotřeba 0.08 W
- napájení 3 až 5 V
- pracovní teplota -30 až 70 °C
- rozměry 27 x 27 x 4 mm

Pro vyzkoušení displeje jsem si vzal jedno Walduino a použil knihovnu pro SSD1306 od Lady Ovocné a GFX knihovnu také od Lady.

HW propojení je na následujícím obrázku. K Walduinu jsem připojil display k pinům (SDA-A4, SCL-A5, GND-GND, VCC-5V).  



Vše funguje bez problémů a dle očekávání. Jen bych upozornil, že má display na zadní straně propojku, kterou lze měnit adresu a případně je potřeba upravit adresu v programu na 0x3C.


V minulosti jsem měl v rukou OLED display od firmy
Vitek VL128644, který obsahuje řadič SSD1303. Ovládání bylo obdobné a stačilo si upravit knihovnu od Lady pro tento řadič.

Dále bych doporučil k vyzkoušení knihovnu U8GLIB, pěkně se mi s ní pracovalo.

Na závěr videoukázka: