roboforum.ru

Технический форум по робототехнике.
Текущее время: 23 апр 2025, 00:36

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2005, 15:02 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Я практически разобрался там был какой-то фьюз от отвечал за пределитель таймера я его вырубил и все стало как надо (светодиод наконечто стал мигать как надо) правда серва поворачиваться пока не хочет , я просто генерирую импульсы а она не поворачиваеться посмотреть бы что там за импульсы а осцилографа нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 05 дек 2005, 20:51 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Смотри так: частота повторения импульса: 50 Гц. Делаешь цикл, где его длина постепенно растет и смотришь в каком диапазоне работает серва.

Или попробуй осциллографом померить длину импульса. Осциллограф брать тут: http://user.rol.ru/%7Ezapisnyh/virt.htm  - провереная прога, с любой звуковушкой работает...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 дек 2005, 16:19 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Сделал, работает, всмысле мигает светодиодами отображая код ASCII который приходит с com-port СУПЕР. С осцилографом спасибо, поробую раздобыть реальный, ну а если не получиться то виртуальным воспоьзуюсь.
Для передачи использую RS232Pro там можно самому набирать число в 16-ричном виде или нет. Я пытался найти но не нашел.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 06 дек 2005, 22:59 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Реальный советую С1-94 - и по деньгам реально и все что надо умеет. Я брал с рук, за 1500р.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 дек 2005, 13:51 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Поворачиваеться серва, осцилограф не понадобился она возможно и раньше бы заработала если бы я подключая серву не перепутал провод питания и сигнала сервы. Непонимаю как я это путал, пробовал раз пять, причем перед каждым подключением смотрел распайку сервы в ДШ к ней но всеравно накосячил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 дек 2005, 18:51 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
Бывает...  :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 03 янв 2006, 21:04 
Не в сети

Зарегистрирован: 09 авг 2005, 17:38
Сообщения: 37
Как я понял, подключение сервы к МК сводится к соединению IO ножки МК с сигнальной линией сервы? В таком случае, это будет не параллельное управление?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 янв 2006, 07:45 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Тимофей писал(а):
подключение сервы к МК сводится к соединению IO ножки МК с сигнальной линией сервы?


лучше через резистор 150 - 270 Ом  - а то вдруг опять что-то перепутается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 янв 2006, 10:38 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Да лучше через резистор на всякий случай :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 04 янв 2006, 12:36 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
отличный портал по SERVO здесь:

http://www.servocity.com/html/how_do_servos_work_.html

там и вся приблуда - шестеренки, цепи, соединителя для тяг...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 янв 2006, 21:51 
Не в сети

Зарегистрирован: 09 авг 2005, 17:38
Сообщения: 37
KiCom
А программу, поворачивающую серву, можешь кинуть? Плз, хоть с какими-нибуть комментариями, а то читал курс  avr123.nm.ru - первые несколько уроков, вроде бы понял все, а коды все равно не читаются :( Щас видимо еще Сергею ПМ пойдет, вопросы по его коду на управление сервой...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 янв 2006, 22:03 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Охотники за source C code for servos вперед! Мне тоже киньте прогу, интересно почитать. Но только если она на Си


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 янв 2006, 22:06 
Не в сети

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
http://cvs.sourceforge.net/viewcvs.py/p ... avr/servo/
тут тоже интересно...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 янв 2006, 00:54 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Тимофей писал(а):
KiCom
А программу, поворачивающую серву, можешь кинуть?

Плз, хоть с какими-нибуть комментариями...


говорю же:   GOOGLE.COM !!!!!     servo controllers  

тут и схеммы - servo controllers  и архив с исходниками на Си

http://www.microrobotna.com/mrservo8cpu.htm

Тимофей писал(а):
читал курс  avr123.nm.ru - первые несколько уроков, вроде бы понял все, а коды все равно не читаются ...


прочитай пожалуйста еще раз 1 страницу и сделай то что там написано.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 янв 2006, 08:20 
Не в сети

Зарегистрирован: 22 окт 2005, 11:15
Сообщения: 345
Откуда: Красноярск
Вот код программы:
//ICC-AVR application builder : 11.12.2005 18:05:21
// Target : 2313
// Crystal: 11.059Mhz

#include <io2313v.h>
#include <macros.h>
#define CENTER 2880
int mks_g=CENTER;
int del_0=CENTER;
int del_1=CENTER;
int del_2=CENTER;
int del_3=CENTER;
int del_4=CENTER;
int del_5=CENTER;


void go_servo (char,char,char,char);

char in,i=0,sum;
char n_servo,vector,alfa,summ,ver;
void delaysa(unsigned int mks)
{
 if (mks<1400)
mks=1400;
if (mks>4450)
mks=4450;
while(mks>0)
{
 mks--;
}
}

void port_init(void)
{
PORTB = 0xFF;
DDRB  = 0xFF;
PORTD = 0x00;
DDRD  = 0x00;
}

void timer0_init(void)
{
TCCR0 = 0x00; //stop timer
TCNT0 = 0x29; //set count
TCCR0 = 0x05; //start timer
}

#pragma interrupt_handler timer0_ovf_isr:7
void timer0_ovf_isr(void)
{

TCNT0 = 0x29; //TIMER0 has overflowed

PORTB |=BIT(0);
delaysa(del_0);
PORTB &=~BIT(0);

PORTB |=BIT(1);
delaysa(del_1);
PORTB &=~BIT(1);

PORTB |=BIT(2);
delaysa(del_2);
PORTB &=~BIT(2);
 
PORTB |=BIT(3);
delaysa(del_3);
PORTB &=~BIT(3);  
 
PORTB |=BIT(4);
delaysa(del_4);
PORTB &=~BIT(4);  

PORTB |=BIT(5);
delaysa(del_5);
PORTB &=~BIT(5);  
 //reload counter value

}

void uart0_init(void)
{
UCR  = 0x00; //disable while setting baud rate
UBRR = 0x47; //set baud rate
UCR  = 0xD8; //enable
}

#pragma interrupt_handler uart0_rx_isr:8
void uart0_rx_isr(void)
{
in=UDR;
PORTB^=BIT(7);
if (i==0)
  n_servo=in;
if (i==1)
  vector=in;
if (i==2)
  alfa=in;
if (i==3)
  ver=in;
i++;
if (i==4)
{
PORTB^=BIT(6);
go_servo(n_servo,vector,alfa,ver);
}
}
#pragma interrupt_handler uart0_tx_isr:10
void uart0_tx_isr(void)
{

}

void go_servo (char n_sevro, char vector, char alfa, char ver)
{
i=0;
sum=alfa-n_servo-vector;
if (sum==ver)
{
if (n_servo==0)
   {
 if (vector==1)
 del_0=2880-alfa*6;
 if (vector==2)
 del_0=2880+alfa*6;
 }

if (n_servo==1)
   {
 if (vector==1)
 del_1=2880-alfa*6;
 if (vector==2)
 del_1=2880+alfa*6;
 }
if (n_servo==2)
   {
 if (vector==1)
 del_2=2880-alfa*6;
 if (vector==2)
 del_2=2880+alfa*6;
 }
if (n_servo==3)
   {
 if (vector==1)
 del_3=2880-alfa*6;
 if (vector==2)
 del_3=2880+alfa*6;
 }
if (n_servo==4)
   {
 if (vector==1)
 del_4=2880-alfa*6;
 if (vector==2)
 del_4=2880+alfa*6;
 }
if (n_servo==5)
   {
 if (vector==1)
 del_5=2880-alfa*6;
 if (vector==2)
 del_5=2880+alfa*6;
 }

}
}

//call this routine to initialize all peripherals
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();
timer0_init();
uart0_init();

MCUCR = 0x00;
GIMSK = 0x00;
TIMSK = 0x02;
SEI(); //re-enable interrupts
//all peripherals are now initialized
}

//
void main(void)
{
init_devices();
while(1)
{

}

}



Как работать с ШИМ я не разобрался поэтому сделал в лоб.
P.s. Пытался использвать кнопку Code но не получилось.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 55 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO