I Forum di Amici della Vela

Versione completa: Costruzione pilota automatico per barca a vela
Al momento stai visualizzando i contenuti in una versione ridotta. Visualizza la versione completa e formattata.
Pagine: 1 2 3 4 5
diff = rotta - angle;

if (diff < -180) {diff = diff + 360;}
if (diff > 180) {diff = diff - 360;}
scostamento = abs(diff);

if (diff < -3){digitalWrite(3, HIGH); delay(scostamento * 100);digitalWrite(3, LOW); delay(100);}

if (diff > 3){digitalWrite(2, HIGH); delay(scostamento * 100);digitalWrite(2, LOW); delay(100);}
1) Per sicurezza devi iterare le operazioni di riduzione entro l'intervallo -180,+180 fino a quando sei sicuro di esserci.
2) controllare con "scostamento" il tempo di azione del relè è un po' azzardato. Ti faccio un esempio: supponi che il pilota ha già fatto una correzione dando una certa barra e la barca sta effettivamente tornando in rotta. Durante l'accostata il pilota fa un'altra misura e trova ancora la prua fuori rotta per cui aumenta ulteriormente l'angolo di barra - magari di poco perché lo scostamento nel frattempo è diminuito ma quanto basta per andare, probabilmente, al di là della rotta impostata. Invece di diminuire gradatamente l'angolo di barra man mano che si raggiunge la rotta, l'autopilota lo aumenta! Non va! Il sistema tende ad oscillare.
Il problema sorge perché controllare solo il tempo di azione dei relè non tiene conto di dove si trova effettivamente la barra in quel momento.
Devo insistere? L'autopilota DEVE conoscere la posizione del timone!!!!!!!!!

Effettivamente esistono dei piloti che non hanno il Rudder Reference ma, in compenso, utilizzano dei motori passo passo in grado di controllare accuratamente la posizione del timone (fino a quando non vanno fuori fase!).

Daniele
Ciao Daniel, noto che segui la discussione con interesse, se ti va allego l'ultimo Sketch e con l'apposito programma scaricabile dal sito https://www.arduino.cc/ puoi apportare le tue idee, e con copia incolla io testerò l'esito.
Ok Marco, l'ultimo Sketch che ai mandato, di primo acchitto funzione, praticamente cosi nelle formule si mette in ballo azimut e contro azimut, l'unico dubbio sembra che i tempi di azionamento del relè con una differenza alta tra rotta e angle siano un pò altini. Comunque questa è una prima sensazione.
(17-02-2016 18:30)pepilene Ha scritto: [ -> ]Ok Marco, l'ultimo Sketch che ai mandato, di primo acchitto funzione, praticamente cosi nelle formule si mette in ballo azimut e contro azimut, l'unico dubbio sembra che i tempi di azionamento del relè con una differenza alta tra rotta e angle siano un pò altini. Comunque questa è una prima sensazione.
Torno nella discussione quando avrete effettivamente messo su un motore che aziona un potenziometro a filo da 500 Ohm (per ora non c'è bisogno che agisca anche su un timone!) e la sua resistenza (posizione del cursore rispetto al centro) venga letta dal processore...
Buon lavoro!

Daniele
Conviene implementare un algoritmo di correzione cha abbia una componenete proporzionale al delta fra prua e bussola - (meno) un fattore correttivo che tenga conto della differenza di due delta successivi... In questo modo la correzione si riduce se l'intervento precedente ha ridotto l'errore fra bussola e prua. I fattori di proporzionalità per i due contributi (proporzionale "H" e differenziale "K") del calcolo vanno trovati sperimentalemente.
Utilizza una variabile per "sommare" (W) tutte le correzioni eseguite in un dato verso, appena il delta rientra dentro un "dead angle" nel quale il pilota non interviene, azioni il pilota in senso opposto così da avere una correzione pari a -W... e la barra "dovrebbe tornare al centro"... occhio che per far cio' devi verificare se la barca arriva dentro l'angolo morto da dritta o da sinistra...
Buon lavoro!
Si può fare... Attendiamo il braccio motore con la sua escursione e velocità per fare queste cose
Peró ragazzi... Pepilene si deve fare il caffè mentre il pilota va mia deve fare la vendee globe...
Io nel mio piccolo ho un raymarine spx5 gp e non ha né rudder reference ne tantomeno alcun motore passo passo e il mediterraneo lha tagliato in lungo e in largo
Basta che vada dritto... Lui si fa la sua tazzuliella di café e siamo tutti contenti
... Nella board non scorgo il ponte ad H per il controllo del motore 21
(17-02-2016 21:57)Andomast Ha scritto: [ -> ]Conviene implementare un algoritmo di correzione cha abbia una componenete proporzionale al delta fra prua e bussola - (meno) un fattore correttivo che tenga conto della differenza di due delta successivi... In questo modo la correzione si riduce se l'intervento precedente ha ridotto l'errore fra bussola e prua. I fattori di proporzionalità per i due contributi (proporzionale "H" e differenziale "K") del calcolo vanno trovati sperimentalemente.
Utilizza una variabile per "sommare" (W) tutte le correzioni eseguite in un dato verso, appena il delta rientra dentro un "dead angle" nel quale il pilota non interviene, azioni il pilota in senso opposto così da avere una correzione pari a -W... e la barra "dovrebbe tornare al centro"... occhio che per far cio' devi verificare se la barca arriva dentro l'angolo morto da dritta o da sinistra...
Buon lavoro!
In parole povere è importante calcolare non solo la deviazione dalla rotta ma anche la sua derivata temporale. Mi sembra giusto!

D'altra parte l'SPX nominato è piuttosto "intelligente" tanto che impara da solo! Giovani, se non volete mettere la Rudder Reference probabilmente riuscite ugualmente a fare qualcosa di funzionante, ma dovete fare un bel programmone - altroché 20 misere istruzioni in fila!

Rudder Reference => programma relativamente semplice.
No Rudder Reference => Intelligenza Artificiale o giù di li.

A voi la scelta.

Daniele
(17-02-2016 22:23)Andomast Ha scritto: [ -> ]... Nella board non scorgo il ponte ad H per il controllo del motore 21

Si sarà fatto.
Al momento qua l'inghippo è andato tutto in tilt.91919191
Quale senore avete usato per la bussola?
Questo contenuto non e' visualizzabile da te Ospite. Se vuoi vederlo, REGISTRATI QUI .Questo contenuto non e' visualizzabile da te Ospite. Se vuoi vederlo, REGISTRATI QUI .
il sensore è un 5888 L , ma nel i due adattatori viene fuori che l'arduino, non legge più il sensore.
Riacquistato nuovo sensore, pazienza cè d'aspettare.
In questi giorni mi sono interpellato con un altro forum, specifico per arduino, ma non volendo giudicare male, avessi avuto un'aiutino.
In attesa che arrivi il nuovo sensore googola cercando hard iron e soft iorn calibration.
Questo contenuto non e' visualizzabile da te Ospite. Se vuoi vederlo, REGISTRATI QUI .
Ok trovato il problema, era questo adattatore che non fa partire il programma, qualcuno sa come vengono montati questi adattatori?
A chiedere nel forum dedicato non provo neanche.
Ok risolto il problema piccolo difetto di costruzione, adesso funziona, resta solo da regolare in navigazione.
In attesa del tuo braccio mettiamo il mio se vuoi
Ma lo hai già incapsulato in un contenitore adatto alla barca? E i relais?
è in costruzione adesso.
Ma come dice Andomast, va calibrato il sensore, in primis.
Pepilene volevo chiederti, ma il display di quello strumento multi della Navman di cui hai usato lo chassis, è funzionante? Perchè ho uno strumanto uguale con LCD completamente sbiadito al centro.
Pagine: 1 2 3 4 5
URL di riferimento