Go Down

### Topic: error in code wat gaat er fout? (Read 2526 times)previous topic - next topic

#### Hks76

##### Jan 24, 2013, 09:53 pmLast Edit: Jan 26, 2013, 10:28 am by JO3RI Reason: 1
Hallo ik krijg error meldingen wie weet wat er fout gaat?
Dit is de code;

Code: [Select]
`#include <Servo.h>const float pi = 3.14159, theta_r = radians(48.0), theta_p = radians(23.2), theta_s[] = {-pi/3, 2*pi/3, pi, 0, pi/3, -2*pi/3},            RD = 2.395, PD = 3.3, L1 = 1.0, L2 = 4.72, z_home = 4.25, Servo_min, Servo_max, servo_mult            p[2][6] = {{PD*cos(pi/6 + theta_p), PD*cos(pi/6 - theta_p), PD*cos(-(pi/2 - theta_p)), -PD*cos(-(pi/2 - theta_p)), -PD*cos(pi/6 - theta_p), -PD*cos(pi/6 + theta_p)},                       {PD*sin(pi/6 + theta_p), PD*sin(pi/6 - theta_p), PD*sin(-(pi/2 - theta_p)), PD*sin(-(pi/2 - theta_p)), PD*sin(pi/6 - theta_p), PD*sin(pi/6 + theta_p)}},            re[2][6] = {{RD*cos(pi/6 + theta_r), RD*cos(pi/6 - theta_r), RD*cos(-(pi/2 - theta_r)), -RD*cos(-(pi/2 - theta_r)), -RD*cos(pi/6 - theta_r), -RD*cos(pi/6 + theta_r)},                        {RD*sin(pi/6 + theta_r), RD*sin(pi/6 - theta_r), RD*sin(-(pi/2 - theta_r)), RD*sin(-(pi/2 - theta_r)), RD*sin(pi/6 - theta_r), RD*sin(pi/6 + theta_r)}};/*theta_r = angle between attachment pointstheta_p = angle between rotation pointstheta_s = orientation of the servosRD = distance to end effector attachment pointsPD = distance to servo rotation pointsL1 = servo arm lengthL2 = connecting arm lengthz_home = default z height with servo arms horizontalservo_min = lower limit for servo arm angleservo_max = upper limit for servo arm angleservo_mult = multiplier to convert to millisecondsp = location of servo rotation points in base frame [x/y][1-6]re = location of attachment points in end effector frame [x/y][1-6]*/const int servo_pin[] = {9,3, 5, 11, 6, 10}, servo_zero[6] = {1710, 1280, 1700, 1300, 1680, 1300};/*servo_pin = servo pin assignments,servo_zero = zero angles for each servo (horizontal)*/Servo servo[6];/*Servos 0, 2, 4: reversed (+ = down, - = up)Servos 1, 3, 5: normal   (+ = up,   - = down)*/void setup(){  //Serial.begin(9600);  for(int i = 0; i < 6; i++)  {    servo[i].attach(servo_pin[i]);    servo[i].writeMicroseconds(servo_zero[i]);  }  delay(1000);}void loop(){  static float pe[6] = {0,0,0,radians(0),radians(0),radians(0)}, theta_a[6], servo_pos[6],                q[3][6], r[3][6], dl[3][6], dl2[6];  /*  pe = location and orientation of end effector frame relative to the base frame [sway, surge, heave, pitch, roll, yaw)  theta_a = angle of the servo arm  servo_pos = value written to each servo  q = position of lower mounting point of connecting link [x,y,x][1-6]  r = position of upper mounting point of connecting link  dl = difference between x,y,z coordinates of q and r  dl2 = distance between q and r  */  for(int i = 0; i < 6; i++)  {    q[0][i] = L1*cos(-theta_a[i])*cos(theta_s[i]) + p[0][i];    q[1][i] = L1*cos(-theta_a[i])*sin(theta_s[i]) + p[1][i];    q[2][i] = -L1*sin(-theta_a[i]);      r[0][i] = re[0][i]*cos(pe[4])*cos(pe[5]) + re[1][i]*(sin(pe[3])*sin(pe[4])*cos(pe[5]) - cos(pe[3])*sin(pe[5])) + pe[0];    r[1][i] = re[0][i]*cos(pe[4])*sin(pe[5]) + re[1][i]*(cos(pe[3])*cos(pe[5]) + sin(pe[3])*sin(pe[4])*sin(pe[5])) + pe[1];    r[2][i] = -re[0][i]*sin(pe[4]) + re[1][i]*sin(pe[3])*cos(pe[4]) + z_home + pe[2];      dl[0][i] = q[0][i] - r[0][i];    dl[1][i] = q[1][i] - r[1][i];    dl[2][i] = q[2][i] - r[2][i];      dl2[i] = sqrt(dl[0][i]*dl[0][i] + dl[1][i]*dl[1][i] + dl[2][i]*dl[2][i]) - L2;      theta_a[i] += dl2[i];      theta_a[i] = constrain(theta_a[i], servo_min, servo_max);      if(i%2 == 1) servo_pos[i] = servo_zero[i] + theta_a[i]*servo_mult;    else servo_pos[i] = servo_zero[i] - theta_a[i]*servo_mult;    }  for(int i = 0; i < 6; i++)  {    servo[i].writeMicroseconds(servo_pos[i]);  }}`

deze meldingen krijg ik;
_6DOF:4: error: uninitialized const 'Servo_min'
_6DOF:4: error: uninitialized const 'Servo_max'
_6DOF:5: error: expected initializer before 'p'

#### MAS3

#1
##### Jan 25, 2013, 12:04 am
Quote from: Hks76

deze meldingen krijg ik;
_6DOF:4: error: uninitialized const 'Servo_min'
_6DOF:4: error: uninitialized const 'Servo_max'
_6DOF:5: error: expected initializer before 'p'

Je maakt spellingfouten.
Je initialiseert servo_min en servo_max, maar wil daarvoor al Servo_min en Servo_max gebruiken.
Dat zijn twee verschillende dingen en daarom krijg je foutmeldingen.
Voor de p in regel 5, heb je regel 4 (die begint met RD) nog niet afgesloten.
Daar ontbreekt iets met een komma of puntkomma vermoed ik.

Je moet heel goed op spelling letten, en dat het eerste controleren als je foutmeldingen krijgt.
Je zult vast nog wel een aantal malen over de puntkomma struikelen.
Overigens geeft de IDE je aan waar je moet kijken.
In de melding staat een getal tussen dubbele punten.
Dat getal is het regelnummer.
_6DOF:4: is dus een fout in regel 4.
Have a look at "blink without delay".
Did you connect the grounds ?
Je kunt hier ook in het Nederlands terecht: http://arduino.cc/forum/index.php/board,77.0.html

#### Hks76

#2
##### Jan 25, 2013, 10:21 am
Bedankt voor je bericht.

Quote
Je initialiseert servo_min en servo_max, maar wil daarvoor al Servo_min en Servo_max gebruiken.
Dat zijn twee verschillende dingen en daarom krijg je foutmeldingen.

Hoe moet ik dit dan oplossen?
Weghalen krijg ik meer foutmeldingen hoe initialiseer ik dan Servo_min?

#### Stealth0113

#3
##### Jan 25, 2013, 11:14 am
Wat MAS3 bedoeld is dat je bij de een een hoofdletter gebruikt en bij de andere allemaal kleine letters. Overal moet je het op precies dezelfde manier schrijven...
Watch my stealth-bot @ let's make robots

#### Hks76

#4
##### Jan 25, 2013, 11:29 am
Stealth0113,

Bedankt!!
stom van mij ik heb hem wel 10 keer door zitten kijken en tlken er overheen gekeken.

Bedankt!!

#### Stealth0113

#5
##### Jan 25, 2013, 11:59 am
Ik ken het probleem! Op een gegeven moment zit je je zo blind te staren op je sketch dat je niet meer fatsoenlijk je fouten kan oplossen.
Even je sketch posten en na laten kijken door een ander is dan altijd een goede optie.
Watch my stealth-bot @ let's make robots

Go Up

Please enter a valid email to subscribe

To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy