roboforum.ru

Технический форум по робототехнике.
Текущее время: 10 апр 2025, 20:23

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




Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 26 мар 2017, 11:15 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Большое спасибо за вашу помощь и участие .Но вы не учли МОЮ квалификацию.Это первый опыт .Собрал по готовой схеме.Залил готовый скейтч.
Но как двигаться дальше большой вопрос .Есть модуль блютуз НС -6 .Куда подключить понятно ТХ РХ . Но как это вставить в готовый скейтч


Вложения:
balancing.rar [5.92 КиБ]
Скачиваний: 0

_________________
Неудача — это только повод начать заново, на сей раз умнее.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 26 мар 2017, 12:32 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2010, 15:10
Сообщения: 897
Откуда: Астраханская обл.
К сожалению, вашей железки под рукой нет, проверить не могу, но вместе можно попробовать нащупать решение.

Для начала поэкспериментируйте с ардуинкой, залив простой скетч включения и выключения светодиода на порте D13.

Код для дуины примерно такой
Код:
void setup() {
  Serial.begin(9600);
}

void loop() {
  if (Serial.available()) {
    int inByte = Serial.read();
    if (inByte=='1') digitalWrite(13, HIGH);
    if (inByte=='0') digitalWrite(13, LOW);
  }
}


Проверить без ВТ можно так: код работает также с монитором порта в Arduino IDE, отправляйте 1 и 0 на скорости 9600, контролируйте свечение светодиода на D13.

Дальше играем со смартфоном. Пример для Ai я показал, нужно на сайт зайти, под гугл-аккаунтом, и собрать из кирпичей программу. Установите на андроидный смартфон программу https://play.google.com/store/apps/deta ... ion3&hl=ru

Сконнектите смартфон и среду, запустите программу. К ардуинке прикрутите ВТ (Rx к TX, и наоборот, землю к земле, питание к питанию). Смартфоном найдите модуль, подключите (пароль обычно 1234).

С помощью смартфона поиграйтесь со светодиодом. Если все включается, то можно переходить к управлению роботом. ;)

_________________
Соединяй и здравствуй.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 27 мар 2017, 17:09 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Спасибо за помощь .Первый раз пользуюсь этой программой. При попытке соединения. Пишет Error 507 .Вроде все собрал как у ВАС .Только добавил кнопки .Ваш скейтч работает через БЛЮТУЗ ТЕРМИНАЛ .Подскажите в чем проблема.


Вложения:
Безымянный.png
Безымянный.png [ 172.45 КиБ | Просмотров: 2819 ]

_________________
Неудача — это только повод начать заново, на сей раз умнее.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 31 мар 2017, 15:35 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Привет всем кто не ответил. 4 дня трахал MIT AI .Пробовал и так и сяк и об косяк.Бесполезное зря потраченное время.Полез ГУГЛ там у всех
теже проблема ОШИБКА 507 515 и тд. Пробовал запустить на разных телефонах .Результат ПОЛНАЯ ХРЕНЬ, Нашел программу BLUETOOTH ELEKTRONICS Все работает замечательно .
Если я еще ВАМ уважаемый ERUMAN не очень надоел .Подскажите как можно приделать НС 05 в мой скейтч .Заранее благодарю . Или подскажите где искать .

_________________
Неудача — это только повод начать заново, на сей раз умнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 01 апр 2017, 08:50 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2010, 15:10
Сообщения: 897
Откуда: Астраханская обл.
Я с детьми работаю, потому толстокожий :)
Не понял: как вы железяку к программному коду приделать желаете?

Железяка, она и есть железяка. Под неё ни драйверов, ни настроек не надо. Подключили к дуине к RX/TX, и радуемся.

Расшифруйте свою идею подробнее, если можно. И желательно с картинками :)

_________________
Соединяй и здравствуй.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 01 апр 2017, 11:54 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Прошу прощения за резкий тон.Вопрос вот в чем .Двигатели постоянно задействованы на удержание горизонта.Как внести в эту кучу действий управление .То есть можно
изменять скорость двигателей
изменять угол баланса гироскопа
или оставить как есть
Подрастает внук и чем его заинтересовать. Ну не делать же с ним табуретку. Ардуино идеальная платформа для этого.
После вашего предыдущего урока разобрался в работе НС 05 и ДОСЫТА НАИГРАЛСЯ LED.Спасибо поимел кучу знаний и радости .


Вложения:
balancing.rar [5.92 КиБ]
Скачиваний: 0

_________________
Неудача — это только повод начать заново, на сей раз умнее.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 02 апр 2017, 11:18 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2010, 15:10
Сообщения: 897
Откуда: Астраханская обл.
Удалось управлять светодиодом - отлично.
Теперь присмотримся к loop() балансира:
Код:
void loop() {
  /* Update all the values */
  uint8_t* data = i2cRead(0x3B,14); 
  accX = ((data[0] << 8) | data[1]);
  accY = ((data[2] << 8) | data[3]);
  accZ = ((data[4] << 8) | data[5]); 
  gyroY = ((data[10] << 8) | data[11]);
 
  /* Calculate the angls based on the different sensors and algorithm */
  accYangle = (atan2(accX,accZ)+PI)*RAD_TO_DEG;
 
  double gyroYrate = -((double)gyroY/131.0);
  gyroYangle += gyroYrate*((double)(micros()-timer)/1000000);

  kalAngleY = kalmanY.getAngle(accYangle, gyroYrate, (double)(micros()-timer)/1000000);
  timer = micros();
 
  in = kalAngleY;
  pid.Compute();
  if (out < 0) {
    pwm = -1 * out;
    analogWrite(11, 0);
    analogWrite(10, pwm);
  } else {
    pwm = out;
    analogWrite(10, 0);
    analogWrite(11, pwm);
  }
 
  delay(1); // The accelerometer's maximum samples rate is 1kHz
}

Команда pid.Compute() рассчитала переменную out, от которой зависит движение робота. Можно после этой команды вставить корректировку её значения, чтобы качать балансер в нужную сторону. Заведем специальную переменную, чтобы хранить число итераций, и переменную для приращения. Там, где в заголовке есть строчка double in, out, setpoint; добавим строчки
double delta;
int iter;

Они нам нужны чтобы корректура длилась некоторое время.
Код:
  if (Serial.available()) {
    int inByte = Serial.read();
    if (inByte=='1') {
      delta=10; // Приращение
      iter=50;  // Итерации
    }
    if (inByte=='0') {
      delta=-10;
      iter=50;
    }
  }
  if (iter>0) {
    iter--;
    out=out+delta;
  }


В сетапе все прекрасно, но скорость обмена высоковата. НС-05, вроде бы, держит 9600, а не 115200. Меняем.

Балуемся переменными. Публикуем результаты опытов. :)

_________________
Соединяй и здравствуй.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 02 апр 2017, 22:12 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Спасибо за ваше участие .Осмыслю немедленно напишу о результате.Не понятно с переменными .Буду заливать и пробовать.


Вложения:
Безымянный.jpg
Безымянный.jpg [ 247.15 КиБ | Просмотров: 2723 ]

_________________
Неудача — это только повод начать заново, на сей раз умнее.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 05 апр 2017, 17:22 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Arduino: 1.8.1 (Windows 7), Плата:"Arduino Nano, ATmega328"

Изменены опции сборки, пересобираем все
balancing22:22: error: expected unqualified-id before 'if'

exit status 1
expected unqualified-id before 'if'

Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

Ругается .Как исправить

_________________
Неудача — это только повод начать заново, на сей раз умнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 06 апр 2017, 07:20 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2010, 15:10
Сообщения: 897
Откуда: Астраханская обл.
Цитата:
Там, где в заголовке есть строчка double in, out, setpoint; добавим строчки
double delta;
int iter;


Остальной код нужно добавить после команды pid.Compute() в функции loop()

_________________
Соединяй и здравствуй.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 06 апр 2017, 10:32 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Спасибо. Сейчас мы его СОЕДИНИМ и будем ЗДРАВСТВОВАТЬ.
Ecли я правильно понял то так.

in = kalAngleY;
pid.Compute();
loop();/Поставил в ваш код ; иначе ругается./
if (Serial.available()) {
int inByte = Serial.read();
if (inByte=='1') {
delta=10; // Приращение
iter=50; // Итерации
}
if (inByte=='0') {
delta=-10;
iter

}
}
if (iter>0) {
iter--;
out=out+delta;
}
if (out < 0) {
pwm = -1 * out;
Скейтч загрузился на УРА.
Но машинка НЕ реагирует на подачу питания
Загрузил старый Заработала.

_________________
Неудача — это только повод начать заново, на сей раз умнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 06 апр 2017, 20:18 
Не в сети
Аватара пользователя

Зарегистрирован: 12 авг 2010, 15:10
Сообщения: 897
Откуда: Астраханская обл.
Нет, не так надо. Loop() уберите. И проверьте все фигурные скобки, сколько открывается и сколько закрывается. Должно быть поровну :)

_________________
Соединяй и здравствуй.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 11 апр 2017, 23:38 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Дружище Eruman. Не работает программа .Разберу и сделаем тележку с управлением по ВТ.Спасибо за потраченное время.

_________________
Неудача — это только повод начать заново, на сей раз умнее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 10 май 2017, 14:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 дек 2016, 13:17
Сообщения: 11
Чтобы управлять движением, надо управлять "внутренней вертикалью", к которой держит ПИД регулятор.
А вот алгоритм этого управления - ???
Я свой нащупать никак не могу пока.

А канал управления - дело третье. Был у меня и COM порт (по проводу), и WiFi (ESP8266). Сейчас - HC-11 (COM порт по радио).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление роботом балансиром по блютуз
СообщениеДобавлено: 29 май 2017, 16:39 
Не в сети

Зарегистрирован: 30 май 2014, 12:32
Сообщения: 62
Прекрасная работа .Интересная конструкция .НО управлять можно только если поставить сервомашинку и закрепить на ней модуль гироскопа.
Других способов управления пока я не придумал .Пробовали с ERUMANOM вводить поправки но не получилось.

_________________
Неудача — это только повод начать заново, на сей раз умнее.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

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