roboforum.ru

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

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




Начать новую тему Ответить на тему  [ Сообщений: 227 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 14:15 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Оцените мои достижения!!!
Я слегка подправил формулу:
TCNT1=1+(60000/10)+(61000/10)+(59000/10)...;
Получается ~18000 - то что надо.


Вложения:
success!!!.JPG
success!!!.JPG [ 223.98 КиБ | Просмотров: 2126 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 14:47 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Фу!!!
Доделал до 8 серв.
Тока старая проблема вылезла с накоплением ошибки от сервы к серве.

Вот код:


Вложения:
demo.c [5 КиБ]
Скачиваний: 395
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 14:52 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Как оказалось заморачиваться с расчетами периода(20-t1-t2-t3...)не пришлось. :D
Разница между 2мс и 1мс очень мало вляет на длину периода!!!
Поэтому я поставил константу  - ~27000(~18.5мс)


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

Зарегистрирован: 11 авг 2006, 01:02
Сообщения: 69
Откуда: ----
Lirzman писал(а):
Фу!!!
Тока старая проблема вылезла с накоплением ошибки от сервы к серве.


Какая величина ошибки? Лучше а тактах контроллера.

Анатолий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 15:32 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Цитата:
Какая величина ошибки? Лучше а тактах контроллера.

Как и раньше 0.25 - 0.3гр.
А в тиках МК,... не знаю считать надо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 15:35 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Самое интересное что сервы 7 и 8 работают правильно(ошибки нет)


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

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Скорее всего это изза того что ты выставил ТСNT1 = 27000; нада по формуле.


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

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Цитата:
Скорее всего это изза того что ты выставил ТСNT1 = 27000; нада по формуле

По формуле получается от 26000 до 28000.
Я поставил 27000, разницы  - 0 , хоть 1 поставь всё равно работает, только сервы дрожать начинают.
Дело тут не в формуле.


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

Зарегистрирован: 29 дек 2004, 23:15
Сообщения: 3744
Откуда: Санкт-Петербург
прог. языки: C, C++, C#, Asm
ФИО: Кашликов Сергей
Вот я с ИК-датчиками закончу, протестю сам сервы, если проблема не решится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 17:58 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Я уже исправил, просто к каждой последующей серве прибавлял +7 тиков таймера.
Пример:

Код:
if(cur_servo==3)
 {PORTB SET_B(2);
 PORTB CLR_B(1);
 TCNT1=gangle[2]+2;
 cur_servo=4;
 }
 else
 if(cur_servo==4)
 {PORTB SET_B(3);
 PORTB CLR_B(2);
 TCNT1=gangle[3]+9;
 cur_servo=5;
 }
 else
 if(cur_servo==5)
 {PORTB SET_B(4);
 PORTB CLR_B(3);
 TCNT1=gangle[4]+16;
 cur_servo=6;
 }
 else
 if(cur_servo==6)
 {PORTB SET_B(5);
 PORTB CLR_B(4);
 TCNT1=gangle[5]+23;
 cur_servo=7;
 }
 else
 if(cur_servo==7)
 {PORTB SET_B(6);
 PORTB CLR_B(5);
 TCNT1=gangle[6]+30;
 cur_servo=8;


Все сервы встали в положение +3.00 :D


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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 18:17 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Так с сервами я теперь уж точно закончил(если aesok ещё ошибок не найдет) :D

При включении МК все сервы встают в положение +3.00гр.

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

Из всего вышестоящего резонно следует вопрос какие моторы  и схему управления использовать.

Думаю надо моторы помощнее на 36v(от стеклоподъёмников), а так-же мостовую схему управления на транзисторах(H-мост).
На счет l293(298) не знаю.
Управлять всё это дело надо ШИМом.

Ваши мнения?

ЗЫ Щас придет aesok и найдет кучу багов.(как обычно) :)

Вот код держите:


Вложения:
demo.c [4.9 КиБ]
Скачиваний: 390
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 18:54 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Сергей писал(а):
Думаю не мешалобы переименовать тему =))

Согласен.
Как назвать?


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

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
да, уту переименовать в "SERVO - программирование на WinAVR"

или еще как-то конкретно.

А под новые идеи новый топик завести в соответствующем разделе форума.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 17 авг 2006, 19:33 
Не в сети
Аватара пользователя

Зарегистрирован: 22 мар 2005, 03:59
Сообщения: 257
Откуда: Питер
Эту тему переименую в "Управление Сервами в WinAvr".
А под робота создам новую "Открытый проект по созданию Гусеничного робота".

Вообще хотелось бы сделать универсального робота(для работы по дому) на подобии того что слева вверху страницы нарисован.

Соглашусь с теми кто скажет что задача ОЧЕНЬ трудная, но я в отличие от них руководствуюсь крылатой фразой - "Тот кто хочет стать миллионером очень редко им становится, но тот кто этого не хочет не становится им никогда".


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 227 ]  На страницу Пред.  1 ... 12, 13, 14, 15, 16  След.

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


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

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


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

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