roboforum.ru

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


4х-ногий робот

Обсуждаем рождающиеся мысли и результаты экспериментов.

Re: 4х-ногий робот

Сообщение Master » 04 апр 2008, 09:11

2 AsonD
Раз уж задал вопрос и сам нашел на него ответ, будь уж так добр напиши на него ответ, потом другие пойдут по твоим стопам и им не придется искать знакомых, которые умеют подключать сервы.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Re: 4х-ногий робот

Сообщение AsonD » 04 апр 2008, 20:49

Сначало крышечный редуктор на меня свлили, теперь сервы, че вы от миня хотите?)))
Аватара пользователя
AsonD
 
Сообщения: 110
Зарегистрирован: 14 мар 2008, 17:22
Откуда: Череповец
прог. языки: С/С++

Re: 4х-ногий робот

Сообщение MegaBIZON » 04 апр 2008, 23:29

Эдгул...
Хорош уже жлобить в самом деле! плохо на тебя весна как-то действует... чесслово, завязывай.

Master писал(а):2 AsonD
Раз уж задал вопрос и сам нашел на него ответ, будь уж так добр напиши на него ответ, потом другие пойдут по твоим стопам и им не придется искать знакомых, которые умеют подключать сервы.

Да есть такая статья хорошего тона - нашедши сам ответ на свой вопрос, написать его тут же.
Но я на месте AsonD'а тоже не стал бы тут писать подобных откровений. Мне бы это и в гологу не пришло - будучи новичком расказывать Робофоруму, как фтыкается серва.

Да, кстати, как вы думаете, камрады, сколько бы народу встало в очередь здраво поглумиться, если б AsonD и в самом деле расписал тут сию прописную истину?
На счёт Эдгула я как-то даже не сомниваюсь...

Короче, народ, давайте уже будем немного думать перед тыканием палцем в клаву.
аминь.
Аватара пользователя
MegaBIZON
 
Сообщения: 6285
Зарегистрирован: 12 янв 2007, 00:34
Откуда: Масква

Re: 4х-ногий робот

Сообщение Vovan » 04 апр 2008, 23:48

МегаБизон +1
А то, походу, тут у некоторых типо "звёздной болезни" обнажилось... Вот кому бы про тактичность намекнуть...
_________
Sincerely,
Vovan
Аватара пользователя
Vovan
 
Сообщения: 3340
Зарегистрирован: 05 окт 2005, 12:03
Откуда: Литва
прог. языки: asm

Re: 4х-ногий робот

Сообщение AsonD » 05 апр 2008, 00:41

Так, я понимаю, правила хорошего тона и манеры - темы интересные, но мы не об этом) Но для некоторых личностей сделаю лирическое отступление - когда начерчу принципиальную схему и приведу часть программы в рабочее состояние, то я все выложу сюда - думаю новичкам по схеме будет вполне понятно как подрубать сервы... :wink: хотя я думаю временно наши беседы прекратятся, так как пока не сделаю все говорить будет не о чем, а спрашивать тут о том, что не знаешь, как я вижу, не принято (сразу гуглить отправят), так что когда сделаю первую часть все выложу :)
Аватара пользователя
AsonD
 
Сообщения: 110
Зарегистрирован: 14 мар 2008, 17:22
Откуда: Череповец
прог. языки: С/С++

Re: 4х-ногий робот

Сообщение lebaon » 05 апр 2008, 18:27

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

не сразу, а как правило :pardon:
кстати, скажи аську, я уже большую часть таких вопросов знаю и помогу без гугла :wink:
Аватара пользователя
lebaon
Безбашенный Теоретик
 
Сообщения: 1137
Зарегистрирован: 07 янв 2006, 18:30
Откуда: Подмосковье

Re: 4х-ногий робот

Сообщение AsonD » 06 апр 2008, 21:20

Так, долгожданный вопрос:
Скажи - либо я дурак, либо протеус тупит?
В общем у мня есть программга для теста сервы, но в протеусе она не пашет, тоесть привод там поворачиваетсо, но только на 90 градусов не зависимо от того, какое значение не стояло бы в программе...

вот прога:

Код: Выделить всёРазвернуть
#include <mega16.h> 
#include <delay.h>

void main(void)
{
double t = 0.01;
char j = 100;
char i;

PORTA=0xff;
DDRA=0xff;
PORTB=0xff;
DDRB=0xff;
PORTC=0xff;
DDRC=0xff;
PORTD=0xff;
DDRD=0xff;

while(1)
{
PORTB.1 = 0;
delay_us(2);

PORTB.1 = 1;
delay_us(1);
};   
}
Аватара пользователя
AsonD
 
Сообщения: 110
Зарегистрирован: 14 мар 2008, 17:22
Откуда: Череповец
прог. языки: С/С++

Re: 4х-ногий робот

Сообщение =DeaD= » 06 апр 2008, 21:31

Вообще серве нужно с частотой 50Гц выдавать сигнал от 1 до 2мс длиной. А вы выдаете, я так понимаю, сигнал длиной 1мс, но с частотой 1000/3=333Гц.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: 4х-ногий робот

Сообщение AsonD » 06 апр 2008, 21:36

Так понятно, ответ ясен, теперь мона пояснение что нужно сделать? (я новичок в программировании)
Аватара пользователя
AsonD
 
Сообщения: 110
Зарегистрирован: 14 мар 2008, 17:22
Откуда: Череповец
прог. языки: С/С++

Re: 4х-ногий робот

Сообщение =DeaD= » 06 апр 2008, 22:04

Хотя погодите, если я правильно понимаю, то delay_us - это микросекунды, а не миллисекунды, то есть правильный код будет типа такого:
Код: Выделить всёРазвернуть
while(1)
{
PORTB.1 = 0;
delay_us(18500);

PORTB.1 = 1;
delay_us(1500);
};   


Проверьте?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: 4х-ногий робот

Сообщение AsonD » 06 апр 2008, 23:32

Все, терь все работает)

Добавлено спустя 59 минут 55 секунд:
А у меня рабочий код получилсо вот такой:
Код: Выделить всёРазвернуть
while (1)
      {
PORTC.1 = 0;
delay_us(20000);
PORTC.1 = 1;
delay_us(480);
}; 

Оно проверено в Протеусе на рабочесть

Добавлено спустя 9 минут 43 секунды:
Такс, ну и еще один вопросцик, что тут еще мона сделать чтобы допустим заставить вторую серву делать тож самое? (я просто языком не шибко владею), допустим мы коннект ее к С.1 ?

Не забываем использовать тег CODE для листингов программ! Относится ко всем!
<Digit>
Аватара пользователя
AsonD
 
Сообщения: 110
Зарегистрирован: 14 мар 2008, 17:22
Откуда: Череповец
прог. языки: С/С++

Re: 4х-ногий робот

Сообщение =DeaD= » 06 апр 2008, 23:36

AsonD писал(а):Такс, ну и еще один вопросцик, что тут еще мона сделать чтобы допустим заставить вторую серву делать тож самое? (я просто языком не шибко владею), допустим мы коннект ее к С.1 ?


Разве не очевидно, что:
Код: Выделить всёРазвернуть
while (1)
      {
PORTC.1 = 0;
PORTC.0 = 0;
delay_us(20000);
PORTC.1 = 1;
PORTC.0 = 1;
delay_us(480);
}; 

Заставит делать одно и то же сервы на портах C.0 и C.1 ?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: 4х-ногий робот

Сообщение AsonD » 06 апр 2008, 23:44

Когда я так сделал у мня глюк проста случилсо в протеусе, сервы снова начали поворачивать на 90

Добавлено спустя 50 секунд:
И допустим, а если не одно и тоже?
Аватара пользователя
AsonD
 
Сообщения: 110
Зарегистрирован: 14 мар 2008, 17:22
Откуда: Череповец
прог. языки: С/С++

Re: 4х-ногий робот

Сообщение =DeaD= » 06 апр 2008, 23:54

1. Вероятно потому что вы всё-таки не в интервале 1-2мс, а на 0.48мс даете сигнал, не думаю что идеально отлажена модель сервы на некорректных сигналах.
2. Ну блин, вы хотите чтобы вам пошагово написали то что вам надо? три варианта есть, первый простой:

Код: Выделить всёРазвернуть
servo_1=1200;
servo_1=1800;

while (1)
{
PORTC.0 = 1;
delay_us(servo_0);
PORTC.0 = 0;
PORTC.1 = 1;
delay_us(servo_1);
PORTC.1 = 0;
delay_us(20000-servo_1-servo_0);
};


Дальше два сложных, обсуждалось в форуме - viewtopic.php?f=2&t=3780.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: 4х-ногий робот

Сообщение Master » 07 апр 2008, 00:04

2 AsonD
Выложи свой проект с сервой в протеусе и исходники. Интересно посмотреть.
Аватара пользователя
Master
 
Сообщения: 4468
Зарегистрирован: 21 дек 2006, 19:56
Откуда: Украина, г.Одесса
прог. языки: Delphi и С

Пред.След.

Вернуться в Идеи

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

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