roboforum.ru

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


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

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

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

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

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

Только в случае источника тока или мощности, если у тебя БП - стабилизатор напряжения, то никакой двигатель не сможет изменить его показания - только смерть...
У тебя, скорее всего, все жутко искрит, создает помехи и кЕтайские показометры, чтоб в таких условиях правильно интерпретировать данные, нужны качественные нч фильтры.
Аватара пользователя
Dmitry__
 
Сообщения: 6671
Зарегистрирован: 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__
 
Сообщения: 6671
Зарегистрирован: 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
Откуда: Беларусь , Минск

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

Сообщение beep_beam » 31 май 2017, 16:14

Мне интересно подобные посты смотреть, т.к. тема навигации во многих проектах краеугольна и как правило, чем выше ее уровень, тем она ближе к математическому сигнал процессингу, т.к. там где карта, там всегда вычисления в реальном времени для вычисления своих координат, это в свою очередь выходит за рамки как ресурсов железа, так и познаний в описании машинного кода на языковом уровне.
Мне к примеру удалось все свои привода рулить по заранее составленным картам, таким образом, как если бы это была не жестко привязанная к направляющей конструкции передвигающаяся головка от плоттера на ватмане размером в квартиру или несколько городских улиц.
Всех ее стараний в таком случае с большим натягом хватает на несколько метров, при идеальной поверхности, минимальных люфтах, биениях и т.д. и т.п. , т.к. не учтена туева хуча внешних воздействий, над коррекцией который я, иногда, размышляю. Если не делать перерывы, снос крыши гарантирован.
Здесь на форуме высказывались разные ходы частичных решений, начиная от оснащения платформы датчиками линий, ИК датчиками барьеров, направляющими RF маяками, трек - камерами и т.п., в конечном итоге пока что на уровне тех бюджетов, проекты котрых здесь время от времени появляются, ничто не реализовано с целью построения автономной навигации.
Аналоговый мир это гениальная божественная реальность у которой невозможно отнять что-то лишнее или заменить более совершенным искусственным.
Подтверждением тому есть Мозг человека — самое мощное и эффективное «аналоговое устройство» из существующих.
Аватара пользователя
beep_beam
 
Сообщения: 64
Зарегистрирован: 11 май 2017, 01:58
Откуда: Israel
Skype: alex1963r
прог. языки: G, VBA

Пред.

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

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

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

Mail.ru counter