vineri, 6 ianuarie 2017

Primii pasi cu Raspberry Pi (1)

Preambul...

     Detin de ceva vreme un Raspberry Pi. Minunata jucarie ! Un computer cat un card de credit cu acces la GPIO-ul procesorului... Tot ceea ce nu este Arduino. Internetul geme de sute de mii de aplicatii care de care mai traznite: roboti, console de jocuri, mini laptop-uri, servere de... orice ! Ce mai lumea intreaga la picioare! Dar... Exista un DAR: LINUX ! Micutul computer ruleaza (si) Linux.      Pentru cineva care si-a petrecut intraga viata in compania Windows-ului Linux-ul nu este cel mai prietenos  sistem de operare. Acesta este si cazul meu. Cum intotdeauna sunt deschis catre lucruri noi, am zis sa incerc si eu Raspberry Pi-ul.


     Partea buna este aceea ca exista documentatie pentru orice. Daca la inceput copii comenzi, fara sa intelegi mare lucru din ce fac acestea incet, incet incepi sa te prinzi cum functioneaza si incepi sa te simti din ce in ce mai mult stapan pe situatie. 

     In articoul de azi nu voi prezenta decat instalarea sistemului de operare Raspbian si cateva trick-uri pentru a face un pic viata mai usoara celor care incearca sa programeze Pi-ul. Sa incepem...

Instalarea...

     In scurta mea experienta cu Raspberry Pi am ajuns la concluzia ca este mult mai simplu sa comanzi Pi-ul prin intermediul unui client SSH, sa ii accesezi interfata grafica prin intermediul unui client VNC si sa manipulezi fisierele stocate direct din reteaua locala. La sfarsitul acestui articol veti avea si voi toate acestea instalate, urmad ca in articolele urmatoare sa ajungem la fructul dulce numit GPIO :).

1. Instalare Raspbian.

Pentru aceasta parte aveti nevoie de urmatoarele resurse hardware: 
  • Raspberry Pi cu alimentator 5V/1A:)
  • Televizor/monitor cu port HDMI;
  • Cablu HDMI;
  • Tastatura si mouse conectate la Raspberry Pi;
  • Card microSd de minim 8Gb;
  • Dongle Wi-Fi conectat la Raspberry Pi.
     Mergeti   aici si descarcati NOOBS. Dupa download dezarhivati arhiva intr-un folder oarecare. Pregatiti cardul microSD introducand-ul cu ajutorul unui adaptor intr-un port USB.
Acum va trebui formatat cardul. Pentru formatare se utilizeaza programul SDFormatter. Programul se poate descarca de aici. Lansati programul si formatati cardul:


     Dupa formatare copiati continutul folderului in care ati dezarhivat NOOBS direct in radacina cardului SD. Daca toate dispozitivele periferice (mouse, tastatura, cablu HDMI, dongle Wi-Fi) sunt conecate puteti alimenta Raspberry-ul. In acest moment incepe instalarea sistemului de operare:


Pentru a instala sistemul de operare tot ceea ce aveti de facut este sa apasati pe Install si sa astepati.

O data instalarea terminata urmatorul pas este sa adaugam Raspeberry-ul in reteaua locala si sa ii oferim acces la internet:






     Dupa ce ne-am conectat la reteaua locala urmatorul pas este acela de a afla adresa IP a Raspberry-ului. Pentru aceasta deschideti un terminal nou si tastati 


ifconfig




Cautati sectiunea wlan0 si notati IP-ul din dreptul inet addr. 

Din acest moment nu veti mai avea nevoie de HDMI, tastatura si mouse, totul se va face prin magia TCP/IP-ului.


2. SSH...

     SSH este acronimul pentru Secure SHell si reprezinta un protocol de retea criptat. In cazul de fata vom folosi SSH-ul pentru a transmite comenzi remote Raspberry-ului. Pentru aceasta trebuie instalat Putty. Descaracrea se poate face de aici. Dupa instalare rulam Putty.exe:


In caseta HostName se introduce adresa IP a Raspberry-ului. Click pe Open si ne va intampina urmatoarea fereastra:



Click Yes, pentru a putea comunica cu Pi. Mai departe ne sunt cerute datele de autentificare. Datele implicite sunt:


user: pi                

password: raspberry



Daca totul a decurs corect ar trebui sa primiti urmatorul mesaj:



2. VNC...

     Cand am zis ca tastatura, mouse-ul si HDMI-ul nu ne mai sunt utile nu am vrut sa spun ca vom renunta definitiv la interfata grafica a Raspbian-ului. Exista posibilitatea de a rula interfata grafica a Raspbianului utilizand un VNC(Virtual Network Computing). Pentru aceasta este necesar a se instala doua programe distincte: un client si un server. Clientul (RealVnc) se va instala pe Windows si server-ul (tightvnc) pe Raspberry Pi. RealVnc se poate descarca de aici. Pentru partea de server se vor urma pasii:


  • Se deschide Putty si se realizeaza o conexiune la Raspberry Pi;


  • Dupa autenficare se scrie urmatoarea comanda:

sudo apt-get install tightvncserver  


  • Tastati y si astepati ca instalarea sa se termine.
Dupa instalare trebuie pornit serverul VNC. Pornirea se realizeaza cu urmatoarea comanda:


tightvncserver


     Inainte de pornire vi se va cere sa introduceti o parola de maximum 8 caractere. Notati aceasta parola deoarece va fi necesara pentru autentificare.



Mai este un singur pas pana cand server-ul sa devina perfect functional. Va trebui sa cream un script prin care sa pastram setarile de rezolutie si de adancime de culoare. Pentru aceasta vor trebui rulate urmatoarele comenzi:



nano vnc.sh  

Comanda de mai sus va crea si va deschide in editorul de text numit "nano" fisierul vnc cu extensia .sh. In acest fisier vor fi scrise seatarile mai sus mentionate.





#!/bin/sh
vncserver :1 -geometry 1280x1024 -depth 24 -dpi 96



Dupa editare apasati simultan "CTRL+X" pentru inchidere si apoi "y" pentru salvare. Frumusetea Linux-ului este ca orice fisier poate fi executabil, asadar dupa logare  putem porni server-ul cu setarile mai sus mentionate. Pentru a face acest lucru posibil se introduce urmatoare comanda:



sudo chmod +x vnc.sh



Acum ori de cate ori doriti sa porniti server-ul tot ce aveti de facut este sa tastati in terminal comanda:


./vnc.sh

Acum dupa toata bataia asta de cap haideti sa vedem un mic filmulet cu VNC-ul in actiune:





3. Accesarea fisierelor...

Cand am inceput sa scriu tutorialul de fata m-am gandit sa instalez pe Pi un server Samba. Datorita faptului ca instalarea este greoaie si pe alocuri frustranta am incercat sa gasesc "workaround-uri" si am gasit MobaXterm. Varianta gratis ne permite sa facem browsing prin SFTP si unde mai pui ca este si client de SSH. Nu sunt prea multe de explicat aici. In filmultetul de mai jos am creat un fisier python direct in Raspberry dupa care l-am rulat  din SSH:





Cam atat pentru articolul de azi. Poate a fost un pic cam sec dar credeti-ma a fost absolut necesar. In articolele urmatoare ne vom juca si cu GPIO-ul.

Sa auzim de bine!

Un comentariu: