Nume: Alexandra-Ioana Cune
Grupă: 336CC
Propeller car este o masinuta controlata cu ajutorul unor elice, prin intermediul unei telecomenzi.
Proiectul este alcatuit din doua parti principale: masinuta propriu-zisa legata la un arduino ce va comunica cu un dispozitiv separat, telecomanda, prin intermediul unui modul radio. Prin telecomanda se vor putea seta directia de mers a masinii cu un joystick si viteza de deplasare (viteza de rotatie a elicelor) cu un potentiometru.
Utilitatea acestui proiect rezida preponderent in faptul ca acesta poate scala. Intregul circuit amplasat pe masina poate fi utilizat si pe alte mijloace de transport, de exemplu o ambarcatiune.
Functionalitatea de baza:
Masinuta si telecomanda vor fi conectate prin intermediul modulului radio. Cele doua componente vor avea cate o sursa de alimentare si cate un Arduino UNO incorporat. Joystick-ul amplasat pe telecomanda va avea efect asupra directiei masinii, el controland servomotorul care va fi legat de roata din fata care va da sensul de mers. Viteza este controlata prin intermediul potentiometeului. Rotind de acesta se va modifica viteza de rotatie a motoarelor cu elice atasate la spatele masinii, ele fiind controlate simultan printr-un Motor Driver L293D.
Lista de piese:
In transmitter se citesc date de la joystick si potentiometru utilizand functia analogRead()
. Aceste date sunt stocate intr-o structura 'Data_Package'
struct Data_Package { int dir = 0; int power = 0; };
care va fi transmisa prin modulul radio, receiver-ului.
Utilizand biblioteca RF24.h, am dispus de numeroase functii de manipulare a semnalelor radio. Astfel, transmitter-ul l-am setat pe modul: stopListening
, folosind functia corespunzatoare. In loop() acesta are rolul de a citi datele mentionate mai sus si de a le transmite mai departe prin comanda :
radio.write(&data, sizeof(Data_Package));
In receiver se seteaza la inceput, in functia de setup, pinul pe care functioneaza servo-ul, starea modululi radio: startListening
, dar si pinii prin care sunt controlate cele 2 motoare si vitezele lor.
In loop se verifica conectivitatea cu celalalt modul radio if (radio.available())
, iar daca acestea pot comunica, receiverul citeste datele trimise si le stocheaza intr-o structura ca cea mentionata mai sus.
radio.read(&data, sizeof(Data_Package));
Cu datele obtinte, se modifica prin data.dir directia servo motorului, si prin data.power viteaza de rotatie a motoarelor. Tot aici sunt pornite motoarele si li se atribuie un sens setand cate un pin pe HIGH si celalalt pe LOW.
Proiectul neamplasat pe macheta:
Telecomanda:
Masina:
Macheta proiect:
Telecomanda:
Masina: