roboforum.ru

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

Мой первый робот - НУЖНА ПОМОЩЬ

Re: Мой первый робот - НУЖНА ПОМОЩЬ

=DeaD= » 18 июл 2008, 16:30

Правильное решение - поставить переменный резистор и получить практически серву. Такое ощущение, что мы скоро траффика на обсуждение темы потратим больше, чем стоимость сервы :)

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Lema100 » 18 июл 2008, 16:42

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

Сегодня вечером попробую немного пошаманить с редуктор может и обойдётся пружинами.
Последний раз редактировалось Lema100 18 июл 2008, 16:51, всего редактировалось 1 раз.

Re: Мой первый робот - НУЖНА ПОМОЩЬ

MiBBiM » 18 июл 2008, 16:47

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

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Lema100 » 18 июл 2008, 16:50

Так, что мне ломать редуктор, чтоб поставить пружины или лучше будет поставить датчик или датчики ?

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Myp » 18 июл 2008, 16:53

блиииин

ну слоф нету просто
210 рублей стоит серва самая простая
это для студента 2 раза пива попить с кальмарами

так нет же будут сидеть на форуме вторую страницу обсуждений вести как бы выкрутится


во вторых есть такие 2х позиционные выключатели
в сидируме используется обычно
есть 3 состояния
1. движок по середине сигнала нету
2. лоток поехал в одну сторону, движок наклонён в сторону, сигнал на одной ноге
3. лоток поехал в другую сторону, движок наклонён в другую сторону, сигнал на второй ноге

либо тупо ставим 2 микрика склеенных друг с другом ровно по центру
когда руль прямо ни один не работает когда руль вправо или влево работает один из двух микриков

на самом деле нам не надо 2 микрика достаточно одного
мы же знаем вправо или влево руль выкручен
значит и знаем в какую сторону крутить чтоб в ноль встать
а если допустим питание сбросилось и руль повернули насильно то просто рыскаем вправо влево пока не сработает микрик
калибруемся так сказать на центральной точке

Re: Мой первый робот - НУЖНА ПОМОЩЬ

MiBBiM » 18 июл 2008, 17:07

Myp писал(а):на самом деле нам не надо 2 микрика достаточно одногомы же знаем вправо или влево руль выкручен

Откуда вы это знаете?
Ломать не надо. Лишь один датчик по центру.

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Myp » 18 июл 2008, 17:11

а, ну да, мы же используем МК который болеет склерозом и не можем запомнить на какую ногу какой подавали сигнал в последний раз...

тока что рулили вправо и через секунду забыли что рулили вправо...

Re: Мой первый робот - НУЖНА ПОМОЩЬ

MiBBiM » 18 июл 2008, 17:39

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

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Myp » 18 июл 2008, 17:42

вот уж нет
изначально было сказано что даже сильная пружинка не может редуктор провернуть обратно в ноль
а значит при движении тем более колёса самопроизвольно не повернуться
и неважно червячный или нет там редуктор =)

Re: Мой первый робот - НУЖНА ПОМОЩЬ

MiBBiM » 18 июл 2008, 19:12

Хм. Вы правы. Не заметил.

Добавлено спустя 1 час 21 минуту 51 секунду:
Заранее прошу прощения за то, что всю ветку жестко тупил (прст когда-то делал такую же, только там необходимо было удерживать руль поворота двигателем).
Итак, алгоритм.
Машинка запоминает текущее положение руля. При команде свыше, она сдвигает рулевую ось.
Дабы избежать использования концевых датчиков, используется задержка по времени. Т.е. считается, что двигатель сдвинет рулевую ось из центрального, допустим, положения, в любое из крайних за 300мс (используется максимально возможное).
Тогда:
Заголовок:
This program was produced by the
CodeWizardAVR V1.24.8d Professional
Automatic Program Generator
© Copyright 1998-2006 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : Turn machine
Version : 0.1
Date : 18.07.2008
Author : MiBBiM
Company : MiBBiM,inc
Comments:

Chip type : ATtiny2313
Clock frequency : 4,000000 MHz
Memory model : Tiny
External SRAM size : 0
Data Stack size : 32

Часть обявлений+функция поворота:
Код: Выделить всёРазвернуть
#define M_F  PORTB.7   //обозначения
#define M_B  PORTB.6   //принятые для удобства восприятия
#define T_R  PORTB.5   //компилятор вместо первого слова поставит второе
#define T_L  PORTB.4   //т.е. вместо T_L будет PORTB.4
#define C_D  PIND.6

// Declare your global variables here
unsigned char this_move; //запоминаем текущее движение
enum {L,R,C};                  //массив видов движений

void turn(unsigned char direction) //объявляем ф-ю поворота
{
switch (direction) //выбор из вариантов ниже
{
case L: //первый вариант
    T_L=1; //запускаем поворотные двигатели
    T_R=0;
    if (this_move==R){delay_ms(300);};  //ждем некоторое время(измеряется опытным путем)
    if (this_move==C){delay_ms(150);};
    T_L=0;  //останавливаем двигатели
    T_R=0;
    this_move=L;  //теперь мы на левой позиции
    break;
case R: //второй вариант
    T_L=0; //аналогично
    T_R=1;
    if (this_move==L){delay_ms(300);};
    if (this_move==C){delay_ms(150);};
    T_L=0;
    T_R=0;
    this_move=R;
    break;
case C: //третий вариат
    switch (this_move) //выбираем где мы находимся
     {
     case L: //если слева, то
        T_L=0; //запускаем поворот вправо
        T_R=1;
        while (C_D){}; //ждем пока датчик не пискнет о том, что достигли центра
        T_L=0;T_R=0; //останавливаем двигатель
        this_move=C; //теперь мы на центре
        break;
     case R:
        T_L=1;
        T_R=0;
        while (C_D){};
        this_move=C;
        break;
     }
    break;
}
}

Функция инициализации:
Код: Выделить всёРазвернуть
void init(void)
{
T_L=1;T_R=0;   //поворачиваем влево
delay_ms(300); //ждем
T_L=0;T_R=1;  //поворачиваем вправо
while(C_D){};   //до центра
T_L=0;T_R=0;  //и останавливаем движок
this_move=C; //теперь рулевая ось в центре
}

Полный текст во вложении. Сейчас программа - это заглушка, проверяющая принцип поворота. Если тест окажется успешным, то можно будет реализовывать грамотную программу с добавлением таймеров.
P.S. Спойлеры не работают?
Вложения
Meh.rar
(28.46 КиБ) Скачиваний: 23
Последний раз редактировалось MiBBiM 18 июл 2008, 19:15, всего редактировалось 1 раз.

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Lema100 » 18 июл 2008, 19:15

Myp писал(а):блиииин

ну слоф нету просто
210 рублей стоит серва самая простая
это для студента 2 раза пива попить с кальмарами


В этом проблемы особо нету 200р я готов заплатить, но у нас в городе я незнаю, где продают сервы облазив в этот вторник весь радиорынок я таких не видел. А заказывать через интернет магазин - это плюс доставка и неизвестно скока она будет идти (все знают как у нас почта работает).

Myp писал(а):
на самом деле нам не надо 2 микрика достаточно одного
мы же знаем вправо или влево руль выкручен
значит и знаем в какую сторону крутить чтоб в ноль встать
а если допустим питание сбросилось и руль повернули насильно то просто рыскаем вправо влево пока не сработает микрик
калибруемся так сказать на центральной точке



помоему про один датчик я говорил на первой странице, но идею забраковали :( .
MiBBiM СПАСИБО за помощь.

Re: Мой первый робот - НУЖНА ПОМОЩЬ

MiBBiM » 18 июл 2008, 19:23

Рано ещё спс говорить :)

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Lema100 » 18 июл 2008, 19:30

MiBBiM Какой программой вы пользуетесь для написания программ?

Re: Мой первый робот - НУЖНА ПОМОЩЬ

MiBBiM » 18 июл 2008, 20:06

MiBBiM писал(а):This program was produced by the
CodeWizardAVR V1.24.8d Professional

Re: Мой первый робот - НУЖНА ПОМОЩЬ

Lema100 » 18 июл 2008, 20:16

MiBBiM писал(а):
MiBBiM писал(а):This program was produced by the
CodeWizardAVR V1.24.8d Professional


Извиняюсь, не заметил.

Свой код дополню вашим, скомпилирую, всё на выходных соберу, отпишусь о результате...


cron
Rambler\'s Top100 Mail.ru counter