Salve a tutti, è un po di tempo che seguo il forum come ospite con un mio amico, dopo un pò di tentennamenti ci siamo detti "Ma si dai, facciamocene uno" e guardando un po qua e un po la, abbiamo fatto la nostra lista della spesa, e adesso siamo a frame montato e stiamo lavorando sul codice, anche se ci sta procurando qualche grattacapo con gli esc che non riusciamo a far andare, bho....
Comunque sia, volevo sottoporvi la lista dei materiali che abbiamo preso, poi magari metterò qualche foto, il tutto per potermi presentare ed iniziare oltre a conoscere qualcuno anche ad evere la sua opinione.
ZIPPY Flightmax 4000mAh 3S1P 20C
hexTronik DT750 Brushless Outrunner 750kv
esc pulso 22A
Il frame è un 80x80 in alluminio, bello solido.
L'unico nostro problema ora è che abbiamo scritto questo
collegando il tutto quando dai gas i motori si muovono di un millimetro e poi basta, dopo mezza giornata a non capirne il motivo sono improvvisamente partiti, per poi spegnersi nuovamente poco dopo, aumentando il mistero, inizialmente pensavamo fosse un problema di contatto con i vili, invece no, abbiamo controllato tutto, ma nulla, l'esc fa il suo bel rumorino d'accensione a poi basta. non capiamo il perché...
Avete delle impressioni o suggerimenti a riguardo?
Grazie in anticipo di tutto.
Comunque sia, volevo sottoporvi la lista dei materiali che abbiamo preso, poi magari metterò qualche foto, il tutto per potermi presentare ed iniziare oltre a conoscere qualcuno anche ad evere la sua opinione.
ZIPPY Flightmax 4000mAh 3S1P 20C
hexTronik DT750 Brushless Outrunner 750kv
esc pulso 22A
Il frame è un 80x80 in alluminio, bello solido.
L'unico nostro problema ora è che abbiamo scritto questo
codice:
//ingressi radio
int accPin = 2;
int icsPin = 4;
int ipsPin = 5;
int rotPin = 6;
int ch5Pin = 8;
int ch6Pin = 7;
//variabili lettura radio
unsigned long DaccValue;
unsigned long DicsValue;
unsigned long DipsValue;
unsigned long DrotValue;
unsigned long Dch5Value;
unsigned long Dch6Value;
int accValue = 0;
int icsValue = 0;
int ipsValue = 0;
int rotValue = 0;
int ch5Value = 0;
int ch6Value = 0;
//uscite motori
int m1Pin = 9;
int m2Pin = 10;
int m3Pin = 11;
int m4Pin = 3;
//valori uscite motori
int m1Val = 0;
int m2Val = 0;
int m3Val = 0;
int m4Val = 0;
//attenuazioni influenza comandi su motori
int icsAttenuazione = 3;
int ipsAttenuazione = 3;
int rotAttenuazione = 5;
//valori min e max ingresso radio
int rcMax = 1900;
int rcMin = 1100;
int outMax = 255;
int outMin = 0;
//----------------------------------------------------------------
void setup() {
pinMode(accPin, INPUT);
pinMode(icsPin, INPUT);
pinMode(ipsPin, INPUT);
pinMode(rotPin, INPUT);
pinMode(ch5Pin, INPUT);
pinMode(ch6Pin, INPUT);
pinMode(m1Pin, OUTPUT);
pinMode(m2Pin, OUTPUT);
pinMode(m3Pin, OUTPUT);
pinMode(m4Pin, OUTPUT);
Serial.begin(9600);
}
void loop() {
//leggo radio
DaccValue = pulseIn(accPin, HIGH);
DicsValue = pulseIn(icsPin, HIGH);
DipsValue = pulseIn(ipsPin, HIGH);
DrotValue = pulseIn(rotPin, HIGH);
Dch5Value = pulseIn(ch5Pin, HIGH);
Dch6Value = pulseIn(ch6Pin, HIGH);
accValue = map(DaccValue,rcMin,rcMax,outMin,outMax);
icsValue = map(DicsValue,rcMin,rcMax,outMin,outMax);
ipsValue = map(DipsValue,rcMin,rcMax,outMin,outMax);
rotValue = map(DrotValue,rcMin,rcMax,outMin,outMax);
ch5Value = map(Dch5Value,rcMin,rcMax,outMin,outMax);
ch6Value = map(Dch6Value,rcMin,rcMax,outMin,outMax);
//calcolo i valori dei motori
m1Val = accValue + (((icsValue-128)/icsAttenuazione)/2) - (((ipsValue-128)/ipsAttenuazione)/2) - ((rotValue-128)/rotAttenuazione);
m2Val = accValue - (((icsValue-128)/icsAttenuazione)/2) - (((ipsValue-128)/ipsAttenuazione)/2) + ((rotValue-128)/rotAttenuazione);
m3Val = accValue + (((icsValue-128)/icsAttenuazione)/2) + (((ipsValue-128)/ipsAttenuazione)/2)+ ((rotValue-128)/rotAttenuazione);
m4Val = accValue - (((icsValue-128)/icsAttenuazione)/2) + (((ipsValue-128)/ipsAttenuazione)/2) - ((rotValue-128)/rotAttenuazione);
//do corrente ai motori
analogWrite(m1Pin, m1Val);
analogWrite(m2Pin, m2Val);
analogWrite(m3Pin, m3Val);
analogWrite(m4Pin, m4Val);
//scrivo
Serial.print(m1Val);
Serial.print(" - ");
Serial.print(m2Val);
Serial.print(" - ");
Serial.print(m3Val);
Serial.print(" - ");
Serial.print(m4Val);
Serial.print(" | ");
Serial.print(ch5Value);
Serial.print(" - ");
Serial.print(ch6Value);
Serial.println();
delay(100);
}
Avete delle impressioni o suggerimenti a riguardo?
Grazie in anticipo di tutto.