Index |
Index forum |
Autentificare |
Inregistrare
|
Cine este online |
Galerie imagini
|
Calendar evenim. |
Cautare detaliata |
Ghid forum |
Colaboratori
Te intereseaza un domeniu al astronomiei si ai vrea sa scrii pentru siteul nostru? Alatura-te echipei noastre.
Statistici forum |
|
Numar total de mesaje in forum: 224538 |
|
Numar de utilizatori inregistrati: 2834 |
|
Cel mai nou utilizator inregistrat: Dorin |
|
|
|
Cei mai multi utilizatori conectati au fost 543 la data de Vin Mar 29, 2024 |
|
|
|
Actualmente sunt 0 utilizatori pe chat
|
|
Aceste date se bazeaza pe utilizatorii activi de peste 5 minute |
|
Legenda |
|
Mesaje noi |
|
Nu sunt mesaje noi |
|
Forumul este inchis |
|
|
Subiectul anterior :: Subiectul urmator |
|
Autor |
Mesaj |
nobody Membru
Data inscrierii: 02 Apr 2010 Mesaje: 4791
Motto: Never ever give up ! Localitate: Nowhere
|
Trimis: 15 Sep 2016 18:36 Download mesaj |
Titlul subiectului: |
|
|
|
Vezi si aici:
How to Use a Rotary Encoder in an MCU-Based Project
http://www.allaboutcircuits.com/projects/h...d-project/
E bine sa pui niste filtre RC la contactele encoderului.
Din codul ala din tutorialul de pe youtube (https://brainy-bits.com/tutorials/nema-mot...er-part-3/), se pare ca detectia o face numa la 4 schimbari/pasi, iar asta nu e prea grozav. In plus, encoderul e un pic diferit, iar motoarele sunt actionate "fulls step" si pe urma puse in "sleep".
Descriere: |
|
Marime fisier: |
101.79 kb |
Vizualizat: |
de 5577 ori |
|
Descriere: |
|
Marime fisier: |
36.46 kb |
Vizualizat: |
de 5577 ori |
|
Descriere: |
|
Marime fisier: |
47.51 kb |
Vizualizat: |
de 5577 ori |
|
|
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 15 Sep 2016 18:44 Download mesaj |
Titlul subiectului: |
|
|
|
am gasit si pagina asta :
https://forum.arduino.cc/index.php?topic=372403.0
cu diferenta ca aia au un driver mai mic. dar probabil conectarea si programul raman neschimbate.
Diferenta mare fata de link-ul postat de tine e felul in care s efac legaturi (pe A0 A1 si A2 in link-ul tau... pe GND +5V A0 in link-ul meu...)
Filtrul RC pot sa-l pun in oricare varianta de conectare merg, nu influenteaza cu nimic logica.
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
nobody Membru
Data inscrierii: 02 Apr 2010 Mesaje: 4791
Motto: Never ever give up ! Localitate: Nowhere
|
Trimis: 15 Sep 2016 20:17 Download mesaj |
Titlul subiectului: |
|
|
|
In ultimul link pare a fi vorba de un potentiometru analogic (cu limite de cursa) a carui miscare este imitata de motor. In acest caz e cu totul altceva.
Filtrul RC simplifica logica. Nu mai ai nevoie de "debouncing" care oricum nu-i prea eficient cum este implementat acolo in cod (ala de pe youtube), prin "delay". Fara a intra prea mult in detalii, impulsurile parazite vor genera o noua intrerupere (mai tarziu) si practic dubleaza artificial numarul de pasi.
|
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 15 Sep 2016 21:57 Download mesaj |
Titlul subiectului: |
|
|
|
no, am primit de la un coleg softul, care face magia din Arduino.
ar fi asa:
#define encoder_a 2
#define encoder_b 3
#define motor_step 5
#define motor_direction 4
#define button 6
int val = 0;
int old_val = 0;
int state = 0;
int MS1 = 9;
int MS2 = 10;
int MS3 = 11;
volatile long motor_position, encoder;
void setup () {
pinMode(MS1, OUTPUT);
pinMode(MS2, OUTPUT);
pinMode(MS3, OUTPUT);
pinMode(motor_step, OUTPUT);
pinMode(motor_direction, OUTPUT);
pinMode(encoder_a, INPUT);
pinMode(encoder_b, INPUT);
pinMode(button, INPUT);
digitalWrite(encoder_a, HIGH);
digitalWrite(encoder_b, HIGH);
digitalWrite(button, HIGH);
attachInterrupt(0, encoderPinChangeA, CHANGE);
attachInterrupt(1, encoderPinChangeB, CHANGE);
encoder = 0;
}
void loop() {
val = digitalRead(button);
if ((val == HIGH) && (old_val == LOW)) {
state = 1 - state;
delay(10);
}
old_val = val;
if (state ==1)
{
digitalWrite(MS1, LOW);
digitalWrite(MS2, LOW);
digitalWrite(MS3, LOW);
}
else {
digitalWrite(MS1, HIGH);
digitalWrite(MS2, HIGH);
digitalWrite(MS3, HIGH);
}
if (encoder > 0) {
digitalWrite(motor_direction, HIGH);
digitalWrite(motor_step, HIGH);
digitalWrite(motor_step, LOW);
delayMicroseconds(200);
motor_position++;
encoder = 0;
}
else if (encoder < 0) {
digitalWrite (motor_direction, LOW);
digitalWrite (motor_step, HIGH);
digitalWrite (motor_step, LOW);
delayMicroseconds(200);
motor_position--;
encoder = 0;
}
}
void encoderPinChangeA() {
if (digitalRead(encoder_a)==digitalRead(encoder_b)) {
encoder--;
}
else{
encoder++;
}
}
void encoderPinChangeB() {
if (digitalRead(encoder_a) != digitalRead(encoder_b)) {
encoder--;
}
else {
encoder++;
}
}
in toata povestea, se seteaza sa mearga normal in pasi intregi, iar la apasarea butonului in micropasi (1/16 pasi). Teoretic reductie 1:16...mult prea mare, dar ma mai joc din HIGH/LOW
schema de conectare a pinilor ar fi mai jos:
Descriere: |
conexiunile intre ArduinoNano si BigEasyDriver |
|
Marime fisier: |
170.23 kb |
Vizualizat: |
de 5539 ori |
|
Descriere: |
conexiunile intre ArduinoNano si Encoder |
|
Marime fisier: |
93.17 kb |
Vizualizat: |
de 5537 ori |
|
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 15 Sep 2016 22:04 Download mesaj |
Titlul subiectului: |
|
|
|
softul de mai sus si conexiunile inca NU SUNT TESTATE.
Abia maine incerc pe viu minunea, momentan acasa am doar placa, am suit programul pe ea, maine leg driver si encoder si vad ce se intampla.... pana atunci, noapte buna!
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
Erwin Moderator
Data inscrierii: 02 Aug 2008 Mesaje: 9480
Motto: panta rhei Localitate: Bucuresti
|
Trimis: 16 Sep 2016 04:56 Download mesaj |
Titlul subiectului: |
|
|
|
Nu am avut nicio țeavă de 80-90mm de FC. Cea de 60mm n-am tăiat nimic din ea, era chiar prea scurtă, am folosit-o așa.
Succes!
_________________ bino: 8x22, 7x42, 10x50, 10x80, spotting: 10x46, 20x60
Telescoape RFT70 F/4, 80/900, RFT 110 F/5.5, Meade 90 F/10, ED80 F/6
MTO-11CA 100/1000, Cass Clasic 8"F/15, dobson newt.158/1240 DH, 4"F/4.6
piston AZ mount (R), Vixen GP, minidob |
|
Sus |
|
|
valy Membru
Data inscrierii: 21 Iul 2005 Mesaje: 10638
Localitate: Bucuresti
|
Trimis: 16 Sep 2016 08:21 Download mesaj |
Titlul subiectului: |
|
|
|
Driverul pt. stepper are un mod care taie curentul, il poti opri in perioadele de pauza ca sa nu pape curent. Il trezesti cand ai nevoie. Sunt curios daca motorul introduce vibratii.
|
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 16 Sep 2016 08:35 Download mesaj |
Titlul subiectului: |
|
|
|
chestia cu pornitul/opritul driverului o s-o adaug in prigram, e buna ideea intr-adevar. multumesc.
legat de vibratii, nu cred ca va fi nimic suparator, din mai multe motive:
- motorul in sine e prins pe L-ul mic, intre acel L mic si L-ul mare exista un cauciuc (momentan) sau semering-uri (urmeaza) ... deci deja am un amortizor introdus in sistem.
- intre focuser si motorul propriu zis , contactul se realizeaza printr-o curea sincrona, care la dimensiunea aia (145mm lungime, 35mm distanta intre axe) va arata aproape ca o elipsa, va fi foarte arcuita. Cureaua nu o voi tensiona prea tare deoarece nu e nevoie. Deci din nou exista un element intermediar suficient d emoale ca sa preia majoritatea vibratiilor.
- cele 2 L-uri sunt la urma urmei niste arcuri, deci din nou, amortizeaza vibratii.
- la astrotrac am folosit un Nema17 care avea axul direct in contact cu astrotrack-ul si nu se simtea absolut nici o vibratie, desi mergea continuu. Acum folosesc un Nema11 (mai mic) care va merge intermitent, doar cand focalizez. Si daca in mod exceptional vor aparea ceva vibratii, ele vor fi de amplitudine foarte redusa (comparat cu vobratiile introduse de mana cand ating focuserul), iar din cauza masei sistemului acestea se vor amortiza extrem de rapid, probabil ca nici nu le voi sesiza vizual, nici fotografic nu vor influenta deoarece in principiu nu fac focus cand expun.
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
valy Membru
Data inscrierii: 21 Iul 2005 Mesaje: 10638
Localitate: Bucuresti
|
Trimis: 16 Sep 2016 09:13 Download mesaj |
Titlul subiectului: |
|
|
|
Ar fi util un test cu filmare la focala lunga 2-4 m si cu motorul facand curse dute-vino, cam asa fac eu cand incerc sa focalizez la detalii planetare. Daca treaba merge smooth imi fac si eu ceva similar.
|
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 16 Sep 2016 09:56 Download mesaj |
Titlul subiectului: |
|
|
|
din pacate, voi putea testa sistemul abia sapt viitoare la Lisa. Tocmai am fost informat ca rotile si cureaua sincrona vor ajunge la mine abia in 22-23sept, asa ca le voi monta direct la Lisa.
Pana atunci doar incerc electronica si o bag in cutii .
@valy: trebuie sa mearga, nu e nici un risc. Anu trecut cand am mai avut un proiect ca asta (motorizarea focuserului la luneta), am vazut functionand ansamblul, doar ca nu era Arduino al meu. Cum nu am finalizat partea mecanica, nu am mai terminat nici electronica, dar de functionat functioneaza si e faina treaba
Eu momentan caut solutii sa fac partea mecanica mai compacta (eventual cu angrenaj planetar si motor mpp tip pancake) doar ca preturile sunt cam mari ptr piese si nu prea renteaza.
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 16 Sep 2016 14:46 Download mesaj |
Titlul subiectului: |
|
|
|
MERGE !
am lipit sarmele (ma rog, colegul electornist), softul l-am incarcat aseara, am alimentat, si merge, face ce vreau (2 viteze).
schema, softul, sunt ok. Ce vreau sa modific, in soft, cand merge cu viteza mare sa nu mearga in pasi intregi ca sunt prea brutali si se simt la mana vibratiile. voi comanda in micropasi, nu in pasi intregi.
Link Youtube:
https://youtu.be/oMKiACtnFTw
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
Erwin Moderator
Data inscrierii: 02 Aug 2008 Mesaje: 9480
Motto: panta rhei Localitate: Bucuresti
|
Trimis: 16 Sep 2016 15:11 Download mesaj |
Titlul subiectului: |
|
|
|
Bravo!
Cred că e suficient să mergi la 8 micropași, se dublează viteza. Vezi că există și variante soft pentru accelerare/decelerare în funcție de cât de repede dai de buton (encoder).
_________________ bino: 8x22, 7x42, 10x50, 10x80, spotting: 10x46, 20x60
Telescoape RFT70 F/4, 80/900, RFT 110 F/5.5, Meade 90 F/10, ED80 F/6
MTO-11CA 100/1000, Cass Clasic 8"F/15, dobson newt.158/1240 DH, 4"F/4.6
piston AZ mount (R), Vixen GP, minidob |
|
Sus |
|
|
StarChild Membru
Data inscrierii: 29 Mar 2011 Mesaje: 1540
Motto: tata si sot in primul rand...restul neesentiale... :-) Localitate: Timisoara
|
Trimis: 16 Sep 2016 15:14 Download mesaj |
Titlul subiectului: |
|
|
|
no mai sus gasiti toate detaliile ptr parte electronica, softul, daca vrea careva pot trimite si modelul 3D al pieselor mecanice. Puteti sa va jucati cu softul & mecanica & electronica cum vreti. Solutia poate fi folosita ptr orice focuser pe orice instrument. Momentan asta e primul prototip, urmeaza "rafinarea" conceptului si pieselor sa arate bine sa il pot fixa frumos pe tub.
@Erwin: o sa ma joc din soft deseara sa gasesc niste valori potrivite ptr motor, nu vreau accelerari si alte fitze de astea...simplu si eficient.
se poate inchide... sau nu
_________________ PIERDUT FOTON!!! DECLAR NUL !!! |
|
Sus |
|
|
valy Membru
Data inscrierii: 21 Iul 2005 Mesaje: 10638
Localitate: Bucuresti
|
Trimis: 16 Sep 2016 15:29 Download mesaj |
Titlul subiectului: |
|
|
|
Poti sa incepi progresiv, sa cresti viteza si la sfarsit sa o atenuezi, adica sa nu pornesti brusc si sa nu tai brusc semnalul de comanda. Nu e complicat de implementat din soft, 2-3 linii in plus.
|
|
Sus |
|
|
nobody Membru
Data inscrierii: 02 Apr 2010 Mesaje: 4791
Motto: Never ever give up ! Localitate: Nowhere
|
Trimis: 16 Sep 2016 16:17 Download mesaj |
Titlul subiectului: |
|
|
|
M-am uitat mai atent peste cod, video si in fisa tehnica de la encoder (http://www.farnell.com/datasheets/1837001.pdf). Cred ca-ti face mai multi pasi decat te astepti.
Motorul are 200 de pasi, encoderul genereaza 36 (daca e bine filtrat): 2 "detents" (pasi) / "pulse" (ciclu complet la semnalul A). Adica o tura de motor in full step la 5.5 rotatii complete de enncoder.
Codul ar trebui sa ia in seama doar schimbarile la semnalul A (intre "detent stability position"). Schimbarile pe semnalul B ar trebui ignorate, sunt instabile si nu corespund unor pasi reali (ceva specific la acest model). Pentru asta se poate dezactivea rutina de intrerupere "encoderPinChangeB()".
Daca vrei miscare mai fina trebuie sa reduci curentul de actionare la minim si in loc sa faci un pas "full step", ii dai sa faca 8/16 micropasi.
Descriere: |
|
Marime fisier: |
19.71 kb |
Vizualizat: |
de 5426 ori |
|
|
|
Sus |
|
|
|
|
|
Nu puteti crea un subiect nou in acest forum Nu puteti raspunde in subiectele acestui forum Nu puteti modifica mesajele proprii din acest forum Nu puteti sterge mesajele proprii din acest forum Nu puteti vota in chestionarele din acest forum Nu puteti atasa fisiere in acest forum Puteti descarca fisiere in acest forum
|
|