This is an old revision of the document!
Proiectul meu este o barcă cu propulsie aeriană controlată prin Bluetooth, utilizând un Arduino ca microcontroler central. Scopul acestui proiect este să de a construii o barcă ușoară, eficientă și ușor de controlat de la distanță. Ideea de la care am pornit a fost construirea unui vehicul aeroglisor, dar am decis să simplific tema la o barcă cu propulsie aeriana.
Barca noastră cu propulsie aeriană va folosi un Arduino Uno ca microcontroler, conectat la un modul Bluetooth HC-05 pentru comunicarea cu un dispozitiv mobil. Motoarele de directie vor fi controlate prin intermediul Arduino, iar un ventilatoarele de CPU de 12V vor fi folosite pentru a furniza forța de propulsie, iar întregul ansamblu va fi montat pe o structură ușoară realizată din foamboard și spumă. Alimentarea se va face folosind baterii de 9v.
Software-ul care controlează barca constă dintr-un script Arduino și un schiță Processing.
Script Arduino: Scriptul Arduino rulează pe barca RC, citind comenzi de pe portul serial (prin bluetooth). Acest script citește un caracter de comandă, urmat de o singură cifră (0-9) și ajustează viteza și direcția motoarelor bărcii în funcție de comandă (folosind PWM). Caracterul de comandă determină ce acțiune să se ia. Comenzile sunt:
'C': Verifica starea sistemului. Răspunde cu “OK”. 'V': Verifica tensiunea. Răspunde cu o citire analogică (ADC) de la A0. 'B': Controlează starea LED-ului. Dacă valoarea este 0, LED-ul este oprit, iar dacă valoarea este 1, LED-ul este pornit. 'W': Controlează mișcarea înainte. Viteza motorului este proporțională cu valoarea primită (9-valoare). 'Q', 'E', 'A', 'D': Controlează motoarele stânga și dreapta pentru viraj și mișcare înapoi. 'S': Opriți toate motoarele.
Schiță Processing (Java): Acest script rulează pe un calculator, primind intrări de la un controler Xbox și trimițând comenzi la Arduino prin comunicația serială pe bluetooth. Intrările de la controlerul Xbox sunt:
Triggerele LT, RT: controlează viteza bărcii. Axa orizontala a joystick-ului din stânga: controlează direcția bărcii. Butonul 'A': Activează / dezactivează ventilatorul principal de la bord. Butonul 'B': Blocheaza / deblocheaza ventilatorul principal. Butonul 'X': Solicită tensiunea de la Arduino (pentru monitorizarea bateriei). Acest script utilizează biblioteca Game Control Plus pentru a citi intrările de la controlerul Xbox.
valorile citite de la controller sunt afisate grafic si utilizate pentru a calcula viteza si directia motoarelor astfle incat sa efectueze cat mai rapid actiunea dorita (ex: un viraj stanga va porni motorul din dreapta inainte si motorul din stanga inapoi, provocant o intoarcere pe loc)
directia si puterea motoarelor este afisata si pe ecran prin 2 bare verticale a caror lungime este proportionala cu viteza motoarelor.
Nivelul de tensiune este de asemenea afișat, oferind o citire în timp real a nivelurilor bateriei bărcii.
Scipt-ul va trimite comenzi doar atunci cand utilizatorul schimba starea unui buton sau joystick… obtinandu-se astfel o utilizare eficienta a canalului de comunicatie.
În acest fel, controlerul Xbox poate fi folosit pentru a controla în mod wireless viteza și direcția bărcii RC, monitorizând în același timp nivelurile bateriei și starea sistemului în timp real.