Index
Index forum Index forum
Autentificare Autentificare
Inregistrare Inregistrare
Cine este online Cine este online
Galerie imagini Galerie imagini
Calendar evenim. Calendar evenim.
Cautare detaliata Cautare detaliata
Ghid forum Ghid forum
Album astrofoto
Omul_si_Galaxia.jpg
Imagine aleatoare
Blog
Inregistreaza-te pe forumul astronomy.ro
Colaboratori

Te intereseaza un domeniu al astronomiei si ai vrea sa scrii pentru siteul nostru? Alatura-te echipei noastre.

Meteo
Vremea in Bucuresti
Statistici forum
Numar total de mesaje in forum: 224014
Numar de utilizatori inregistrati: 2823
Cel mai nou utilizator inregistrat: IOAN MARINESCU
Cei mai multi utilizatori conectati au fost 502 la data de Joi Mar 28, 2024
Actualmente sunt 0 utilizatori pe chat   
Aceste date se bazeaza pe utilizatorii activi de peste 5 minute
Legenda
Mesaje noi Mesaje noi
Nu sunt mesaje noi Nu sunt mesaje noi
Forumul este inchis Forumul este inchis

Motorizare axa RA cu motor pas cu pas.Curs pentru incepatori


Du-te la pagina Anterioara  1, 2, 3, 4, 5  Urmatoare
Creaza un subiect nou   Raspunde la subiect  

DIY / ATM / Reparatii

Subiectul anterior :: Subiectul urmator  
Afiseaza mesajele pentru a le previzualiza:   
Autor Mesaj
starbuck
Membru
Membru


Data inscrierii: 23 Ian 2011
Mesaje: 1111




MesajTrimis: 27 Oct 2019 11:17 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

O completare utila este consultarea paginii producatorului in caz ca se folosesc diverse alte modele de componente (in cazul acesta, encoderul). E posibil sa fie proceduri de initializare, acces, control si temporizare specifice fiecarui produs furnizate de producator tocmai in scop de utilizare eficienta garantata care altfel ar consuma timp inutil si ar putea avea probleme de functionalitate in cazul determinarii lor empirice.
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 27 Oct 2019 14:05 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Nu e nevoie de nici o optimizare. Pentru cei care vor sa cumpere componentele, pot posta linkurile. Merge si cu un encoder mecanic, care e mult mai ieftin. Trebuie doar cunoscute iesirile encoderului.
Pentru download program se deschide intai softul arduino ide si se da donload. La sfarsitul downlodarii se va deschide direct o pagina cu programul incarcat. Dupa care se poate incarca in arduino.

_________________
0770403936
Sus
starbuck
Membru
Membru


Data inscrierii: 23 Ian 2011
Mesaje: 1111




MesajTrimis: 27 Oct 2019 15:18 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Sigur, apreciez mult efortul dumneavoastra de a oferi o solutie deja testata si impartasesc entuziasmul dumneavoastra pentru acest domeniu fascinant ! Ceea ce intentionam era doar o recomandare de abordare ulterioara atat in cazul folosirii de alte modele de componente cat si in cazul modificarilor de infrastructura care pot interveni. Acestea pot fi atat la nivel software in cazul unei noi versiuni a platformei de dezvoltare Arduino si a eventualelor librarii auxiliare cat si la nivel hardware unde multe componente sunt retrase de pe piata si inlocuite cu versiuni noi. Daca cineva va citi si va dori sa aplice acest curs peste 2 sau 3 luni va fi foarte posibil sa intalneasca astfel de cazuri. In cazurile mentionate compatibilitatea codului cu noile modificari poate impune schimbari de diverse grade de complexitate iar solutia in acest caz este consultarea paginii producatorului mentionata anterior unde codul de comanda este de obicei intretinut din acest punct de vedere. Alte solutii de adaptare si intretinere se pot gasi pe forumurile de specialitate unde multi din dezvoltatorii firmelor producatoare sunt membrii activi si pot oferi mai multe detalii despre schimbarile survenite, mai ales in cazul unor arhitecturi destul de complexe de interconectare a componentelor Arduino.
Sus
sorini
Membru
Membru


Data inscrierii: 29 Ian 2015
Mesaje: 308



Localitate: Bucuresti

MesajTrimis: 27 Noi 2020 12:20 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Cum ideea initiala mi-a placut foarte mult, dar pana acum nu m-am jucat deloc cu Arduino, mi-a luat ceva timp sa trec la treaba (asta pt mine nu e ceva nou, proiectele mele, daca nu mor pe drum, se intind pe perioade f mari).
Pentru ca porneam la drum cu un mare handicap, adica experienta 0 vis-à-vis de Arduino, am inceput cu partea mecanica. Cu ceva (mult) timp in urma, am achizitionat de la Bazar, o montura homemade, executata de colegul Katran. Ideea initiala era sa o utilizez ca atare, adica o montura pur manuala, pt observatii strict vizuale. Dupa mici modificari conform propriilor cerinte, eram multumit, mai ales ca procurasem si un trepied, foarte sanatos, de tipul celor folosite in geodezie.
Dar na, omul creatia imperfecta a lui D-zeu, am vrut mai mult; asa ca de ce nu si o motorizare, mai ales ca ideea s-a suprapus cu topicul colegului Remus. (Acum realizez ca a durat mai bine de un an de zile de la gand la finalizare!). Asa ca am trecut la procurare motoare, profile, roti si curele T, etc. Dar oricat trageam de timp, trebuia sa infrunt si “marele” impas: Arduino. Toti copii se jucau cu Arduino, fii-mea si-a facut proiectul de licenta cu Arduino, dar eu stateam cuminte, deoparte. Asa ca, ascuns de privirile tuturor, mi-am luat placa si am inceput sa ma joc, efectiv cu programele simple de inceput; aprinde un LED, fa o sirena, si altele. Nu pot sa mint, dar dupa nici o ora de joaca, eram total captivat de noua jucarie, mai ales ca modificam liniile sa faca ce voiam eu.
Cum cizmarul nu are opinci, nici electronistul din mine nu avea chef sa mai realizeze cablaje, asa ca repede am luat si un shield (Dfrobot) dedicat comenzii pt 2 motoare pas cu pas, am montat driverele si am inceput sa studiez joaca cu motoarele.
Cu un motor treaba era simpla, dar cu 2… Si mai voiam si comanda cu un joystick, pe poz “0” sa am numai tracking, altfel cand miscam de mansa, sa am slew cu viteza proportionala cu pozitia acesteia. Am descoperit pana la urma, pe undeva pe net, un program care stia de joystick! Uraaa! L-am mai coafat putin (am gasit unde si cum sa faca tracking) si am obtinut ce voiam de la el. Am atasat si un buton pt slew rapid (trec motoarele din 1/32 in full step).
O mica paranteza: pe Onstep am gasit asemenea programe, dar toate (ce am gasit eu) sunt cu GoTo, afisaje, luminite, GPS si alte asemenea, lucruri care chiar nu le vroiam in proiectul meu. Poate asa ma inzdravenesc sa invat si eu cerul!
Este posibil ca programul ca atare sa nu prezinte interes pt multi colegi de pe forum, impatimiti de GoTo si controlul monturilor din calculator / telefon. Dar ceea ce am obtinut este ceea ce am dorit; o montura cu telecomanda proportionala (termen imprumutat din modelism, alta pasiune a mea) si cu tracking.
In momentul de fata mai am de primit, de la poporul prieten chinez, un joystick (mansa) de la statiile de telecomanda (cele gen Arduino imi par prea mici) si sa pun totul intr-o cutie.
Numai bine,


#include <AccelStepper>

const int jX = A0; //pin analogic care citește valorile pentru X
const int stepX = 6; //pin digital care trimite semnale STEP către driverul X
const int dirX = 7; //pin digital care trimite semnalul DIRECTION către driverul X
long speedX, valX, mapX;

const int jY = A1; //pin analogic care citește valorile pentru Y
const int stepY = 5; //pin digital care trimite semnale STEP către driverul Y
const int dirY = 4; //pin digital care trimite semnalul DIRECTION către driverul Y
long speedY, valY, mapY;

const int maxSpeed = 4000; //conform documentației bibliotecii, această valoare poate fi setată la 4000 pentru Arduino UNO
const int minSpeed = 10; //viteza minima a motorului

const int treshold = 100; //largimea zonei de Stop
long tresholdUp, tresholdDown; //variabile de serviciu pentru sarcina de mai sus

boolean qualified, moveX, moveY, enable;

AccelStepper motorX(1, 6, 7); // pin 6 = step, pin 7 = direction
AccelStepper motorY(1, 5, 4); // pin 5 = step, pin 4 = direction

void setup() {
motorX.setMaxSpeed(maxSpeed);
motorX.setSpeed(minSpeed);

motorY.setMaxSpeed(maxSpeed);
motorY.setSpeed(minSpeed);

tresholdDown = (maxSpeed / 2) - treshold;
tresholdUp = (maxSpeed / 2) + treshold;
}

void loop() {
valX = analogRead(jX);
valY = analogRead(jY);

//mapează valorile citite în funcție de viteza minimă și maximă
mapX = map(valX, 0, 1023, minSpeed, maxSpeed);
mapY = map(valY, 0, 1023, minSpeed, maxSpeed);

//efectueaza funcția de control al motorului
pilotmotors(mapX, mapY);

}

void pilotmotors(long mapX, long mapY) {

if (mapX <tresholdDown>= tresholdUp) {
//motor x inainte
speedX = map(mapX, maxSpeed, tresholdUp, maxSpeed, minSpeed);
moveX = true;
} else {
//motor x stop
speedX = 100; // pasi/sec in zona Stop, pt tracking (+/- pt schimbare sens)
moveX = true; // pt tracking = true; pt oprit = false
}

if (mapY <tresholdDown>= tresholdUp) {
//motor y inainte
speedY = map(mapY, maxSpeed, tresholdUp, maxSpeed, minSpeed);
moveY = true;
} else {
//motor y stop
speedY = 0;
moveY = false;
}

if (moveX) {
motorX.setSpeed(speedX);
motorX.run();
} else {
motorX.stop();
}

if (moveY) {
motorY.setSpeed(speedY);
motorY.run();
} else {
motorY.stop();
}
}



Motorizare.jpg
 Descriere:
 Marime fisier:  684.14 kb
 Vizualizat:  de 4781 ori

Motorizare.jpg


Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 27 Noi 2020 13:08 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Felicitari ! Joaca cu arduino e interesanta si merita facuta. Intre timp am experimentat motorizarea ambelor axe si comanda prin telecomanda in infrarosu (astfel ca nu mai ai fire ce atarna pe langa telescop). Pentru axa RA nu am testat inca trecerea de la micropasi (necesari pentru traking) la pasi normali pentru deplasarea rapida. Aveam nevoie de alt driver (care intre timp a venit, dar nu am reluat proiectul pana nu termin cu noua locatie a atelierului de electronica). Altfel insa functioneaza bine si ambele axea pot fi comandate in infrarosu si dupa pozitionarea corecta se trece la traking.
_________________
0770403936
Sus
iulian90
Membru
Membru


Data inscrierii: 13 Sep 2016
Mesaje: 2379



Localitate: Braila

MesajTrimis: 28 Noi 2020 20:16 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Buna seara tuturor. Smile

De ceva vreme am trecut si eu la utilizarea de microcontrolere Arduino si sunt fascinat de ce sunt in stare aceste circuite, ce pot fi programate pe PC in multe moduri. Smile

De curand am imbunatatit montura ecuatoriala Bresser Messier Exos 1, inlocuind vechea motorizare (din ultima imagine de jos), care era compusa din motor pas cu pas cuplat printr-un angrenaj din doua roti dintate din plastic ce nu erau de calitate si generau eroare periodica mai mare decat cea specifica monturii si un circuit de comanda a motorului format din driver Pololu A4988 si circuit NE 555.
Numai ca frecventa generata de circuitul NE555 nu ramane perfect constanta ,ci se modifica odata cu temperatura mediului ambiant (din cauza componentelor R-C, adica rezistente , potentiometri si condensatori, care formeaza baza de timp a acestui circuit si care au o toleranta destul de mare la variatii de temperatura) si la randul sau modifica viteza de tracking, astfel ca mereu trebuia sa reglez viteza de tracking si nu era prea placut.

Asa ca am inlocuit totul, de la motor pas cu pas ,ca avea o roata cu dinti inclinati care era greu de scos de pe ax, peste care pusesem roata dintata din plastic (cea mica alba din ultima imagine), rotile dintate din plastic si pana la circuitul de comada.

In locul motorului respectiv am pus un alt motor pas cu pas primit de la Erwin, care este mai micut compact, are o impendanta mai mare (4 ohmi, fata de 2 ohmi cat avea vechiul motor) si este mai silentios.
Rotile dintate din plastic le-am inlocuit cu un sistem de doua fulii dintate GT2 din aluminiu care sunt mult mai calitative si o curea dintata GT2 (primele imagini).
Una din fulii, mai mare, cu 60 dinti, am montat-o pe axul melcului de pe axul R.A. al monturii, cealalta fulie mai mica, cu 20 dinti, am montat-o pe axul motorului. Raportul de transmisie este de 3:1 iar raportul de transmisie al monturii de la melc la axul RA este de 144:1, deci in total ar fi 432:1 , cu tot cu sistemul de fulii si curea dintre motor si melcul RA.

Circuitul de comanda al motorului l-am inlocuit total, cu un circuit format dintr-un microcontroler Arduino Nano v3 si driver Pololu DRV 8825 care este mai bun decat vechiul driver Pololu A4988 (care intre timp s-a defectat cand l-am testat pe Arduino, dupa ce a functionat bine aproape 7 luni cu circuitul NE 555). Driverul DRV 8825 ,ce il am tot de la Erwin, este capabil de a functiona cu micropasi de 1/32 dintr-un pas normal al motorului, asa ca l-am setat sa functioneze la 1/32 micropasi, pentru un tracking mai lin.
Placa Arduino am configurat-o in asa fel incat sa functioneze impreuna cu o telecomanda cu fir pentru comanda motorului atunci cant pozitionez telescopul pe tinta,fiind prevazuta cu 8 butoane (din care numai 4 sunt functionale deocamdata) avand mai multe viteze:

-viteza normala de tracking (viteza siderala) atunci cand nu apas niciun buton de pe telecomanda.

- FAST RA +, FAST RA -, viteza mare pentru pozitionare grosiera a telescopului.

- RA + , RA - , pentru pozitionare fina a telescopului.

Celelalte 4 butoane pentru axa DEC (declinatie) de pe telecomanda inca nu sunt conectate la placa Arduino, intrucat axa DEC inca nu am motorizat-o, desi aveam de gand, daca nu aveam ghinionul de a se defecta driverul A4988, putand sa il folosesc pe axa DEC cu celalalt motor pas cu pas, dar asta e. In viitorul apropiat o sa motorizez si axa DEC a monturii. Smile

Mai jos am pus si codul de programare a microcontrolerului Arduino, care pare destul de complicat la prima vedere, dar nu e chiar asa daca inveti si intelegi cum functioneaza. Smile
Am mai pus si o schema electrica a circuitului de comanda a motorului RA.

Am facut o proba in sarcina ,cu telescopul si contragreutatea montata pe montura, in casa ce-i drept, si se comporta bine la prima vedere, dar adevaratul test va fi la obiecte ceresti, cand va mai fi cer senin, deocamdata nu am mai avut ocazii decat pe 24 si 25 noiembrie, insa atunci aveam configurat circuitul cu Arduino in modul cel mai simplist, fara telecomanda, cu o singura viteza fixa, montura era in faza "incipienta" de testare, nu era asa de "dotata "ca in prezent. Smile



20201126_220917.jpg
 Descriere:
Noua motorizare cu driver DRV 8825 + microcontroler Arduino Nano.
 Marime fisier:  654.98 kb
 Vizualizat:  de 4698 ori

20201126_220917.jpg



20201126_220516.jpg
 Descriere:
Telecomanda RA +DEC
 Marime fisier:  556.29 kb
 Vizualizat:  de 4698 ori

20201126_220516.jpg



20201126_220553.jpg
 Descriere:
Ansamblu driver + Arduino inchis intr-o carcasa.
 Marime fisier:  561.4 kb
 Vizualizat:  de 4698 ori

20201126_220553.jpg



20201126_212508.jpg
 Descriere:
Ansamblu driver + Arduino desfacut din carcasa.
 Marime fisier:  643.14 kb
 Vizualizat:  de 4698 ori

20201126_212508.jpg



tracking ra arduino schema.png
 Descriere:
Schema electrica a ansamblului driver DRV 8825 +Arduino
 Marime fisier:  24.15 kb
 Vizualizat:  de 4698 ori

tracking ra arduino schema.png



ra arduino code.png
 Descriere:
Codul de programare a microcontrolerului Arduino.
 Marime fisier:  108.68 kb
 Vizualizat:  de 4698 ori

ra arduino code.png



20200531_190518.jpg
 Descriere:
Vechea motorizare cu driver A4988+ timer NE 555
 Marime fisier:  757.63 kb
 Vizualizat:  de 4698 ori

20200531_190518.jpg



_________________
Reflector Seben 150/1400mm newton-catadioptric
Reflector Atlas Explorer 114/900mm
Reflector Optus 76/700mm
Luneta 45/550mm DIY
Luneta 80/900mm
Binoclu Bresser Superfocus 10x50
Montura Bresser Messier Exos 1 motorizata.


Ultima modificare efectuata de catre iulian90 la 29 Noi 2020 08:18, modificat de 1 data in total
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 28 Noi 2020 21:19 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

O realizare frumoasa si un upgrade binevenit.
_________________
0770403936
Sus
Erwin
Moderator
Moderator


Data inscrierii: 02 Aug 2008
Mesaje: 9469

Motto: panta rhei

Localitate: Bucuresti

MesajTrimis: 29 Noi 2020 08:39 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Bravo, Iulian! Îmi pare bine că umila mea contribuție a fost valorificată cu succes! Ai făcut progrese remarcabile în ultima perioadă, ceea ce nu poate decât să ne bucure!
_________________
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
iulian90
Membru
Membru


Data inscrierii: 13 Sep 2016
Mesaje: 2379



Localitate: Braila

MesajTrimis: 29 Noi 2020 08:51 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Multumesc. Smile

Mai precizez ca schema electrica a circuitului de comanda a motorului RA si codul de programare Arduino au fost inspirate de pe acest site:

https://starsinphotos.wordpress.com/2014/0...otography/

in care proiectul original este de sistem autoguider bazat pe Arduino, dar care eu l-am adaptat doar pentru comanda manuala a motorului de pe axa RA a monturii si a-l face sa functioneze cu telecomanda.
Pinii D8 si D9 de pe placa Arduino, care in proiectul original eru conectati prin 2 optocuploare la mufa ST4 a unei camere pentru ghidaj sau la portul serial sau paralel al unui PC care este dotat cu asa ceva, eu i-am conectat tot la telecomanda, pentru actionarea manuala fina a monturii, deoarece ca sa fac montura cu autoghidare, ca in proiectul original prezentat pe acel site, i-mi trebuie un adaptor USB-ST4 sau USB-Serial pentru ca laptopul care il am sa poata controla montura.

Deocamdata montura o pozitionez manual din telecomanda atunci cand este nevoie, iar pe axa DEC o pozitionez din butonul montat pe axa melcului DEC pana ce o sa motorizez si aceasta axa.
Pe viitor ,cand voi rezolva cu conexiunea dintre PC si microcontrolerul Arduino de pe montura, o sa fie mai usor sa adaptez circuitul de comanda pentru autoguiding, cu mici modificari hardware si software.
Pentru ghidaj am aflat ca pot folosi si camera web Philips Toucam care are senzor CCD, iar ca luneta de ghidaj pot folosi teleobiectivul foto Albinar de 200mm focala care este mai bun si ofera claritate buna pe o arie destul de mare ca cea a senzorului unui DSLR, d-apoi pe aria senzorului camerei Philips care este minuscul in comparatie cu senzorul DSLR-ului. Smile

_________________
Reflector Seben 150/1400mm newton-catadioptric
Reflector Atlas Explorer 114/900mm
Reflector Optus 76/700mm
Luneta 45/550mm DIY
Luneta 80/900mm
Binoclu Bresser Superfocus 10x50
Montura Bresser Messier Exos 1 motorizata.
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 29 Noi 2020 13:45 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Un upgrade binevenit, ca sa scapam de fire, ar fi telecomanda in IR. Exista evident o librarie care invata arduino sa receptioneze si sa decodeze semnalele primite de la telecomenzi in infrarosu (se incarca cu comanda #include <IRremote>). Daca la Tools deschidem un Serial Monitor, actionand telecomanda, se va afisa un cod. Putem retine acele coduri pentru fiecare tasta care ne intereseaza si sa il folosim apoi in sketch (program). Telecomenzi cu receptor pentru arduino se gasesc la preturi mici (9,25 dolari la 10 bucati) - https://www.ebay.com/itm/HX1838-VS1838-Ard...2132264671 . Un receptor mai performant care permite o actionare de la distanta mai mare - https://www.ebay.com/itm/2PCS-VS1838-HX183...2719936928 . Kitul se gaseste si in Romaia la preturi incepand cu 10 lei. Iata sketchul pentru axa Dec (se folosesc sagetile sus/jos):
#include <IRremote>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key_value = 0;
const int stepPin = 10;
const int dirPin = 11;


void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
digitalWrite(stepPin, LOW);
digitalWrite(dirPin, LOW);
digitalWrite(13, LOW);

}

void loop() {

if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);

if (results.value == 0XFFFFFFFF)
results.value = key_value;

switch (results.value) {
case 0xFF629D: //Keypad button "UP"
digitalWrite(dirPin, HIGH);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
delay(1);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
}

switch (results.value) {
case 0xFFA857: //Keypad button "DOWN"
digitalWrite(dirPin, LOW);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
delay(1);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
}

key_value = results.value;
irrecv.resume();
}
}

_________________
0770403936
Sus
iulian90
Membru
Membru


Data inscrierii: 13 Sep 2016
Mesaje: 2379



Localitate: Braila

MesajTrimis: 29 Noi 2020 15:23 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Interesanta ideea cu telecomanda IR pentru actionarea monturii. Smile
Pe viitor poate o sa trec si eu la asa ceva. Cum am cunostinte de electronica , as putea construi eu receptorul IR, care e foarte simplu din ce vad pe ebay. Am si eu senzori IR cu 3 pini, de la cablaje de televizoare sau decodoare TV, cu care as putea face in receptor IR pentru montura, iar ca telecomanda, as putea folosi orice telecomanda. Aveam o telecomanda de la un modulator auto FM,este mica si compacta si are cel putin 6 butoane, dar trebuie sa o caut prin atelier.
Deocamdata o sa folosesc telecomanda cu fir , dar pe masura ce aprofundez mai bine domeniul Arduino,care este nou pentru mine, o sa implementez varianta cu telecomanda IR pentru comanda monturii.

_________________
Reflector Seben 150/1400mm newton-catadioptric
Reflector Atlas Explorer 114/900mm
Reflector Optus 76/700mm
Luneta 45/550mm DIY
Luneta 80/900mm
Binoclu Bresser Superfocus 10x50
Montura Bresser Messier Exos 1 motorizata.
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 29 Noi 2020 15:37 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Poti folosi orice telecomanda IR, vizualizezi codurile transmise si introduci in sketch. Receptorii IR sunt foarte simpli dar si foarte ieftini.
_________________
0770403936
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 30 Noi 2020 15:23 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Pun si sketch-ul pentru axa RA, comanda in IR

#include <IRremote>

const int RECV_PIN = 7;
IRrecv irrecv(RECV_PIN);
decode_results results;
unsigned long key_value = 0;
const int stepPin = 10;
const int dirPin = 11;

void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
digitalWrite(stepPin, LOW);
digitalWrite(dirPin, LOW);
}

void loop() {

manual:
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0XFFFFFFFF)
results.value = key_value;

switch (results.value) {
case 0xFFC23D: //Keypad button "RIGHT"
digitalWrite(dirPin, HIGH);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
delay(1);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
}

switch (results.value) {
case 0xFF22DD: //Keypad button "LEFT"
digitalWrite(dirPin, LOW);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
delay(1);
digitalWrite(stepPin, HIGH);
delay(1);
digitalWrite(stepPin, LOW);
}

switch (results.value) {
case 0xFF02FD: //Keypad button "OK"
goto trak;
}

key_value = results.value;
irrecv.resume();

goto manual;


trak:
digitalWrite(stepPin, LOW);
digitalWrite(dirPin, LOW);
digitalWrite(13, LOW);
digitalWrite(dirPin, HIGH);
digitalWrite(stepPin, HIGH);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(stepPin, LOW);
digitalWrite(dirPin, LOW);
digitalWrite(13, LOW);

if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
if (results.value == 0XFFFFFFFF)
results.value = key_value;

switch (results.value) {
case 0xFF4AB5: //Keypad button "0"
goto manual;
}

}
key_value = results.value;
irrecv.resume();
goto trak;

}
}

_________________
0770403936
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 30 Noi 2020 15:29 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Poate fi inbunatatit prin folosirea unui driver pentru motor la care micropasii se seteaza din arduino. Pentru viteza mare folosim pasi intregi, pentru traking, micropasi.
In program step pin e setat pinul 10 si dir pin, pinul 11. In subrutina trak e setat un delay de 500 milisecunde, aceasta trebuie adaptata cu montura efectiva. Dupa pozitionarea telescopului, la apasarea tasei OK se intra in traking si la apasarea tastei 0 se trece din nou la manual. Eu am folosit doua placi arduino, cate una pentru fiecare axa, dar se pot combina intr-o singura placa arduino.

_________________
0770403936
Sus
Remus Boldis
Membru
Membru


Data inscrierii: 03 Iun 2014
Mesaje: 463



Localitate: Buzias

MesajTrimis: 02 Dec 2020 10:09 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Pentru a veni in ajutorul celor care vor sa inteleaga programarea arduino, am sa incerc un mic serial cu elementele mai slmple de programare. Referinte despre subiect gasim aici : https://www.arduino.cc/reference/en/

void setup()
- parte a programului care va fi executata la inceput, o singura data. Aici initializam variabilele, definim pinii cu care lucram, incarcam librariile necesare, etc.

void loop()
- parte a programului care va fi executata in bucla atat timp cat arduino este alimentat. Se executa dupa void setup().

//
- semn folosit pentru introducerea de comentarii intr-o linie de program. Tot ce e la dreapta semnului nu va fi citit de arduino (in linia respectiva). Se foloseste pentru a explica utilitatea liniei respective, pentru a intelege programul si e foarte util pentru depanari, apgradari program.

/* */
- acelasi lucru ca mai sus, dar este folosit pentru introducerea de comentarii pe mai multe linii. Tot ce e inclus intre /* */ nu va fi citit de arduino

{}
- toate subrutinele trebuie incluse intre acolade. Daca nu o facem sau uitam sa inchidem o acolada, programul va semnaliza eroare.

digitalRead()
- citeste valoarea, high sau low, a unui pin digital pe care l-am definit ca input. In paranteza scriem numarul pinului, sau numele pe care l-am dat pinului respectiv.

digitalWrite()
- pune in high sau low un pin digital, pe care l-am definit ca output. In paranteza scriem numarul pinului, sau numele pe care l-am dat pinului respectiv.

pinMode()
configureaza un pin ca intrare sau iesire (input, output).

delay()
- spunem microcontrolerului sa astepte un numar de milisecunde (valoarea se trece in paranteze).

delayMicroseconds()
- spunem microcontrolerului sa astepte un numar de microsecunde (valoarea se trece in paranteze).

Exemple de sketchuri:

1 Placa arduino are un LED conectat intern la pinul 13. Programul aprinde ledul timp de o secunda, dupa care sta stins o secunda

void setup() {
pinMode(13, OUTPUT); // setam pinul 13 ca iesire
}
void loop() {
digitalWrite(13, HIGH); // punem pinul 13 in high (5V)
delay(1000); // asteapta 1000 de milisecunde
digitalWrite(13, LOW); // punem pinul 13 in low (0V)
delay(1000); // asteapta 1000 milisecunde
}

2 Conectam la pinul 7 un pushbutton (intre +5V si pinul 7). Ledul conectat la pinu 13 se va aprine la apasarea butonului si se va stinge la eliberarea lui.

int ledPin = 13; // intitulam, denumim pinul 13 ca ledPin
int inPin = 7; // denumim pinul 7 ca inPin
int val = 0; // declaram o variabila

void setup() {
pinMode(ledPin, OUTPUT); // setam ledPin ca output
pinMode(inPin, INPUT); // setam inPin ca input
}

void loop() {
val = digitalRead(inPin); // citeste vloarea inPin si o aloca variabilei val
digitalWrite(ledPin, val); // seteaza ledPin la vloarea val
}



Desigur putem lega un led extern la un pin pe care l-am definit ca iesire. In acest caz va trebui sa inseriem cu ledul o rezistenta de limitare a curentului (intre 100ohmi si 10 kiloohmi, cu cat rezistenta e mai mica, cu atat curentul prin led va fi mai mare).Ledul se leaga intre pinul output si GND.https://www.circuitbasics.com/arduino-basics-controlling-led/



_________________
0770403936
Sus
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect   DIY / ATM / Reparatii Du-te la pagina Anterioara  1, 2, 3, 4, 5  Urmatoare

Download topic
Pagina 4 din 5
 
Mergi direct la:  
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
© 2015 astronomy.ro
Termeni si conditii generale      Termeni si conditii forum      Contact