În Tutoriale

Controlarea unui robot folosind Javascript – Partea I

controlarea unui robot cu JavaScript

De la apariția nanocomputerelor, programatori din toate colțurile lumii au început să scrie cod pentru a controla dispozitive de la distanță, folosind internetul.

Majoritatea articolelor pe această temă aleg ca limbaj PHP sau Python, iar comenzile au o mică întârziere, inacceptabilă pentru controlul unui robot. Această serie de articole își propune să descrie în detaliu cum putem construi un robot care să poată fi controlat în timp real din browser folosind Javascript.

Dacă titlul articolului ți-a stârnit interesul, înseamnă că, oricare ți-ar fi vârsta, copilul din tine încă vrea să se mai joace. Partea cea mai frumoasă este că îți vei putea folosi cunoștințele de front-end pentru a-ți crea propria jucărie. Când vei termina de citit această serie de articole, vei putea să îți construiești un robot similar cu cel din clipul de mai jos sau să folosești cunoștințele acumulate pentru aplicații mai complexe.

Înainte de a începe, iată câteva precizări legate de structura acestei serii de articole:

  • Partea I – Vom face o scurtă introducere a proiectului, a componentelor hardware necesare și a modului în care se conectează acestea. Vom instala Raspbian și vom face configurările pentru a ne conecta la rețeaua Wi-Fi;
  • Partea a II-a – Vom asambla șasiul și vom conecta modulele între ele;
  • Partea a III-a – Vom instala node.js pe Raspberry Pi și vom scrie codul care se ocupă cu transmiterea comenzilor în timp real din browser către motoarele robotului.

Componentele hardware

Proiectul necesită achiziționarea unei serii de componente hardware. Din fericire, acestea pot fi procurate cu ușurință.

  • Kit robot senile – conține șasiul, senilele, motoarele și ustensilele necesare pentru asamblare;
  • Driver motoare – este comandat de Raspberry Pi și are rolul de a alimenta motoarele;
  • Alimentator Micro USB – pentru alimentarea Raspberry Pi în perioada de development. Poate fi folosit cu success un încărcător de telefon cu mufa Micro USB;
  • Cablu HDMI – folosit pentru conectarea Raspberry Pi la un monitor cu port HDMI;
  • Acumulator USB – pentru alimentarea Raspberry Pi pe șasiu. Poate fi folosit orice alt model cât timp este suficient de mic și ușor pentru a putea fi montat pe șasiu;
  • Bloc de baterii – motoarele necesită o sursă de curent separată de Raspberry Pi. Am ales folosirea bateriilor;
  • Wi-Fi dongle – dacă dorim ca robotul nostru să se poată mișca liber, vom folosi o placă de rețea wireless conectată la USB;

De ce Raspberry Pi?

Vom folosi Raspberry Pi deoarece este ușor, se poate alimenta de la baterii, poate rula Linux și dispune de porturi GPIO ce pot fi folosite pentru a conecta senzori sau pentru a alimenta consumatori. Singura limită este practic imaginația noastră.

Deși există alternative precum BeagleBone sau HummingBoard, am ales Raspberry Pi pentru prețul mai mic și comunitatea puternică din spatele proiectului.

Cum funcționează?

Raspberry Pi este cea mai importantă componentă a proiectului pentru că aceasta rulează serverul care va asculta comenzile trimise de browser și va controla pornirea și oprirea motoarelor. Se alimentează folosind acumulatorul menționat mai sus.

Pentru conexiunea la internet vom folosi un Wi-Fi dongle care se conectează la portul USB al Raspberry Pi.

Porturile GPIO (General Purpose Input Output) ale Raspberry Pi sunt o interfață fizică între Pi și lumea exterioară. Ne putem gândi la ele ca la niste switch-uri programabile ce pot fi pornite sau oprite. Atunci când sunt pornite, acestea emit 3,3V și nu pot alimenta direct motoarele așa că avem nevoie de un driver de motoare. Acesta este comandat de către Raspberry Pi și, similar cu un releu, folosește o sursă de alimentare separataă pentru a alimenta motoarele. Doar că este un pic mai inteligent și putem specifica inclusiv sensul de rotație. Mai multe despre acest lucru în partea a II-a a articolului.

articol ctrl-d
 

Instalare Raspbian pe Raspberry Pi

Raspbian este un sistem de operare bazat pe Debian optimizat pentru hardware-ul Raspberry Pi.

Pentru acest pas vom avea nevoie de:

  • Raspberry Pi
  • Alimentator 5V micro USB
  • Cablu HDMI si un monitor conectat la Raspberry Pi
  • Tastatura si mouse conectate la Raspberry Pi

Cea mai ușoară modalitate de a instala Linux pe Raspberry Pi este folosirea NOOBS installer.

  • Descărcăm arhiva NOOBS de pe site-ul Raspberry Pi;
  • Descărcăm SDFormatter pentru sistemul tău de operare;
  • Formatăm cardul folosind SDFormatter. Setările implicite sunt suficiente;
  • Extragem conținutul arhivei NOOBS pe cardul Micro SD;
  • Inserăm cardul în slotul Raspberry Pi și conectăm alimentarea;
  • Vom fi întâmpinați cu un meniu în care vom putea alege ce OS să instalăm. Alegem Raspbian.

Utilizatorii de Windows pot folosi Win32DiskImager pentru a scrie imaginea pe cardul SD. O listă de carduri SD recomandate poate fi consultată aici.

Credențialele inițiale de login sunt utilizatorul `pi` și parola `raspberry`. Acestea pot fi schimbate în pasul următor.

Configurarea sistemului

La prima pornire suntem întâmpinați de meniul de configurare. Aici putem schimba parola, seta timezone-ul, etc. La următoarea pornire meniul nu va mai fi afișat, dar îl putem accesa folosind comanda:

sudo raspi-config
articol ctrl-d-2

Configurarea WI-FI

Recunoașterea plăcii de rețea USB wireless

Conectăm adaptorul USB pentru wireless și repornim Raspberry Pi. Sunt mai multe metode pentru a verifica dacă adaptorul a fost recunoscut. Cea mai simplă este prin tastarea:

ifconfig

Ar trebui să vedem o listă de adaptoare pentru rețea. Pe noi ne interesează doar wlan0.
articol ctrl-d-3

O metodă alternativă ar fi listarea perifericelor conectate la porturile USB folosind:

lsusb

Lista ar trebui să conțină adaptorul wi-fi.

articol ctrl-d-4


Conectarea la rețeaua Wi-Fi

Cea mai simplă modalitate pentru a ne conecta la rețea este folosind interfața grafică. După pornire tastăm:

startx

Pe desktop avem un shortcut către WiFi Config cu ajutorul căruia putem selecta rețeaua și putem introduce parola. După conectare putem face logout pentru a părăsi interfața grafică, iar pentru a afla adresa IP rulăm din nou comanda ifconfig. Setările vor fi salvate iar după restart Raspberry Pi se va conecta automat la rețea.

Conectarea la Raspberry Pi

Acum Raspberry Pi are acces la internet așa că vom putea să accesăm linia de comandă folosind SSH.

ssh pi@adresa.ip.raspberry.pi

Updatarea pachetelor

Pentru a obține ultima versiune a programelor instalate rulăm:

sudo apt-get update

sudo apt-get upgrade

 

***

 

Aici se încheie partea I a articolului, unde am aflat, în linii mari, cum funcționează proiectul, care sunt părțile componente, am instalat Raspbian și am făcut setările pentru conectarea la wi-fi. În partea următoare vom vedea cum asamblăm șasiul și cum interconectăm modulele.