roboforum.ru

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

Мой первый робот)

Мой первый робот)

madLagger » 14 дек 2014, 16:34

Понимаю, что негоже создавать отдельную тему из-за одного робота :oops: Просто очень рад что наконец-то что-то получилось)
Наконец-то я собрался с силами и собрал своего робота. Шасси робота сделал из выпиленных из CD приводов редукторов(которые лоток выдвигают) За мозги пока Arduino Uno(не дорос я еще до голых avr-ок...). В качестве драйвера двигателей выступает микросхема LB1649 от фирмы Sanyo. Также на роботе установлен всем известный УЗ сонар HC-SR04.
Робот уже умеет обходить препятствия, реализовано управление с пульта от видемагнитофона Sony. Также есть "демо" программа(проехать по змейке, развернуться, поморгать фарой. В планах - заменить Arduino Uno на клон Arduino Nano(стоит копейки), сделать плату для драйвер двигателей, УЗ сонар заменить на инфракрасный дальномер Sharp, установить датчики линии, сделать нормальное подруливающее колесо, поставить колеса побольше, установить серву, чтобы робот мог вращать дальномером и поставить литиевый аккумулятор. Написать программы "следование по линии" и "прохождение лабиринта".
Фото ниже. На ваш суд :roll:
Вложения
DSC_0757.jpg
Редуктор с колесом
DSC_0755.jpg
Мозги
DSC_0761.jpg
Попа
DSC_0760.jpg
Морда

Re: Мой первый робот)

AndreiSk » 14 дек 2014, 16:48

молодец

Re: Мой первый робот)

madLagger » 14 дек 2014, 21:57

Вытравил плату и собрал драйвер двигателя. Теперь все красиво :)
Вложения
1418579684997.jpg
Драйвер двигателей

Re: Мой первый робот)

slom » 14 дек 2014, 22:42

интересная конструкция, а скетчиком управления не поделитесь?

Re: Мой первый робот)

madLagger » 14 дек 2014, 23:10

slom писал(а):скетчиком управления не поделитесь?


Конечно. Используется библиотека IRremote.
Вложения
minibot_remote_control.ino
Скетч
(1.85 КиБ) Скачиваний: 357
IRremote library.rar
Библиотека IRremote
(23.19 КиБ) Скачиваний: 0

Re: Мой первый робот)

slom » 16 дек 2014, 00:28

как я понял это код только для управления с ик пульта, причем при нажатии на кнопку машина будет двигаться пока не нажмут кнопку стоп... очень неудобный вариант...
а кде же код остановки при встрече с препятствием(уз датчик) нет демо программы...

меня если честно больше интересует как к радио управлению, добавить блокировку при обнаружении препятствия, чтобы в случае стены на пути, телена останавливалась и сдавала назад, не давая оператору повредить себя столкновением...

Re: Мой первый робот)

MegaBIZON » 16 дек 2014, 04:20

А чего ж не гоже?
Очень даже гоже! Да же? ))
Колёсья вот только на что-то поровнее поменять бы, наверное..

Re: Мой первый робот)

madLagger » 16 дек 2014, 12:54

slom писал(а):добавить блокировку при обнаружении препятствия, чтобы в случае стены на пути, телена останавливалась и сдавала назад, не давая оператору повредить себя столкновением...

Идея, конечно, хорошая, но мне сначала с механикой бы разобраться...
slom писал(а):как я понял это код только для управления с ик пульта, причем при нажатии на кнопку машина будет двигаться пока не нажмут кнопку стоп...

Меня самого это бесит. Я просто не могу понять, как реализовать такое управление :( Никто не нааставит на путь истинный? :cry:
Насчет демо программы и обхождения препятствий - причешу, выложу.
MegaBIZON писал(а):Колёсья вот только на что-то поровнее поменять бы, наверное..

А что не так? Побольше может поставить только. А то что в разные стороны они у бота разъезжаются - тут уж ничего не поделаешь, такие редукторы...

P.S. Времени нет вообще, потому что из-за бардака в комнате мама пригрозила вышвырнуть все мое хозяйство и приходится убираться в турбо режиме. В общем, к творчеству вернусь только часов через восемнадцать :o

Re: Мой первый робот)

slom » 16 дек 2014, 13:44

madLagger писал(а):из-за бардака в комнате мама пригрозила вышвырнуть все мое хозяйство и приходится убираться в турбо режиме. В общем, к творчеству вернусь только часов через восемнадцать :o


ты наверно думаешь что вот вырасту, мама будет не указ, тогда и займусь любимым делом, но ни фига подобного! :ROFL:
просто маму сменить жена... :crazy: и тоже будет грозиться выкинуть твои поделки, мою пока остонавливает цена устройства :D

насчет кода управления через блютус можешь попробовать взять мой с этой страницы:
http://roboforum.ru/forum10/topic14711-90.html
только переделай пины выходов под свой контроллер.

Re: Мой первый робот)

madLagger » 16 дек 2014, 14:51

slom писал(а):
madLagger писал(а):насчет кода управления через блютус можешь попробовать взять мой с этой страницы:
http://roboforum.ru/forum10/topic14711-90.html
только переделай пины выходов под свой контроллер.

Ошень кстати, блютус модуль уже едет :)

Кстати, у LB1649 можно сразу подавать ШИМ на входы(нету enable-ов, как у L293D и ее родственников) Удобно, блин :good:

Re: Мой первый робот)

madLagger » 16 дек 2014, 19:51

П-произошло ужасное. Робот из безобидной тележки, обходящей препятствия, мутировал в бешеный поднос на ик-управлении. Если я останусь жив после испытаний, то выложу фото... :shock:

А-аа, вжжжж, куда, вжжж, ё....

Re: Мой первый робот)

russo » 16 дек 2014, 20:47

Напоминает фильм про терминатора - Восстание машин

Добавлено спустя 4 минуты 56 секунд:
madLagger писал(а):
slom писал(а):как я понял это код только для управления с ик пульта, причем при нажатии на кнопку машина будет двигаться пока не нажмут кнопку стоп...

Меня самого это бесит. Я просто не могу понять, как реализовать такое управление :( Никто не нааставит на путь истинный? :o


При приеме команды нужно запускать временной отсчет в течении которого эта команда действительна, например 500 милисекунд. Если в течении этого времени команд не поступало - то выключаем двигатели.

отсчет можно запускать встроеной функцией millis()

например
Код: Выделить всёРазвернуть
//если более секунды нет команд - отключаем двигатели 
  if(!flag_stop_motor & (millis() -  time_no_comand) > 1000)
  {
     flag_stop_motor = 1;
     left_motor = 0;
     riht_motor = 0;
     analogWrite(M1, 0x00);       // выключаем моторы, если нет команд с пульта более 250 миллисекунд
     analogWrite(M2, 0x00);
     digitalWrite(D1, forward);   // Задаем направление вращения
     digitalWrite(D2, forward);
     
     tft.fillRect(0, 110, 130, 8,  ST7735_BLACK); //выводим на дисплей данные
     tft.setTextColor(ST7735_GREEN);
     tft.setCursor(0, 110);
     tft.print(left_napravlenie);
     tft.print("  ");
     tft.print("LEFT ");
     tft.print(left_motor);
     wdt_reset();
     tft.fillRect(0, 130, 130, 8,  ST7735_BLACK);
     tft.setTextColor(ST7735_GREEN);
     tft.setCursor(0, 130);
     tft.print(riht_napravlenie);
     tft.print("  ");
     tft.print("RIHT ");
     tft.print(riht_motor);
  }


Добавлено спустя 10 минут 17 секунд:
А в подпрограмме приема нашего пакета идет проверка на валидность, совпадение по серийнику и запоминание временного отсчета и сброс флага

Код: Выделить всёРазвернуть
if((flag_datacar)&&(keeloq.data[0]==sernom[0])&&(keeloq.data[1]==sernom[1])&&(keeloq.data[2]==sernom[2])&&(keeloq.data[3]==sernom[3]))
  {
     time_no_comand = millis();  //засекаем время после прилета команды
     flag_stop_motor = 0;        //сброс флага остановки двигателей

---------------------------------
}

Re: Мой первый робот)

madLagger » 17 дек 2014, 00:16

russo, мегаспасибо!! :Rose: Будем пытаться.
Кстати, вот что получилось:
1418760670550.jpg
Поднос) Заряжаецца *_*


Драйвер двигателей правда греется как проклятый, но гоняет эта штука быстро, чуть кошку на колесо не намотал :ROFL: Раз механика норм, можно и за программирование сесть :)

Re: Мой первый робот)

Petr Kiselev » 30 дек 2014, 23:57

Приклей на L293-ю радиатор. Спасешь ее от перегрева и выхода из строя!

Re: Мой первый робот)

elmot » 31 дек 2014, 10:59

лучше 293ю поменять на нормальный драйвер. Правда еще побыстрее станет:)


Rambler\'s Top100 Mail.ru counter