[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Форум » Мастерская » Я начинающий » Общие вопросы начинающих (Задаём вопросы)
Общие вопросы начинающих
nightmareДата: Среда, 01.06.2011, 19:49 | Сообщение # 31
Язык программированя: C,C#
Группа: Проверенные
Сообщений: 133
Репутация: 3
Статус: Offline
Хе, вот я тоже не пойму, зачем так делать, напиши всё в WinAVR тогда.
Мне привычнее CodeVisionAVR из-за макросов.


russian-robots@conference.jabber.ru - jabber чат для робототехников
KrishДата: Среда, 01.06.2011, 22:13 | Сообщение # 32
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
Dimsan, блин просто я скачал программирование на языке Си для WinAVR и для CodeVision AVR. Но суть там одна же, эти языки отточены под ядро AVR. Тоесть переменные и операторы, логические конструкции одни и те же? тоесть впринципе разницы большой нет, верно же?

Quote (nightmare)
Хе, вот я тоже не пойму, зачем так делать, напиши всё в WinAVR тогда. Мне привычнее CodeVisionAVR из-за макросов.

Нет, конечно, я пишу в WinAVR, мне нравится оболочка programmer notepad и makefiles, но просто я не знаю как разлечить код cvavr и winavr, но я так понимаю разницы большой нет, и это хорошо...


LacOS

Сообщение отредактировал Krish - Среда, 01.06.2011, 22:14
DimsanДата: Четверг, 02.06.2011, 00:09 | Сообщение # 33
Язык программированя: Си, Делфи
Группа: Модераторы
Сообщений: 65
Репутация: 1
Статус: Offline
Почти. Я не представляю, что может нравиться в makefiles. Я тоже начинал с WinAVR, а в дальнейшем перешёл на CodeVision AVR. И причиной перехода был гемор с твоими любимыми makefiles.
Сравни свою программу, которую ты пишешь под WinAVR и программу, сгенерированную мастером кода CodeVision AVR.
nightmareДата: Четверг, 02.06.2011, 00:19 | Сообщение # 34
Язык программированя: C,C#
Группа: Проверенные
Сообщений: 133
Репутация: 3
Статус: Offline
Еще один способ, по прикольнее - скопируй код программы из WinAVR в Code Vision AVR или наоборот, где ошибки будут - там большая разница))

russian-robots@conference.jabber.ru - jabber чат для робототехников
KrishДата: Четверг, 02.06.2011, 20:42 | Сообщение # 35
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
скоро придёт поссылка с лайнтрейсером )) ура ))
1)Начал писать программу на СИ, но зашёл в ступор, когда начал писать программу для 8 оптопар! для 3-4 легко))
http://robotshop.su/e-store/catalog/202/702/ <== вот датчик линии..
Тут же не все оптопары смотрят на линию! тоесть ~ 4 оптопары вне линии и 4 на линии =>> на 4 оптопарах должна быть всегда лог. 0 (не смотрит на линию) и на 4 лог. 1 (смотрит на линию), так?
2) Не хочится брать l293d, мне эта микросхема очень не понравилась, она так греется, что приходится через 5 минут выключать робота. Подскажите хорошую мс дд, я думаю взять http://robozone.su/2008....mi.html как ДД для лайнтрейсера и сумо.
3) То что греется мс это не зависит же от обвзяки микросхемы ? или нужно ставить минимальный ток потребления как по дш?

Добавлено (02.06.2011, 20:42)
---------------------------------------------
Блин, хорошо, что лето, сейчас пойду поработаю и буду независим от семейного бюджета:)
Накуплю контроллеров и наштопаю роботов и девайсов разных. Хочу купить оптом atmega8 в smd 50 штук... там выходит под 2000руб. на чип и дип офигеть по 380 рублей! на других сайтах от 95руб до 150 руб. Чип и Дип вообще офигели по полной, какие дураки у них покупают!


LacOS
DimsanДата: Четверг, 02.06.2011, 21:49 | Сообщение # 36
Язык программированя: Си, Делфи
Группа: Модераторы
Сообщений: 65
Репутация: 1
Статус: Offline
1) Так. Под средними линия. Хотя может зависеть от алгоритма.
2) Сильно греется, значит двигатели много потребляют. Можно купить мотор-редукторы с того же "роботшопа", у них потребление гораздо ниже (несколько вариантов есть)и л293д справится.
3) От обвязки не зависит.
KrishДата: Четверг, 02.06.2011, 22:12 | Сообщение # 37
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
Quote (Krish)
3) От обвязки не зависит.

Как не зависит а перепады напряжения, помехи и т.д.!


LacOS
nightmareДата: Пятница, 03.06.2011, 00:43 | Сообщение # 38
Язык программированя: C,C#
Группа: Проверенные
Сообщений: 133
Репутация: 3
Статус: Offline
Только от нагрузки зависит.
ДД с робозон сильно холоднее не будет.
1) Юзай ПД алгоритм, не будешь же для каждого состояния датчика линии подгонять скорость двигателей.
http://cdxp.zx6.ru/archives/683
Положение над линией вот так считается:
00001 = 4
00011 = 3
00010 = 2
00110 = 1
00100 = 0
01100 = -1
01000 = -2
11000 = -3
10000 = -4
Где еденицы - над тем датчиком линия. Справа - положение.
В формуле по ссылке положение это X.


russian-robots@conference.jabber.ru - jabber чат для робототехников

Сообщение отредактировал nightmare - Пятница, 03.06.2011, 00:47
KrishДата: Пятница, 03.06.2011, 09:25 | Сообщение # 39
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
nightmare, мне учитель говорил про него, и давал форумулу, она у тебя на сайте, но блин с логикой намного проще по-моему.

Добавлено (03.06.2011, 09:25)
---------------------------------------------
nightmare, А ПД и ПИД это разные вещи, мне говорили просто про пропорционально интегрально дифиренциальную систему)


LacOS
nightmareДата: Пятница, 03.06.2011, 10:51 | Сообщение # 40
Язык программированя: C,C#
Группа: Проверенные
Сообщений: 133
Репутация: 3
Статус: Offline
ПД это без интегральной, она тут не нужна.
С логикой может и проще, но медленнее же, вихляет не прикольно.


russian-robots@conference.jabber.ru - jabber чат для робототехников

Сообщение отредактировал nightmare - Пятница, 03.06.2011, 16:20
KrishДата: Суббота, 04.06.2011, 12:00 | Сообщение # 41
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
блин как - бы настроить датчики на лог 1 и 0 легко, а как сделать чтобы моторы реагировали на 1 или 0 я не знаю:(
Вот настроил:
Code

DDRC = 0xff; // все выводы порта C сконфигурировать как выходы (моторы)
    DDRA = 0x00; // все выводы - входы. (датчик)
    PORTA = 0b00111100; // 4 вывода лог"1" 4 вывода лог"0"

Программа моторов имеет конструкцию if - else.
Самое трудное это написать условие if!
if (!(PINA & (1<<PIND1))) // проверить "0" на линии 1 порта D - это с myrobot.ru
мне надо для 8 оптопар а тут для 1:(
if (!(PINA & (1<<PINA1))) - вот тут должно быть расписано 4 вывода "0" лог, 4 вывода "1" лог, тогда он едит прямо.
Code

// ---------- вращаем моторы вперед ----------

               PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
               PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
               PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
               PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C

               // --------------------------------------------------


nightmare, вот это написано под ПД?
Code

int main(void)
{
     uart_init();
     stdout = stdin = &uart_str;
     printf("Linesensor-test ready!\n");
   
     DDRC = 0x20;
     DDRD = 0x30;
   
     //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;
   
     while(1==1){
         DDRA = 0xFF;
         PORTA = 0xFF;
         DDRC |= 0xC0;
         PORTC |= 0xC0;
         _delay_us(3000);
         DDRA = 0x00;
         PORTA = 0x00;
         DDRC &= ~0xC0;
         PORTC &= ~0xC0;
         PORTC |= 0x20;
         _delay_us(500);
         int x = PINA;
         int y = PINC>>6;
         if (y == 1) {
             y = 2;
         } else if (y == 2) {
             y = 1;
         }
         x = x + (y<<8);
   
         for(int i=0; i<10; i++){
             int j = x & 0x01;
             printf("%d",j);
             x = x>>1;
         };
         printf("\n");
   
         _delay_us(30000);
     };

Добавлено (04.06.2011, 12:00)
---------------------------------------------
В мини сумо датчик линии нужен?
Если да, то там хватит 1 оптопары?
Я делаю по примеру http://www.myrobot.ru/articles/sport_robofest_2010_record.php


LacOS
nightmareДата: Воскресенье, 05.06.2011, 20:19 | Сообщение # 42
Язык программированя: C,C#
Группа: Проверенные
Сообщений: 133
Репутация: 3
Статус: Offline
Про минисумо отвечали же)
Тот код не понял, там ни разу не скорость вращения двигателей, да и вообще похоже сервы используют.


russian-robots@conference.jabber.ru - jabber чат для робототехников
KrishДата: Понедельник, 06.06.2011, 09:04 | Сообщение # 43
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
nightmare, слушай, а можно ли к миркосхеме L298N подключить 4 двигателя, эта микросхема даёт на выходе 2А, а если моторы по 0.6А (0.6*2=1.2А), тоесть к линии М1 подключить 2 мотора, и к линии М2 2 мотора. Это для минисумо, для лучшего движения.

LacOS
nightmareДата: Понедельник, 06.06.2011, 10:17 | Сообщение # 44
Язык программированя: C,C#
Группа: Проверенные
Сообщений: 133
Репутация: 3
Статус: Offline
При стопоре моторов сколько каждый тока потребляют?

russian-robots@conference.jabber.ru - jabber чат для робототехников
KrishДата: Понедельник, 06.06.2011, 10:32 | Сообщение # 45
Группа: Пользователи
Сообщений: 184
Репутация: 2
Статус: Offline
Quote (Krish)
стопоре моторов

что такое стопор?


LacOS
Форум » Мастерская » Я начинающий » Общие вопросы начинающих (Задаём вопросы)
Поиск: