Ciao Domenico volevo chiederti se gentilmente fosse possibile avere un disegno anche a mano,di come hai ricablato i motori,i micro e i 2 relè perchè mi sono perso.Nelle foto ho visto che hai mantenuto i relè ma come interagiscono con L298 se già lui di suo fa l'inversione di polarità?Vedo che arduino non usa i relè come riferimento per sapere la posizione estrema destra o estrema sinistra. Quale sistema Arduino utilizza per capire se è arrivato a finecorsa ?Mi confermi che i pin nello schema contrassegnati con X sono liberi e quindi non collegati ?Grazie per l'aiuto
Ciao michele, veramente della parte elettrica non ho modificato nulla.Unico spostamento che ho fatto sono i 2 micro fine corsa della rotazione, messi all’interno del brandeggio per evitarne il deterioramento. L’integrato L298 pilota i motori, che si fermano quando arrivano a fine corsa, esattamente come collegando in vario modo i fili del brandeggio originale.Guarda anche qui, c’è una foto dove si vede come ho sistemato i due micro.http://www.camperlife.it/fai-da-te_226_Parabola-motorizzata-Fai-da-Te.html
per prima cosa buone feste a tutti.come avrai capito sto sfruttando il tuo progetto solo per la parte relativa alla programmazione di arduino per l'utilizzo della bussola e del display, in questo ci sono riuscito e tutto funziona perfettamente.utilizzo il palo già esistente sul camper per assemblarci un riduttore su cui posizionare la parabola, ruoto il palo per la direzione ed utilizzo il riduttore per l'elevazione.utilizzo una app x satfinder e la bussola per la direzione e l'elevazione.il tutto funziona perfettamente, ma non ho ancora trovato il sistema migliore per posizionare i cavi e consentirgli di ruotare senza stressarli troppo.avevo pensato di inserirli dentro il palo, ma ho paura che alla lunga lo strusciamento interno li tagli, passandoli da un'altra apertura che ho sul tetto non trovo il modo per fissarli al foro di uscita e farli ruotare con l'antenna.spero di aver fatto capire la questionetu come lo hai risolto il problemaps. ho trovato una selfsat h30 funziona perfettamente è molto comoda avevi ragione grazieclaudio
Ciao claudio, nella seconda realizzazione, avendo messo un potenziometro che rileva la posizione della rotazione, ho fatto passare i cavi all’interno del brandeggio stesso tenendoli più liberi possibile quando il posizionamento è a 180 gradi, che è anche la posizione dell’antenna quando viene chiusa.Ovvio che se durante la ricerca occorre fare una rotazione di 180 gradi in un senso o nell’altro l’attorcigliamento c’è ma sinora non mi ha mai dato problemi.I cavi, che ho usato io, sia quello dell’antenna che quello per il controllo (cavetto per impianto allarme a 10 fili), sono circa di 4,5 mm. di diametro l'uno.Ciao e buon poseguimento con le Festività.domenico
Ciao Domenico, desidero farti i miei complimenti x la realizzazione, ache io sto' cercando di cimentarmi nell'impresa,sto' aspettando che mi arrivano i materiali per mettermi all'opera, desideravo farti qualche domanda:1) Volevo utilizzare il tuo sketch di arduino, ma non volendo fare la modifica della puleggia, e quindi non installare il potenziometro, quale parte dello sketch devo eliminare?2)Non facendo tale modifica, dovrei perdere solo la funzionalita' di sapere la posizione della parabola con relativa chiusura a 180 gradi e nient'altro, giusto?Ti ringrazio in anticipo, del tempo che vorrai dedicarmi.Maurizio
Ciao Maurizio, grazie innanzitutto per i complimenti, non guastano mai.Veniamo a noi, io nella prima realizzazione motorizzazione dell’antenna SELFSAT non avevo messo il potenziometro e chiudevo l’antenna completamente in senso orario in modo che quando si apriva e faceva la ricerca incontrava prima Hotbird che è quello che ci interessa e poi Astra, occorre fare attenzione che i fili interni (antenna e controllo) non siano attorcigliati quando la rotazione è in posizione centrale.Occorre inoltre avere un riferimento per abbassare l’antenna in chiusura, questo ora è dato dal potenziometro quando raggiunge la posizione di 180° mentre nella realizzazione precedente si ricavava dal finecorsa della rotazione che cambiava stato.Per il software invece, va modificata la funzione “orienta” che deve sempre iniziare la ricerca in senso antiorario sino al raggiungimento della posizione memorizzata per poi cercare nei due sensi.Occorre anche modificare la funzione “chiudi” dando come riferimento il cambio/stato del finecorsa e facendo in modo che chiuda sempre in senso orario.Ora come ora non ho una meccanica da poter fare delle prove e poi sto lavorando al controllo via bluetooth, prova comunque a dare un’occhiata al “Programma” del link della prima realizzazione, funzionava come serve a te ma non era in modalità I2C.Non escludo di trovare il tempo di modificare il programma e di provarlo, capisco infatti che la modifica della meccanica costa un tantino e non è una cosa facilissima da fare.Ciao, Domenico.
Ciao Domenico, desidero farti i miei complimenti x la realizzazione, ache io sto' cercando di cimentarmi nell'impresa, sto' aspettando che mi arrivano i materiali per mettermi all'opera, desideravo farti qualche domanda: 1) Volevo utilizzare il tuo sketch di arduino, ma non volendo fare la modifica della puleggia, e quindi non installare il potenziometro, quale parte dello sketch devo eliminare? 2)Non facendo tale modifica, dovrei perdere solo la funzionalita' di sapere la posizione della parabola con relativa chiusura a 180 gradi e nient'altro, giusto? Ti ringrazio in anticipo, del tempo che vorrai dedicarmi. Maurizio
@DomenicoCiao Domenico, grazie 1000 x la risposta, in merito al fatto di utilizzare lo sketch della tua prima realizzazione, il problema e' che sto' utilizzando come bussola il CMPS11 e come display non uno seiale ma i2c, purtroppo di programmazione ne capisco molto poco, e quindi fare un puzzle dei due sketch mi e' complicato, ed e' x questo che ti ho chiesto quale parte cancellare dello sketch non utilizzando ilo potenziometro, P.S. scusa per il ritardo nella risposta! @curaroCiao e Grazie!
ciao Maurizio, le 2 funzioni che ti dicevo (ORIENTA e CHIUDI) non sono da cancellare ma da modificare e devono essere simili a quelle della prima realizzazione in quanto devono fare le stesse cose ma in modo diverso.Appena posso vedo di rimette mano ai 2 programmi per metterne a punto uno per le tue esigenze, oltretutto penso che potrebbe servire anche ad altri, non disposti a modificare la meccanica, abbi solo un attimo di pazienza e vedrai che risolviamo anche questa.ciao, Domenico.
Ciao Domenico, guarda, non so' come ringraziarti, prenditi pure tutto il tempo che ti occorre..(ci mancherebbe)...cosa dire, G R A Z I E D I C U O R E....attendero' tutto il tempo necessario.GRANDE Domenico, a presto!
Ciao Maurizio, eccomi con le modifiche che mi avevi chiesto, sperando di fare cosa gradita anche ad altri, non disposti a modificare la meccanica. Tipo di Brandeggio ” Motore 303 con comune NEGATIVO”, ne hanno fatti anche con comune POSITIVO e con questo circuito non vanno bene, a meno di modificare parecchie cose.Software: SatWindom_I2C_rev1.ino , IDE 1.0.6, aggiungere la libreria “LiquidCristal_I2C” scaricabile da QUIModifiche da effettuare per chiudere l’antenna a fine corsa in senso orario invece che al centro.Come da schema, sul PIN 8, collegare una resistenza da 10 Khom verso massa con in parallelo un diodo zener da 4,7v (protezione pin) e una resistenza da 12 Khom tra PIN 8 e micro finecorsa orientamento orario.In questo modo, siamo sicuri che quando sul micro fine corsa arrivano 12 v, sul pin 8 non arrivano più di 4,7vLunghezza cavo controllo max. 2,5 mt., non ho provato se con più di 2,5 mt. funziona ancora tutto. Controllare che i cavi non siano attorcigliati quando la rotazione è a 180° (centro).Il sistema I2C, per via delle capacità parassite, e fatto per interfacciarsi con componenti sulla stessa scheda (Autoradio, Sistemi Audio,TV,PC, ecc) o al massimo con periferiche collegate con qualche decimetro di cavo. Io sul camper uso un cavo per impianti allarme a 10 fili (utilizzati 9) lungo circa 2,2 metri, e mettendo resistenze di pull-up da 2,2 Khom non dà nessun problema, per stare tranquilli, sullo schema le resistenze le ho messe da 1,8 Khom .-ATTENZIONE !!!Ci sarebbe una piccola modifica da apportare allo schema elettrico per il sistema con potenziometro e chiusura centrale (180°). Il collegamento che porta i 12 volt al brandeggio va eliminato in quanto i 12 volt arrivano dal MOTOR DRIVER e quindi basta fare arrivare la massa .Queste cose accadono quando si fa prima il lavoro e poi lo schema, come ho fatto io. Me ne sto accorgendo ora che sto provando il software per far chiudere l'antenna non al centro ma a fine rotazione in senso orario.Il sistema senza potenziometro funziona così:Alla messa in moto del motore, non succede nulla per 15 secondi, questo per poter effettuare eventuali piccoli spostamenti del mezzo senza che l'antenna si chiuda. Successivamente, per evitare possibili collisioni nella rotazione, viene controllato che l'antenna abbia un’ elevazione inferiore ai 60°. Inizia quindi la fase di chiusura in senso orario sino allo scatto del micro di fine corsa. A questo punto, sul pin 8 della scheda Arduino si avverte il cambio di stato basso/alto e l'antenna si abbassa completamente sino a far scattare il micro di fine corsa elevazione.In fase di ricerca automatica invece, la scansione parte sempre con la rotazione antioraria sino al raggiungimento della posizione memorizzata nella EPROM per poi cercare nei due sensi. Di conseguenza, la prima volta che si fa la ricerca occorre farla manualmente portando prima l’ EVAZIONE intorno ai 38° e poi l’ORIENTAMENTO sui 172°. Centrare il satellite con piccoli spostamenti per il massimo livello di segnale e salvare i valori nella EPROM premendo il pulsante “SALVA”.Qui sotto lo schema e il software con relative modifiche, e sotto il link per il download.Il file zippato si può scaricare da qui
Grazie Domenico, sei un GRANDE, non ho parole per ringraziarti, veramente, non vedo l'ora di provare lo sketch, purtroppo, mio malgrado, sono fermo a causa di un guasto del CMPS11, che dopo essere riuscito a farlo funzionare a dovere, tac....ha deciso di passare a miglior vita...sono in attesa che mi arrivi l'altro dalla Germania, comunque ne approfitto x chiederti una cosa:Sto' smanettando con android arduino e bluetooth...e anchio sto' realizzando una piccola app da interfacciare con arduino, e mi e' venuta l'idea, non ancora attuata, di far rilevare allo smartphone la posizione GPS, comunicarla al sito " http://mapszoom.com/satellite-dish-installation.php ", ed estrapolarmi dallo stesso sito il risultato di:LNB Skew: -0.1° Dish | Elevation: 31°Azimuth | True: 179.84°Azimuth | Magnetic: 180.74°e passarli ad arduino per modificare i parametri di puntamento in real time..che ne pensi?Ciao ed ancora GRAZIEMaurizio
Ciao, mi spiace per la bussola, io l'avevo presa qui, non e che costa proprio poco.Ho dato una occhiata al sito, non è male come idea, poi me lo studio con calma.Io, nella mia applicazione Android, fatta con MitAppInventor, il calcolo del puntamento lo faccio con una formula, ricavata girando in internet, compresa quella di wikipedia che avevo corretto nel 2014, perchè sbagliata. Praticamente, sfruttando le cellule telefoniche oppure il GPS dello smartphone in modalità "basso consumo", più che suffiente per i nostri scopi, ricavo latitudine e longitudine del posto in cui mi trovo e automaticamente mi dà i dati di puntamento, qualcosa di simile alla App Satfinder e Satfinder pro.Ho preferito essere svincolato da Internet anche perchè dove vado con il camper non sempre c'è.Ti allego lo screenshot (Galaxy s4), come vedi, sotto, in giallo ci sono le coordinate rilevate, mentre in alto a destra, il risultato del calcolo, ti dirò....ci ho messo un pò a sistemarla ma alla fine ce l'ho fatta.Ciao, Domenico
Ciao Domenico, Grazie della risposta, avrei una domanda da farti....volendo implementare il bluetooth su arduino, pensavo di utilizzare gli interrupts elevHB e dirHB attualmente assegnati alla lettura e/o salvataggio su EEPROM, assegnandoli alla lettura e/o salvataggio su smartphone, dico cio', in quanto non sapendomi destreggiare con arduino, mi risulta facile tale implementazione, in pratica, volevo inizializzare in questo punt dello sketch la seriale (void setup(){ Wire.begin(); // inizializza I2C lcd.init(); ) ...ed attendere la comunicazione bluetooth con lo smartphone x la ricezione dei dati di Elevazione e di Azimuth gia' memorizzati nello smartphone, ed essendo in loop, gli eventuali dati calcolati dal sistema che ti ho descritto nel mio precedente post.cosa ne pensi?Grazie e ciao.MaurizioP.S. Spero che mi sia espresso in maniera accettabile
Ciao Domenico,Sto' facendo alcune prove, avrei (in verita' tante domande) una domanda da farti: posso dire ad arduino che"manButton = Serial.read();" x fare arrivare gli stessi valori da seriale anzicche' farli leggere dal pin A2?Scusa se sto' dicendo un sacco di castronerie, grazie ancora ed alla prossima!Maurizio
Ciao Maurizio, scusa il ritardo ma sto assemblando un nuovo PC e non sono più stato su Internet.Ho però la sensazione che gli argomenti che stiamo trattando siano più cose da arduino,android e BT e con i Camper c’entrino ben poco.Comunque...il 29/01/16 mi parlavi di interrupts, io nel software di controllo uso si il pin 3 che è uno dei 2 (l’altro è il pin2) che si possono usare come interrupts, ma a me serve per controllare il motore in modalità PWM. L’uso degli interrupts si usa quasi esclusivamente per gli encoders incrementali, dove durante i cicli “loop”, non ci si può permettere di perdere neanche un impulso dell’encoder stesso. Per il controllo del brandeggio, anche se perde un dato in un ciclo, lo recupera il successivo.Per la domanda dell’ 1/2/16 invece, quello che dici è corretto, io ho fatto qualcosa del genere per il controllo che sto mettendo a punto, ma via BT, che è comunque sempre trasmissione seriale.Spero di esserti stato utile, anche se un po’ sbrigativo.Ciao, Domenico
Ciao Domenico, grazie della risposta, cercando di sollevare il tuo scrupolo in merito all'off topic, rispondo dicendo che, se pur vero che staimo parlando di arduino, la sua programmazione, elettronica, periferiche, sono tutte riferite solo ed esclusivamente alla realizzazione del prototipo di antenna x camper da te proposto, quindi non credo che l'amministratore e/o il moderatore del forum possa/no obiettare in merito, ritornando alla realizzazione, sto' avendo parecchie difficolta', mi spiego, ho finito la parte hardware, ma all'accensione, con lo sketch che ci hai gentilmente modificato, parte la rotazione in senso antiorario, non si accende il led dell'automatismo, e non riesco a capire cosa non vada, puoi, se hai tempo, e se vorrai, gentilmente dirmi la sequenza delle operazioni che dovrebbe fare l'antenna alimentandola?Grazie ancora del tempo che vorrai dedicarmi.Ciao Maurizio.
Ciao Maurizio, il fatto che la ricerca parta è gia una buona cosa, almeno qualcosa si muove, se però non si accende il led della ricerca automatica potrebbe dipendere da 3 cose:Il led montato al contrario, e questa è la cosa più probabile, oppure il pin 13 (sensore motore acceso) o il pin A0 (livello segnale) non collegati.Se i due pin vengono lasciati liberi, automaticamente vengono portati a livello ALTO e oltre a non far accendere il led, non fanno proprio partire la ricerca automatica.Controlla quindi che il led sia collegato giusto ed eventualmante collega provvisoriamente i pin 13 e A0 a massa.Va detto inoltre che la rotazione non si muove se il livello dell’elevazione rilevata dalla posizione della CMPS10 è superiore a 60° (90° antenna chiusa, 20° massima apertura).La ricerca automatica funziona così:Alla pressione del pulsante “Man/Auto”, con pin 13 e A0 a livello BASSO, si accende il led sul pin 12, l’antenna si alza sino al raggiungimanto del valore di elevazione memorizzato (37...39°), successivamente inizia la rotazione in senso antiorario sino al raggiungimento del valore di direzione menorizzato (170...175°) per poi muoversi nei due sensi per mantenere la posizione. Se il livello segnale sul pin A0 supera il valore del 30%, il sistema passa al controllo manuale. Importante, fare la prima ricerca in modo manuale e memorizzare i valori con il pulsante SALVA.Fammi sapere, ciao, Domenico.
Ciao Domenico, ancora grazie x la risposta, ho un'ulteriore problema, all'accensione mi ritrovo con tutti i piedini del motore (elevazione e direzione 9-10-11-3 ) in high, quidi il brandeggio inizia ad alzarsi per un secondo per poi abbassarsi immediatamente e cosi' di continuo...cosa potrebbe essere?GrazieMaurizioP.S. Non ho completato il circuito dalla resistenza da 100 k in poi verso i pulsanti (in quanto voglio eliminarli per usare i pulsanti software, ho solo collegato la resistenza da un lato al pin a2 e dall'altro al ground sat finder, potrebbe essere questo il problema?
Ciao Maurizio, Il partitore resistivo serve a mandare i sei valori diversi al pin A2 (100-200-300-400-500-600)mentre la resistenza da 100 Khom serve a tenere il pin A2 BASSO quando si rilasciano i pulsanti.Controlla con un tester che tra il pin A2 e massa ci siano 0 volt, i pin 3,9,10,11 devono essere tutti ALTI e non dovrebbe muoversi nulla, infatti il driver L298 per avere valori BASSI in uscita deve avere valori ALTI in ingresso.Un’altra cosa...hai collegato la bussola e visualizzi i dati sul display?Se non arrivano i dati della bussola, c’è l’istruzione “while(Wire.available() < 4);” che impedisce al programma di funzionare, praticamente, deve essere collegato tutto, come da schema.Attenzione che mentre per la bussola l’indirizzo è 0x60 i display che si acquistano possono avere sia indirizzo 0x20 che 0x27 e quindi occorre decommentare nello sketch la voce che interessa, ti invio anche uno sketch da caricare su arduino per individuare gli indirizzi delle periferiche collegate.Ciao, Domenico. // ********************************************************// i2c_scanner//// Version 1// This program (or code that looks like it)// can be found in many places.// For example on the Arduino.cc forum.// The original author is not know.// Version 2, Juni 2012, Using Arduino 1.0.1// Adapted to be as simple as possible by Arduino.cc user Krodal// Version 3, Feb 26 2013// V3 by louarnold// Version 4, March 3, 2013, Using Arduino 1.0.3// by Arduino.cc user Krodal.// Changes by louarnold removed.// Scanning addresses changed from 0...127 to 1...119,// according to the i2c scanner by Nick Gammon// http://www.gammon.com.au/forum/?id=10896// Version 5, March 28, 2013// As version 4, but address scans now to 127.// A sensor seems to use address 120.////// This sketch tests the standard 7-bit addresses// Devices with higher bit address might not be seen properly.//#include <Wire.h>void setup(){ Wire.begin(); Serial.begin(9600); Serial.println("\nI2C Scanner");}void loop(){ byte error, address; int nDevices; Serial.println("Scansione..."); nDevices = 0; for(address = 1; address < 127; address++ ) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); error = Wire.endTransmission(); if (error == 0) { Serial.print("Trovato periferica I2C, indirizzo 0x"); if (address<16) Serial.print("0"); Serial.print(address,HEX); Serial.println(" !"); nDevices++; } else if (error==4) { Serial.print("Errore sconosciuto nell'indirizzo 0x"); if (address<16) Serial.print("0"); Serial.println(address,HEX); } } if (nDevices == 0) Serial.println("Nessuna periferica I2C trovata\n"); else Serial.println("Fatto\n"); delay(5000); // wait 5 seconds for next scan}//***************************************************
Ciao Maurizio, controllando le news sul forum, ho riletto il tuo post dell 15/02 e mi è sorto un dubbio. Tu mi dici che hai i pin 3,9,10,11 tutti alti e questo è giusto che sia, di conseguenza le uscite dell’ 298 dovrebbero essere tutte basse. Se quindi i motori si muovono, vuol dire che il tuo brandeggio ha il COMUNE positivo. In questo caso dovrai modificare il programma nelle funzioni ripetitive, cambiando le istruzioni verso i motori (solo quelle) motDa, motDb, motEa, motEb , da HIGH a LOW e viceversa. Inizia magari con la funziona “void ferma()” modificandola così:void ferma() { // ferma rotazione motori digitalWrite(motDa, LOW); digitalWrite(motDb, LOW); digitalWrite(motEb, LOW); digitalWrite(motEa, LOW); oldState = LOW; // disattiva automatismi e digitalWrite(ledMA, LOW); // spegne LED}Cambia anche il valore della costante “velRid” e imposta la riduzione della velocità al 50%, se poi girano troppo piano, puoi sempre aumentare. const byte velRid = 127; // riduzione velocità al 50% Ciao, Domenico...fammi sapere.
Buongiorno volevo ringraziare ancora Domenico per l'opportunità che ci sta dando con il suo aiuto per la realizzazione dell'antenna satellitare automatica,però io getto la spugna per motivi d'incapacità e di tempo a volte bisogna saper riconosciere i propi limiti.Quindi se ci fosse qualcuno che volesse provare a cimentarsi nella realizzazione io metto in vendita tutto il materiale necessario motore,antenna,arduino,ingranaggi torniti,bussola,driver motori ecc.ecc. non manca niente potete contattarmi alla mia e-mail michele@edison-delta.itSpero di poter essere utile a qualcunoMichele
Commenti