Понедельник, 20.05.2024, 01:16
| RSS
[SEARCH_TITLE]
[SEARCH_FORM]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Архив - только для чтения
Форум » Мастерская » Идеи, предложения и их реализация. » Четырех ногий робот (Хочу сделать робота на четырех ногах)
Четырех ногий робот
SpaceДата: Суббота, 12.04.2008, 23:07 | Сообщение # 91








Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
Ладно. С этим всё ясно, но мы отбились от темы. Так что продолжим наш разговор о 4-ом роботе yes3 yes3 yes3
 
AsonDДата: Воскресенье, 13.04.2008, 00:23 | Сообщение # 92








Язык программированя: C, Pascal
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 259
Город: Череповец
Статус: Offline
Ладно, вернемся к теме - нужно написать программу, которая в принципе даже не начата как таковая =)
Блок-схема уже сделана, а как вогнать это в программу... короч, мне знаний не хватает и примеров на подобные темы как-то маловато cray


A.S.A.Robotics.com
 
SpaceДата: Воскресенье, 13.04.2008, 08:27 | Сообщение # 93








Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
Выложи хоты бы блок схемы. Вместе будем думать dirol
 
AsonDДата: Воскресенье, 13.04.2008, 18:51 | Сообщение # 94








Язык программированя: C, Pascal
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 259
Город: Череповец
Статус: Offline
Могу выложить тока левую схему - тоесть чисто так, последовательность действий и не более, ну и только для хотьбы вперед сначало надо бы продумать smile3

A.S.A.Robotics.com
 
SpaceДата: Воскресенье, 13.04.2008, 19:06 | Сообщение # 95








Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
не левых не надо. Я бы на твоём месте пока сделал корпус в 3d max. Тем более ты знаешь как там и что делать. А я с прогой тебе могу уже помочь. Сегодня только её проверял. Она для теста работы платформы. Причём очень точно всё делает. Я имею ввиду по времени ровно 1 секунду. Вообщем её надо только тебе переделать под свою платформу. А вот собственно прога:
Code
#include <inttypes.h>
#include <avr/io.h>
#include <avr/interrupt.h>

// назначение управления двигателями для танкового привода
#define OUT PORTC
#define MOTOR_F  PC4  // вперед
#define MOTOR_B  PC3  // назад
#define MOTOR_L  PC2  // влево
#define MOTOR_R  PC1  // вправо

#define IN PIND
#define LED PD6 // светодиод

// Возможные режимы движения для танкового привода
// R, L - вращение на месте соответственно вправо, влево

enum {STOP, F, B, R, L, RR, LL,};

//------------------------------------------------------------------------------
// Задержка t х 10ms
//------------------------------------------------------------------------------
#define K_DELAY_10ms    F_CPU/600   // для F_CPU=8000000
void Delay_10ms(unsigned char t) {
     if (t==0) return;
     unsigned int i;
     while (t--) for(i=0;i<K_DELAY_10ms; i++);
}

//------------------------------------------------------------------------------
// Пауза, кратная 0.1 сек с миганием
//------------------------------------------------------------------------------

void Delay(unsigned char t) {
     unsigned int i;
     for (i=0;i<t;i++){
          cbi(PORTD, LED); // зажигаем светодиод на PD4
          Delay_10ms(100);   // движемся в этом направлении 2.5 сек
          sbi(PORTD, LED); // гасим светодиод на PD4
          Delay_10ms(100);   // движемся в этом направлении 2.5 сек
           }
}

//------------------------------------------------------------------------------
// Управляющие комбинации для моторов с комбинациями
// для таокового привода, добавлены развороты на месте
//------------------------------------------------------------------------------
void go(unsigned char direction){

     switch (direction) {
     case STOP:
       cbi(OUT, MOTOR_F);
       cbi(OUT, MOTOR_B);
       cbi(OUT, MOTOR_L);
       cbi(OUT, MOTOR_R);
       break;

     case F:
       cbi(OUT, MOTOR_F);
       sbi(OUT, MOTOR_B);
       cbi(OUT, MOTOR_L);
       sbi(OUT, MOTOR_R);
       break;

     case R:
       sbi(OUT, MOTOR_F);
       cbi(OUT, MOTOR_B);
       cbi(OUT, MOTOR_L);
       sbi(OUT, MOTOR_R);
       break;

     case L:
       cbi(OUT, MOTOR_F);
       sbi(OUT, MOTOR_B);
       sbi(OUT, MOTOR_L);
       cbi(OUT, MOTOR_R);
       break;

     case B:
       sbi(OUT, MOTOR_F);
       cbi(OUT, MOTOR_B);
       sbi(OUT, MOTOR_L);
       cbi(OUT, MOTOR_R);
       break;

case LL:
       cbi(OUT, MOTOR_F);
       cbi(OUT, MOTOR_B);
       cbi(OUT, MOTOR_L);
       sbi(OUT, MOTOR_R);
       break;

     case RR:
       cbi(OUT, MOTOR_F);
       sbi(OUT, MOTOR_B);
       cbi(OUT, MOTOR_L);
       cbi(OUT, MOTOR_R);
       break;
     }
}

//------------------------------------------------------------------------------
// Главная программа
//------------------------------------------------------------------------------
int main(void)
{
     DDRC  = 0xff;  // назначаем все линии порта B на выход
     PORTC = 0x00;  // и устанавливаем на них низкий уровень

     DDRD  = 0x40;  // назначаем все линии порта D на вход, кроме PD6
     PORTD = 0xbf;  // подключаем внутренние нагрузочные резисторы, кроме PD6

//  Задержка на старте 5 сек
//  чтобы успеть отбежать в сторону :)

     // для подсчета числа миганий в цикле
     unsigned char i;

     for (i=0;i<5;i++){   // Подмигиваем пять раз
       cbi(PORTD, LED); // Зажигаем LED
       Delay_10ms(250);  // пауза
       sbi(PORTD, LED); // гасим LED
       Delay_10ms(250);  // пауза
       }

     for (i=0;i<5;i++){   // вперед-назад пять раз
       go(F);   // вперед
       Delay (1);
       go(STOP); // Стоп
       Delay (1);

       go(B);   // назад
       Delay (1);
       go(STOP); // Стоп
       Delay (1);
       }

     for (i=0;i<5;i++){   // круги вправо-влево пять раз
       go(R);   // вправо
       Delay (1);
       go(STOP); // Стоп
       Delay (1);

       go(L);   // влево
       Delay (1);
       go(STOP); // Стоп
       Delay (1);
       }
       
    for (i=0;i<5;i++){   // круги вправо-влево пять раз
       go(RR);   // вправо-крутится одно колесо
       Delay (1);
       go(STOP); // Стоп
       Delay (1);

       go(LL);   // влево
       Delay (1);
       go(STOP); // Стоп
       Delay (1);
       }

return (0);
}

Вот ещё видео 4-во робота

Прикрепления: Tesrmoving.rar (15.6 Kb)
 
LesДата: Понедельник, 14.04.2008, 18:30 | Сообщение # 96








Группа: Удаленные
Вот и наглядный пример 4 робота dance4
 
AsonDДата: Среда, 16.04.2008, 12:47 | Сообщение # 97








Язык программированя: C, Pascal
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 259
Город: Череповец
Статус: Offline
Я уже собрал в 3д студио макет корпуса, уже затолкал туда "сервы", но выложить сюда пока картинки не могу, так как пишу не из дома, инет кончился.
Как там успехи с прогой?


A.S.A.Robotics.com
 
SpaceДата: Среда, 16.04.2008, 13:23 | Сообщение # 98








Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
ok ok ok
 
DoniakДата: Четверг, 17.04.2008, 16:22 | Сообщение # 99








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
Quote (AsonD)
Я уже собрал в 3д студио макет корпуса

мож саму 3Д модель выложить а не кортинки? smile3
 
AsonDДата: Пятница, 18.04.2008, 15:25 | Сообщение # 100








Язык программированя: C, Pascal
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 259
Город: Череповец
Статус: Offline
Картинок на пока хватит, завтра мне принесут крутую прогу инфенерскую - SolidWorks, вот когда там сделаю тогда и выложу все, а тут чисто схематически позаталкивал в пронстранстве всяких обьектов и все, не интересно, из-за этого я и разочаровалсо в 3Д студио...

В общем, ща выложу 2 картинки, на одной будет сама модель робота (там одна корявость есть, не обращайте внимания)),

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

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

Прикрепления: 6347798.jpg (335.8 Kb) · 1626881.jpg (309.1 Kb)


A.S.A.Robotics.com

Сообщение отредактировал AsonD - Пятница, 18.04.2008, 15:28
 
LesДата: Суббота, 19.04.2008, 18:22 | Сообщение # 101








Группа: Удаленные
Довольна таки не плохо только ножек не хватает yes3
 
AsonDДата: Суббота, 19.04.2008, 19:19 | Сообщение # 102








Язык программированя: C, Pascal
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 259
Город: Череповец
Статус: Offline
Ну ножки додумаете у себя в голове, так как крепление для них уже сделано, тоесть вся механика уже есть и тут, а ноги рисовать в 3д сложновато (ну если чтобы красиво) smile3

A.S.A.Robotics.com
 
DoniakДата: Суббота, 19.04.2008, 19:32 | Сообщение # 103








Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
осё маё тварение вмаксе:)

Добавлено (19.04.2008, 19:32)
---------------------------------------------
1видео больше для 3ёх ногих втарое из области фантастики и 3тье 4ног
я правельно понял механику етого проекта?

Прикрепления: 3596176.avi (219.0 Kb) · 0821888.avi (272.5 Kb) · 2562975.avi (249.0 Kb)
 
SpaceДата: Суббота, 19.04.2008, 19:40 | Сообщение # 104








Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 1103
Статус: Offline
Вообще классно. Но дорого. Там как минимум надо на одну ногу 3 сервомашинки
А по поводу механике я не уверен. Asond думаю потом скажет.
 
AsonDДата: Суббота, 19.04.2008, 20:33 | Сообщение # 105








Язык программированя: C, Pascal
Зарегистрирован 25.12.2007
Группа: Администраторы
Сообщений: 259
Город: Череповец
Статус: Offline
Ходьба будет не совсем такой, я уже почти закончил с макетом из железного конструктора - буду смотреть на какие углы лучше поворачивать сервы и в каком порядке

Если делать чисто как в этих роликах, то надо минимум 3 сервы на ногу, но если присмотрется то изгиб в "колене" вовсе не обязательно делать, т.к. на ходьбу в данном случае не повлияет (разве что будут натуральнее смотреться), а робот по моим задумкам должен будет перестевлять ноги по очереди (не так как в ролике - не первые две по очереди и задние вместе, а чисто все поочереди, но также возможно подумаю над режимом с переставлением одновременно 2 ног крест на крест) smile3


A.S.A.Robotics.com

Сообщение отредактировал AsonD - Суббота, 19.04.2008, 20:41
 
Форум » Мастерская » Идеи, предложения и их реализация. » Четырех ногий робот (Хочу сделать робота на четырех ногах)
Поиск: