domingo, 8 de mayo de 2016

Durant aquest trimestre, el projecte que durem a terme serà instal·lar un XBMC a una Raspberry Pi I.


XBMC ?

 
XBMC o per ser més exactes (X Box Media Center) és un programa que centralitza la visualització de material multimèdia. El programa recol·lecta aquestes fonts multimèdia, ja siguin en local o remotament.
Anteriorment, aquest programa per a programari lliure rebia el nom de XBMC però recentment ha estat canviat a Kodi.


 
NOTA: Les instruccions següents són per ser executades des d'un ordinador amb Sistema Operatiu GNU/LINUX. Si es té windows o Mac OS s'hauran d'adaptar seguint, per exemple, algun dels nombrosos tutorials que es poden trobar per internet.
 

1r. pas: Instal·lar un sistema operatiu amb Kodi instal·lat


El primer pas que durem a terme serà el d'instal·lar una distribució apta per a Raspberry Pi que dugui instal·lat el Kodi. Aquesta s'anomena OSMC. Si ja tenim alguna distribució prèviament instal·lada, la desinstal·larem durant el procés.

  1. Descarregarem OSMC per raspberry de la  pàgina de descàrrega de OSMC.

    Per descarregar el fitxer imatge que volem pitjarem sobre la imatge que diu Raspberry Pi i baixarà la finestra fins a un botó blau on hi posa Disk Images. Si cliquem sobre aquest botó se'ns obrirà un ventall de possibles fitxers imatge per descarregar.

    És important conèixer quin model de Raspberry tenim ja que cada model necessita una versió diferent. (La nostra Raspberry és una Raspberry 1)

    Descarreguem el fitxer més recent.


     
  2. Un cop tinguem el fitxer descarregat, obrirem un terminal i executarem les ordres següents:

    su

    per entrar com a superusuari del dispositiu hi introduirem la contrassenya

    cd (+nom del directori on hi ha el fitxer descarregat)

    (change directory) i el nom del directori on es troba el fitxer descarregat. La tecla del tabulador ens ajuda a completar noms de directoris i fitxers.
     
  3. Extraurem des del gestor de fitxers el fitxer descarregat.



    Aquesta acció crearà un fitxer imatge (.img) que conté una imatge del sistema operatiu per la Raspberry.
     
  4. Inserim la targeta SD al lector. El que haurem de fer ara és conèixer el nom que l'ordinador dóna a la targeta. Per fer-ho utilitzarem la següent ordre:

    dmesg 

    Apareixeran uns missatges que indicaran el nom assignat a la targeta SD. Hauria de sortir quelcom similar a això.

    [ 1318.416022] usb 2-5: new high-speed USB device number 4 using ehci-pci
    [ 1318.614780] usb 2-5: New USB device found, idVendor=0bda, idProduct=0169
    [ 1318.614783] usb 2-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 1318.614786] usb 2-5: Product: USB2.0-CRW
    [ 1318.614789] usb 2-5: Manufacturer: Generic
    [ 1318.614792] usb 2-5: SerialNumber: 20070818000000000
    [ 1318.674119] usb-storage 2-5:1.1: USB Mass Storage device detected
    [ 1318.674190] scsi host8: usb-storage 2-5:1.1
    [ 1318.674273] usbcore: registered new interface driver usb-storage
    [ 1318.691528] usbcore: registered new interface driver uas
    [ 1319.688315] scsi 8:0:0:0: Direct-Access     Generic- Multi-Card       1.00 PQ: 0 ANSI: 0 CCS
    [ 1319.688649] sd 8:0:0:0: Attached scsi generic sg3 type 0
    [ 1319.691542] sd 8:0:0:0: [sdc] Attached SCSI removable disk
    [ 1355.345727] sd 8:0:0:0: [sdc] 31116288 512-byte logical blocks: (15.9 GB/14.8 GiB)


    Les lletres ressaltades en verd indiquen el nom que l'ordinador ha donat a la targeta. És important no confondre el nom del dispositiu, ja que un error en el nom podria comportar escriure sobre el disc principal de l'ordinador i esborrar el sistema del propi ordinador.
     
     Notem per no confondre'ns que a continuació de sdc està escrit attached removable disk, fent alusió a un disc de memòria extern com ho podira ser un Pen-drive o una targeta SD.
     
  5. Copiar el fitxer .img a la targeta SD.

    Per dur a terme aquest pas és necessari estar en el directori del fitxer .img i ser superusuari (root).

    dd if=(nom del fitxer .img) of=/dev/(nom de la targeta SD trobat en el pas anterior) bs=4M

    Es pot fer servir l'ordre dcfldd enlloc de dd per tal de veure el percentatge de procés dut a terme progressivament. L'operació trigarà una estona (aproximadament 5-10 minuts).

    sync

    Aquesta ordre aboca totes les dades que quedin per copiar al disc dur o targeta.
Finalitzat el procés, comprovarem si hem assolit el nostre objectiu connectant la targeta SD a la raspberry, juntament amb un ratolí i teclat USB i la Raspberry connectada a un monitor.

domingo, 13 de diciembre de 2015

Com connectar-se a una Raspberry Pi quan no es pot connectar a un monitor.

Connexions alternatives a la Raspberry

Un dels problemes que he trobat mentre duia a terme el meu projecte de "streaming" d'imatges capturades per la càmera de la Raspberry i pujar-les a temps real a Internet, és connectar-se al petit ordinador. En moltes ocasions no he disposat d'un cable HDMI i és molt molest anar fent l'intercanvi del cable de la Raspberry a l'ordinador. És per això que he mirat altres maneres de connectar-m'hi.
A dia d'avui utilitzo ja sempre el mètode de connexió mitjançant un cable de xarxa. Aquest mètode fa que les dades de la Raspberry surtin per el cable ethernet i s'enviïn al meu ordinador però té un inconvenient: per fer això s'ha de conèixer l'adreça IP que la Raspberry rep cada cop que es connecta per xarxa i això no seria problema si no fos perquè aquesta és dinàmica i sempre és diferent.

La solució a aquest problema és editar la configuració de xarxa de la Raspberry perquè la tingui estàtica però és una cosa complicada. És per això que he fet un vídeo explicant com es duu a terme aquesta tasca.

Aquí deixo l'enllaç del vídeo a youtube:



Problemes conectant la Raspberry a un monitor

He tingut bastants problemes amb la Raspberry Pi a l'hora de connectar-la a un monitor, i encara NO ho he solucionat. El problema es troba quan tu intentes connectar aquest dispositiu a un televisor amb HDMI o a un monitor VGA. Quan tu fas això, els dispositius com la televisor i els monitor no troben la senyal per un problema de configuració de la Raspberry Pi. Ara diré tot lo que he intentat per connectar-ho, però ha sigut inútil.

Intent de solució 1: Connectar la Raspberry a diferents monitors VGA

Al principi, la nostra Raspberry no tenia cap tipus de problema en connectar-lo a un monitor VGA, però després desendollar-lo un parell de vegades, la Raspberry va deixar de transmetre senyal.
Vaig intentar connectar la Raspberry a quatre monitors diferents amb sortida VGA, però ningun dels quatre monitors va mostrar la pantalla de la Raspberry Pi.
Vaig investigar per internet i vaig trobar que el problema venia de un archiu anomenat "config.txt", un archiu que es sobreescrivia sol, però vaig intentar trobar l'archiu en la meva targeta SD i no el vaig trobar perquè estava utilitzant l’instal·lador "NOOBS". Així que vaig intentar trobar altres solucions.

Intent de solució 2: Conectar la Raspberry a un televisor HDMI

Al veure que la Raspberry no anava en un monitor VGA vaig decidir emportar-me-la a casa i provar amb el meu televisor HDMI directament, sense necessitats d'utilitzar un adaptador HDMI-VGA.
El meu televisor va trobar un HDMI connectat, però deia que la imatge era incompatible i que o tenia senyal.

Intent de solució 3: Connectar la Raspberry a traves de internet

Llavors vaig provar com a últim remei utilitzar el protocol de connexió "SSH" per connectar la meva Raspberry al meu ordinador a traves de internet. Un altre intent inútil, ja que es complicat connectar la Raspberry amb aquest mètode, y no va trobar el dispositiu el meu ordinador. Pot ser perquè no vaig obrir els ports del meu router correctament, perquè no vaig posar els comandaments adequats...


Finalment vaig formatejar la micro SD i vaig posar-li dins el Raspbian Jessie, però continua sense funcionar a dia d'avui.

lunes, 7 de diciembre de 2015

Disseny d'un sistema de vigilància remota amb Raspberry Pi ( Part 3 - Instal·lació de "motion" per Raspberry i configuració)

Aquesta part del projecte consistirà en instal·lar a la Raspberry un programa anomenat "motion". Aquest programa és capaç de captar imatges seguidament i enviar-les a Internet, fent-les visibles per qualsevol dispositiu connectat a la pàgina on les emet.
L'inconvenient és que s'ha d'editar la configuració del programa, ja que la per que hi ha per defecte no s'ajusta a les nostres necessitats.


  1. El primer pas és instal·lar el programa. Per això iniciarem la Raspberry i obrirem el terminal. La ordre a executar és:

    # sudo apt-get install motion
  2. En segon lloc, copiarem el fitxer de configuració del programa a algun directori per modificar-lo.

    # sudo cp /etc/motion/motion.conf /home/pi (nom del directori on copiar el fitxer)
     
    En aquest cas, pi és el nom del nostre directori però es pot canviar si voleu desar el fitxer en algun lloc diferent.
      
  3. Com hem copiat el fitxer com a superusuari (amb l'ordre sudo), el propietari del fitxer també serà el superusuari i no podrem modificar-lo si no ho som en un futur. Per això, canviarem el propietari del fitxer a l'usuari (en el nostre cas, pi) amb la ordre següent:


    # sudo chown (change owner) pi.pi motion.conf 



      
  4. Seguidament, passarem a editar el fitxer de configuració del programa però per això ens caldrà un editor de programes. Nosaltres n'utilitzarem un anomenat "vim" que Raspbian ja conté per defecte.
    Per utilitzar-lo el que haurem de fer és, en el terminal escriure el nom de l'editor i seguidament, el del fitxer. Hauria de ser així en el terminal:
    # vim motion.conf
    L'avantatge de vim és que és un editor que diferencia els comentaris del programa de les ordres i les pot ressaltar en colors diferents però, per que això es dugui a terme, un cop obert el programa li inserirem l'ordre:


    :syntax on (syntax off per desactivar el ressaltant)
      
    Desactivada la syntax, comentaris i ordres apareixen amb el mateix color.


    Un cop activada, els comentaris es ressaltaran en blau.
      
    Els  comentaris es detecten fàcilment perquè els precedeixen un #.
  5. Per entrar en el mode d'edició del fitxer utilitzarem la tecla I i per sortir-ne, la tecla Esc. Apretem I.
    Ara ja podem passar a realitzar les modificacions del programa.

    Paràmetres a canviar
    Per canviar el paràmetre, simplement hem de buscar el que volem en un color diferent a blau i aleshores canviar l'escrit per el nou (p.e. si un paràmetre es troba en "on" i l'hem de desactivar, canviarem "on" per "off". El nou paràmetre que s'ha de substituir és el que escriurem a continuació.

    - Desactivar el daemon → daemon off
     El daemon és un servidor que, si està activat fa que les nostres ordres es duguin a terme en segon pla. Com a conseqüència ens podem perdre algunes de les notificacions que es facin i ens convé tenir-lo desactivat.


     Com es pot veure, l'ordre no està en color blau i canviarem "on" per "off" allà on diu daemon. Els comentaris ens expliquen que és el que fa cada ordre, o sigui que si en trobeu una que sigui del vostre interès, podeu canviar-la per tal que s'ajusti a les vostres necessitats. Tingueu en comte que en el comentari hi acostumen a haver les altres possibles instruccions.


    Configurar les dimensions de la imatge → width 360 (o 640 o 1024) → height 200 (o 480 o 768) 
    El que aconseguirem amb això és configurar la mida de la imatge a l'hora de visualitzar-la, l'amplada i l'altura han de ser sempre proporcionals i cal tenir en compte que com més gran sigui la mida de la imatge, més lenta anirà la visualització d'aquestes.

    - framerate → 10 (o 15 o 20)
    Al canviar el framerate aconseguirem variar el nombre d'imatges per segon. Com més gran sigui el nombre, més fluïda serà la seqüència d'imatges. No obstant, el nombre d'imatges que pugui transmetre per segon dependrà de la fluïdesa de la nostra connexió a Internet.

    - Auto-brightness → off
    Activat, l'auto-brightness regularia el contrast amb la lluminositat de la càmera tot i que al ser exposada a llums intenses com la solar o una bombeta encesa no es cal·libra molt bé. Per tant convé que el desactivem en cas que estigui en "on".

    - ffmpeg_output_movies → off
    Per defecte, motion ens crea vídeos sobre el que la cama enregistra i els desa. A nosaltres no ens convé que aquests vídeos es creïn ja que amb una cadena d'imatges en tidríem prou i a més, els vídeos ens ocuparien espai dins la memòria del nostre ordinador, cosa que tampoc ens interessa.

    - target_dir (nom del directori on desar imatges p.e. /home/pi/motion)
    En cas que en algun moment decidíssim enregistrar el conjunt d'imatges, ens caldrà un directori on desar-les. És per això que recomano que en creeu un i en aquest paràmetre hi escriviu l'adreça del directori. Remarcar que no es gravarà res a no ser que el paràmetre ffmpeg_output_movies estigui habilitat.

    - streamport (nombre del port de connexió que volguem p.e. 8081)
    Amb això definirem el port per el qual s'escoltaran les peticions d'imatges per la xarxa.

    - stream_motion → on
    El que això permet és que quan la càmera no detecti cap moviment, el flux d'imatges sigui d'1 fps i quan se'n detecti un, augmenti el nombre d'imatges per segon.

    - stream_maxrate → 10
    Quan la càmera detecti moviment, el flux d'imatges incrementarà fins el màxim donat aquí. Cal tenir en comte que, si se li assigna un valor molt elevat és possible que la connexió no sigui prou ràpida i es vegi entretallada la transmissió d'imatges.

    - stream_localhost → off
    Habilitarà la connexió des d'altres dispositius, com altres ordinadors o telèfons mòbils.

    - stream_auth_method → 1
    Amb això, el que aconseguirem és que quan intentem accedir a les imatges quan ens connectem a la xarxa, se'ns demani una contrasenya que nosaltres escollirem a continuació. En cas que no vulguem contrasenya podem escriure 0 però llavors, tothom amb l'adreça podrà accedir-hi.

    - steam_authentication → (nom d'usuari que vulguem):(contrasenya)
    Aquesta ordre només és útil si en l'anterior li hem dit que volem contrasenya. Primer inserirem el nom d'usuari que vulguem i seguidament de dos punts (:) la contrasenya que demanarà la pàgina.

    - output_pictures off
    Desactiva el fet d'utilitzar captures del vídeo per la seva presentació en cas que es desi. Com que a nosaltres no ens interessa, ho desactivarem.

    En cas que no trobem algun d'aquests paràmetres, fora del mode d'inserció (I), podem escriure /el nom del paràmetre que busquem . És una eina de cerca.
  6. Per acabar aquesta part del projecte, sortirem del mode edició amb la tecla Esc. i desarem els paràmetres utilitzant :wq (write and quit).
Amb això donem per conclosa aquesta part del projecte i podrem passar a la visualització de les imatges.

lunes, 30 de noviembre de 2015

Primer Projecte: Instal·lant el "Raspbian" amb "NOOBS setup"

Agafant per primer cop la Raspberry Pi podem arribar a veure que te quatre ports USB, una entrada per cable LAN i una entrada HDMI.
La primera modificacio que li tenim que fer a la Raspberry es posar-li un sistema operatiu.Per fer-ho necesitarem una targeta micro SD amb un programa anomenat "NOOBS setup".


Una vegada conectada la Raspberry (amb la micro SD) al monitor y a la corrent ens sortira aquesta pantalla. La aparença es simple, ens dona una pantalla en la que podrem escollir quin sistema operatiu instalar. Una vegada seleccionat el sistema operatiu es posara a instalar-lo en la nostra micro SD.

martes, 24 de noviembre de 2015

Disseny d'un sistema de vigilància remota amb Raspberry Pi ( Part 2 - Instal·lació del mòdul càmera i comprovació)

Aquesta part del projecte consistirà en comprovar i fer funcionar bàsicament el mòdul de càmera de la Raspberry Pi. Aquest procés constarà de 5 etapes:
  1. El primer pas consistirà en obrir la Raspberry. La connectarem a un monitor, un teclat i un ratolí; alimentada amb un connector micro-USB.
    Raspbian tendeix a iniciar-se amb interface gràfica però en cas que ho faci amb linina de comandaments, executeu l'ordre:

    startx
     
  2. Desempaquetarem el mòdul de càmera de la seva capsa. A dins hi trobarem el mòdul, desat en un sobre de plàstic protector. És un component delicat, així que eviteu els cops i eviteu el contacte directe dels dits amb els circuits electrònics ja que els podrien malmetre. Una altre cosa a tenir en compte és el no doblegar fortament el cable blanc que surt del mòdul ja que si es trenquen els circuits el mòdul passarà a ser inservible.


    Mòdul de càmera Raspberry amb mòdul de càmera
  3. El següent consistirà en activar els drivers que habilitin l'ús del mòdul càmera per la Raspberry ja que, per defecte, estan desactivats. Per fer això obrirem el menú de l'escriptori i anirem a la pestanya de preferències. Dins de les preferències hi trobarem una que diu "Raspberry Pi configuration", hi clicarem a sobre i s'obrirà la pestanya de la imatge.

    Haurem d'anar a la pestanya d'interfaces un cop oberta la finsetra de preferències
    Un cop visualitzant les interfaces, veurem que la primera d'elles s'anomena càmera i estarà en mode "disable", l'hem de canviar i desar els canvis clicant sobre OK. D'aquesta manera haurem habilitat el reconeixement del mòdul càmera. Fet això, apagarem la Raspberry per el menú i seguidament desconnectarem l'alimentador.
     
  4. Connectarem amb cura el mòdul càmera al seu port específic de la següent manera:



    Fixem-nos que hi ha una peça al port del mòdul que es pot estirar lleugerament cap amunt. Ho farem i seguidament hi inserirem els connectors del mòdul, amb cura que quedin ben alineats amb els del port i baixarem la pestanya, que actuarà com a mordassa i evitarà la desconnexió del mòdul.
  5. Ara tornarem a encendre la Raspberry. Un cop oberta, passarem a fer una prova del funcionament de la càmera.
     
  6. Obrirem un terminal de Raspberry i utilitzarem el programa raspivid per "testejar" el bon funcionament de la càmera. Per dur a terme aquesta acció utilitzarem la següent ordre:

    raspivid -t (nombre qualsevol)
     
    -t és la variable que serveix per determinar l'interval de temps (expressat en milisegons) durant el qual el programa i la càmera estaran en activitat.
     
    Captura del terminal amb les instruccions per executar
    la prova durant un temps de 10 segons.
    Per desactivar el temporitzador del programa es pot inserir un temps 0 i així funcionarà il·limitadament. Per cancel·lar aquesta ordre, farem servir la combinació de tecles Ctrl+C.
Un cop executada l'ordre apareixerà la imatge captada per la càmera al monitor i amb això donarem per acabada la segona part del projecte.

lunes, 23 de noviembre de 2015

Inicialització de la Raspberry Pi (explicació dels projectes i materials)

Durant el meu primer projecte aprendré com utilitzar aquest dispositiu (instal·lar un sistema operatiu [Raspbian], l'ús dels seus programes...) I al meu segon projecte faré amb aquest sistema un dispositiu per emular videojocs antics, amb l'us d'un altre sistema operatiu anomenat "Retropie".

Materials per al primer projecte

- Raspberry Pi
- Cable d'alimentació per Raspberry
- Monitor VGA
- Conversor de HDMI a VGA
- Ratolí i teclat USB
- Targeta mini SD + adaptador a SD (per si de cas)
- Ordinador amb port d'entrada per SD (transferir fitxers)
- NOOBS setup (per instal·lar el sistema operatiu)

Materials per al segon projecte

- Els materials utilitzats en el primer projecte (excepte el NOOBS setup)
- Comandament per als videojocs (un comandament de la videoconsola "Playstation 3" pot funcionar)
- El sistema operatiu "Lakka"