Raspberry Pi2 i nowe media center

Jeśli ostatni tydzień spędziłeś pod kamieniem to pewnie nie wiesz, że na świat przyszła nowa wersja malinki, raspberry pi 2. Mamy teraz do dyspozycji 1GB ramu oraz 4 rdzenie. Spora różnica w porównaniu do poprzedniej wersji. Rozmiar jak i cena bez zmian. Jeśli dowiedziałeś się o tym czytając tego bloga to na prawdę musisz mieszkać w jaskini bo o tym wydarzeniu napisali już wszyscy – może poza pudelkiem i mną do teraz.

IMG_20150203_185617

Wszyscy pisali bo i jest o czym pisać, Microsoft ogłosił, że będzie wspierał raspberry Pi 2 swoim Windowsem 10, czekam na to bo może być wesoło. Ciekawe jak będzie działał na tym .net bo do tej pory uruchamiałem na malinie mono i nie miałem większych problemów z tym.

Media Center

Pierwsza malina, która zawitała do mnie do domu pracowała jako media center czyli RaspBMC + dysk zewnętrzny. Spokojnie hostowała sobie zdjęcia, filmy, trochę muzyki, radia internetowe, youtuby i takie tam inne. Ot smart tv w domowym wykonaniu. Demonem prędkości nigdy nie była ale też nie można było bardzo na nią narzekać. Nowe Raspberry Pi 2 na piewszy ogień ma zamienić stary model B (bez plusa) i dać kopa. Tylko, że Raspbmc nie działa z Pi2, na stronie jest oficjalna informacja, że nie ma już wsparcia. Projekt raspbmc jest niejako martwy bo Sam Nazarko (autor) skupia się na nowej platformie OSMC i to działa już na Pi2 i działa super szybko.

OSMC to na razie alpha. więc i choroby wieku dziecięcego się pojawiły. Pierwsza to brak sieci. Przez interfejs użytkownika nie działało u mnie ustawianie sieci – a chcę mieć statyczne ip na tym. Aby to obejść wystarczy wyłączyć ui – opcja wyłącz (bez restartu) i za pomocą esc możemy dostać się do konsoli tam już logowanie (nowe defaultowe hasło daje wam osmc i user osmc) i można brać się za konfigurację.

vi… nie działą, vim też nie, ale działą nano

niestety /etc/network/interfaces też nie działa bo osmc używa jakiegoś innego lepszego sposobu używania sieci, google mówi, że:

sudo nano /var/lib/connman/ethernet.config

i wpisujemy

[service_ethernet]
Type = ethernet
IPv4 = 192.168.1.100/255.255.255.0/192.168.1.1
Nameservers = 192.168.1.1

Czyli generalnie konfiguracja, w postaci

IPv4 = ip malinki/maska/gateway
Nameservers = dns

Restart i śmiga wszystko jak złoto. Jest internet, jest ssh, można szaleć.

I jeszcze jedna uwaga, Pi2 u mnie zaczął wyświetlać kolorowy tęczowy kwadrat na ekranie, czyli brakowało mu mocy z zasilacza. Działa stabilnie ale marudzi, że słabo. Ładowarka od Nexus-a 4 to dla niej za mało dlatego wymieniłem na ładowarkę z iPhone-a i już nie marudzi.

Na ratunek Raspberry Pi

O Raspberry Pi dawno nie pisałem, projekt termometrów wisi w martwym punkcie – kable po chałupie trzeba poprzeciągać. Klejem na gorąco przymocować gdzie trza i wrócić do pisania softu. Tymczasem gdzieś po drodze w trakcie eksperymentów ucierpiał slot na kartę SD. Już szukałem gdzie można przelugować takie gniazdo gdy internet przyniósł natchnienie. Wystarczy ułamany plastik wyrównać, oskrobać i kropelką czy innym takim wynalazkiem przykleić kawałek np. karty kredytowej czy innej tego typu. U mnie padło na kartę do zbierania punktów na stacjach Shell. Kiedyś tankowałem u nich więcej, teraz nie mam po drodze więc karta leżała odłogiem – aż się okazało, że może przysłużyć się ludzkości.

raspberrypi

Po operacji Malinka działa miodzio malina.

 

Odczytywanie temperatury za pomocą LM75A i Raspberry Pi

Ostatnio opisywałem czujnik LM75A, który jest banalny do podłączenia do Raspberry Pi i który jest banalny do odczytu za pomocą prostego skryptu w pythonie. Dzisiaj wgryziemy się w kod:

Zaczniemy od tego co lubię najbardziej: KOD. Najszybciej zaczniemy wpisując w terminalu

nano temperature.py

i zaczniemy kodować (rozumiem, że i2c jest skonfigurowane):

[code language=”python”]

import smbus

sensorAddress = 0x48
i2c = smbus.SMBus(1)

print i2c.read_word_data(sensorAddress,0)

[/code]

Czyli po kolej: importujemy bibliotekę smbus (zainstalowaną wcześniej)
podajemy adres czujnika (i2cdetect –y 1 żeby sprawdzić czy mamy coś podpięte i pod jakim adresem)

tworzymy obiekt reprezentujący szynę i2c (w raspberry pi rev2 jako parametr podajemy 1, w rev1 0)

i odczytujemy temperaturę. Wychodzimy z edytora i uruchamiamy skrypt:

python temperature.py

i mamy odczyt. Banalnie prosto. 🙂

A jeśli dziwi Cię dlaczego ten odczyt jest taki dziwny to dlatego, że odczytaliśmy surową wartość w formie jakiej wypluł czujnik. To jak to jest kodowane o co oznacza pisałem ostatnio zatem kod parsujący temperaturę z LM75A:

Zatem dodajemy kawałek kodu, który parsuje wartość odczytaną i zwraca prawidłową temperaturę

[code language=”python”]
def Decode(raw):
tempA = raw & 0xFF
tempB = (raw >> 8) & 0xFF
temp = (tempA << 8) | tempB
temp = temp >> 5
return temp

def Parse(input):
signBit = input >> 10
if signBit > 0:
negativeTemperature = input
return (negativeTemperature * 0.125) – 256
return input * 0.125

raw = i2c.read_word_data(sensorAddress,0)
temp = Decode(raw)
print Parse(temp)

[/code]

czyli mamy dwie funkcje, Decode, która tak przestawia bity aby zgodnie z tym co ostatnio pisałem uzyskać prawidłową liczbę w pythonie oraz Parse, która odpowiednio przelicza to na nasze dobrze znane stopnie Andersa Celsiusa.

Po sieci krąży jeszcze jedne kod do odczytu temperatury z LM75A:

[code language=”python”]
tempA = temp & 0xFF
tempB = (temp >> 8) & 0xFF
temp = (tempA << 8) | tempB
temp = temp >> 5

r = temp >> 7
if (temp & 0x8000):
r = (~r & 0x1FF)
r = r – 1
r = -r
r = r / 2.0
return str(r)

[/code]

ma on jednak małą wadę, zaokrągla odczyt do .5 więc tracimy na rozdzielczości czujnika i z .125 robi nam się 0.5 stopnia Wprawdzie w zastosowaniach domowych i meteo nie ma to wielkiego znaczenia to jednak piszę o tym, ponieważ jedna z pierwszych moich wersji bazowała na tym kodzie i zaokrąglała własnie do .5. Teraz znalazłem czas, żeby napisać to po swojemu i mam .125

Ostatnia sprawa to spięcie całości. Potrzebujemy połączyć kość LM75A z Malinką:

image

Łączymy piny:

LM75A Raspberry PI
1 (SDA) 2 (SDA)
2 (SCL) 3 (SCL)
4 (GND) 24 (Ground)
8 (VCC) 1(3V3 Power)
5 1 (3V3 Power)
6 1 (3V3 Power)
7 1 (3V3 Power)

Piny 5 6 7 możemy połączyć dowolnie z “plusem” lub “minusem” – w ten sposób ustalamy adres jednak należy pamiętać, że piny 5, 6 i 7 MUSZĄ BYĆ POŁĄCZONE.

Miłej zabawy a w następnym odcinku serii na warsztat weźmiemy ciśnienie ale dopiero w przyszłym tygodniu.

LM75A + i2c + Raspberry Pi czyli mierzymy temperaturę

Szerszy obraz czyli tzw. przydługi wstęp

Zainteresowanie szyną i2c spowodowane było moim lenistwem. Piec w domu nie ma termostatu a rozpalając go warto wiedzieć jaka jest temperatura żeby wiedzieć kiedy go zamknąć. Rozwiązanie? Czujnik temperatury w piwnicy – na piecu, najlepiej taki który będę mógł sprawdzać za pomocą telefonu. Dodatkowo dlaczego by nie mieć czujnika temperatury w każdym pokoju i w dodatku zapisywać je aby moc później oglądać jak te temperatury się zmieniają. Dostępne na rynku rozwiązania albo nie spełniają wszystkich założeń albo są mega drogie. Pod telewizorem leży malinka wiec dlaczego jej nie zaprzęgnąć do dodatkowej pracy. Idealny materiał na pet project. Wstępne założenia są takie czujnik temperatury w piwnicy, w sypialni i salonie oraz na zewnątrz – być może temperatura przy ziemi oraz na wysokości 2 metrów czyli tak jak to mierzą meteorolodzy (btw. nie ma czegoś takiego jak temperatura w/na słońcu. Prawidłowo mierzona temperatura powietrza jest dokonywana na wysokości 2m w klatce meteorologicznej zapewniającej cień. Nie mierzymy temperatury w/na „słońcu”). Wyszło 5, być może jeszcze w pokoju dzieci i może kuchni to daje 7. Po szybkiej analizie dostępnych możliwości okazało sie ze Lm75a nadaje sie najlepiej. Na jednej szynie i2c (to ważne bo dzięki temu cześć elektroniczna jest uproszczona do minimum) można podpisać 8 termometrów. Zakres mierzonej temperatury to -50 do 150 stopni. Dla mnie idealnie. Dokładność 2stopnie. Z jednej strony masakra a z drugiej – co mnie to obchodzi, to nie jest aparatura medyczna. Się skalibruje i odpowiednie poprawki w kodzie się zrobi. W zakresie domowym i zewnętrznym czujnik jest liniowy wiec nie ma stresu a pomiar temperatury w piecu wystarczy z dokładnością 5 stopni, aktualny bimetalowy wskaźnik i tak jest mocno orientacyjny.

Zatem na warsztat idzie kostka do odczytywania temperatury czyli LM75A. Idiotycznie prosta w użyciu i obsłudze kość pozwoli łatwo uzyskać zadowalające efekty i nie powinna stanowić większego problemu nawet dla początkujących elektroników. Dokumentacja techniczna znajduje się tutaj.

lm75-elememnty

Do zmontowania będą potrzebne LM75, dostępne na allegro i w przyzwoitych sklepach elektronicznych (na powyższej rycinie to te pajączki w woreczku antystatycznym) garść kondensatoró 10nF ceramicznych oraz płytki drukowane. Te ostatnie nie są obowiązkowe bo można zmontować wszystko na pająka albo jak to teraz modniej w 3D ale na allegro można dostać gotowe płytki SO8 która ułatwi pracę. Przydatny może być również kynar jeśli chcemy mieć więcej niż 1 czujnik. Przyda się również lutownica (lepiej oporowa niż transformatorowa) oraz podstawowe umiejętności z zakresu lutowania i wąchania kalafonii.

Technikalia

Kostka ma 8 wyjść. VCC to zasilanie. Malinka może zapewnić nam 3.3 lub 5V, kość wymaga zasilania w zakresie 2.8-5.5 więc 3.3 będzie ok (później będziemy się zajmować barometrem, który jest bardziej wybredny i dlatego skorzystam z 3.3). GND to masa – lub  minus zasilania. To załatwia zasilanie. SDA i SCL to szyna danych w I2C. Ponieważ całość podpinamy do Raspberry Pi, która ma rezystory podciągające to poza połączeniem VCC GND SDA i SCL mamy w pełni funkcjonalną szynę, która nić ponad to nie potrzebuje.

image

Teraz najciekawsza część. LM75 ma ustawiany adres a ustawiamy go za pomocą zwierania A0 A1 i A2 do VCC lub do GND. I2C pozwala podpiąć równolegle do 120 urządzeń więc żeby je rozróżnić od siebie –  z którym w danej chwili chcemy rozmawiać – należy je zaadresować. Adres jest ustalany przez producenta na etapie projektowania. W przypadku LM75 adres wygląda tak:

MSB LSB
1 0 0 1 A2 A1 A0

Co ważne, A0-A2 MUSZĄ być połączone albo z VCC albo z GND. Jeśli pozostawimy je wiszące to kość będzie się dziwnie zachowywać tzn. czasem będzie odpowiadać a czasem nie. Ustawiając adresy cudeńko możemy znaleźć pod adresami od 72 (0x48) do 79 (0x4F) – sprawdzimy to za pomocą komendy i2cdetect.

Zmontowana kość u mnie wygląda tak:

photo

Jak widać mistrzostwo we władaniu lutownicą nie jest jakoś specjalnie potrzebne, ważne żeby nie poparzyć się, nie ugotować kostki i nie pozwierać za dużo…. aha i nie oblizujemy grota lutownicy.

Temperatura

Kość jest samowystarczalna w tym sensie, że po ustawieniu adresu i dostarczeniu zasilania można czytać temperaturę bez jakiejś specjalnej kalibracji czy innych magicznych obrządków. Wystarczy odczytać odpowiedni rejestr (o tym jak, będzie w następnym wpisie), który zbudowany jest tak:

M S B y t e L S B y t e
7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 X X X X X

D10 to znak czyli 0 temperatura dodatnia, 1 temperatura ujemna. D9 do D0 to nasza temperatura zapisana jako wartość całkowita – ofc zapisana binarnie. XXXXX są nie używane.

Dla fanów tdd trochę mięsa czyli przypadki testowe – ot wprost z dokumentacji:

11-bit binary

szenastkowo dziesiętnie wartość temperatury
01111111000 0x3F8 1016 +127.000 °C
01111110111 0x3F7 1015 +126.875 °C
01111110001 0x3F1 1009 +126.125 °C
01111101000 0x3E8 1000 +125.000 °C
00011001000 0x0C8 200 +25.000 °C
00000000001 0x001 1 +0.125 °C
00000000000 0x000 0 0.000 °C
11111111111 0x7FF -1 −0.125 °C
11100111000 0x738 -200 −25.000 °C
11001001001 0x649 -439 −54.875 °C
11001001000 0x648 -440 −55.000 °C

z wartości dziesiętnej na prawdziwą temperaturę przechodzimy tak:

dla wartości dodatniej czyli D10 = 0

(°C) = +(Temp) × 0.125 °C.

dla wartości ujemnych czyli D10 = 1

(°C) = −(pozostała część Temp) × 0.125 °C.

Wstępnie mamy omówiony pierwszy klocek układanki. Wiadomo dlaczego i czym chcę mierzyć temperaturę. W następnej części pokażę jak to to podpiąć do malinki oraz zaglądniemy do kodu który pozwoli na odczyt temperatury.

Raspberry Pi i szyna I2C

Jedną z wielkich zalet Rasbperry Pi jest to, że została wyposażona w ciekawy zestaw portów a jeden z nich to i2c. Jest to szyna, która pozwala na bardzo łatwą (potrzebuje 4 przewody) komunikację z innymi układami scalonymi, czujnikami czy wręcz całymi urządzeniami. Na rynku jest od lat i dlatego nie ma problemu znaleźć masę zabawek, które możemy wykorzystać.

Aby rozpocząć przygodę z i2c należy uruchomić i2c na malince.

sudo nano /etc/modules i dodajemy moduł i2c-dev

image

a następnie

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

To doda nam narzędzia do i2c oraz bibliotekę smbus dla pythona, która przyda się do komunikacji.

Na koniec:

sudo adduser pi i2c

Po restarcie można już cieszyć się tym, że i2c działa. Szybka kontrola:

i2cdetect –y 1 i mamy:

image

i2cdetect pozwala odczytać adresy urządzeń podpiętych do szyny (w przypadku malinki rev2 –y 1, w przypadku rev1 –y 0). Na powyższej rycinie widać, że są podpięte 3 urządzenia o adresach 0x48, 0x4F u 0x77. Jeśli nic nie podepniemy, będzie pusto. Jednak jest to pierwszy krok, który pozwoli sprawdzić czy to to w ogóle u nas działa.

Szyna i2c pozwala podpiąć ponad setkę urządzeń. Każde z nich ma swój adres (niektóre mają konfigurowalny adres) który warto znać, żeby się z danym urządzeniem komunikować. Jak wcześniej pisałem, rycina pokazuje 3 takie urządzenia:

0x48 i 0x4F to termometry LM75A, w których 3 ostatnie bity adresu można ustawić, możemy zatem podpiąć 8 różnych termometrów. Szczegółowe dane techniczne znajdują się tutaj

0x77 to  BMP085 czyli czujnik temeratury i cisnienia atmosferycznego. Szczegółowe dane techniczne znajdują się tutaj.

W kolejnych postach pokażę jak podpiąć powyższe czujniki do malinki  i jak cokolwiek z nich odczytać a później pokażę prosty sposób na wypchnięcie danych na zewnątrz do google docs lub do własnej aplikacji webowej.

 

Aktualizacja:

Jeden z czytelników napisał, że potrzebował dopisać w pliku /etc/modules  linijkę i2c-bcm2708. Więc jeśli to co napisałem w Twoim przypadku to za mało  to może tego brakuje. W mojej malince wystarczyło wpisać i2c-dev ale może to wynika z faktu, że używam raspbmc a nie raspbiana. Dzięki Marek za uwagę.

Raspbmc konfiguracja i backup

Moja malinka zdechła, ot tak pewnego dnia uruchamiam cudo a na ekranie widzę

Kernel Panic: VFS : Unable to mount root fs on unknown-block (179,2).

Nie wiem skąd i nie wiem dlaczego ale zawsze jak coś robię z linuxami to kernel panikuje. Chyba się za bardzo nie lubimy. Jak widzę konsolę i te wszystkie znaczki jakie trzeba wpisać to panikuję więc jest 1:1. Tym razem nie było za bardzo jak odratować instalację – ssh nie działało – a że nie chciało mi się cudować z kartą i próbować naprawiać to po prostu zainstalowałem całość na nowo (tak jak tutaj) proces bezobsługowy więc po przygotowaniu karty, wrzuciłem ją do malinki i zająłem się swoimi sprawami. Co do samego źródła problemu to w internetach piszą, że może być to spowodowane błędem zapisu danych na karcie przy zbyt małej wydajności prądowej zasilacza – czyli znowu wychodzi na to, że warto zainwestować w przyzwoity zasilacz a ładowarka nie zawsze jest najlepszym rozwiązaniem. Wracając do tematu:

Po instalacji spisałem co i jak skonfigurowałem – niech panika kernela na coś się przyda – zatem poniżej krok po kroku:

Najpierw ustawienia sieci:

Programs->Raspbmc Settings –>Network configuration

Oraz wgranie nowego nightbuilda (opcjonalnie bo przecież może nie chcemy mieć najnoweszej niestabilnej wersji):

Programs->Raspbmc Settings –>Nightly Build Config –> Install  XBMC Nightly (20130110)

Potem wybór pilota jaki posiadamy – mój MCE działa bez tego, jednak po wybraniu MCE RC6 działa mi dodatkowy przycisk, który otwiera menu “kontekstowe” wiec potrzebuję to ustawić:

Programs->Raspbmc Settings –>IR Remote

Wyłączamy dźwięki nawigacji:

System->Settings->Appearance->Skin->Navigation sounds

A teraz język polski:

System->Settings->Appearance->International->Language

I po wybraniu mamy już wszystko po naszemu:

System->Settings->Appearance->International->Kraj strefy czasowej

System->Settings->Appearance->International->Preferowany jezyk dźwięku i napisów

System->Settings->Appearance->Wygaszacz->

Wizualizacja podczas odtwarzania muzyki (wyłącz) i włącz wygaszacz po upływie 2 min (dim)

Ustawienia pogody – podajemy swoje miasto:

Pogoda –> ogólne –> ustawienia –>lokalizacja

Nazywamy urządzonko jakoś po ludzku – ta nazwa będzie wyświetlana w AirPlay

Ustawienia-Usługi Ogólne –> nazwa urządzenia

Włączamy UPnP

Ustawienia->Usługi->UPnP

I AirPlay

Ustawienia->Usługi->AirPlay

Teraz chciałbym żeby malinka jakoś po ludzku się  nazywała w otoczeniu sieciowym zatem użyjemy cudownego narzędzia Putty, wystarczy podać ip naszej malinki i wybrać ssh. Standardowy użytkownik to pi,  hasło to raspberry. I edytujemy dwa pliki /etc/hostname i /etc/hosts za pomocą poniższych komend

sudo nano /etc/hostname

sudo nano /etc/hosts

Tutaj warto wspomnieć, nazwy piszemy małymi literami.

Tak skonfigurowana malinka jest gotowa do zainstalowania dodatkowych pakietów. Ten, który instaluję to smuto dla xbmc. Pobieramy zipa na komputerze i wrzucamy na malinkę wybierając ją w otoczeniu sieciowym komputera. Zipa również można przenieść za pomocą pendrive-a i  po prostu wpiąc go w malinkę ale po co skoro mamy tam podpiętą sieć.

Instalacja wtyczki jest banalnie prosta:

System->Wtyczki->..-> .. –> ok na instaluj z pliku zip

..->..->.. czyli wybieramy .. i przechodzimy tak długo aż zobaczymy opcję instaluj z pliku zip. W domyślnej sytuacji powinniśmy tam być od razu.

Po zainstalowaniu smuto repo czas na wybór wtyczek. Poniżej lista tych, które mi przypadły do gustu:

Wtyczki-> Wtyczki filmów:

Revision 3, TED, TVN Player, Vod.Tvp.pl, YouTube, Trailery (Trailery z FilmWeb)

TVN, TVP i Trailery są właśnie z smuto repository, które wcześniej instalowaliśmy. Fajną rzeczą jest możliwość podpięcia wtyczek wideo (i nie tylko) do menu głównego. Aby to zrobić wystarczy:

System->Ustawienia—>Wygląd->Skóra->Ustawienia:

Przy okazji włączymy pokazywanie pogody na głównym ekranie:

Ekran główny->Pokazuj info o pogodzie

Wtyczka skróty->Podmenu wideo Ekranu głównego

ustawiamy te wtyczki wideo, które chcemy mieć pod ręką w menu głównym (najbardziej używane).

To jest podstawowa konfiguracja, która spełnia moje potrzeby jeśli chodzi i wideo z internetów.  Jeśli chodzi o muzykę i radia internetowe to procedura jest dokładnie taka sama jak z wideo – chociaz  tutaj nie potrzebuję instalować żadnego repozytorium pluginów. W standardowym zestawie jest jazz radio oraz world radio, które spełniają więcej niż wszystkie moje internetowo radiowe potrzeby.

Na tym etapie mam wszystko co potrzebuję więc warto zrobić backup.

Możliwości mamy dwie:

Pierwsza to backup samej konfiguracji z poziomu ssh:

sudo initctl stop xmbc

sudo tar –cpf  /home/pi/Shared/xbmc_backup.tar /home/pi/.xbmc

sudo initctl start xbmc

taką konfigurację możemy teraz przez udział sieciowy zapisać w bezpiecznym miejscu.

Druga możliwość to backup całej karty za pomocą programu win32DiskImager. Wrzucamy kartę do czytnika i wybieramy w programie opcję read.

Proponuję najpierw wykonać pełny backup karty a później stworzyć sobie skrypt, który raz dziennie będzie wykonywał backup samej konfiguracji i najlepiej sam wysyłał ten backup w bezpieczne miejsce ale o tym już innym razem.

Jak zrobić smart tv czyli Raspberry Pi jako centrum multimedialne

Coraz więcej telewizorów sprzedawanych jest jako SMART czyli takich, które potrafią odtwarzać muzykę, zdjęcia i filmy z internetu lub naszych lokalnych zasobów. Jest to dosyć zrozumiałe bo przecież dlaczego oglądać zdjęcia z wakacji na komputerze (szczególnie, że coraz więcej z nich to małe laptopy) skoro mamy w salonie XX-dziesiąt cali, które lepiej się do tego nadają. Co jednak jeśli nie mamy “smart” tv? Nic prostszego, trzeba sobie zrobić.

Do wykonania smart tv będziemy potrzebować:

  1. raspberry PI
  2. Kartę SD
  3. Ładowarkę lub zasilacz
  4. Kabel hdmi
  5. kabel sieciowy (ethernet)
  6. pilot
  7. trochę internetu

Raspberry Pi to nic innego jak komputer na małej płytce drukowanej. Posiada całkiem przyzwoity SoC ARM1176JZFS @ 700Mhz i Videocore 4 GPU. Procesorek graficzny ma moc wystarczającą (rzekomo) do odtwarzania materiały w jakości BluRay dzęki wsparciu sprzętowemu dla H.264. Generalnie aby to cudo uruchomić potrzebujemy trochę kabli i trochę prądu.

raspberry pi (3 of 4)

raspberry pi (4 of 4)

raspberry pi (2 of 4)

Jeśli chodzi o prąd to ważna sprawa. Nasze cudo wymaga min 700mA i 5V. Generalnie wystarczy ładowarka z w miarę nowoczesnego smartfona ponieważ wiele z nich ma wydajność ~1A co w zupełności wystarcza. W praktyce może się okazać, że wygrawerowane 1A na ładowarce nie ma nic wspólnego z prawdzimym 1A  a prądu dostajemy tyle co kot napłakał. Poblem z brakiem prądu może objawiać się problemami przy korzystaniu z sieci przez urządzenie lub z czasowym przywieszaniem się (ale nie uprzedzajmy faktów) – dlatego warto wybrać się do sklepu z elektroniką i kupić przyzwoity zasilacz.

Kolejna sprawa to karta sd. Raspberry Pi posiada wbudowany czytnik a karta jest po prostu dyskiem dla urządzenia. Na potrzeby naszego smart tv warto kupić szybką i dobrą kartę. Osobiście użyłem klass 10 8GB SanDisk, sprawuje się bardzo przyzwoicie.

Ostatni element niezbędny to kabel HDMI. Wprawdzie płytka ma wyjścia audio i video out ale myślę, że lepiej skorzystać z dobroci hdmi – 1 kabel, lepsza jakość. Od razu przypominam, jeśli chcecie schować raspberry za telewizorem to wystarczy najtańszy kabel. Przy długości rzędu 1-2 metrów jakość wykonania tego kabla nie ma żadnego znaczenia i nie ma sensu przepłacać.

To wszystko to minimum jakie potrzebujemy aby nasze smart tv ożyło.

Dalej użyjemy xbmc jako serce całego systemu. Najprościej będzie skorzystać z Raspbmc. Pobieramy installer, wrzucamy kartę sd do czytnika i wskazujemy ją w instalerze. Reszta praktycznie robi się sama. Jak instaler powie że skończył, wrzucamy kartę do malinki podłączamy hdmi, kabel z internetem,  zasilanie i czekamy. Reszta dzieje się sama

WP_000508

WP_000509

Raspbmc samo pobierze aktualizacje z internetu i wszystko pozostałe co potrzebuje. I tutaj może pojawić się problem. Jeżeli użyte źródło zasilania jest zbyt słabe wówczas to tutaj czasem mogą się pojawić problemy. Urządzenie oprócz normalnej konsumpcji dosyć mocno korzysta z karty sieciowej, jeśli prądu zaczyna brakować bo zasilacz czy ładowarka mizerne są to wszystko padnie. Jeśli zaś są przyzwoite proces powinien przejść bez problemu a jeśli przejdzie bez problemu zobaczymy takie piękne logo Smile

WP_000511

Po zainstalowaniu przydała by się jakaś forma komunikacji z urządzeniem. Osobiście korzystam z pilota z Microsoft Media Center 1039 (http://www.mythtv.org/wiki/MCE_Remote) do kupienia czasem na allegro. Ruszył bez konfiguracji, bez kombinacji ot zaraz po wpięciu.

Można też użyć aplikacji w telefonie które dostępne są  na iOS-a, Windows Phone i Androida.

Co zrobić po zainstalowaniu Raspbmc? Osobiście pierwsze co to włączyłem AirPlay  (System->Network->Allow XBMC to receive AirPlay content) dzięki czemu mogę teraz wysyłać obraz i dzwięk z iPhone-ów  iPad-ów i iTunes-ów na telewizor. Jest to chyba najtańszy sposób na airplay-a w telewizorze. Nie trzeba kupować całego AppleTv aby korzystać z tego dobrodziejstwa.

WP_000512

Instalacja całości jest bardzo prosta i niewymagająca – ja adept sztuk linuksowych na poziomie prawie zero dałem radę – dlatego polecam poskładanie takiego cuda bo może to być początek bardzo fajnej przygody.

Jeśli macie jakieś pytania to zapraszam, postaram się odpowiedzieć w miarę możliwości.