roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 05:03

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Конфликт servo и bluetooth
СообщениеДобавлено: 09 ноя 2014, 13:54 
Не в сети

Зарегистрирован: 04 ноя 2014, 01:57
Сообщения: 434
Привет,
я делаю начальные шаги в освоении Ардуино. Столкнулся с первыми трудностями. Пытаюсь управлять серво через bluetooth с Андроида.
Пока управляю машинкой с COM-порта, работает безупречно. Как переключаюсь на BT - начинается дрожь вблизи положения 0. Как отходит от 0 градусов на 5 - дрожь почти пропадает, но иногда всё-таки подёргивается.
Изыскания в интернете по фразам типа "BT servo jitter arduino" выдают огромное количество материала в котором разобраться новичку сложно. Я так понимаю, есть какой-то изъян в библиотеке Servo.h - конфликт по прерываниям с последовательным портом. Но все многочисленные статьи очень расходятся, я что-то запутался в них.
В то же время, проблема, вроде-бы, должна быть очень распространённой, наверняка управлять сервой по BT пробовал каждый второй (если не первый). Буду благодарен за подсказки.

З.Ы. На всякий случай мой код:
Код:
#include <Servo.h>

Servo myservo;  // create servo object to control a servo
                // a maximum of eight servo objects can be created

int pos = 0;    // variable to store the servo position
int motor = 0;

void setup()
{   
  Serial.begin(9600);  // initialize serial: 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object
 
  Serial.print("Arduino control Servo Motor Connected OK");
  Serial.print('\n');
}

void loop()

  // if there's any serial available, read it:
  while (Serial.available() > 0) {
     
    // look for the next valid integer in the incoming serial stream:
    motor = Serial.parseInt();
     // do it again:
    pos = Serial.parseInt();
     // look for the newline. That's the end of your  sentence:
//    if (Serial.read() <> 0) {
           
       myservo.write(pos);              // tell servo to go to position in variable 'pos'
//       delay(15);                       // waits 15ms for the servo to reach the position
     
      Serial.print(pos, DEC);
//      Serial.print("\n");
       
//    }
  }
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 09 ноя 2014, 14:34 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
я бы сначала убедился, что с питанием все ок. бт жрет энергию из стаба дуни, а usb-uart этого не делает. Если по питанию все в край, то тут и будет проблема


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 10 ноя 2014, 03:00 
Не в сети

Зарегистрирован: 04 ноя 2014, 01:57
Сообщения: 434
elmot писал(а):
я бы сначала убедился, что с питанием все ок. бт жрет энергию из стаба дуни, а usb-uart этого не делает. Если по питанию все в край, то тут и будет проблема

1. Неужели синий зуб "объедает" серву? :) Вот в жизни бы не подумал! Спасибо, проверю.
2. Покуда возник побочный вопрос - как подключаю по синему зубу, пропадает связь по COM-порту, который шёл по USB от компа к ардуине... А как отлаживать и видеть что приходит через синий зуб? Так я в монитор порта смотрел
3. И уж извините за третий вопрос. Посоветуйте решение для перехода на RF канал. Хочу не менее километра. Всюду попадается APC220 - годное решение?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 10 ноя 2014, 10:53 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
для отлалдки использовать ком порт который по USB, для блютуса использовать софтварный уарт.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 10 ноя 2014, 10:58 
Не в сети
Аватара пользователя

Зарегистрирован: 10 ноя 2011, 12:02
Сообщения: 5691
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья
Vladimat писал(а):
elmot писал(а):
я бы сначала убедился, что с питанием все ок. бт жрет энергию из стаба дуни, а usb-uart этого не делает. Если по питанию все в край, то тут и будет проблема

1. Неужели синий зуб "объедает" серву? :) Вот в жизни бы не подумал! Спасибо, проверю.

Звучит диковато, но из объяснений это самое разумное. 9600 - это не та скорость, на которой обмен по uart должен мешать серве.
Цитата:
2. Покуда возник побочный вопрос - как подключаю по синему зубу, пропадает связь по COM-порту, который шёл по USB от компа к ардуине... А как отлаживать и видеть что приходит через синий зуб? Так я в монитор порта смотрел
3. И уж извините за третий вопрос. Посоветуйте решение для перехода на RF канал. Хочу не менее километра. Всюду попадается APC220 - годное решение?

Увы, не подскажу. Не спец ни в дуинаХ. ни в радиоканалах.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 13 ноя 2014, 11:40 
Не в сети

Зарегистрирован: 20 июн 2013, 18:19
Сообщения: 18
Откуда: Уфа
ФИО: Евгений Шемануев
Ваша серва может дергаться по многим причинам.
Много раз управлял сервами по блютузу (и не одной), все прекрасно работает.
Есть конфликт библиотек Servo и SoftwareSerial - это да, проверено, тут сервы действительно дергаются.
Что бы разобраться в ситуации ответте на вопрос - у вас данные о положении сервы в блютус идут постоянным потоком? Или вы ручками в мониторе порта вбили их один раз, отправили, серва сработала и потом, когда вроде бы новых данных нет, она начинает дергаться?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 14 ноя 2014, 23:54 
Не в сети

Зарегистрирован: 04 ноя 2014, 01:57
Сообщения: 434
shev писал(а):
Ваша серва может дергаться по многим причинам.
Много раз управлял сервами по блютузу (и не одной), все прекрасно работает.
Есть конфликт библиотек Servo и SoftwareSerial - это да, проверено, тут сервы действительно дергаются.
Что бы разобраться в ситуации ответте на вопрос - у вас данные о положении сервы в блютус идут постоянным потоком? Или вы ручками в мониторе порта вбили их один раз, отправили, серва сработала и потом, когда вроде бы новых данных нет, она начинает дергаться?

1.Данные идут при нажатии на кнопу. Нет нажатия - нет данных. Если сказал придти к нулю - приходит и бьётся в конвульсиях. Если сказал отойти - отходит и успокаивается.
2. Библиотеку SoftwareSerial в первых экзерсисах не использовал - подключал к Rx/Tx - билась. Попробовал подключиь к цифровым портам через SoftwareSerial - ничего не изменилось.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 15 ноя 2014, 00:55 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
какая серва то?
выглядит как будто серва плохая, пробуй с другой

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Конфликт servo и bluetooth
СообщениеДобавлено: 15 ноя 2014, 01:48 
Не в сети

Зарегистрирован: 04 ноя 2014, 01:57
Сообщения: 434
Myp писал(а):
какая серва то?
выглядит как будто серва плохая, пробуй с другой

Обыкновенная SG90. Другой пока нету, жду посылку :-) Я так и думаю, что больная, смущает лишь, что без голубого зуба напрямую она управляется из программы и проблем нету.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO