![]() |
Sistema automatico su Taranis x9d Buonasera, vorrei realizzare un sistema di questo tipo: Componenti, Tranais x9d e ricevente 8xr (con telemetria) Es. Ch1 su un esc che pilota un motore brushless, un microntatto (NC) sempre chiuso che quando si apre mi permetta automaticamente di far scendere il motore es al 10% e quando viene richiuso riporti il motore al 100%. È possibile realizzare qualcosa di simile? Mi viene da pensare tramite l'ingresso della telemetria... Ma poi la radio come legge questo ingresso? posso "mixarlo" ecc? |
La ricevente x8r non ha un ingresso analogico anche se mi sembra di ricordare che possa essere ricavato con modifica. O usi una ricevente diversa oppure devi ricavarti un sensore ad con Arduino. Un' alternativa potrebbe essere utilizzare un sensore per le lipo che poi potrai ingannare opportunamente. Inviato dal mio M2004J19C utilizzando Tapatalk |
Citazione:
Non mi é chiaro dove vorresti collegare il contatto (sul modello deduco...) e che funzione dovrebbe avere. |
Citazione:
|
Citazione:
Potrei utilizzare un circuitino (tipo partitore di tensione) per simulare es. Interruttore On( voltaggio alto) e Off (voltaggio basso) L'altra domanda è: poi nei mix della radio (taranis x9d) posso "inserire" il valore letto in telemetria(opportuname ingannato) per creare una funzione di abbassamento o ripristino del valore di un canale? |
Citazione:
Inviato dal mio M2004J19C utilizzando Tapatalk |
Scusate..non conosco le programmazioni radio,ma non si può semplicemente assegnare uno switch, opportunamente programmato gli epa,al canale dell esc? |
Citazione:
Inviato dal mio M2004J19C utilizzando Tapatalk |
Citazione:
Questo viene programmato per mandare un segnale telemetrico come fosse un sensore (per esempio un sensore di temperatura) e, poi, sulla radio, si crea una condizione logica per cui, al superamento del valore, si attivo e, sui mix, si crea la riga che si attiva con la condizione logica! |
Ah ok...credo di aver capito..però il sensore deve darti due valori diversi per fare ciò che dite...o no? |
Si Inviato dal mio M2004J19C utilizzando Tapatalk |
Citazione:
Esattamente! Credo che ingannare un sensore di tensione lipo sia al momento la cosa più semplice, veloce ed economica. Basta realizzare un partitore che viene "chiuso" da microntatto. "LIPO carica" contatto On "LIPO" scarica" contatto Off Dovrò poi solo trovare quale parametro si riferisce in telemetria alla tensione delle lipo e creare la condizione che se scende sotto un certo valore (di Volt) quindi contatto Off mi porta un canale alla mixaggio stabilito. Quando risale, quindi contatto On mi ripristina il parametro. Top! |
Economica forse no, un qualsiasi Arduino , anche un promini, farebbe in modo semplice all caso tuo e costerebbe anche meno Inviato dal mio M2004J19C utilizzando Tapatalk |
anche un Digispark và bene. Poi, se uno vuole essere sicuro che la memoria basti, un arduino micro basta e avanza. E con 3-4 euro te la cavi! Alla fine il programma è abbastanza semplice da fare. Un pin qualunque è collegato alla porta SPORT e comunica con la ricevente il dato interessato (la porta viene emulata in ogni caso per via dell'inversione del segnale). Un altro pin è usato in INPUT_PULLUP con un contatto (indifferente se normalmente aperto o chiuso) e basta. |
Citazione:
Qui trovi le librerie sport e un po di esempi: https://www.rcgroups.com/forums/show...d-configurable Io ho appena fatto un sensore barometrico |
Buongiorno, sono alquanto neofita con Arduino, se qualche buon anima:) vista la semplicità del programma può inviarmi il link via mail o msg privato gle ne sarei grato. Io praticamente non ho un vero è proprio trasduttore o meglio un microinterruttore a deviatore, in determinate situazioni il contatto risulta NC in altre contatto NO, semplicemente. Ps. ho la porta Sbus impegnata da un convertitore SBUS PWM però da come intuisco il segnale di "telemetria" va collegato nella Smart Port, quindi non ci sono problemi. Grazie |
Tra un po' ti carico il codice che farebbe al caso tuo, devo solo trovare da dove farti scaricare la libreria che ho usato che è diversa da quella postata qualche post fa. |
La libreria che ho usato io la trovi qua e devi installarla nella cartella delle librerie: https://github.com/RealTadango/FrSky Il codice te lo scrivo alla fine del post, non devi fare altro che copiarlo ed incollarlo nell'IDE di Arduino. In pratica il codice costruisce un sensore con ID 5900 (puoi anche cambiarlo) che vale 0 quando il pulsante non è a massa e dà 10 quando il pulsante va a massa, vedi un po' tu come costruirti lo switch. Nel codice è implementato un semplice filtro per il debaunce dell'interruttore (50ms). All'inizio del codice ci sono le righe che puoi impostare per cambiare il pin dell'interruttore (ora è 8 ma puoi mettere quello che ti fa più comodo). Il pin 8 deve essere collegato a GND quando il pulsante è premuto. Puoi inoltre impostare il pin del segnale che va a SmartPort (ora è il pin 3), l' ID del sensore (ora 5900) e il tempo di debaunce (ora 50 ms). Immagino che l'Arduino dovrà essere alimentato tramite la ricevente pertanto preoccupati di collegare il positivo al pin RAW e non a Vin perchè altrimenti bruci tutto. Il pin Raw accetta fino a 12V perciò occhio a cosa lo colleghi. Se usi un arduino pro mini da 3.3V non dovrebbero esserci problemi, se usi un arduino a 5 V potrebbe esserci qualche problema con i livelli di tensione dell'arduino e della ricevente. Per scongiurare qualsiasi problema puoi mettere una semplice resistenza sul cavetto di segnale che va dal pin 3 ala porta smart, 220ohm dovrebbe andare. CODICE: #include <SPort.h> //Include la SPort library #define PIN_INTERRUTTORE 8 //definisce il pin da usare come interruttore SPortHub hub(0x12, 3); //Hardware ID 0x12, il pin del cavetto smart port è il 3 SimpleSPortSensor sensore(0x5900); //Sensore con ID 0x5900 #define DEBOUNCE 50 //definisce il tempo di debounce bool lettura = 0; bool buttonState = 0; bool lastButtonState = 0; unsigned long lastDebounceTime = 0; // tempo dall'untimo switch dell'interruttore unsigned long debounceDelay = DEBOUNCE; // tempo di debaunce void setup() { pinMode( PIN_INTERRUTTORE , INPUT_PULLUP); hub.registerSensor(sensore); //definisce il sensore hub.begin(); //attiva il sensore } void loop() { //lettura dell'interruttore con debounce lettura = digitalRead(PIN_INTERRUTTORE); if (lettura != lastButtonState) { lastDebounceTime = millis(); // resetta il tempo } if ((millis() - lastDebounceTime) > debounceDelay) { if (lettura != buttonState) { buttonState = lettura; } } if (lettura) { sensore.value = 0; //setta il valore del sensore } else { sensore.value = 10; //setta il valore del sensore } hub.handle(); //ora gestisce i dati del sensore } |
Grazie mille sei stato GENTILISSIMO a indicarmi tutto nei minimi dettagli, appena possibile effettuerò qualche prova. Acquisterò un Arduino mini così risolvo tutto. Perdonami, a livello hardware elettronico me la cavo abbastanza, però sui software poco. La libreria la devo installare nell IDE di Arduino giusto? Citazione:
|
Potrei portare a massa il contatto quando scambia e lasciarlo a +5V quando è NC. Così +5V valore 0, in scambio portato a massa valore 10 Potrebbe andare?portarlo a +5V per non lasciare il segnale flottante quando il contatto è NC. Per l'alimentazione potrei dedicare anche un circuito a parte nessun problema se vanno bene 5V metto un 7805 per alimentare Arduino nano, la ricevente è alimentata da un esc perciò i 5V dovrebbero essere compatibili. La butto la non potrei alimentare tutto dalla SmartPort? +5V gnd e segnale... Ovviamente mettendo una resistenza da 220Ohm sul segnale... |
Citazione:
Per il problema del contatto flottante non te ne devi preoccupare perchè nel codice è stato dichiarato il pin del contatto in questo modo: pinMode( PIN_INTERRUTTORE , INPUT_PULLUP) . In pratica è stato dichiarato come input e contemporaneamente è stata abilitata la resistenza di pull-up interna all'arduino. Quando il contatto è aperto il pin dell'arduino è collegato ai 5V tramite una resistenza di cui non ricordo il valore ( potrebbe essere 1M). ALIMENTAZIONE Attenzione perchè alcuni ESC forniscono 5.5V oppure 6V, in questo caso non collegherei l'arduino in diretta né a Vin (tensione troppo alta), né a RAW (tensione troppo bassa). Se hai un bec che fornisce 5V allora ti puoi fidare e collegarlo direttamente a Vin ma poi non potresti mettere il sensore altrove. Se fossi in te sceglierei un Arduino Pro Mini a 3.3V, in questo modo potresti collegarti a RAW e non curarti del fatto che l'alimentazione sia a 5, 6 o 8V, l'importante sarebbe stare nel range 4.5-12V. Puoi usare un 7805 per l'arduino ma per quale motivo? L'arduino ha già un riduttore di tensione interno che porta a 5V la tensione, usare un 7805 servirebbe solo a non far scaldare la schedina in caso di alimentazione a 12V ma non avrebbe senso. Avrebbe senso usare un 7805 solo nel caso in cui tu volessi tenerti la possibilità di usare il sensore con una batteria fino a 6S, con batterie fino a 2S non serve. Il massimo sarebbe utilizzare un regolatore a 3.3V come un 7803 (o qualcosa di meglio( ed un arduino pro mini da 3.3V, in questo modo avresti un sensore in grado di essere collegato senza nessun problema a qualsiasi cosa (oltre le 6S magari no). ALIMENTAZIONE DALLA SMART PORT certo che potresti alimentare tutto dalla smart port, questa ha 3 fili: segnale, +Vcc e GND, pertanto con un cavetto da servo fai tutto. Attenzione perchè dalla smart port esce Vcc uguale alla tensione in ingresso, non è mica regolata. |
Ottima spiegazione. Vedo se optare per un BEC da 5V, oppure un 7803 collegato in uscita alla Smartport prima di collegare arduino 3,3V sul Raw, cosi con un cavetto a tre fili realizzo tutto. Per il sensore 0 problemi a questo punto, il contatto lo lascio "flottante" e quando entra in azione me lo chiude a massa (-) sempre dall'alimentazione della Sport. Ok direi che ci siamo, proverò poi vi faccio sapere. Grazie al momento:) Citazione:
|
Una cosa non ti ho scritto: arduino pro mini, sia a 5V sia a 3.3V, non ha la usb incorporata perciò per la programmazione ti serve un convertitore usb-seriale oppure, eventualmente, un altro arduino che userai come convertitore tramite un apposito sketch. Tutti gli altri arduino sono a 5V, vedi un po' tu cosa preferisci fare. L'arduino nano è grande poco più di un pro-mini ma ha la usb incorporata, ovviamente è a 3.3V NOTA: se usi un arduino pro mini a 3.3V non ti serve più la resistenza sul cavetto di segnale perchè i livelli sono entrambi a 3.3V. |
Errata corrige RESISTENZA DI PROTEZIONE: mi sono sbagliato, la resistenza di protezione tra un arduino a 5V e la ricevente non deve essere da 220Ohm ma un ordine di grandezza maggiore, ricordavo male!!! Ho guardato in rete e ho visto degli schemi indicanti una resistenza da 4.7KOhm . ARDUINO NANO. Nell'ultimo post ho scritto che è a 3.3V ma è chiaramente un errore, volevo scrivere 5V. |
Ok, spazio ne ho a sufficienza. Userò un Arduino nano con USB incorporata. Così dopo una verifica sulla ricevente (vedo se l'alimentazione è 5V) alimento tutto dalla SPort e sono apposto. Ok anche per la resistenza da 4,7K sul segnale |
Citazione:
Inviato dal mio M2004J19C utilizzando Tapatalk |
Io, fino ad adesso (tocca ferro), non ho mai avuto problemi a usare il segnale 5V sulla Smart Port. Puó essere che la porta Smart port sia a 3,3V, ma che sia compatibile anche con i 5V (come alcuni Pin dell'STM32F103 dove alcuni dei suoi pin sono compatibili con i 5V mentre altri no) |
Citazione:
|
per mettere una resistenza da 4,7K non costa nulla e stiamo sul sicuro :D |
Una cosa non mi è chiara...quale sarà il valore di telemetria che vedrò passare da 0 a 10 nella taranis x9d? Perché poi lo dovrò inserire in una miscelazione... |
Tutti gli orari sono GMT +2. Adesso sono le 23:54. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002