
-----------------------------------
bogdan.caseriu
15 Apr 2010 00:08

Soft guiding general purpose home made:))
-----------------------------------
Poate suna ciudat, dar se poate face relativ usor.
Se ia una bucata librarie Aforge.Net.Framework de aci: http://www.aforgenet.com/framework/downloads.html

Se impreuneaza cu ceva conostiinte de VB.NET sau C#.Net (pentru genii) + olea` de electronica si rezulta un guider pentru fiecare.

Lasand gluma la oparte, ideea nu e chiar deplasata. Librariile Aforge.Vison (apropos, total gratuite) ofera suport de Motion Detection la nivel de pixel. Deasemenea portul serial al calculatorului (sau un adaptor USB - Serial) e banal de controlat in VB.Net. Cele 2 de mai sus combinate intr-o aplicatie + putina matematica + putin ajutor din partea celor ceva mai experimetati in tainele ascensiei si declinatiei + un controler de motorase pas cu pas, si alea home made (nu costa mai mult de 20 RON) = GUiding for Evrybody for Free. 

Idea e ca am inceput constructia unei platforme ecuatoriale pentru un Skywatcher 254/1200  cu ghidaj cu ajutorul a ceea ce am "desenat" mai sus. 

La sfarsitul saptamanii viitoare revin cu sursa de VB.NET pentru experimentul de guiding (deaocamdata), si cu progresul lagat de constructia platformei ecuatoriale. Cand e gata aplicatia  public si versiunea compilata, gratis.

Sper sa nu fiu criticat de "titanii" din domeniu pentru aceasta idee, dar cred ca e realizabila (in timp, bineinteles :)) ).

Va multumesc!
PS: Sugestiile  sunt binevenite.

-----------------------------------
Doru Dragan
15 Apr 2010 08:21


-----------------------------------
Nu o sa gasesti pe nimeni in Romania sa critice ceva ce se da GRATIS :D

-----------------------------------
Laurentiu
15 Apr 2010 10:41


-----------------------------------
Subscriu !  :D

-----------------------------------
nobody
15 Apr 2010 12:14


-----------------------------------
Cum vrei sa faci tracking-ul folosind motion detection ?

-----------------------------------
bogdan.caseriu
15 Apr 2010 22:29


-----------------------------------
Teoretic, relativ simplu. Definesc zona de monitorizare a detectorului in cadrul imaginii capturate, setez nivelul de luminozitate la care detectorul sa "raspunda", si vad in ce directie se misca obiectul monitorizat. In momentul in care detectorul "miroase" deplasarea obiectului, trimit comenzi prin portul serial catre controlerul motorului. Controlerul il fac pe baza unui circuit I2C programabil, si astfel obin si flexibilitate mai mare, mai exact comenzi catre motor gen speed-up, slow- down etc. Si daca tot pot monitoriza obiectul pe X si pe Y,  as putea sa motorizez si declinatia si sa aplic mici corectii si acolo. Teoretic:). Practica probabil o sa-mi traga ceva palme.

-----------------------------------
bogdan.caseriu
09 Mai 2010 21:30


-----------------------------------
Salutere din nou!
Partea cu softul e putin mai complicata decat ma asteptam. Asa ca trec la platforma ecuaturiala. Iata neste poze cu ce construisi pana acum. Mai am de treaba la ransforsarea intregii structuri, ca e cam "balalaie", si de fapt cred ca o s-o iau de la capat. Partea proasta e ca in urma calculelor, mi-am dat seama ca nu pot construi ceva low-profile, pentru ca magaoaia de telescop are montura mare, cu centrul de greutate sus. Am pierdut nopti multe, mi-am batut capul, si ceea ce se vede in poze a iesit. Motorul pasa cu pas l-am cumparat de pe okazii, momentan habar nu am sa-l folosesc, dar bine ca are o roata dintata :). Sectorul sudic nu este slefuit, dar dat fiind ca tratez tot proiectul ca pe o incercare nici nu ma agit. Parca as reface totul din metal sudat, ca am acces la un aparat de sudura, dar imi e sa nu fie prea greu.

Pareri, sfaturi, critici sunt bine-venite!

Va multumesc!

-----------------------------------
Mircea Pteancu
10 Mai 2010 16:57


-----------------------------------
Bogdan
iti urez spor la treaba si sper sa vedem cat mai curand poze realizate cu platforma ta ecuatoriala.Daca pricep eu bine,aceste platforme sunt ceea ce pe vremuri se numea ''masa Poncet"?Daca da,asta inseamna ca vei putea face poze cu orice aparat optic+foto fixat solidar cu platforma,nu numai reflectorul mentionat.

Pitoresc:asta imi aminteste despre un astroclub despre care am citit acum vreo 20 de ani si care  avea niste actiuni anuale pe teme astrofoto.Platforma lor ecuatoriala/masa Poncet era foarte mare , (nu mai tin minte trailer/macara,in orice caz un monstru mare din otel sudat).Participantii trebuiau doar sa-si aduca aparatul foto,direct sau fixat cumva la luneta,telescop,pe montura nu conta de care tip.Se instalau dumnealor vreo 20-30 de amatori cu aparatele pe platforma,lua fiecare in vizor ce voiau muschii lui,se pornea platforma ecuatoriala si nu aveau alta treaba decat sa apese pe declansator la inceputul si la sfarsitul expunerii.Ghidajul era centralizat iar amatorii serveau o mica plimbare ''ecuatoriala'' impreuna cu platforma si tot ce era pe ea!Mircea

-----------------------------------
nobody
10 Mai 2010 17:25


-----------------------------------
Ce fel de motor pas cu pas ai luat ?
Si controller-ul cu ce fel de chip vrei sa-l faci ? Neaparat I2C ?

La soft, de ce te-ai lovit ?
Nu stiu daca o biblioteca de motion detection este potrivita.
Cred ca poti analiza tu imaginea la modul mai simplu, in spirala dupa un punct de referinta.

-----------------------------------
bogdan.caseriu
11 Mai 2010 08:29


-----------------------------------
da, amuzanta povestea domnului Mircea :)), dar nu cred ca am de gand sa construiesc un roller - coaster in care sa-mi plimb toate neamurile:)). Oricum, mercy de urari :). 

Motorul pas cu pas este un Sanyo Denki 103H6701, la care intre timp am gasit si specificatile si tot ce trebuie sa stiu sa-l fac sa mearga. Probleme o sa mai am pe partea de reductie, dar cred ca o sticla de vin la vecinu` strungar rezolva si asta. Nu e neaparat sa merc pe ideea I2C, dar imi oferea flexibilitate mai mare pentru ca il puteam programa  Aforge.Robotics tot in VB.NET. Daca se va dovedi la fel de complicat
 ca si motion detection, o sa merg pe ideea unui controller clasic.

Pe partea de soft, treaba e nasoala. Ideea pe care am plecat, cu definirea zonei de urmarire e ceva mai complicata in VB pentru ca formele geometrice din System.Graphics nu sunt tratate ca obiecte ce au evenimente si metode, si nici macar nu pot fi desenate peste controlul VIdeo Player. Aici va fi nevoie de ceva "improvizatii" sau chiar de schimbarea conceptului. Sau de invatarea lui C# (putin probabil). 

Daca vrei Nobody sa detaliezi ideea cu "spirala" ca nu am inteles prea bine conceptul.


Ms!

Stima

-----------------------------------
Laurentiu
11 Mai 2010 09:44


-----------------------------------
1. pacat ca ai folosit placaj prea subtire si pal; sa nu te miri ca nu e stabila/rigida/rezistenta :-(

2. baietii de la Mures au facut de multa vreme o treaba ca asta si le-a iesit minunat: http://mures.astroclubul.org/Articole/jurnal_platf.html

-----------------------------------
bogdan.caseriu
11 Mai 2010 13:52


-----------------------------------
Asa este cu placajul, e subtire, dar din pacate momentan altceva nu am gasit. O sa-i fac un cadru din lemn de fag si sper sa fie destul de rigida. Proiectul celor de la Mures a fost si punctul meu de plecare, dar din pacate diferenta majora este ca telescopul lor e truss-tube cu centrul de greutate foarte jos, ceea ce zic eu ca le-a permis o constructie mai compacta.  Centrul de greutate la instrumentul meu e undeva la 63 cm pe verticala fata de platforma, si daca ar fi sa merg pe conceptul celor de la Mures, nu cred ca ar fi posibila functionarea corecta a platformei. Asa ca voi continua cu ceea ce am inceput.

Stima!

-----------------------------------
Laurentiu
11 Mai 2010 14:44


-----------------------------------
Foloseste, daca gasesti, placaj multistrat de minim 12 mm (eventual lipeste cu aracet 2 mai multe placi una peste alta - eu am facut deseori treaba asta cu rezultate optime). 

Poti incerca sa cobori centrul de greutate al telescopului adaugand in partea din spate a tubului o bucata de fier/plumb (daca nu te bizui sa incerci sa modifici tubul intr-unul truss).

-----------------------------------
bogdan.caseriu
12 Mai 2010 17:14


-----------------------------------
Ideea cu coborarea centrului de greutate este fantastic de buna, dar sincer sa fiu, momentan nu as face modificari la instrument, din considerente de nepricepere dar si financiare. Daca belesc ceva iremediabil, bugetul nu-mi permite alt instrument prea curand. Dar o sa perseverez pana imi iese asa cum am inceput:D.

Pe partea de soft am facut ceva progrese ieri, mai exact am reusit sa prind evenimentul de motion. Problema e ca libraria nu imi permite sa aflu in ce directie si cu cat s-a deplasat obiectul, ci doar ca s-a miscat. SI mai sunt probleme si cu parametrii de monitorizare, adica flexibilitatea din cadrul interfetei programului e 0, pentru ca toti parametrii sunt accesibili in sursa librariei, si, daca aduc modificari trebuie recompilata de fiecare data. 

Totusi se svoneste ca in VB2010 exista metode si evenimente la nivel avansat in interactiunea cu capturile de la camera web. Sper ca acolo sa am sanse mai multe sa imi duc la capat ideea. Daca nu, totusi mai am o speranta. Am descoperit ca pot converti fiecare cadru in bitmap si il pot analiza la nivel de bit. Sper sa reusesc sa determin zonele cu cea mai mare luminozitate, sa le monitorizez deplasarea si pe baza feedback-ului primit sa comand motorul.

Fac apel inca o data la Nobody sa detalieze ideea cu spirala ca imi este foarte neclara.
Ms!

Stima!

-----------------------------------
nobody
12 Mai 2010 17:23


-----------------------------------
Daca vrei Nobody sa detaliezi ideea cu "spirala" ca nu am inteles prea bine conceptul.

Ideea este sa stabilesti un punct ori o zona de referinta (steaua de referinta) si sa analizezi scimbarea de luminozitate a pixel-ilor de pe margine. Din aceasta analiza poti calcula relativ usor vectorul miscarii. Dar se poate intampla, din cauza neregularitatilor mecanice, sa ai o miscare mai ampla si atunci trebuie sa "cauti" dupa steaua pierduta iar cea mai buna metoda este s-o cauti in spirala de la ultima pozitie cunoscuta. O motorizare mai avansata "invata" aceste neregularitati predictibile si incearca sa le corecteaze inainte de a apare vizibile.

Daca vrei sa detectezi si rotatia iti trebuie doua puncte de referinta. Astfel vei avea doi vectori de miscare si orice diferenta intre ei indica o rotatie.

Pentru astrofoto e important sa folosesi fuzzy-logic si sa anticipezi miscarile pentru a avea o imagine stabila. Si nu sa fii tot timpul in urma stelei de referinta. De aceea mi se pare ca motion detection prin comparatia frame-urilor nu este cea mai potrivita metoda.

-----------------------------------
valy
07 Iun 2010 13:16


-----------------------------------
Eu vad problema mult mai simplu: desi teoretic motion detection este una generala ce se aplica unor obiecte ce se pot misca aiurea, totusi la stele e mai simplu. M-am gandit si eu initial sa fac asa ceva dar mi-am reconsiderat cerintele initiale si am ajuns la concluzia ca e mai simplu sa modulezi acceleratia si nu viteza de urmarire a obiectului. Evident la astro ai un avantaj: obiectul urmarit e simplu iar traiectoria e si ea simpla. Cazul general e intr-adevar destul de complicat dar nu merita efortul. In plus, avand o montura/platforma EQ se simplifica inca odata problema. In zilele urmatoare vreau sa imi reiau si eu proiectul de urmarit automat diverse obiecte plecand de la astfel de simplificari.
In plus faptul ca depinzi de un calculator e o problema asa ca inca se mai poate simplifica arhitectura cu un controler pt. drivere si niste butoane.
Mi-ar placea sa mai discutam despre problema, pana acum n-am mai avut vre-un fidbac adecvat.
http://valistoica.blogspot.com/2009/04/minitehnicus.html

-----------------------------------
nobody
07 Iun 2010 22:21


-----------------------------------
Treaba aceasta se face cu un microcontroller, nu cu Windows-ul.
Cum "modulezi acceleratia" ?

-----------------------------------
nobody
07 Iun 2010 22:38


-----------------------------------
Un pic de literatura:

AVR446: Linear speed control of stepper motor
http://www.atmel.com/dyn/resources/prod_documents/doc8017.pdf

Control of Stepping Motors
http://www.cs.uiowa.edu/~jones/step/

Generate stepper-motor speed profiles in real time
http://www.embedded.com/columns/technicalinsights/56800129?_requestid=101666

-----------------------------------
valy
07 Iun 2010 23:15


-----------------------------------
Treaba aceasta se face cu un microcontroller, nu cu Windows-ul.
Cum "modulezi acceleratia" ?
Merge si cu windowsul pana la o anumita viteza, modulezi dand impulsuri mai dese. Dar cel mai elegant e intr-adevar cu microcontroler.

-----------------------------------
tiberiugabriel
16 Iun 2010 14:38


-----------------------------------
Ma bag si eu in seama aici in discutia asta. Bogdan, sfatul meu e ca la inceput sa incerci sa comanzi motorul/motoarele pentru urmarire (siderala sau mai rapida). Nu iti trebuie microcontroler decat daca vrei sa te lipsesti de laptop/pc. Partea cu detectia de miscare e cam complicata, nu de alta dar s-ar putea sa te opresti din constructie si ar fi pacat.
Aici ti-am pus o varianta simpla de comanda a motorului pas cu pas pe portul paralel. 
http://electronics-diy.com/stepper_motors.php
Nu iti trebuie decat un driver, aici e folosit un ULN. Portul paralel poti sa-l programezi simplu in C, Visual C++, cu functia outportb(0x378,n);
Ceva de genu:

#include <stdio>
#include <dos>
#include <conio>

/********************************************/
/*This program set the parallel port outputs*/
/********************************************/

void main (void)
{
clrscr();            
outportb(0x378,0xff); /* output the data to parallel port */
getch();              /* wait for keypress before exiting */
}

Iti trebuie un bucla aici ca sa-ti reglezi viteza, sau functia delay. Deci tu scoti pe portul paralel(in hexa) o serie de biti, in asa fel incat sa polarizezi infasuraturile motorului (poate fi unipolar si bipolar). ULN (sau IC2) iti foloseste ca driver la 12 volti - comand coil.
Ok, cred ca te-am innebunit, apropo programul poti sa-l scri in Visual C++. pe windows. Asta e varianta mea de cod, tu poti sa folosesti ce dau ei in .Net. pe site.

Ideea e pentru inceput sa comanzi in orice directie motorul ala. Daca ai mai facut asa ceva te rog sa-mi spui, sa nu-ti dau informatii inutile. 

O zi buna si cer senin

-----------------------------------
nobody
16 Iun 2010 16:03


-----------------------------------
Windows-ul nu este un sistem de operare in timp real. Adica nu stii decat aproximativ cat dureaza un delay, daca apare o intrerupere, cat dureaza schimbarea de context intre procese. Asta se traduce, in cel mai fericit caz, prin jitter.

Pentru o miscare uniforma si pentru o acceleratie controlata iti trebuie timpi precisi, de ordinul microsecundelor, la generarea impulsurilor. Cu un Atmel la 20 MHz aceasta este o joaca. Il poti lega la computer pe port serial si sa-i trimiti doar directia, viteza, acceleratia si ce-ti mai trece prin cap. Fara multicore la 5 GHz si lupte incrancenate cu kernel-ul Windows-ului ori cu propriile-ti thread-uri.

-----------------------------------
auriga
16 Iun 2010 16:14


-----------------------------------
teoretic poti sa folosesi un os realtime: qnx, rtlinux, chiar windows ce...
autoguiderele software cum functioneaza pe os-uri non-realtime?

-----------------------------------
tiberiugabriel
16 Iun 2010 16:48


-----------------------------------
DA, ar putea fi o problema (dureroasa de windows). Dar, daca e asa de grava si simtitoare se face linux softul (e bazat pe C), aici nu cred ca se mai simte interventia sistemului de operare in delay. 

Din nou DA, ideal e sa folosesti un ATMega 16/32. Cel mai bine. Costa 30 de lei si e self programming (il programezi pe portul paralel - fara placa de programare). Tot merge ca la carte in cazul asta si e si portabil - scapi de un laptop/computer. Dezavantajul e ca trebuie sa implementezi o interfata(telecomanda) cu butoane, leduri.

Am experienta de ambele situatii. Cred ca nu sistemul de operare va fi cel care face probleme ci mai degraba monturile defectuase :D, melcii care nu au o miscare uniforma, motoarele, rotiile dintate. Adica mai degraba partea mecanica.

o zi buna

-----------------------------------
tiberiugabriel
16 Iun 2010 16:52


-----------------------------------
Am uitat sa concluzionez. Asadar, faceti totul pe windows/linux si prin portul paralel pentru ca costa foarte putin. ULN costa 20-30 de lei atata tot. Mai cumperi motorul unipolar. Iei de pe site programul (se pare ca varianta finala costa 2.5 euro) si ai un sistem de urmarire pe RA  :wink: 

ciao

-----------------------------------
tiberiugabriel
16 Iun 2010 17:02


-----------------------------------
Imi cer scuze, la vitacom un ULN2003 costa 3.5 Ron.

-----------------------------------
Erwin
16 Iun 2010 22:27


-----------------------------------
Tibi, cred că portul paralel este mai dificil de găsit în zilele noastre, notebook-urile nu mai au așa ceva... Din câte am văzut pe net în legătură cu comenzile de mpp este mai bine să folosești microcontroler. Are ceasul propriu destul de precis și poți regla prin software toți parametrii necesari. Motoare unipolare se pot găsi cel mai ieftin de la imprimantele vechi cu ace care mai zac ici-colo. Recomand ULN 2803 care are putere mai mare și permite comanda a două motoare simultan. Lângă Vitacom, pe strada Maica Domnului din București mai este un magazin care are astfel de componente și module de comandă mpp gata făcute:
http://conexelectronic.ro/produse.php?id=458

-----------------------------------
nobody
17 Iun 2010 01:01


-----------------------------------
@Erwin: Controller-ele acelea sunt adevarate. Permit controlul avansat al motorului prin impulsuri trapezoidale/sinusoidale. Isi regleaza automat si curentul in functie de sarcina. Singurul dezavantaj: pretul. Oricum, pretul se justifica daca vrei sa ai o miscare extrem de fina cu motoare pas cu pas. Cele mai avansate pot detecta si incarcarea motorului cat si nereguli la rotatie prin monitorizarea curentilor indusi. Adica este o abordare cat se poate de serioasa.

@tiberiugabriel: Exista module gata facute bazate pe Atmega cu butoane, afisaj, tot felul de interfete, inclusiv USB si ethernet. Un programator ISP pe port serial ori USB gata facut nu costa o avere si este compaibil cu toate soft-urile de programare. Linux/UNIX se confrunta cu aceleasi probleme la partea de real-time. Sunt un pic mai avansate, dar in cel mai bun caz au implementari care se numesc "soft real-time" si doar imbunatatesc predictibilitatea. Oricum nu se apropie de precizia unui microcontroller.

@auriga: La viteze foarte mici de rotatie (necontinuue) si raporturi mari de reductie se poate implementa simplist prin soft. Jitter-ul indus este neglijabil la ordinul zecilor de Hertzi. Dezvantajele la aceasta implementare este dinamica redusa si vibratiile provocate de regimul in impulsuri al motorului. La o miscare continuua lucrurile se schimba drastic.

-----------------------------------
tiberiugabriel
17 Iun 2010 08:59


-----------------------------------
@Erwin: Se gaseste adaptor de usb la paralel.

@nobody: Eu nu opresc pe nimeni sa-si programeze un microcontroler, ideea e ca nu stiu cati care citesc acest thread vor duce la sfarsit o asemenea munca. Asa ca am oferit varianta cea mai simpla. 

salutari

-----------------------------------
tiberiugabriel
17 Iun 2010 09:02


-----------------------------------
@nobody: Am oferit o varianta care se leaga de aceasta discutie, adica sa faci un sistem de ghidare care sa fie totusi controlat de pe PC/motion control etc.

-----------------------------------
valy
19 Iun 2010 01:35


-----------------------------------
@Erwin: Controller-ele acelea sunt adevarate.  Asta-i intradevar cool: http://conexelectronic.ro/produs.php?id=136139 ca sa nu mai zic de ala cu ecran. 
 
@tiberiugabriel: Exista module gata facute bazate pe Atmega cu butoane, afisaj, tot felul de interfete, inclusiv USB si ethernet. Un programator ISP pe port serial ori USB gata facut nu costa o avere si este compaibil cu toate soft-urile de programare.  Ai vazut pe la noi? Unde?


Linux/UNIX se confrunta cu aceleasi probleme la partea de real-time. Sunt un pic mai avansate, dar in cel mai bun caz au implementari care se numesc "soft real-time" si doar imbunatatesc predictibilitatea. Oricum nu se apropie de precizia unui microcontroller.
 Corect, Linux/unix asta normal nu e sistem real time decat eventual anumite versiuni care sunt real time pe bune.

@auriga: La viteze foarte mici de rotatie (necontinuue) si raporturi mari de reductie se poate implementa simplist prin soft. Jitter-ul indus este neglijabil la ordinul zecilor de Hertzi. Dezvantajele la aceasta implementare este dinamica redusa si vibratiile provocate de regimul in impulsuri al motorului. La o miscare continuua lucrurile se schimba drastic.
Din testele mele sub windows, sistemul de operare aloca unui proces timp de procesor odata la 32 milisec. Daca ii dai prioritate mai mare si daca ai multicore, poate ajunge si la 16 milisec. Asta inseamna ca precizia e pe undeva pe acolo, adica poti da semnale de comanda cu ~50hz. Dar daca windowsu se trezeste si face un winupdate vreo cateva secunde se opreste toata jucaria.

@Erwin: Controller-ele acelea sunt adevarate. Permit controlul avansat al motorului prin impulsuri trapezoidale/sinusoidale. Isi regleaza automat si curentul in functie de sarcina. Singurul dezavantaj: pretul. Oricum, pretul se justifica daca vrei sa ai o miscare extrem de fina cu motoare pas cu pas. Cele mai avansate pot detecta si incarcarea motorului cat si nereguli la rotatie prin monitorizarea curentilor indusi. Adica este o abordare cat se poate de serioasa.

@tiberiugabriel: Exista module gata facute bazate pe Atmega cu butoane, afisaj, tot felul de interfete, inclusiv USB si ethernet. Un programator ISP pe port serial ori USB gata facut nu costa o avere si este compaibil cu toate soft-urile de programare. Linux/UNIX se confrunta cu aceleasi probleme la partea de real-time. Sunt un pic mai avansate, dar in cel mai bun caz au implementari care se numesc "soft real-time" si doar imbunatatesc predictibilitatea. Oricum nu se apropie de precizia unui microcontroller.

@auriga: La viteze foarte mici de rotatie (necontinuue) si raporturi mari de reductie se poate implementa simplist prin soft. Jitter-ul indus este neglijabil la ordinul zecilor de Hertzi. Dezvantajele la aceasta implementare este dinamica redusa si vibratiile provocate de regimul in impulsuri al motorului. La o miscare continuua lucrurile se schimba drastic.


@Erwin: Se gaseste adaptor de usb la paralel.
Dar, doar ca din pacate asta nu replica porturile fizice (alea pe care le controlezi din program, din C). Am incercat si nu merge. 
Partea cu portul paralel e o problema la laptopurile mai noi: fie iti iei unul vechi cu port fie iti iei un docking station care are expansion port (inclusiv port paralel). De exemplu hp-ul meu are porturile fizice (are pinii) dar ii pot accesa doar punand un docking station (defapt are pe spate o mufa lunga cu multi pini - printre care probabil sunt si cei de paralel).

Eu am luat de aici http://www.hi-end.ro/driver-pe-4-axe-3a-bipolar-p-2625.html un controler (nu e asta ci unul mai simplu), am facut un programete simplu in C# care trimite semnalele de comanda catre driver si de aici la motor. Insa depinzi de PC cu port paralel. 
Comcluzia la care am ajuns e sa comanzi driverele dintr-un microcontroler cu butoane de stanga-dreapta, sus-jos. Insa asta presupune sa ai un microcontroler, alimentare, oscilator, alte sarmulite dupa caz, placa, soft de programare, placa de programat sau sa pui un student care se pricepe sa faca tot tacamul pt. 100 roni (dai anunt in camine). Solutia te face independent de laptor, de 220v, dar te face dependent de ochi: trebuie sa corectezi urmarirea din timp in timp in functie de precizia de urmarire a angrenajului (alinierea in pol, precizia melcilor, precizia microcontrolerului, etc).
Sicasa nu te complici cu luat motoarele, cred ca merge sa iei un eq5, doua motoare pt. ea si sa le comanzi cu un astfel de controler.
Parerea mea.

-----------------------------------
bogdan.caseriu
19 Iun 2010 07:55


-----------------------------------
Multumesc de sfaturi , dar pana la urma  am ales calea lui EQ5 cu motoare:). Asta nu inseamna ca renunt la ideea softului. N-am mai butonat de mult la soft, dar am ajuns in stadiul in care am rezolvat partea de achizitie a fluxului video, de descompunere a acestuia in cadre, de crop in timp real (daca e nevoie), si de analiza la modul grosier a cadrelor (momentan la nivel de diferenta de luminozotate intre cadre).
Totusi imi vine sa schimb macazul, pentru ca  tocmai am descoperit Microsoft VPL 2010, o unealta de programare cu adevarat "vizuala", foarte simplu de folosit, ce ofera suport nativ pt. webcam, dar si pentru comanda oricarui fel de motor pas cu pas. SI foarte important, toate serviciile si controalele pot fi modificate dupa bunul plac, din pacate doar in C#. Oricum, de principiu, din cate am vz eu, dispare problema cunoasterii avansate a codului , ceea ce poate fi un mare avantaj pentru cei fara cunostiinte temeinice de programare.
Asadar, dat fiind ca nu mai am Dobsonul, si astfel platforma ecuatoriala devine inutila, o sa incerc sa dezvolt softul in directia interfatariii cu handbox-ul de la EQ5. SI ca o parere personala cu privire la disputa despre paralele/serial/fara interfata cu PC, ma gandesc ca suntem in secolul 21, moment in care cam dispar aceste "dotari de varf" din sistemele de calcul, si ar fi cazul sa gandim "pozitiv" spre USB. Chiar daca momentan nu am nici cea mai vaga idee cum pot "comunica" cu portul USB, o sa abordez aceasta metoda de interfatare. Bineinteles ca metoda cea mai potrivita de analiza a imaginii capturate de la webcam ramane tot prin intermediul librariilor Aforge, mai precis FuzzyLogic, dupa cum bine zicea Nobody.

Stima!

PS: Am vazut ca handbox-ul de la EQ5 e limitat la viteza 8X. E o limita a motoarelor/reductiilor/mecanicii sau doar asa, ca masura de siguranta?

-----------------------------------
nobody
19 Iun 2010 09:34


-----------------------------------

 
@tiberiugabriel: Exista module gata facute bazate pe Atmega cu butoane, afisaj, tot felul de interfete, inclusiv USB si ethernet. Un programator ISP pe port serial ori USB gata facut nu costa o avere si este compaibil cu toate soft-urile de programare.  Ai vazut pe la noi? Unde?

Au aparut si prin Romania. Uite un exemplu:
http://www.adelaida.ro/index.php?cPath=32_402

-----------------------------------
Stanescu Octavian
19 Iun 2010 15:20


-----------------------------------
sa comanzi rotirea unui motor  pas cu pas nu e foarte greu: 2-3 CI cu bistabili , porti + oscilator simplu . mai greu e cu generatorul de impulsuri (clock). e bine sa fie precis cu  Quartz la baza.
am facut oscilator la 20Mhz apoi divizor programabil .
Autoghidarea mi se pare ca necesita prea multe elemente ce trebuiesc minutios pregatite , la un sistem mobil ce cari cu masina in anumite locuri e cam greu .
La majoritatea monturilor elementul cel mai slab si imprecis mecanic  este reductorul ce demultiplica motorul rotind surubul coroanei melcate.
Ideea mea la care sap de un timp este actionarea directa a surubului coroanei. ma gandesc ca se elimina erorile periodice din  timpul celor aprox 8-10 min cat face surubul rotatia.
actionarea o va face un motor mai de putere comandat in micropasi 4-8000pasi/ tura.
sunt motoare cu controler gata echipate cu mufa de leg la 
PC.  facute de firme specializate ..
Se pricepe cineva sa comande motor cu pas de 1,8 grade  cu 4000pasi /tura  se poate cu controler de la Adelaida ? nu de alta dar poate iese mai ieftin .

-----------------------------------
valy
19 Iun 2010 16:20


-----------------------------------
Se pricepe cineva sa comande motor cu pas de 1,8 grade  cu 4000pasi /tura  se poate cu controler de la Adelaida ? nu de alta dar poate iese mai ieftin .
N-am vazut controler pt. motoare pas cu pas la adelaida ci doar platforme pt. microcontroler si cred ca nu sunt suficiente decat daca mai pui ce ziceai tu la inceput: tranzistoare comandate de microcontroler ca sa dea puterea suficienta. Sau poti combina asa ceva http://www.hi-end.ro/driver-cnc-pentru-motoare-pas-cu-pas-4-axe-p-579.html (35k impulsuri/sec) cu un mirocontroler care sa-l comande. Insa daca vrei sa renunti la microcontroler, il poti lega direct la PC pe paralel. Se poate programa aplicatie care sa comande mai exact si pt. Windows daca lucrezi la nivel low level (ca driverele de exemplu), intreruperi, porturi ai alte alea insa trebuie sa ai ceva skil pt. partea asta de programare. Exista astfel de aplicatii pt. control masini CNC sub windows (deci ei au rezolvat problema programari): Mach2/3, Master5, EMC,KCAM, USBCNC, WinPC - NC

-----------------------------------
neox
19 Iun 2010 17:03


-----------------------------------
Electronica avansata cu microcontrolere nu e punctul meu forte da' am impresia ca ce vreti voi sa faceti s-a mai facut.

Ar fi odata sistemul lui Mel Bartels pt motoare cu pas care permite si PEC si autoguiding, fara PIC-uri.
Aici schemele refacute si imbunatatite de un francez si lucreaza cu programul "Scope" a ui Mel

http://tronicspace.free.fr/interfbart/interf-menu.htm

Apoi am mai gasit PicGoto dezvoltat de spanioli, parca
http://sites.google.com/site/picgoto/english-manual

-----------------------------------
nobody
20 Iun 2010 08:02


-----------------------------------
actionarea o va face un motor mai de putere comandat in micropasi 4-8000pasi/ tura.
sunt motoare cu controler gata echipate cu mufa de leg la 
PC.  facute de firme specializate ..
Se pricepe cineva sa comande motor cu pas de 1,8 grade  cu 4000pasi /tura  se poate cu controler de la Adelaida ? nu de alta dar poate iese mai ieftin .
Un motor de 1,8 grade / pas are 200 pasi / 360 grade.
Microstepping-ul nu asigura mai multi pasi fizici ci se refera la modul de comanda. MPP sunt practic motoare sincrone de curent alternativ care lucreaza cel mai eficient cu curent sinusoidal. Microstepping-ul se refera la aproximarea functiei sinusoidale in pasi mai marunti. Aceasta asigura o miscare uniforma cu vibratii mult mai mici fata de cel "in salturi".
Se pot vedea aici diferitele moduri de comanda: http://en.wikipedia.org/wiki/File:Drive.png

Un mic articol interesant: Micro Stepping: A Smoother Way to Life
http://www.atmel.com/dyn/resources/prod_documents/a10_automotive-mc.pdf

Cele de la Adelaida nu sunt controller-e de motoare ci kit-uri de dezvoltare cu microcontoller. Prin programarea lor se poate comnada si un motor. Desigur cu partea de putere adecvata.

-----------------------------------
Erwin
20 Iun 2010 11:30


-----------------------------------
Problema a fost rezolvată cu succes la montura (austriacă?) cu motoare direct-drive, special construite, tot un fel de motoare pas-cu-pas, dar cu mult mai mulți poli și cu electronică de comandă specială. Prețul e prohibitiv pentru noi, din păcate... 

Micropașii la un controler convențional nu cred că rezolvă poziționarea perfectă la turații mici, comanda se dă tot în pași întregi, nu în micropași.

Așa că rămâne varianta folosirii unui reductor cât mai bun, fără jocuri: transmisia cu curea dințată (timing belt). Am văzut la copiatoarele mari astfel de curele și roți dințate de curea, cred că întinderea în curea este suficient de mică pentru a nu introduce abateri, iar elasticitatea ei dă o mișcare mai lină la axă. Dezavantajul este că ocupă mult loc.

-----------------------------------
Stanescu Octavian
20 Iun 2010 11:54


-----------------------------------
Micopasi ma intereseaza sa asigure o miscare continua de putut se poate dovada ca exista direct drive apoi tehnica CNC tot cu micropasi merge.(pentru siguranta se pun pe motor si encodere )
Am gasit firme ce produc exact ce am nevoie doar bani sa fie . eu din pacate nu mai am timp sa mai  chitibusaresc electronica am facut comenzi pt motoare si acum 22 de ani cu CDB -urile si MMc romanesti.
Ma gandeam ca e cineva pe aici "AS"in asa ceva  si facem un barther.

-----------------------------------
nobody
20 Iun 2010 13:46


-----------------------------------
Daca este vorba de o miscare relativ constanta lucrurile se simplifica fata de CNC. Adica ai cuplu minim cu acceleratii minime. Si nici nu ai nevoie de o pozitionare exacta ci de un sincronism intre timp si miscare.
La ce viteza si ce rezolutie vrei sa ajungi ?

Pentru a depasi limitele erorilor mecanice este nevoie de un feedback.

Solutia cu direct-drive si microstepping nu cred ca ofera avantaje la capitolul rezolutie:

While microstepping appears to make running at very high resolution possible, this resolution is rarely achievable in practice regardless of the controller, due to mechanical stiction  and other sources of error between the specified and actual positions. In professional equipment gearheads are the preferred way to increase angular resolution.

Step size repeatability is an important step motor feature and a fundamental reason for their use in positioning. Example: many modern hybrid step motors are rated such that the travel of every Full step (example 1.8 Degrees per Full step or 200 Full steps per revolution) will be within 3% or 5% of the travel of every other Full step; as long as the motor is operated within its specified operating ranges. Several manufacturers show that their motors can easily maintain the 3% or 5% equality of step travel size as step size is reduced from Full stepping down to 1/10th stepping. Then, as the microstepping divisor number grows, step size repeatability degrades.

-----------------------------------
nobody
21 Iun 2010 10:10


-----------------------------------
Am studiat un pic sistemele existente bazate pe direct-drive si am observat ca toate se bazeaza pe encodere de pozitie de mare precizie (0.01 arcsec). La capitolul electronica folosesc microcontroller-e puternice pe 32 de biti. Encoderele pot fi magnetice sau optice. Si nu sunt din categoria celor ieftine.

Teoretic, se poate realiza un astfel de encoder de pozitie cu un disc cat mai mare (ori un sector) pe marginea caruia sa fie pus un film transparent "dungat". Citirea se poate face cu un senzor optic relativ simplu. Practic, este mai complicat. Pentru o precizie de 0.1 arcsec ai nevoie de 36000 de diviziuni pe grad !!

Cateva exemple:
O foarte interesanta comparatie a preciziei masurate la diferite monturi comerciale (Synta, Vixen, Takahashi, Losmandy, Valmeca, TRASSUD, AXIS Instruments, MEADE, ARCANE, GEMINI, CELESTRON):
http://translate.google.com/translate?hl=en&ie=UTF-8&sl=fr&tl=en&u=http://demeautis.christophe.free.fr/ep/pe.htm&prev=_t&rurl=translate.google.com&twu=1

-----------------------------------
valy
21 Iun 2010 10:37


-----------------------------------
Ca sa iesi mai ieftin, decat sa faci un sistem care sa masoare abaterea si sa o corecteze, mai bine faci niste masuratori si vezi cam care o sa fie abaterea si sa o corectezi apriori, practic ii inveti comportamentul, ii inveti imperfectiunile mecanismului. Exemplu: stii ca dupa 30 sec "trage" dreapta atunci dupa 30" ii comanzi sa "traga" mai mult stanga, si tot asa. Dezavantajul e ca trebuie sa masori acest comportament si nu stiu cat de exact o poti face.

-----------------------------------
nobody
21 Iun 2010 10:50


-----------------------------------
Ca sa iti dai seama ce precizie ai nevoie, pe un disc de 1m diametru:
- grad = 8.727 mm
- arcmin = 0.145 mm
- arcsec = 0.00242 mm = 2.42 um

-----------------------------------
nobody
22 Iun 2010 09:50


-----------------------------------
@valy: In principiu asa se face cum zici tu. Doar ca este putin mai complicat daca vrei precizii mari.

Uite cat de disparata este eroarea la HEQ5:
http://demeautis.christophe.free.fr/ep/heq5.htm

In plus, mai ai si factori externi: temperatura, vibratii, vant. Acelea pot fi corectate partial doar cu un sistem ce are feedback.

-----------------------------------
valy
22 Iun 2010 10:24


-----------------------------------
@valy: In principiu asa se face cum zici tu. Doar ca este putin mai complicat daca vrei precizii mari.

Corect. Deci fie laptop si webcam fie asta http://skywatcher.ro/Baader/smartguider.htm .

-----------------------------------
nobody
22 Iun 2010 12:22


-----------------------------------
Deci tot la solutiile comerciale ajungem. In spatele carora sta munca a unei armate de ingineri. De ce ? Pentru simplul fapt ca lucrurile nu sunt asa de simple cum ne inchipuim. Sau vorba aceea: orice problema complexa are o solutie simpla, dar gresita  :lol:

-----------------------------------
Stanescu Octavian
22 Iun 2010 12:28


-----------------------------------
Se pare ca doar Astophysics cu +/- 2 sec arc  si Takahashi reusesc o mecanica precisa.
eu sunt convins ca daca actionez surubul coroanei direct cu motor de putere mult mai mare decat necesar nu pierde micropasi astfel diagrama de eroare va fi mult imbunatatita.
motor si placa ar putea fi de aici ales :http://www.plcdirect.eu/EN/script/P_products-category.asp?ID=411

-----------------------------------
nobody
22 Iun 2010 13:53


-----------------------------------
Nu cred ca se pune problema de pierderea pasilor. Cuplul este foarte mic la miscare liniara si, in acest caz, este generat doar de fortele de frecare. Cuplul inertial mare apare doar la pornire si oprire. Dar acele perioade se pot ignora pana se stabilizeaza miscarea.

In schimb, o problema este autorezonanta motorului in cazul in care are un cuplu mic iar infasurarile sunt energizate prea mult. Mai simplu spus daca ii dai energie (curent) mai mare decat este cea consumata de cuplu. Acea energie neconsumata se pierde prin rezonanta si prin frecarile interne. Vad ca la acel producator exista si driver-e mai inteligente (STP-DRV-4850, STP-DRV-80100) care se ocupa si de aceasta problema. Mai exact: Anti-resonance (Electronic Damping), Torque ripple smoothing si Output Current: 0.1-5.0 A/phase (in 0.01A increments).

Ideal ar fi sa se cunoasca cuplul mediu necesar monturii iar motorul sa fie ales astfel incat aces cuplu sa se afle la mijlocul plajei motorului. Plaja motorului este intre: cuplul de pornire si cuplul maxim generat de motor la turatia dorita (cuplul maxim nu este constant si scade cu turatia). Cu turatia este bine sa fie si ea la mijlocul plajei unde cuplul este relativ constant. Se vede aici: http://www.plcdirect.eu/EN/script/P_download.asp?ID=2294 in graficele de la pagina 5.

Daca motorul este mult supradimensionat, va lucra subincarcat apropae de cuplul de pornire si va fi greu de controlat. In plus un motor mai mare are si o inertie a rotorului mai mare fapt care face mai dificila corectia erorilor. Un motor subdimensionat va risca sa piarda pasii.

O turatie prea mica va face miscarea in smucituri iar una prea mare va reduce cuplul maxim si scade precizia micropasilor.

Preturile de la acel producator nu mi se par deloc exagerate la ceea ce primesti in schimb. Un electronist amator nu va putea sa implemeteze acele functii avansate si nici sa le scoata la un pret mai redus instalatia.
Doar sursele de tensiune mi se par ca au un pret exagerat dar nu mult.

Interesant este si portul serial prin care se poate programa driver-ul inteligent. Acest "feature" usureaza foarte mult interfatarea cu un microcontroller sau cu un PC. Practic este si jumatatea de low-level al unui controller. Cred ca suporta si encoder dar nu sunt inca sigur. Mai studiez.

-----------------------------------
RobertG
13 Noi 2010 21:40


-----------------------------------
Eu am realizat comanda axei RA si focuser cu un microcontroller Atmel AT89C2051. Am integrat comezile RA2X/4X inainte si inapoi plus focuser pe aceeasi telecomanda. In seara asta am testat ultimele ajustari ale timerului ce da viteza RA1x. La axa RA folosesc un reductor 1:80 iar motorul pas cu pas lucreaza la o turatie aprox 1,5rot/sec. la viteza 1x. O problema (pe care a precizat-o si "nobody" in postarea anterioara) destul de neplacuta ce am constatat-o e ca desi am transmisia la melcul axei RA prin curea, vibratiile (infime am zis eu...) ale motorului se transmit totusi la telescop si afecteaza calitatea imaginii(doar la webcam, vizual e destul de ok). Trebuie deci sa lucrez si la optimizarea curentului prin motor (care dupa parerea mea e cam puternic pt. aplicatia asta) pt. viteza 1X. Pe vitezele 2x si 4x motorul se comporta f. bine vibratiile incetand complet.

Exemplu:
http://www.youtube.com/watch?v=eX24PrOyBMY

-----------------------------------
RobertG
14 Noi 2010 22:27


-----------------------------------
Am scapat de vibratii, am montat motorul pe un inel de cauciuc. Dar, dupa ce am experimentat curenti diferiti prin motor am ajuns la concluzia ca nu saturatia bobinelor e cauza, caci si cu curent minim vibratiile nu dispar ci e vorba de rezonanta motorului pas cu pas. Concluzia, imi trebuie alt reductor cu factor de reductie aprox. 1:30, astfel asigurand o turatie putin mai mare la motor, acesta functioneaza fara vibratii.

-----------------------------------
Erwin
15 Noi 2010 02:07


-----------------------------------
Ai încercat să folosești mai mulți micropași? Există din câte am citit, controlere mpp care se ocupă ca mișcarea să fie cât mai lină, controlând foarte exact panta curentului din bobine, dar sunt destul de complicate, costă mult. Nu am găsit nimic despre turații mici și foarte mici cum avem noi nevoie la astro.

Există niște mpp cu turație constantă și care nu au vibrații mari, se foloseau la acționarea unităților de dischete vechi, controlerul este direct-drive, mă întreb dacă nu pot fi modificate pentru turație mică...  :?:

-----------------------------------
RobertG
15 Noi 2010 10:19


-----------------------------------
Acum, ca am dat de problema vibratiilor am sa testez si varianta cu micropasi, mai ales ca nu presupune decat modificari in software, deci nu e complicat. montand motorul pe un suport de cauciuc am scapat de problema, dar pe viitor am de gand sa construiesc o montura EQ motorizata solida, si vreau sa pun la punct cat mai mult problema actionarii. MPP folosite sunt similare cu cele de la floppy-urile vechi, si le-am recuperat dintr-un scanner vechi, impreuna cu celelalte elemente, roti si curea. Pun si o poza. Instalatia e inca improvizata si in stadiul de teste.

-----------------------------------
RobertG
03 Dec 2010 00:50


-----------------------------------
Am experimentat actionarea motorului pas cu pas in modul "half step" si pot sa va spun ca nu e nici o imbunatatire. Dimpotriva vibratiile sunt mai accentuate, la viteza RA1x. Am experimentat cu mai multe viteze. Vibratiile dispar la o turatie a motorului mai mare de aprox. 3 rot/sec. Actualmente cu raportul de transmisie de aprox. 128:1 (reductor 80:1*1,6:1 la curea de transmisie) am cam 1,5 rot/sec la motor. Deci fac o rectificare, e nevoie de un factor de reductie si mai mare, nu cum gresit (din graba) am precizat in postarea anterioara. Fac aceste precizari deoarece poate, mai sunt dispusi si altii sa se mai "joace" cu asa ceva, si poate le va fi de folos.

-----------------------------------
nobody
03 Dec 2010 01:31


-----------------------------------
Pentru o miscare continua trebuie sa ai o turatie minima specificata de producator. Doar de acolo in sus are sens half sau micro stepping. Altfel, vei reusi doar sa-l faci sa sara de pe un pas pe altul intr-o miscare sacadata.

Microsteppingul este mai greu de implementat. O metoda ar fi PWM.
De ce nu folosesti ATMega in loc de AT89 ?

-----------------------------------
RobertG
03 Dec 2010 09:52


-----------------------------------
Pai chestia e ca nu am nici o specificatie pe motoare. Eu am mai lucrat cu motoare pas cu pas dar nu cu turatii asa mici, iar aplicatia pe care am facut-o mergea foarte bine cu metoda standard de comanda pas cu pas.
Avand programatorul facut pentru AT89C2051, nu m-am mai complicat sa mai construiesc altul, pentru alt gen de microcontroller-e. 89C, inca se gasesc fara probleme in comert.
Probabil ca voi experimenta si metoda de control prin modulatie, pe moment ma documentez de IC drivere mai specializate pt. motoare pas cu pas pe care sa le conectez la microcontroller.

-----------------------------------
cmatei
03 Dec 2010 10:57


-----------------------------------
Cand m-am jucat cu steppere am folosit L298 ca driver. Are cate un pin SENSE pe care l-ai putea folosi pentru controlul curentului prin motor.

-----------------------------------
RobertG
03 Dec 2010 11:36


-----------------------------------
Desi montand motorul pe un amortizor de cauciuc am scapat de problema vibratiilor si motorizarea RA imi functioneaza astfel fara probleme, totusi nu am sa renunt la a cauta solutii de a imbunatatii comanda motorului. Prima varianta, care nu presupune nici o modificare hardware, e ca am sa incerc sa comand motorul in impulsuri, fiecare pas fiind astfel "choppat" cu o frecventa variabila.
Multumesc cmatei, pt. sugestia cu circuitul L298 !

-----------------------------------
Erwin
04 Dec 2010 00:19


-----------------------------------
Există un circuit mai bun și mai modern, care folosește PWM, permite lucrul cu micropași, necesită foarte puține componente externe și are avantajul că nu necesită un microcontroler, poate fi comandat direct din PC prin portul paralel sau printr-o interfață cu optocuploare ca să protejezi portul paralel:
Allegro A3977, chopper, driver bipolar, curent 0,5-2,5A, tensiune 8-32V, 1-1/2-1/4-1/8 micropași. Costă cam 15 euro/buc în Germania. Un controler gata făcut costă ~36USD în America, nu știu cât ar costa transportul, e mic, încape într-un plic. Se pot comanda cu el motoare unipolare legate ca bipolare fără probleme.
