divendres, 11 de desembre del 2015

So amb arduino


En aquesta pàgina teniu instruccions per fer sons amb un piezoobuzzer (brunzidor) fent servir les funcions tone() i notone() amb Arduino

dilluns, 7 de desembre del 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.

    dilluns, 30 de novembre del 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.

    dimarts, 24 de novembre del 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.

    dilluns, 23 de novembre del 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"

    dissabte, 14 de novembre del 2015

    Disseny d'un sistema de vigilància remota amb Raspberry Pi (Part 1 - Introducció i Instal·lació de Raspbian a una Raspberry)


    L'objectiu d'aquest projecte és dissenyar un sistema que, mitjançant una Raspberry Pi i el seu mòdul de càmera es capturin imatges periòdicament i es transmetin via Internet per tal que es puguin veure mitjançant un ordinador connectat a qualsevol punt de la xarxa.

    Per dur a terme el projecte, necessitarem el material següent:

    •  Raspberry Pi amb targeta SD. (que s'utilitzarà com ordinador captador d'imatges)
    • 1 Alimentador de 5 V amb connector micro USB per carregar la Raspberry (un carregador de mòbil pot servir).
    • 1 Lector / gravador de targetes SD (per gravar el sistema operatiu de la Raspberry).
    • 1 mòdul de càmera per a Raspberry Pi.
    • 1 Cable HDMI o un conversor HDMI a VGA o DVI (per connectar la Raspberry a un monitor).
    • 1 Ordinador capaç de programar en "Python" (llenguatge en el qual es farà la programació).
    • connexió a la xarxa per fer l'"streaming" i connectar establir connexions per ssh (cable o adaptador wifi-USB).
    Com que és un projecte extens, hem optat per dividir-lo en diverses parts. Seguidament s'explicarà la primera d'elles.

    1r. pas: Instal·lar un sistema operatiu a la Raspberry: (Raspbian)

    Descarregar un fitxer imatge de la pàgina oficial de Raspberry i copiar-lo a la tarjeta SD per així tenir-hi un sistema operatiu d'arrencada.

    Consistirà de tres parts:
    1. Descàrrega del fitxer que conté el sistema operartiu complet.
    2. Localitzar i descomprimir el fitxer.
    3. Copiar el fitxer descomprimit a la tarjeta SD.
    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.
    1. Descarregar la distribució de Raspberry Pi volguda (en el nostre cas Raspbian) de la pàgina oficialhttps://www.raspberrypi.org/downloads/raspbian/ . Baixarem la Raspbian Jessie, en fitxer zip. Aixó trigarà uns minuts.
    2. Un cop tinguem la distribució descarregada, 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. Descomprimirem des del terminal el fitxer comprimit que hem descarregat.

      unzip (+nom del fitxer que s'ha descarregat)

      Aquesta acció crearà un fitxer imatge (.img) que conté una imatge del sistema operatiu per la Raspberry.
    4. Inserir la tergeta 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.
    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 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.

    dimecres, 28 d’octubre del 2015