roboforum.ru

Технический форум по робототехнике.


Драйвер двигателя на ардуино

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 15 янв 2014, 23:21

Большое спасибо) разобрался с этим) а для эти два файла? Что они делают?
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение Nesenin » 16 янв 2014, 20:38

а там нужный код для настройки входов и подсчета длины импульса.
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 16 янв 2014, 21:07

а можно тут в программе как то расширить центральное положение стика?, чтобы реле не щелкали (триммеры механические, аппаратура приметив)
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение Nesenin » 16 янв 2014, 21:47

можно. там в проверке есть "left >= 1550" где 1550 это время в миллисекундах сигнала с приемника. то есть 1500 это как бы середина. у меня по 50мс +-
стало быть надо значения 1550 и 1450 поменять. а вот тут вот " left = map(left, 0, 350, 0, 255);" это надо смотреть функцию http://arduino.ru/Reference/Map и менять значение 350 на что то подходящее, что даст нам регулировку диапозона пропорционального управления ШИМом.
Последний раз редактировалось Nesenin 16 янв 2014, 22:26, всего редактировалось 1 раз.
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 16 янв 2014, 22:27

так получается 0,250-это промежуток частоты ШИМ от 0 до 255, 0,350 от куда берется? изначально

Добавлено спустя 25 минут 5 секунд:
в вашей программе 3 канал получается вырубает шим с обоих каналов?
if(button > 1500)
{left = 0;
right = 0;
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение Nesenin » 16 янв 2014, 22:36

а это и есть диапозон сигнала с приемника, который будет пропорционально повышать ШИМ от 0 до 255. то бишь у нас, допустим 1550мс это порог при котором начнет расти ШИМ с 0 (1500мс это нулевое положение стика на пульте). 1550+350=1900мс это верхний порог при котором ШИМ будет на максимуме (255) и дальше расти не будет. тут вопрос конкретно в рабочем диапозоне сигнала на приемнике. я, просмотрев значения на своем, выбрал эти пороги 1450-350=1100мс и 1900. если у вас диапозон другой, можно это дело подправить.

Добавлено спустя 5 минут 50 секунд:
ага ток потом обнаружилось что еще бывает значение "0" и условие преобразилась в "if(button > 1500 || button == 0)"
не помню зачем делал это условие. кажись для того чтоб те числа которые появляются в переменных gas, rudder при выключенном передатчике (потере сигнала) ничего не делали с машиной.
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 16 янв 2014, 22:44

то есть получается эту функцию можно вычеркнуть, заменив тут
if(button > 1500 || button == 0)
{left = 0;
right = 0;
}
else
{
rudder = rudder - 1500;
left = gas + rudder;
right = gas - rudder;
left = constrain(left, 1100, 1900);
right = constrain(right, 1100, 1900);
else на if, и использовать третий канал допустим для включения фонарей и пр.?
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение Nesenin » 16 янв 2014, 23:05

попробуйте. но лучше бы сначала протестировать прежде чем на выходы чего нить цеплять.
там есть закомментированные строки
//Serial.begin(115200);

//Serial.print(button); Serial.print("\t");
//Serial.print(gas); Serial.print("\t");
//Serial.println(rudder);
вот их бы раскомментировать на компе (в терминале или еще где), почитать да посчитать что там выдаст математика
rudder = rudder - 1500;
left = gas + rudder;
right = gas - rudder;
left = constrain(left, 1100, 1900);
right = constrain(right, 1100, 1900);
не сорвется ли ваш танк куда нить ехать при потере сигнала. и если да то надо что то придумать
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 17 янв 2014, 21:36

ну а просто записать условие типа: если на пинах 4,5(вход прм) нет сигнала, принадлежащего соответствующему промежутку, то
{left = 0;
right = 0;
?

Добавлено спустя 2 минуты 43 секунды:
еще вот тут натолкнулся, у меня ведь авиамодельный а у вам авто передатчик, так у меня тогда вот тут
left = constrain(left, 1100, 1900);
right = constrain(right, 1100, 1900);
должна получиться пара 0,2000 или 100,1900. или нет?
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение Nesenin » 17 янв 2014, 21:48

что там код выдаст в переменных gas, rudder надо глянуть и от этого условие писать.
это вроде как на всех длительность сигнала от 1000 до 1900. а там уж надо смотреть сколько в реале на конкретном приемнике
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 17 янв 2014, 21:52

ай, нашел. от 1000 до 2000 равен :)
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение Nesenin » 17 янв 2014, 21:54

ага. 2000 max
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 17 янв 2014, 22:15

а atmega использует кварц при работе с данной программой? можно ли его исключить если собирать драйвер на отдельной плате?
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 03 фев 2014, 20:05

ну вот( на arduino nano все работает как нужно, а на arduino mega 2560 вообще ни как. в чем может быть проблема? :( подключал к одноименным цифровым ножкам.
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Re: Драйвер двигателя на ардуино

Сообщение roma95 » 05 фев 2014, 21:47

ни кто не подскажет?
roma95
 
Сообщения: 24
Зарегистрирован: 15 авг 2013, 17:07

Пред.След.

Вернуться в Новичкам или основы основ роботостроения.

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

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