1
Роботи LEGO / Помощ при програмиране на NXT със C (си)
« -: Юни 03, 2008, 12:46:40 pm »
Здравей те. От скоро се занимаван с програмиране на Lego Mindstorms със С (си).
Задачата която трябва да направя е робота да открие препятствие с ултразвуковия сензор и да си намери пат да го заобиколи. Някой можели да ми помогне.
Опитах се да напиша програмата ама ми дава някакви грешки, а и не знам дали е вярна .
Софтуера който използвам е BricxCC
кода е:
#define predpqstvie 15 // cm
task main ()
{
int i;
int raztoqnie [36];
int poziciq[36];
int max_razt;
int end_poziciq;
while(true){
OnFwd(OUT_BC,50);
while(Sensor(S4)>predpqstvie);
Off(OUT_BC);
for (i<0;i<36;i++)
{
raztoqnie=Sensor(S4);
RotateMotor(OUT_B, 75, 5);
poziciq=(i*5);
}
// find max raztoqnie
max_razt=raztoqnie[0];
end_poziciq=0;
for (i=0;i<36;i++)
{
if (raztoqnie> max_tazt)
{
max_razt=raztoqnie;
end_position=position;
}
}
RotateMotor(OUT_B, 75, end_position);
OnFwd(OUT_BC,50);
ClearScreen ();
NumOut (0, LCD_LINE1, end_position);
NumOut (0, LCD_LINE2, max_razt);
while(1);
}
Задачата която трябва да направя е робота да открие препятствие с ултразвуковия сензор и да си намери пат да го заобиколи. Някой можели да ми помогне.
Опитах се да напиша програмата ама ми дава някакви грешки, а и не знам дали е вярна .
Софтуера който използвам е BricxCC
кода е:
#define predpqstvie 15 // cm
task main ()
{
int i;
int raztoqnie [36];
int poziciq[36];
int max_razt;
int end_poziciq;
while(true){
OnFwd(OUT_BC,50);
while(Sensor(S4)>predpqstvie);
Off(OUT_BC);
for (i<0;i<36;i++)
{
raztoqnie=Sensor(S4);
RotateMotor(OUT_B, 75, 5);
poziciq=(i*5);
}
// find max raztoqnie
max_razt=raztoqnie[0];
end_poziciq=0;
for (i=0;i<36;i++)
{
if (raztoqnie> max_tazt)
{
max_razt=raztoqnie;
end_position=position;
}
}
RotateMotor(OUT_B, 75, end_position);
OnFwd(OUT_BC,50);
ClearScreen ();
NumOut (0, LCD_LINE1, end_position);
NumOut (0, LCD_LINE2, max_razt);
while(1);
}