Общие вопросы начинающих
|
|
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
|
|
|
|