Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Разработка стандартизированных модулей для домашнего робостроения.
Правила форума
Правила раздела OpenRobotics

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 07 фев 2010, 14:17

Сергей писал(а):ИМХО система сложная и мало полезная. Проще писать под камень с обычными API функциями

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

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение Сергей » 07 фев 2010, 14:40

Michael_K писал(а):
Duhas писал(а):2Michael_K с одной стороны - да, они намутили ) с другой - а как иначе, когда нужна довольно сложная многопрофильная конфигурируемая структура ? )


Пользователю в 99% случаях нафиг не нужна "довольно сложная многопрофильная конфигурируемая структура".
Это только деду и блайндману кажется, что она нужна, и что это круто

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

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 07 фев 2010, 16:36

Тогда предлагаю проект ORFA обсуждать в другой ветке :)

Добавлено спустя 1 час 55 минут 4 секунды:
Всё, проверил и проставил номера регистров, выложил инструкцию на страницу модуля: [[OR-AVR-M32-D]], заодно причесал эту самую страницу.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение S-T-A-L-K-E-R » 24 май 2010, 22:05

Блин, лежат на полочке контроллер и программатор, но боюсь к нему притронуться, сломать. Я научился считывать код с контроллера, но программирую пока не ахти. Пишу программки под ДОС на cpp. Где можно взять, посмотреть програмки управлением сервами, датчиками именно для этого модуля.
Зы: руки чешутся, голова скоро лопнет от идей, нужно срочно их реализовывать :D
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 24 май 2010, 22:09

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

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение S-T-A-L-K-E-R » 29 май 2010, 21:23

Програмку с задейсвованием серв в примерах не обнаружил. Мне нуна программа на Си(сам на cpp пишу) с использованием серв. Чтоб было отчего отталкиваться. Желательно рабочую для этого контроллера.
ЗЫ: =DeaD= у тебя же есть этот контроллер и программки наверняка на него есть, помоги разобраться...
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 29 май 2010, 21:32

Я делал лайнтрейсера на этом контроллере на модифицированных сервах, вот тут есть линк на исходники:
[[OR-LT-v2]]

Там блок:
uint16_t baseA=(153*2+1)*23/10; //1530us
uint16_t baseB=(156*2+1)*23/10; //1560us
OCR1A=baseA;
OCR1B=baseB;


Это управление 2 сервами через 1 таймер.
Т.е. берете инициализацию
//PWM, Phase and frequency correct, TOP=ICR1
TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency


И потом через OCR1A и OCR1B выставляете положения серв.
Например чтобы серву на OC1A выставить положение 1900мкс нужно сделать:
OCR1A=(190*2+1)*23/10;
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение S-T-A-L-K-E-R » 29 май 2010, 21:42

О... это сложновато для меня. Можно элементарщину, я только начинающий в мк.
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 29 май 2010, 21:46

Не понял, куда проще? инициализация и как рассчитать значение регистра по нужному положению сервы показано.

Добавлено спустя 24 секунды:
В начале программы пишешь:
TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency


Добавлено спустя 2 минуты:
А где надо выставить положение сервы на порту OC1A от 750мкс до 2250мкс пишешь (например, для положения 1534мкс):
OCR1A=1534*23/50;


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

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение S-T-A-L-K-E-R » 29 май 2010, 22:01

#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "uart.h"
int main(void)
{ TCCR1A=0xA0; //clear on up-counting, set on down-counting
TCCR1B=0x12; //Clock prescaler 1/8
ICR1=9216; //Set 50Hz frequency

OCR1A=1534*23/50;

_delay_us(15000);

}

[/code]
_______________
Я не понимаю что в этой программе написано.
Вот я хочу например подключить сервы одну на A0 другую на A1. Что в программе писать ?
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 29 май 2010, 22:03

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

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение S-T-A-L-K-E-R » 29 май 2010, 22:07

=DeaD= писал(а):Тут аппаратная генерация ШИМ - смотрите куда выведены порты OC1A, OC1B по схеме модуля.
Программная генерация будет мешать работать основной программе, ну или наоборот, основная программа ей будет мешать, короче там всё намного сложнее.

OC1A, OC1B по схеме модуля-PD4 & PD5
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 29 май 2010, 22:08

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

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение S-T-A-L-K-E-R » 29 май 2010, 22:15

Т.е. программа будет выглядеть так ?
Код: Выделить всё
#include "defines.h"

#include <ctype.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>

#include <avr/interrupt.h>

#include <util/delay.h>

#include "uart.h"


FILE uart_str = FDEV_SETUP_STREAM(uart_putchar, uart_getchar, _FDEV_SETUP_RW);

int main(void)
{
  uart_init();
  stdout = stdin = &uart_str;
  printf("Linetracer ready 1!\n");

  DDRC=0x20;
  DDRD=0x30;

  _delay_ms(5000);

  //PWM, Phase and frequency correct, TOP=ICR1
  TCCR1A=0xA0; //clear on up-counting, set on down-counting
  TCCR1B=0x12; //Clock prescaler 1/8
  ICR1=9216;  //Set 50Hz frequency   
  uint16_t baseA=(153*2+1)*23/10;
  uint16_t baseB=(156*2+1)*23/10;
  OCR1A=baseA;
  OCR1B=baseB;
}


Добавлено спустя 1 минуту 18 секунд:
Так мне вашу программу полностью загрузить в мк без изменений ?

Добавлено спустя 5 минут 19 секунд:
На всякий случай, сервы у меня HXT12K, программатор за 400 ру, OR-PROG-USB-X, КОТОРЫЙ ТОЛЬКО С kAZAMAPROGRAMMER работает.
РОБОТОТЕХНИКА для каждого СВОИМИ РУКАМИ - SERVODROID.RU [SERVODROID.RU-Робототехника для начинающих своими руками]
Аватара пользователя
S-T-A-L-K-E-R
 
Сообщения: 314
Зарегистрирован: 05 ноя 2009, 10:10
Откуда: Санкт-Петербург vs Мурманск
Skype: sergey199100
прог. языки: С, C++, C++++, Delphi, Pascal, Asm

Re: Модуль OR-AVR-M32-D: Контр. на базе ATMega32 с портом ДД

Сообщение =DeaD= » 29 май 2010, 22:28

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

Пред.След.

Вернуться в Open Robotics

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

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