roboforum.ru

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


Пришло время убирать !!!

Re: Пришло время убирать !!!

Сообщение Dmitry__ » 30 апр 2015, 08:14

Radist писал(а):Включаю - напряжение показывает больше питания (питание 6В, показания до 10В, прыгающие). Я сперва подумал - наводки на вольтметр. Померил мультиметром - то же самое. Поэтому я и предположил, что имея индуктивность (обмотки) и прерыватель (щетки) можно получить повышающий преобразователь. А может быть и самоиндукция руку приложила.

Это противоречит законам физики. Надо мерить среднее напряжение, а твои приборы измеряют пиковое. В один момент они дают большее напряжение, а в другие пять моментов -меньшее, интегрировать надо показания. Это хорошо делает rc-цепь :wink:
Radist писал(а):Напряжение на моторе зависит и от нагрузки

Только в случае источника тока или мощности, если у тебя БП - стабилизатор напряжения, то никакой двигатель не сможет изменить его показания - только смерть...
У тебя, скорее всего, все жутко искрит, создает помехи и кЕтайские показометры, чтоб в таких условиях правильно интерпретировать данные, нужны качественные нч фильтры.
Аватара пользователя
Dmitry__
 
Сообщения: 6526
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Пришло время убирать !!!

Сообщение zdanilv » 17 май 2015, 21:22

привет ребята) кто может поделиться своим скетчем под ардуино? а то робота уже собрал, но никак прогу не получается написать(
zdanilv
 
Сообщения: 9
Зарегистрирован: 22 фев 2015, 20:33

Re: Пришло время убирать !!!

Сообщение Radist » 19 май 2015, 12:12

Допустим, найдется человек, делающий пылесос на ардуино. Но вероятность, что у вас с ним одинаковые схемы - нулевая. Значит его скетч не подойдет для вашего пылесоса. Какие проблемы могут возникнуть с ардуиной, что не получается пылесос оживить? Вообще прога не пишется? Так в инете уроков море. Что-то конкретное не получается - в соседнем подфоруме ардуинщики сидят - покажите свой скетч, задайте четкий вопрос - там помогут.
Аватара пользователя
Radist
 
Сообщения: 2235
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Пришло время убирать !!!

Сообщение hummerr » 30 май 2015, 22:36

Всем добрый вечер. Наконец та я сделал почти своего робота пылесоса для диплома. И написал диплом!)) Вид сверху моего робота без корпуса , (Фотки почему то не могу здесь вставить)
111111111111.jpg

Вид снизу с пылесборником
20150530_225105.jpg

И сам пыле сборник
20150530_225148.jpg

Электроника
222222222222222.jpg

Подскажите пожалуйста, какие ИК датчики выбрать под номером 1 или 2?
Подскажите пожалуйста, как правильно всё это соединить. Спасибо!
hummerr
 
Сообщения: 24
Зарегистрирован: 17 ноя 2014, 23:27

Re: Пришло время убирать !!!

Сообщение Radist » 01 июн 2015, 07:55

Хотелось бы больше информации. Этот робот выполняет свои основные функции? Щетка, метет, мусор всасывается, робот ездит, разворачивается? Контактный бампер есть и работает? Для каких целей будут использоваться ИК-датчики? Что там за датчики - я разглядеть не могу, напишите хотя бы что они из себя представляют и чем отличаются. На диплом нужно предоставить живой пылесос и продемонстрировать? Или будут только фото? По идее это не должно сильно снизить оценку.
Аватара пользователя
Radist
 
Сообщения: 2235
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Пришло время убирать !!!

Сообщение hummerr » 01 июн 2015, 13:32

Щетка вращается, метет, мусор всасывает турбина, но т.к. высокий клиренс, щётка подкидывает мусор а турбина всасывает. Датчики предназначены для отъезда от препятствий, Сами датчики вот такие http://dvrobot.ru/238/408.html и http://dvrobot.ru/238/406.html, одного вида буду ставить. На дипломе продемонстрировать, необязательно чтобы он хорошо убирал, главное чтоб отъезжал от препятствий. Вся суть в том, как это всё правильно подключить. Состав: Arduino Uno R3 http://dvrobot.ru/237/156.html, драйвер двигателей http://dvrobot.ru/237/221.html, ИК датчики http://dvrobot.ru/238/408.html и http://dvrobot.ru/238/406.html, и двигатели http://dvrobot.ru/240/63.html.
hummerr
 
Сообщения: 24
Зарегистрирован: 17 ноя 2014, 23:27

Re: Пришло время убирать !!!

Сообщение Radist » 01 июн 2015, 15:16

Датчики вместо контактного бампера - не хорошо. Никто из производителей не ушел от контактного бампера. Двух датчиков для надежного обзора будет мало. Большой диапазон - значит он будет недоубирать - препятствие же. Так что не рекомендую. А вот бампер надо бы сделать.
Аватара пользователя
Radist
 
Сообщения: 2235
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Пришло время убирать !!!

Сообщение hummerr » 01 июн 2015, 16:26

Щас уже речь не об этом, Осталось 2 дня. На сборку настройку и оформление. Главное чтобы он ездил. Щас всё подключил, попробовал управлять одним двигателем, все получилось. Теперь нужно с ик датчиками и 2 двигателя, и программу написать))
Нашел программу

#define mot_ena 9 //пин ШИМа левого мотора
#define mot_in1 8 //пин левого мотора
#define mot_in2 7 //пин левого мотора
#define mot_in3 6 //пин правого мотора
#define mot_in4 4 //пин правого мотора
#define mot_enb 10 //пин ШИМа правого мотора

#define ir_1 A0 //пин 1 ИК-датчика
#define ir_2 A1 //пин 2 ИК-датчика
#define ir_3 A2 //пин 3 ИК-датчика
#define ir_4 A3 //пин 4 ИК-датчика
#define ir_5 A4 //пин 5 ИК-датчика
#define ir_6 A5 //пин 6 ИК-датчика

#define lev_vik 11 //пин левого выключателя
#define pra_vik 12 //пин правого выключателя

//для выравнивания скорости колес
byte max_skor_lev = 254;
byte max_skor_prav = 244;
//---------------------------------

byte min_skor = 0;

void setup() {

randomSeed(analogRead(A7));
// пины энкодеров на вход
pinMode(3, INPUT); // пин левого энкодера на вход
pinMode(2, INPUT); // пин правого энкодера на вход
//-------------------------
// пины для левого и правого моторов на выход
pinMode(mot_ena, OUTPUT);
pinMode(mot_in1, OUTPUT);
pinMode(mot_in2, OUTPUT);
pinMode(mot_in3, OUTPUT);
pinMode(mot_in4, OUTPUT);
pinMode(mot_enb, OUTPUT);
//-------------------------------------------
// пины ИК-датчиков на вход
pinMode(ir_1, INPUT);
pinMode(ir_2, INPUT);
pinMode(ir_3, INPUT);
pinMode(ir_4, INPUT);
pinMode(ir_5, INPUT);
pinMode(ir_6, INPUT);
//-------------------------
// пины левого и правого выключателей на вход
pinMode(lev_vik, INPUT);
pinMode(pra_vik, INPUT);
//---------------------------
delay(3000);

ROB_VPERED();
}

void loop() {

// если срабатывает левый выключатель на бампере
if (digitalRead(lev_vik) == LOW)
{
ROB_STOP();
delay(200);
ROB_NAZAD();
delay(150);
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(400, 1500));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает правый выключатель на бампере
if (digitalRead(pra_vik) == LOW)
{
ROB_STOP();
delay(200);
ROB_NAZAD();
delay(150);
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(400, 1500));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает 2 ИК-датчик
if (digitalRead(ir_2) == LOW)
{
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает 3 ИК-датчик
if (digitalRead(ir_3) == LOW)
{
ROB_STOP();
delay(200);
ROB_PRAV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает 4 ИК-датчик
if (digitalRead(ir_4) == LOW)
{
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает 5 ИК-датчик
if (digitalRead(ir_5) == LOW)
{
ROB_STOP();
delay(200);
ROB_LEV();
delay(random(200, 1100));
ROB_STOP();
delay(200);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает 1 ИК-датчик
if (digitalRead(ir_1) == LOW)
{
ROB_PRAV();
delay(10);
ROB_VPERED();
}
//-----------------------------------------------
// если срабатывает 6 ИК-датчик
if (digitalRead(ir_6) == LOW)
{
ROB_LEV();
delay(10);
ROB_VPERED();
}
//-----------------------------------------------

}

// поворот направо на месте
void ROB_PRAV()
{
// левый мотор вперед
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, max_skor_lev);
// правый мотор назад
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, max_skor_prav);
}
//-----------------
// поворот налево на месте
void ROB_LEV()
{
// правый мотор вперед
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, max_skor_prav);
// левый мотор назад
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, max_skor_lev);
}
//---------------------
// езда вперед
void ROB_VPERED()
{
// левый мотор вперед
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, HIGH);
analogWrite(mot_ena, max_skor_lev);
// правый мотор вперед
digitalWrite(mot_in3, HIGH);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, max_skor_prav);
}
//-------------------------------------
// езда назад
void ROB_NAZAD()
{
// левый мотор назад
digitalWrite(mot_in1, HIGH);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, max_skor_lev);
// правый мотор назад
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, HIGH);
analogWrite(mot_enb, max_skor_prav);
}
//------------------------------------
// стоп
void ROB_STOP()
{
// левый мотор стоп
digitalWrite(mot_in1, LOW);
digitalWrite(mot_in2, LOW);
analogWrite(mot_ena, min_skor);
// правый мотор стоп
digitalWrite(mot_in3, LOW);
digitalWrite(mot_in4, LOW);
analogWrite(mot_enb, min_skor);
}
//--------------------------------

Подскажите пожалуйста как убрать из программы энкодер, бампер, и лишние ИК датчики. ИК датчиков будет 2.
И скажите пожалуйста к каким выводам подключать 4 выхода на драйвер двигателей. Нужно ли подключать ШИМ на драйвере двигателей ( Если да, то из каких на плате ардуино и к каким на драйвере двигателей выводам). К каким выводам подключать ИК датчики?
hummerr
 
Сообщения: 24
Зарегистрирован: 17 ноя 2014, 23:27

Re: Пришло время убирать !!!

Сообщение Radist » 02 июн 2015, 07:19

День до защиты, говорите? Самое время начинать разбираться в программировании. Как убрать лишнее - просто стереть эти строки. А теперь по сути (но учтите, никакой конкретики, мне в вашем железе разбираться некогда).
Программа пишется под конкретное железо. Есть дуня, драйвер моторов, сами моторы и датчики. У моторов по два провода, они подключаются к драйверу. Для управления каждым мотором нужно два цифровых выхода. Один из них обычно ШИМ, но разбираться в этом уже нет времени. Суть - если эти выходы одинаковы, то мотор не крутится (00 и 11), а если разные, то крутится. Комбинаций две, и направления вращения тоже два (01 и 10). Какой в какую сторону - сами увидите. Соответственно можно крутить мотор туда или обратно, а можно и нет. Есть еще точно такой же мотор, а это значит можно заставить робота ехать вперед (колеса крутятся вперед оба), назад, поворачивать (одно колесо не крутится), разворачивать (колеса крутятся в противоположные стороны). С движением разобрались. Не забудьте включить моторы турбины и щетки. Теперь датчики. Я не смотрел как именно они устроены, но они выдают либо сигнал 0/1 есть препятствие или нет - тогда цифровой вход настроить на вход, опрашивать его; либо аналоговый сигнал, пропорциональный расстоянию до препятствия, тогда его на аналоговый вход, оцифровать, сравнить с порогом. А потом надо придумать алгоритм движения. Самый простой - ехать вперед, пока датчик не сработает, развернуться на случайный угол, повторить сначала.
К каким именно ногам все это прицепить - есть выбор в некоторых пределах. Удачи на защите. Напишите потом как прошло - интересно.
Аватара пользователя
Radist
 
Сообщения: 2235
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Пришло время убирать !!!

Сообщение hummerr » 16 июн 2015, 16:11

Защитил сегодня диплом на Отлично! Вот так сейчас выглядит робот - пылесос.
и

Алгоритм - движение по спирали.
hummerr
 
Сообщения: 24
Зарегистрирован: 17 ноя 2014, 23:27

Re: Пришло время убирать !!!

Сообщение Dmitry__ » 16 июн 2015, 22:59

hummerr писал(а):Защитил сегодня диплом на Отлично! Вот так сейчас выглядит робот - пылесос.

За темой не следил, но одобряю! :) Маладца, выглядит очень хорошо, я про алгоритм :roll:
Аватара пользователя
Dmitry__
 
Сообщения: 6526
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: Пришло время убирать !!!

Сообщение Gelios » 31 окт 2015, 16:19

yak-40 писал(а):
Radist писал(а):Расскажу историю этой ветки. 4 года назад

Ого, уже четыре года прошло как Гелиос открыл эту ветку, сума сойти))) Только он чего-то давно здесь не появлялся... И Вован тоже...
Очень приятно осознавать , что тема созданная почти 5 лет назад еще жива , что кто нибудь да пробует свои силы в этом увлекательном деле . И это очень важно , взявшись доводить все до конца . Вот и у меня было так . После пылесосов увлекся ЧПУ , но тоже не смог собрать что-то толковое , забросил , года так на два . Потом все же понял , что дела свои нужно до конца доводить . Начал работать над собой в этом направлении . Ниже на фото один из станочков которые собрал с нуля от проекта на бумаге , до полного воплощения . Надеюсь , когда-нибудь вернусь и в эту тему . И буду радоваться новыми роботами-пылесосами вместе с Вами ) С уважением Олег .
Вложения
DSC_1002.jpg
DSC_1003.jpg
Любая высокоразвитая технология похожа на волшебство
Gelios
 
Сообщения: 219
Зарегистрирован: 16 июл 2010, 16:25
Откуда: Беларусь , Минск

Пред.

Вернуться в Роботы-пылесосы

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

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

Mail.ru counter