123
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 6123456»
Модератор форума: nightmare, Huntswarrior, Aleks_Crow 
Форум » Программирование микроконтроллеров AVR, PIC » Вопросы по програмированию » Помогите разобраться ! (Объясните что и как...)
Помогите разобраться !
Отправлено 20.05.2010 - 13:111
Администраторы
3320 сообщений
Мужчина
Всем привет, ну вот не могу я оставить без внимания то, что у меня уже второй год, почти без внимания, валяется на полочке РОБОКОНТРОЛЛЕР OR-AVR-M32-D: Контроллер общего назначения с портом ДД (RoboMD2)

Сначала лежал почему, потому что я не умел программировать. Теперь он лежит из-за того, что я не знаю как им пользоваться(как и куда подключать переферию).

Характеристики модуля

Микроконтроллер: ATMega32 @ 7.3728 МГц
Напряжение питания: 6-16 В
Габариты модуля: 66 х 66 х 16 мм (длина*ширина - по печатной плате)
Вес: не более 32г
Порты RoboGPIO: 16 (из них 8 с функцией АЦП)
Порты RoboI2C: 4
Порт драйвера двигателей - есть, RoboMD2

Инструкция по модулю http://roboforum.ru/mediawiki/images/6/6d/OR-AVR-M32-D.pdf
Принципиальная схема http://roboforum.ru/mediawiki/images/4/48/OR-AVR-M32-D-scheme.pdf

Объясните мне пожалуйста как и куда подключать внешние устройства, такие как мотор, сд, шарп, сенсоры...
На примере программы какой-нибудь простенькой с комментариями подробными.



Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 20.05.2010 - 13:582
Начальная группа
1798 сообщений
Мужчина
Quote
Объясните мне пожалуйста как и куда подключать внешние устройства, такие как мотор, сд, шарп, сенсоры...
На примере программы какой-нибудь простенькой с комментариями подробными.

Куда подключать драйвер двигателей написано на странице 11 в инструкции.
Шарпы бывают аналоговые или цифровые, цифровые подключать к I2C, аналоговые на любой канал АЦП.
Сенсоры к любым портам. СД- светодиод? К любому порту.
Про то, как рулить драйвером двигателей, у меня на сайте написано, там программа на Си и схема (копипастить не буду, схема большая получилась).
Как с АЦП работать, там же написано (с коментариями и подсветкой синтаксиса).
Неплохобы почитать какой-нибудь курс по микроконтроллерам, можно даже вот этот 123avr.com, он перепечатанный, легче читается чем та "раскраска".
Про то, как конфигурировать АЦП, таймеры и прочее подробно написано в даташитах и еще есть CodeWizard в CVAVR, так что разобраться будет не сложно.
Чтобы научиться программировать этот модуль, тебе потребуется:
1. Научиться конфигурировать все что угодно при помощи даташита.
2. разобарться с CodeWizard'ом
3. научиться работать с портами
4. Си знаешь наверное?

По первому пункту могу по скайпу помочь.



Профиль Личное сообщение Дом. страница icq Skype
37
Отправлено 20.05.2010 - 20:463
Администраторы
3320 сообщений
Мужчина
Quote (nightmare)
Куда подключать драйвер двигателей написано на странице 11 в инструкции.

у меня его нет.

Насчет скайпа на все 100% ЗА ! (если поможешь подробнее разобраться с этим девайсом, опишешь на простом языке, понятно любому лолу, как я, по части робоконтроллеров ) )

По документам если сматреть то до меня хреново доходит, нужно словами(всм. текстом онлайн) smile
Хочу хоть что-то из него сделать, а то деньги потрачены, желание есть но нет знаний.

Есть книжка такая: "Практическое программирование МК АВР на языке ассемблера" (Юрий Ревич). Читал всю,-нифиииига не понял )
Есть книжка "Программирование на Си++ для чайников", читаю когда не лень.

Знаю Си ++



Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 20.05.2010 - 20:534
Начальная группа
1798 сообщений
Мужчина
Ой, асм это жесть, я пытался с него начать мозги вскипели и чуть было не вытекли, перешел на Си, учился по курсу 123, информацию выписывал в тетрадь и MS Word. В голове была каша, но мозг уже не кипел biggrin
Далее поработал в VMLab, потом в железе, вообщем информация улеглась.
раз Си ++ знаешь, отлично, давай завтра по скайпу сконектимся где-нибудь в районе 13:00 ... 17:00, пойдет?
Что касается модуля, используй инструкцию только для того, чтобы смотреть где какие выводы микроконтроллера на разъемах.

ЗЫ: О, только что обратил внимание, там на плате написано где какие выводы.



Профиль Личное сообщение Дом. страница icq Skype
37
Отправлено 28.05.2010 - 01:445
Администраторы
3320 сообщений
Мужчина
Заказал две сервы HXT12K собираюсь ее под постоянное вращение переделать. И вот мучает вопрос: если мне нужно будет ее поворачивать например на 90 ', я смогу ее повернуть, или это уже будет невозможно ? Если мы серву под постоянное переделаем.


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 28.05.2010 - 11:516
Начальная группа
1798 сообщений
Мужчина
Да кажись невозможно, подстроечник там удаляется?
Может лучше редукторов купить?


Профиль Личное сообщение Дом. страница icq Skype
37
Отправлено 28.05.2010 - 17:507
Администраторы
3320 сообщений
Мужчина
Не, сказали нельзя. Но зато можно будет обратно востановить и работать как со стандартной http://roboforum.ru/forum8/topic6700.html


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 28.05.2010 - 17:538
Начальная группа
1798 сообщений
Мужчина
Кстати, а в чем преимущество переделанной сервы перед мотор-редуктором?


Профиль Личное сообщение Дом. страница icq Skype
37
Отправлено 28.05.2010 - 17:559
Администраторы
3320 сообщений
Мужчина
В том, что для мотор-редуктора нужен аналоговый сигнал, драйвер двигателей, а для сервы цифровой biggrin
Серву, когда надо, можно переделывать под постоянное вращение либо под градусы


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 28.05.2010 - 18:0910
Начальная группа
1798 сообщений
Мужчина
Понятно.


Профиль Личное сообщение Дом. страница icq Skype
37
Администраторы
3320 сообщений
Мужчина
Хотя я может ошибаюсь, т.к. с сервами особо не работал. Кстате, в этой серве встроенный дд. smile

Добавлено (29.05.2010, 00:37)
---------------------------------------------
Завтра заберу сервы. Еще наверно буду брать Инфракрасный (ИК) дальномер Sharp GP2Y0A21 (10-80см) (аналог GP2D12)

Плюс думаю заюзать эти датчики линии
ЗЫ: Насчет шарпа. Как им управлять, как обрабатывать сигнал и измерять длину до препятствия ?



Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 29.05.2010 - 10:4112
Начальная группа
1798 сообщений
Мужчина
Шарп аналоговый или цифровой?
Аналоговый к АЦП подключай, цифровой в i2c.
Формула для преобразования напряжение в расстояние есть в даташите.


Профиль Личное сообщение Дом. страница icq Skype
37
Администраторы
3320 сообщений
Мужчина
Quote (nightmare)
Шарп аналоговый или цифровой?

-ссылка прилагается wink Аналоговый.
Давай с шарпом пока отложим.
Мне сначала написать программку для серв. Просто чтоб они вращались. Есть какие-нибудь примеры ?
Как насчет Skype ?


Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Отправлено 29.05.2010 - 13:1414
Начальная группа
1798 сообщений
Мужчина
Примеров нет, как ими управлять не знаю, наверно шимом. Поищи примеры в инете, там есть. Я щас на даче, тут инета нет, пишу с телефона.


Профиль Личное сообщение Дом. страница icq Skype
37
Администраторы
3320 сообщений
Мужчина
Вот пример рабочей програмки (с робофорума помогли). Поворачивает медленно сервы:

Code
#include "defines.h"
#include <avr/interrupt.h>
#include <util/delay.h>

int main(void)
{
   DDRC=0x20;
   DDRD=0x30;

   //Init PWM for SERVO Control on PD4, PD5
   //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    

   while(1){

     for(uint16_t i=750; i<2250; i+=10){

       //Set servo A pos:
      uint16_t servoPosA=i;
       OCR1A=servoPosA*23/50;

      //Set servo B pos:
      uint16_t servoPosB=2250+750-i;
      OCR1B=servoPosB*23/50;

      //Wait for a 20ms
      _delay_ms(20);
     };

     for(uint16_t i=2250; i>750; i-=10){

      //Set servo A pos:
       uint16_t servoPosA=i;
      OCR1A=servoPosA*23/50;

      //Set servo B pos:
      uint16_t servoPosB=2250+750-i;
      OCR1B=servoPosB*23/50;
      //Wait for a 20ms
      _delay_ms(20);
     };
   };
     
}

Видеоролик:

Теперь будем на нем экспериментировать smile



Только дурак нуждается в порядке-гений господствует над хаосом...
Онлайн ЧАТ по робототехнике ! Заходи и общайся без регистрации =)
Профиль Личное сообщение Дом. страница icq Skype
31
Форум » Программирование микроконтроллеров AVR, PIC » Вопросы по програмированию » Помогите разобраться ! (Объясните что и как...)
Страница 1 из 6123456»
Поиск: