
-----------------------------------
varadinagypal
26 Noi 2022 22:31

ESP32, ATMega328P =&gt; eq3, autoguider
-----------------------------------
La Soarele in CaK mi-a sugerat colegul Erwin sa prezint cum si ce cu controller-ul EQ3 pe care l-am construit din senin, asa ca voi folosi prilejul pentru a-mi prezenta gadget-urile. A se mentiona, sunt solutii de care aveam nevoie obiectiva, un fel de impletim cacatul pana facem un bici, dar sa si pocneasca; si in acelasi timp un deget mijlociu ferm, tinut si bagat in fata circumstantelor naspa.

Deci, setup. Avem urmatoarele:

calculator: mountpusher, o aplicatie scrisa in lazarus. Preia imaginea live view din sharpcap, prin windows api si calculeaza comenzile ST4 necesare, care se trimit prin UART la soapbox. In acelasi timp gestioneaza fisierele rezultate din inregistrare, redenumindu-le conform filtrului/identitatii, vezi mai jos.

soapbox: savoniera, intentionat, ca semn de revolta ca o cutie de plastic costa mai mult decat un microcontroller care totusi face ceva. Un arduino nano sau un esp32, emite comenzi ST4 si e un fel de hub pentru celelalte accesorii. Da, toata logica incape pe un arduino nano in 2kB RAM, noua versiune de ESP32 e mai mult o fita, ca are LCD si i-am pus ceva butoane. Exista 4 versiuni, toate compatibile, doua cu esp32, si doua cu nano inauntru, diferite doar la perifericele implementate: cu sau fara ecran, cu sau fara mufa si circuitul RS232 pentru HEQ5, cu sau fara butoane de functii, cu sau fara input de encoder, feedback de montura, cu sau fara control focalizator inclus

eq3: un esp32 cu doua a4988 care controleaza eq3 cu motoarele din fabrica, afiseaza status si executa comenzile ST4 si cele de radec manual, la vitezele dorite, canal separat. Fiindca eram in graba, si nu aveam extensie GPIO, o parte din butoane sunt gestionate printr-un arduino nano, care raporteaza pe serial starea butoanelor. Ca extensie, tot pe un port ST4, mai are o cutie cu butoane radec, pentru ca cutia/doza nu incape in palma.

filterwheel controller si identitate: in timpul pandemiadei (govidiotismelor de cine pe cine inchide si asculta imnul de la coltul strazii, am inteles ca in B a fost mai lejer, eh, domnilor, in Cluj au fost tare tocilari autoritatile si ne vanau cu drone) am cumparat o roata de filtre manuala, si am motorizat-o, cu optocuplor etc, respectand principiul graceful degradation, sa functioneze si de pe o baterie, deci motoras dc. Pe pinii ramasi pe RJ45 folosit, un pin analogic citeste valori si in eeprom are text asociat, deci daca nu e roata de filtre conectata, ci doar un rezistor cu o valoare de 2k, stie ca e tubul de hidrogen alfa etc. Evident, i-am facut si un simulator, un potentiometru adica... 

focalizator: toate le am motorizate cu micromotor cu ditamai reductor. Fiindca motorul de skywatcher original, pe care il am pe tubul 150/750 e tot un motor DC, are patru fire ca aveau RJ11 la indemana banuiesc, si sa mai puna amperaj in stanga-dreapta, ghici ce. Pana si acel motor este compatibil cu focalizatorul, bazat pe un encoder, L298N si tot un nano. Accepta comenzi si pe serial, dar mie imi place manual touch, trei viteze si reactie dinamica, ca si la cursorul mouse-ului, daca il misti fin, reactioneaza fin, daca il bruschezi, trage de instrument si el. Nu mai vreau focalizator "de fabrica"

-----------------------------------
varadinagypal
26 Noi 2022 22:36


-----------------------------------
si iata aici coltul astro din R&D-ul multinationalei la care imi petrec, printre altele, si pauzele de masa:

Portret de familie, dispozitive pe care le-am construit &#537;i programat pentru ersatz-obsi, adică pauza de masă la job, singurul loc de unde am acum acces la cer. Codul sursă etc găsi&#539;i pe site-ul meu sau mă întreba&#539;i PM.
1 (sus): sursă multicanal, A: sursă de tensiune &#537;i monitorizare de tura&#539;ie ventilator, cu alarmă, arduino nano; B: sursă de curent pentru răcire Peltier; C: sursă de tensiune 5V &#537;i D: sursă de tensiune 12V
2 (doză, stânga): controller roată &#537;i identită&#539;i filtre, motorizare roată etc, microcontroller arduino nano, ATMEga 328P
3 (doză, mijloc): controller EQ3. Cel de fabrică a ie&#537;it la pensie. Asta &#537;tie comenzi ST4, are un ecran OLED, diferite moduri etc, microcontroller ESP32
4 (doză, dreapta): vechea _săpunieră_, această versiune cu ESP32, prime&#537;te comezni UART &#537;i emite comenzile ST4, &#537;i comunică cu perifericele de mai sus.
5 (jos, săpunieră) controller focalizator, arduino nano, controlează motora&#537;e DC
6 (jos, doză) simulator/tester de identită&#539;i pentru controllerul de roată de filtre de la punctul 2, un banal poten&#539;iometru

-----------------------------------
varadinagypal
26 Noi 2022 22:41


-----------------------------------
aici sursa are deja si un canal C

btw, deci ventilatorul (care raceste radiatorul de pe elementul peltier) e de calculator, cu senzor hall, si sursa face beep urat daca el nu se roteste calumea

-----------------------------------
varadinagypal
26 Noi 2022 22:45


-----------------------------------
autoguiderul merge cu discul soarelui, detalii de suprafata precum pete solare, planete, stele duble -- dar nu si cu deep sky, fiindca algoritmul preia imaginea live view din sharpcap. Si nici nu e menit sa aiba acuratetea necesara pentru dso, cum nu are nici EQ3, mecanic vorbind.

softul in pricina, mountpusher, e fereastra din coltul dreapta sus

-----------------------------------
varadinagypal
26 Noi 2022 22:47


-----------------------------------
ironia sortii e ca de cand am inceput sa dezvolt si am cam dus la extrema softul de planificare astrofoto csillagtura.ro/aladin am facut foarte putine poze deep sky, iar in ultimii ani un fucking zero barat

-----------------------------------
varadinagypal
26 Noi 2022 22:49


-----------------------------------
clipe din reverse engineering hand controller-ul original SkyWatcher de EQ3, pe care l-am modificat deja sa accepte comenzi ST4

-----------------------------------
varadinagypal
26 Noi 2022 22:50


-----------------------------------
totul e teatru, zambet si plans

-----------------------------------
varadinagypal
26 Noi 2022 22:54


-----------------------------------
adaugarea unui port ST4 e trivial, as it turns out, pentru controllerul EQ3 Skywatcher din fabrica, fiindca pinii de buton sunt pullup-uri, deci 4 pullup si un GND expus... fix ca la ST4, atata ca vitezele vor fi cele pentru butoane, 2x, 4x, 8x -- asta daca nu intervine un microcontroller sa faca un fel de PWM la un puls lung de 200ms, cu duty de 25% si tadadam, avem viteza de 0.5x, sau ceva de genul.

-----------------------------------
Erwin
26 Noi 2022 23:25


-----------------------------------
Mul&#539;umim, Paly-baci! D-aia n-ai vreme de observa&#539;ii, că proiectezi circuite, lipe&#537;ti fire, piese, scrii programe... 

Cum ziceam, unii ne-am mul&#539;umit să le luăm de gata, onStep sau similare. Am făcut &#537;i myfocuserpro v.2 cu softul compatibil ASCOM &#537;i INDI dar nu pentru mine, al meu este oarecum similar cu al tău, dar este cu motor pas-cu-pas mic, cu 2 butoane &#537;i afi&#537;aj de pa&#537;i, dacă &#539;ii pu&#539;in apăsat face un pas, dacă &#539;ii mai mult face mai mul&#539;i iar după 10 pa&#537;i o ia la goană... Totul cu o simplă buclă în Arduino Pro micro. Afi&#537;ajul este cu LED ro&#537;u, TM1638, excelent pentru noapte, se reglează intensitatea, la un termometru l-am făcut &#537;i să scrie text, e foarte versatil, recomand! :)

-----------------------------------
varadinagypal
26 Noi 2022 23:38


-----------------------------------
https://www.youtube.com/watch?v=dqm8xbSFEmg

https://www.youtube.com/watch?v=f209CB4MymA

https://www.youtube.com/watch?v=qM8byuVORDM

https://www.youtube.com/watch?v=Rgnn1bN0l34

-----------------------------------
varadinagypal
27 Noi 2022 11:02


-----------------------------------
diagrama bloc

-----------------------------------
varadinagypal
27 Noi 2022 11:21


-----------------------------------
suita de softuri mai cuprinde si din astea, estimator de lungime video planetar vs rezolutie pixel 

https://csillagtura.ro/estimating-the-length-of-planetary-videos/

am de toate, numa sub cer nu prea ajung

-----------------------------------
varadinagypal
27 Noi 2022 11:33


-----------------------------------
cand ma fac mare, o sa am un observator de al meu, pe un munte, fara manelisti si lumini, si cer senin

nu ma mai fac eu mare niciodata

-----------------------------------
varadinagypal
27 Noi 2022 14:52


-----------------------------------
Nu in ultimul rand, prin jucariile astea putem invata mai mult decat de la asa zisi profesori universitari cumnatu lu nepotu parlamentar cravata cu doctoratu' luat din pixul dracului, sau in caz mai fericit, cumparat de la "un pustean care pleaca oricum in Germania" (true story)

Deci, la sapuniera am javascript care genereaza cod C, din cauza ca ATMega328P are arhitectura Harvard, dar modificat, ceea ce inseamna ca un string constant literal ocupa RAMi in loc sa ramana fericit in flash (cu exceptia progmem care e lame ca nu merge pointer arithmetic). Deci am scris javascript care genereaza cod C (si implicit arduino) pentru a satisface interfata strncmp(char buff, LITERAL, LITERAL's length) spre exemplu. In ideea ca javascript sau JSON tot poate fi citit, iar codul generat nu e editat oricum. O complexitate Kolmogorov se mai ascunde aici printre randuri.

In schimb, ESP32 e Harvard cu toate adresele mapate intr-un spatiu de 2^32, deci cam totul e posibil.

-----------------------------------
varadinagypal
30 Noi 2022 01:49


-----------------------------------
Chiar azi am modificat codul ca ultimele trepte de viteze din lista 0.25x 0.5x 1x 2x 4x 8x 16x etc sa fie reasignate vitezelor _max_ si _max_/2,  cat duc motoarele de fabrica (sunt slabe) si cat le trebe bobinelor sa-si miste statorul (cam mult) fara sa intre in oscilatie.

Si fiindca ESP32 cu afisaj, se si afiseaza.

-------

De publicat... nu stiu, e foarte custom tot, am zero intentii sa comercializez treaba, ca pornea de la ceva user config, interfata, calibrare etc -- adica in R&D la din astea lucrez si e pain in the ass cu utilizatorul, rau de tot. O foarte mare parte din orice program se duce la interactiunea fool proof cu utilizatorul
