sarà l'età.. o forse mi sono un pò arruginito ! o force troppi Acronimi FC, RX, AUX1 ecc vorrei capire meglio..
..dunque la scheda MultiWii dotata d acellerometri e giroscopi.. dunque è in grado di rilevare ogni movimento possibile.. con una sensibilità dignitosa.. per quello che ho capito ..tu vorresti in un canale della tua ricevente.. attivare o meno il controllo della MultiWii.. ..dunque essa provvederà a stabilizzare il modello attraverso arduino, che leggendo i valori digitali dell'orizzonte e delle sbandate... riesce a correggere attraverso un opportuno movimento dei servi...
ovviamente i servo si muoveranno sempre attraverso i tuoi comandi.. ma nel caso non muovessi gli stick.. , quindi se non rileva variazioni dalla RX montata sul velivolo e inoltre il ch 6 è in modalità fail save... allora solo in questo caso intraprende le azioni che impartisce arduino..
..dimmi se ho capito bene intanto oppure non ho capito una mazza!
Citazione:
Originalmente inviato da baccothe Dunque, ho un arduino nano e stavo pensando di utilizzarlo per implementare una procedura di failsafe.
L'idea è questa:
1)collego un canale aux della rx(Turnigy 8ch) ad un pin di arduino, supponiamo il pin 6.
2)collego un pin di arduino,supponiamo il pin 7 al canale (per esempio)AUX1 della FC, in questo caso una MultiWii.
3)Sulla MultiWii abbino l' RTH al canale AUX1, supponiamo RTH ON su un valore ALTO, RTH OFF su un valore BASSO.
4)vado a leggere tramite la funzione pulseIn() il valore della rx sul pin 6, ed eseguo un controllo:
4.1)se il valore è > 0, invio sul pin 7 un valore BASSO
4.2)altrimenti attivo il FailSafe, e invio un valore ALTO sul pin 7, attivando l' RTH.
Il problema è che non riesco ad inviare i valori ALTO/BASSO sul pin 7, ho provato importando la libreria servo.h e utilizzare la funzione servo.write(val) ma nisba...
Un piccolo pezzo del codice che ho utilizzato e che non funziona, ovvero quello per inviare un segnale da arduino alla MultiWii: Codice: #include <Servo.h>
Servo myservo;
int auxPinOut = 7;
void setup()
{
myservo.attach(auxPinOut);
}
void loop() {
myservo.write(1900);
} Qualche idea? Che ne dite? è un'idea folle? stupida? impraticabile?  |