roboforum.ru

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

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

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

Master » 04 апр 2008, 09:11

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

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

AsonD » 04 апр 2008, 20:49

Сначало крышечный редуктор на меня свлили, теперь сервы, че вы от миня хотите?)))

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

MegaBIZON » 04 апр 2008, 23:29

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

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

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

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

Короче, народ, давайте уже будем немного думать перед тыканием палцем в клаву.
аминь.

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

Vovan » 04 апр 2008, 23:48

МегаБизон +1
А то, походу, тут у некоторых типо "звёздной болезни" обнажилось... Вот кому бы про тактичность намекнуть...

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

AsonD » 05 апр 2008, 00:41

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

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

lebaon » 05 апр 2008, 18:27

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

не сразу, а как правило :pardon:
кстати, скажи аську, я уже большую часть таких вопросов знаю и помогу без гугла :wink:

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);
};   
}

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

=DeaD= » 06 апр 2008, 21:31

Вообще серве нужно с частотой 50Гц выдавать сигнал от 1 до 2мс длиной. А вы выдаете, я так понимаю, сигнал длиной 1мс, но с частотой 1000/3=333Гц.

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

AsonD » 06 апр 2008, 21:36

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

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

=DeaD= » 06 апр 2008, 22:04

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

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


Проверьте?

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>

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 ?

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

AsonD » 06 апр 2008, 23:44

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

Добавлено спустя 50 секунд:
И допустим, а если не одно и тоже?

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.

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

Master » 07 апр 2008, 00:04

2 AsonD
Выложи свой проект с сервой в протеусе и исходники. Интересно посмотреть.


Rambler\'s Top100 Mail.ru counter