This is an old revision of the document!
Grupa: 334CC
Proiectul propune realizarea unui sistem care să orienteze un telescop de masă după un anumit corp ceresc. Ne vom baza pe o bază de date stocată pe un telefon / laptop, din care vom putea selecta un anumit corp ceresc. Coordonatele corpului ceresc și ale telescopului vor fi transmise prin bluetooth la Arduino, care va face calculele bazat pe inputul de la un giroscop și va reorienta telescopul prin intermediul a 2 motoare pas cu pas.
Scopul este de a avea un sistem cât mai precis care să poziționeze un telescop pentru a privinde în fov-ul (field of view-ul) său un anumit corp ceresc. Anumite ajustări pot fi făcute ulterior și de factorul uman, însă trebuie minimizate.
Utilizatorul va selecta un obiect ceresc (ex. stea, planetă) dintr-o listă pusă la dispoziție în interfața grafică a aplicației. Coordonatele acestui obiect ceresc vor fi apoi trimise la Arduino prin bluetooth, folosind modulul HC06.
Pe lângă coordonatele corpului după care vrem să ne orientăm, avem nevoie și de latitudinea și longitudinea la care se află telescopul, pe care le vom transmite tot prin bluetooth, profitând de sistemul GPS de pe telefonul mobil.
Telescopul va fi prins într-o montură de tip Donbas, care permite rotația acestuia în plan orizontal și transversal, pentru o orientare cât mai simplă. Cu ajutorul unui giroscop, vom măsura unghiurile făcute de telescop față de o poziție de referință.
Corelând datele primite prin Bluetooth cu cele primite de la giroscop, Arduino va face calculele necesare pentru a vedea cum trebuie să corecteze poziția telescopului, după care îi va modifica poziția rotind telescopul în cele 2 planuri, prin intermediul a 2 motoare pas cu pas cu pas (folosim steppere pentru o mai bună precizie de poziționare).
Partea mecanică a proiectului urmărește simularea unei monturi Donbas, folosită de astronomii amatori pentru ușurința de poziționare a telescoapelor (doar două grade de libertate). Șuruburile clasice care permit telescopului să se rotească în jurul axei transversale și orizontale au fost înlocuite de axele a două motoare pas cu pas, care vor realiza orientarea automată. Prinderea a fost realizată pe un cornier suficient de mare pentru a permite prinderea telescopului.
Pe lângă modulul bluetooth și giroscop, al căror scop a fost descris în introducere, am ales să nu controlez direct prin Arduino motoarele pas cu pas, ci să folosesc 2 drivere adiționale (câte unul pentru fiecare motor). Motoarele pas cu pas au un pas standard de 1.8 grade, precizie insuficientă pentru scopul proiectului. Folosind driver-ele A4988, am putut reduce de 16 ori pasul motoarelor, obținând astfel o precizie de 1.8 / 16 = aprox. 0.11 grade, deci de ordinul zecimii de grad hexazecimal.
Mediul de dezvoltare: Arduino IDE
Pentru comunicarea cu giroscopul am utilizat biblioteca i2cdev. De asemenea, am avut nevoie de un cod inițial pentru a afla eroarea giroscopului și a face corecțiile necesare.
Pentru comunicarea cu modulul bluetooth am avut nevoie de bliblioteca SoftwareSerial, care este însă builtin și nu a trebuit instalată.
Algoritmul pleacă de la presupunerea că telescopul este inițial orientat către un punct de referință (în acest caz, nordul astronomic). După ce datele obiectului ceresc, ora curentă și locația geografică au fost primite prin bluetooth, calculăm diferența dintre poziția noastră inițială și poziția finală la care trebuie să ajungă telescopul pentru a prinde în câmpul său vizual target-ul de pe bolta cerească.
Deplasarea telescopului are loc în 2 pași:
Utilizând componente nu foarte costisitoare, am reușit construirea unui sistem de orientare a telescopului la un preț rezonabil având în vedere precizia oferită. De asemenea, sistemul se folosește pe cât posibil de laptop, pentru a evita utilizarea unor componente suplimentare, cum ar fi un modul GPS, și pentru a oferi o interfață cât mai utilă utilizatorului.
În imaginea de mai jos poate fi observat sistemul obținut (cu montajul electronic încă în stadiul de breadboard).
Deși aparent simplu, Arduino oferă posibilitatea de conectare pentru o serie largă de module, ceea ce permite utilizarea sa nu doar în prototipuri demonstrative, ci și în proiecte în care precizia e un element esențial. De asemenea, acesta poate fi combinat cu computer-ul, pentru a oferi interfețe cât mai accesibile.
Schema în eagle: schema_electrica_telescop.zip
Codul - publicat într-un repository github