Помогите с проэктом. Машына, которая управляется с помощью акселерометра на Андроиде.

YARiK_997
Offline
Зарегистрирован: 09.01.2014

Доброго вечера всем!)

Хочу сделать этот проект "http://cxem.net/uprav/uprav28.php", но скетч не хочет компилироваться. Что посоветуете сделать?

Клапауций
Offline
Зарегистрирован: 10.02.2013

компилировать

YARiK_997
Offline
Зарегистрирован: 09.01.2014

Ошибка при компиляции выбывает. Вот сама ошибка:
 

In file included from sketch_jan09a.ino:1:

C:\Users\Yarik\Documents\Arduino\libraries\MeetAndroid/MeetAndroid.h:104: error: conflicting return type specified for 'virtual void MeetAndroid::write(uint8_t)'
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
 

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Советую заплатить Клапауцию за решение проблемы

Сяу Ляу Вей
Offline
Зарегистрирован: 25.10.2013

JollyBiber пишет:
Советую заплатить Клапауцию за решение проблемы
сначала автору темы нужно подвыучить русский язык

YARiK_997
Offline
Зарегистрирован: 09.01.2014

ну уж извини, я из Украины и с русским у меня иногда могут возникать проблемы.

Сяу Ляу Вей
Offline
Зарегистрирован: 25.10.2013

YARiK_997 пишет:
ну уж извини, я из Украины и с русским у меня иногда могут возникать проблемы.

вряд ли прикольно - машЫна  через букву  "ы"

проверь тип возвращаемого значения или выкладывай код программы , на котором компилятор спотыкается

 

 

YARiK_997
Offline
Зарегистрирован: 09.01.2014

Вот скетч:

#include<MeetAndroid.h> 
 
 const int EnablePin1 = 3;
 const int EnablePin2 = 6;
 const int Motor_1_A = 2;
 const int Motor_1_B = 4;
 const int Motor_2_A = 5;
 const int Motor_2_B = 7;
 float data[3] = {0};
 int intdata[3] = {0};
 int i = 1;
 
 
 MeetAndroid meetAndroid(error);
 
 void error(uint8_t flag, uint8_t values)
 {
   Serial.print("ERROR: ");
   Serial.print(flag);
 }
 
 
   void setup() {
   Serial.begin(9600);
   Serial.println("\t\t\t.----------------------.");
   Serial.println("\t\t\t|    Starting Up..     |");
   Serial.println("\t\t\t'----------------------'");
   pinMode(EnablePin1, OUTPUT);
   pinMode(EnablePin2, OUTPUT);
   pinMode(Motor_1_A, OUTPUT);
   pinMode(Motor_1_B, OUTPUT);
   pinMode(Motor_2_A, OUTPUT);
   pinMode(Motor_2_B, OUTPUT);
   delay(1000); 
  
  
   meetAndroid.registerFunction(floatValues, 'A'); 
 
 
 }
 
 void loop()
 {
   meetAndroid.receive(); 
 }
 void floatValues(byte flag, byte numOfValues)
 {
  
   meetAndroid.getFloatValues(data);
  
   for (int i=0; i<3;i++)
   {
     meetAndroid.send(data[i]);
   }
  
       if (-10<=data[0]<=10) //        This is for Forward/Reverse
       {
 
         intdata[0] = int(data[0]);
         intdata[0] = intdata[0] * 24;
             if (data[0] <= -2)
             {
               intdata[0] = abs(intdata[0]);
               digitalWrite(Motor_1_A, HIGH);
               digitalWrite(Motor_2_A, HIGH);
               digitalWrite(Motor_1_B, LOW);
               digitalWrite(Motor_2_B, LOW);
               analogWrite(EnablePin1, intdata[0]);
               analogWrite(EnablePin2, intdata[0]);
             }
             else if (data[0] >= 2)
             {
               digitalWrite(Motor_1_A, LOW);
               digitalWrite(Motor_2_A, LOW);
               digitalWrite(Motor_1_B, HIGH);
               digitalWrite(Motor_2_B, HIGH);
               analogWrite(EnablePin1, intdata[0]);
               analogWrite(EnablePin2, intdata[0]);
             }  
             else if (-1<=data[0]<=1)
             {
               digitalWrite(Motor_1_A, LOW);
               digitalWrite(Motor_2_A, LOW);
               digitalWrite(Motor_1_B, LOW);
               digitalWrite(Motor_2_B, LOW);
               digitalWrite(EnablePin1, LOW);
               digitalWrite(EnablePin2, LOW);
             } 
       }
 
 
     if (-10<=data[1]<=10)  //        This is for Turn Left/Turn Right
     {
                 if (data[1] <= -2)
                 {
                   digitalWrite(Motor_1_A, HIGH);
                   digitalWrite(Motor_2_B, HIGH);
                   digitalWrite(Motor_1_B, LOW);
                   digitalWrite(Motor_2_A, LOW);
                   analogWrite(EnablePin1, intdata[0]);
               analogWrite(EnablePin2, intdata[0]);
                 }
                 else if (data[1] >= 2)
                 {
                   digitalWrite(Motor_1_A, LOW);
                   digitalWrite(Motor_2_B, LOW);
                   digitalWrite(Motor_1_B, HIGH);
                   digitalWrite(Motor_2_A, HIGH);
                   analogWrite(EnablePin1, intdata[0]);
                   analogWrite(EnablePin2, intdata[0]);
                 }
                 else if (-1<=data[1]<=1)
                 {
                   digitalWrite(Motor_1_A, LOW);
                   digitalWrite(Motor_2_A, LOW);
                   digitalWrite(Motor_1_B, LOW);
                   digitalWrite(Motor_2_B, LOW);
                   digitalWrite(EnablePin1, LOW);
                   digitalWrite(EnablePin2, LOW);
                 }    
     }
 }
 
JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Я Вам настоятельно советую начать с азов программирования. Вы судя по всему даже не понимаете где компилятор на ошибку ругается. А уж какие if-ы читабельные....

YARiK_997
Offline
Зарегистрирован: 09.01.2014

Я знаю С/С++. В самом коде все верно. Мне кажется, что у меня проблемы с подключенной библиотекой или еще какую-то подключить нужно, но я незнаю, какую именно.

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

Ну тогда вот Вам готовый ответ:

C:\Users\Yarik\Documents\Arduino\libraries\MeetAndroid/MeetAndroid.h:104: error: conflicting return type specified for 'virtual void MeetAndroid::write(uint8_t)'
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'
YARiK_997
Offline
Зарегистрирован: 09.01.2014

JollyBiber пишет:

Ну тогда вот Вам готовый ответ:

C:\Users\Yarik\Documents\Arduino\libraries\MeetAndroid/MeetAndroid.h:104: error: conflicting return type specified for 'virtual void MeetAndroid::write(uint8_t)'
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'

Спасибо тебе конечно, но я и сам увидил путь к файлам библиотеки. Я незнаю  что именно нужно исправить в ней. С библиотеками я не очень сильно дружу.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

YARiK_997 пишет:

Я знаю С/С++. В самом коде все верно. Мне кажется, что у меня проблемы с подключенной библиотекой или еще какую-то подключить нужно, но я незнаю, какую именно.

Если Вы знаете С/С++, то Вы знаете какой то особенный, недоступный всем остальным стандарт С/С++:

if (-10<=data[1]<=10) 

Если компилятор молчит, то это не значит, что Вы знаете С/С++. Будете отлаживать программу, сами всё поймете.

 

YARiK_997
Offline
Зарегистрирован: 09.01.2014

kisoft пишет:

YARiK_997 пишет:

Я знаю С/С++. В самом коде все верно. Мне кажется, что у меня проблемы с подключенной библиотекой или еще какую-то подключить нужно, но я незнаю, какую именно.

Если Вы знаете С/С++, то Вы знаете какой то особенный, недоступный всем остальным стандарт С/С++:

if (-10<=data[1]<=10) 

Если компилятор молчит, то это не значит, что Вы знаете С/С++. Будете отлаживать программу, сами всё поймете.

 

ай, не увидел)
я исправил (  if (-10 <= data[0] && data[0] <= 10) ), но все равно такая же ошибка.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Еще, если хотите, чтобы Ваш код проверили, почитайте эту тему http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii, в противном случае Ваш код очень неудобно копировать и пробовать скомпилировать.

А еще, скачайте 4 версию MeetAndroid, с ней Ваш кетч компилируется без ошибок (разумеется если поправите сравнения)

 

YARiK_997
Offline
Зарегистрирован: 09.01.2014

kisoft пишет:

Еще, если хотите, чтобы Ваш код проверили, почитайте эту тему http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii, в противном случае Ваш код очень неудобно копировать и пробовать скомпилировать.

А еще, скачайте 4 версию MeetAndroid, с ней Ваш кетч компилируется без ошибок (разумеется если поправите сравнения)

 

 

Все работает, спасибо. У меня 2 версия MeetAndroid стояла. В коде только if-ы неправильно прописаны были.

Клапауций
Offline
Зарегистрирован: 10.02.2013

JollyBiber пишет:

Советую заплатить Клапауцию за решение проблемы

Клапауцию нужно платить, независимо от результата ега деструктивной деятельности.

fill
Offline
Зарегистрирован: 19.06.2014

привет помоги советом та же самая проблема что и у ярика только я языка програмирования не знаю  а диплом сдавать после завтра

leshak
Offline
Зарегистрирован: 29.09.2011

fill пишет:

привет помоги советом та же самая проблема что и у ярика только я языка програмирования не знаю  а диплом сдавать после завтра

Ух... затаив дыхание жду что-же посоветует Калапауций...

madmax96
Offline
Зарегистрирован: 22.09.2011

Печально

fill
Offline
Зарегистрирован: 19.06.2014

печального тут ничего нет мне просто нужна ваша краткая инструкция

 

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

краткая говориш? инструкция говориш? в общем тебе вооооон туда

YARiK_997
Offline
Зарегистрирован: 09.01.2014

fill пишет:

привет помоги советом та же самая проблема что и у ярика только я языка програмирования не знаю  а диплом сдавать после завтра

 

поищи в гугле последнюю версию библиотеки, мне помогло