Quadrokopter µC programmieren

#3442168
Lesenswert?

Hallo,
ich habe eine nun die Hardware soweit stehen, dass ich beim 
Programmieren bin. Habe bereits einige Zeilen geschrieben jedoch 
erfolglos. Der erste versuch ist es nur Zwei Motoren anzusprechen die 
sich auspendeln. Das gelingt bedingt bis sich ein starkes schaukeln 
ergibt. Lösung ist eigentlich auch ganz simpel nicht zu stark 
beschleunigen etc. aber die Umsetzung ist das Problem.
ich habe einen Winkelwert von -5000 bis +5000. Mal eine Seite gekippt 
dann die andere und die Motoren brauchen einen wert zwischen 70min. und 
120 max.
1
 
2
  escA.write(ValA);
3
  escB.write(ValB);
4
  int delaywhile = 6;
5
// ValA=val;
6
 //ValB=val;
7

8
  if(Xk1<0&&Xk1>-500){
9
     ValA=val;
10
    ValB=val;
11
 }
12
  if(Xk1>0&&Xk1<500){
13
    ValA=val;
14
    ValB=val;
15
   
16
 } 
17
 if(ValA-val>6||ValB-val>6){
18
   if(ValA-val>6){
19
    ValA=ValA;
20
   }
21
   else{
22
    ValB=ValB;
23
   }
24
 }
25
 else{
26
 
27
   if(Xk1<-500&&Xk1>-2000){
28
     if(Xk1<-500&&ValA-val<4){
29
    ValA=ValA+0.1;
30
    ValB=ValB+0.2;}
31
     else{
32
       ValA=val;
33
   ValB=ValB+0.2;}
34
    //delay(delaywhile); 
35
 }
36
  if(Xk1>500&&Xk1<2000){
37
    if(Xk1>500&&ValB-val<4){
38
    ValB=ValB+0.1;
39
    ValA=ValA+0.2;}
40
     else{
41
        ValB=val;
42
   ValA=ValA+0.2;}
43
 } 
44
 
45
   if(Xk1<-2000&&Xk1>-5000){
46
     if(Xk1<-1700&&ValA-val<4){
47
   ValA=ValA+0.1;
48
    ValB=ValB+0.4;}
49
     else{
50
       ValA=val;
51
   ValB=ValB+0.4;}
52
    //delay(delaywhile); 
53
 }
54
  if(Xk1>2000&&Xk1<5000){ 
55
    if(Xk1>170&&ValB-val<4){
56
         ValB=ValB+0.1;
57
    ValA=ValA+0.4;}
58
    else{
59
       ValB=val;
60
   ValA=ValA+0.4;}
61
 }
62
 
63
 }
nach links gekippt positive werte rechts halt negative in der Mitte 
+-300

ValA für den linken Motor  (linke Seite)
ValB Rechter Motor (rechte Seite)
val= Standard Geschwindigkeit in diesem fall 73

Er versucht die Beschleunigung zu begrenzen, indem er mit dem anderen 
Motor Bremst. vielleicht habe ich auch den völlig falschen Ansatz.

-Danke für die Hilfe :)
#3442738
Lesenswert?

Nabend,

Prinzipel: Suchfunktion benutzen. ;)

Findest z.B. Beitrag "Quadrocopter - Selber bauen"

Das Thema ist leider nicht so einfach... Schließe mich meinem 
Vorschreiber an. Schau dir erstmal die PID-Regelung an. Sei Vorsichtig 
mit dem D anteil.

Wenn du aber was lernen willst ist das kein so schlechtes Vorgehen.
Mach es erstmal mit Zwei Motoren. Und teste ein bisl rum.

Und wenn es wirklich in die Luft gehen soll, 'muss' man versichert sein. 
Wie beim Auto fahren...Und Testflüge bitte nur weit wech von bewohnten 
Gebiet fliegen.

Und pass auf deine Finger auf. Carbon kann weh tun. Spreche da aus 
Erfahrung :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren