|
ик бампер
|
|
| Doniak | Дата: Пятница, 20.02.2009, 21:03 | Сообщение # 16 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Схему вы привели выше сами, а вот прога до безобразия простая её даже непишут.
|
| |
| |
| sasha | Дата: Пятница, 20.02.2009, 21:22 | Сообщение # 17 |
Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
| можете написать что бы понять? Я понялв программирование что назначаем порты и время их ткрытия и закрытия, и аттини (проверка) прокомпилирвал чеи ошибку выдает!
-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
|
| |
| |
| Doniak | Дата: Пятница, 20.02.2009, 21:24 | Сообщение # 18 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| где и на чём пишеш?
|
| |
| |
| sasha | Дата: Среда, 25.02.2009, 15:57 | Сообщение # 19 |
Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
| на CVAVR Добавлено (25.02.2009, 15:57) --------------------------------------------- можете написать что бы понять? 
-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
|
| |
| |
| Doniak | Дата: Среда, 25.02.2009, 21:54 | Сообщение # 20 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote можете написать что бы понять? help Помойму я тебе в ПМ писал дай более подробную информацыю что надо, что есть и я тебе напишу а ещё лутче составь схему в протеусе и я под неё напишу.
|
| |
| |
| sasha | Дата: Четверг, 26.02.2009, 12:55 | Сообщение # 21 |
Язык программированя: Си и баском(учусь)
Зарегистрирован 16.02.2009
Группа: Новички
Сообщений: 371
Город: Актюбинск
Статус: Offline
| а первую схему не надо программировать как аттини? просто напишу когда 0(есть припятствие) и открываю порт? так? Добавлено (26.02.2009, 12:55) --------------------------------------------- а можно так программировать? когда от порта PORTA.1 приходит сигнал первым чем PORTA.2 и PORTA.3? как это пишеться?
-=Наша_зависимость_от_роботов_возрастает_с_каждым_днем=-
|
| |
| |
| Doniak | Дата: Четверг, 26.02.2009, 13:58 | Сообщение # 22 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote когда от порта PORTA.1 приходит сигнал первым чем PORTA.2 и PORTA.3? Это не вопрос это его часть.
|
| |
| |
| Chinga92 | Дата: Пятница, 27.02.2009, 13:26 | Сообщение # 23 |
Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
| я хотел сделать так! вот собрать схему аудиоусилителя с компоратором (2шт с 4 сторон робота) http://robozone.su/2008/05/31/sdvoennyjj-zvukovojj-sensor-na-baze.html и запрограммировать так что бы от какой стороны сигнал приходит первым и туда поворачивался!
|
| |
| |
| Doniak | Дата: Пятница, 27.02.2009, 14:26 | Сообщение # 24 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Code while (1){ switch (PORTA) { /*порт куда подсоединены датчики*/ case 0b00000001: /* этот код будет выполняться если сроботал 1ый датчик*/ delay_ms(2000); /*Задержка */ break;
case 0b00000010: /* этот код будет выполняться если сработал 2ой датчик*/ delay_ms(2000); break;
case 0b00000100: /* этот код будет выполняться если сработал 3тий датчик*/ delay_ms(2000); break; /*Ну и тд до 8го датчика...*/ default: /* этот код будет выполняться если не один из датчиков не сработал*/
}; }; Осё написал может поможет... Вечный цикл проверяет состояние порта и если срабатывает датчик начинает выполнятся движение, поворот и тд уже сам допишешь. Если я правильно понимаю датчики будут срабатывать по очереди до полного срабатывания всех, И если программа сверит значение case первым чем сработают 2+ датчика вместе то робот будит выполнять то что уже сам допишешь :)
|
| |
| |
| Chinga92 | Дата: Пятница, 27.02.2009, 15:15 | Сообщение # 25 |
Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
| вы про ик бамперов? я справился с бамперами! вот мне с ушами проблемы! я хотел с четырех сторон микрофон поставить и откуда сигнал приходит первым туда поворачивался! и еще какая разница между if и case?
|
| |
| |
| Doniak | Дата: Пятница, 27.02.2009, 18:34 | Сообщение # 26 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote вы про ик бамперов? я справился с бамперами! вот мне с ушами проблемы! я хотел с четырех сторон микрофон поставить и откуда сигнал приходит первым туда поворачивался! Всё тоже самое что и с ИК бампером. только после того как сработал первый датчик нужно ставить паузы или просто выходить из главного цикла чтобы он перестал реагировать на остальные датчики. Quote и еще какая разница между if и case? IF выполняет какую то часть программы при наличии каких либо условий, а switch позволяет сделать выбор из нескольких вариантов. Вобще разница небольшая но так имхо проще. http://avr123.nm.ru/05.htm
|
| |
| |
| Chinga92 | Дата: Пятница, 27.02.2009, 19:23 | Сообщение # 27 |
Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
| #include <mega32.h> #include <delay.h> void main(void){ PORTA=0x00; PORTB=0xff; while (1){ switch (PORTA) { /*порт куда подсоединены датчики*/ case 0b001: /* этот код будет выполняться если сроботал 1ый датчик*/ PORTB.1=1; PORTB.2=0; PORTB.3=0; PORTB.4=1; delay_ms(5000); /*Задержка */ break; case 0b010: /* этот код будет выполняться если сработал 2ой датчик*/ PORTB.1=0; PORTB.2=1; PORTB.3=1; PORTB.4=0; delay_ms(5000); break; case 0b100: /* этот код будет выполняться если сработал 3тий датчик*/ PORTB.1=1; PORTB.2=0; PORTB.3=0; PORTB.4=1; delay_ms(10000); break; default: /* этот код будет выполняться если не один из датчиков не сработал*/ } } } если я 3 усилителя с 3 сторон поставлю (с лева и с права и с зади) прога так пишеться? робот в одну сторону 5 сек поворачиваеться! Добавлено (27.02.2009, 19:23) --------------------------------------------- и еще чють не забыл на робоконтроллерах дросселя обязательно ставить? а то на схеме есть а на рисунке нет!
|
| |
| |
| Doniak | Дата: Пятница, 27.02.2009, 20:12 | Сообщение # 28 |
Язык программированя: CodeVisionAVR Си
Зарегистрирован 19.03.2008
Группа: Модераторы
Сообщений: 584
Город: Кривой Рог (Днепропетровск)
Статус: Offline
| Quote PORTB.1=1; PORTB.2=0; PORTB.3=0; PORTB.4=1; delay_ms(5000); /*Задержка */ если у тебя єто поворот тогда он у тебя будит только поворачиватся через каждие 5 сек. допиши ещо чтоб ехал вперёд и добавь задержку на время пока он будит ехать. Quote и еще чють не забыл на робоконтроллерах дросселя обязательно ставить? не обязательно
|
| |
| |
| Chinga92 | Дата: Пятница, 27.02.2009, 20:22 | Сообщение # 29 |
Зарегистрирован 21.01.2009
Группа: Новички
Сообщений: 48
Город: Aktobe
Статус: Offline
| ну мне надо что бы только поварачивался Добавлено (27.02.2009, 20:22) ---------------------------------------------
Quote (Doniak) не обязательно а для чего они вопще нужны?
|
| |
| |
| FireFly | Дата: Пятница, 27.02.2009, 20:27 | Сообщение # 30 |
Зарегистрирован 04.04.2008
Группа: Модераторы
Сообщений: 196
Город: Kamyshin
Статус: Offline
| Quote (Chinga92) и еще чють не забыл на робоконтроллерах дросселя обязательно ставить? а то на схеме есть а на рисунке нет! если питание контроллера и датчиков общее с питанием двигателей (один источник) то обязательно ставить - у тебя таааакая каша будет по питанию без них....
Robozone
|
| |
| |