роботы робототехника микроконтроллеры


 Страниц (6): « 1 [2] 3 4 5 6 »   

> Описание: Простой робот на микроконтроллере (Часть2) Робот с фотодатчиком
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



ilnur888 пишет:
в чем дело?
В программе!!! Но, Вы упорно не хотите ее исправлять рёв в три ручья Надеюсь разберетесь в том, что и почему я изменил!

/****************************************************************
ПРИМЕР 4 :: ПРОСТЕЙШИЙ АЛГОРИТМ СЛЕДОВАНИЯ ПО ЛИНИИ :: MYROBOT.RU
*****************************************************************/

#include <avr/io.h>

int main(void) // начало основной программы
{

DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
DDRD = 0x00; // все выводы порта D сконфигурировать как входы

PORTD = 0xff; // установить "1" на всех выводах порта D,
// включаем подтягивающие резисторы

while(1) // Бесконечный цикл
{

// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА

if( !(PIND & (1<<PIND1)) ) // проверить "0" на линии 1 порта D
{
// ---- включаем левый мотор, останавливаем правый -----
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC |= _BV(PC4); // установить "1" на линии 4 порта C
// -------------------------------- ---------------------
}
else
{
// ---- останавливаем левый мотор, включаем правый -----
PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
PORTC |= _BV(PC2); // установить "1" на линии 2 порта C
PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
PORTC &= ~_BV(PC4); // установить "0" на линии 4 порта C
// -------------------------------- ---------------------
}

} // закрывающая скобка бесконечного цикла

} // закрывающая скобка основной программы

(Отредактировано автором: 31 Октября, 2010 - 15:29:33)

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



Хе-хе Улыбка
А вы говорили hex плохой.
Вот абсалютно уверен что по алгоритму mihail все получится Улыбка (у вас там забавно напяно, но ... раз работает Улыбка )


Но просьба остается актуальной, хочется без макефайл, очень много текста.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



mihail пишет:
Если работает, то это хорошо. Хотя, по моему, не должно

А что было то? Улыбка В симуляторе вроде всё ОК...

ilnur888, вам обязательно необходим тут редуктор, так "Слежение за линией" у вас не получится.
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



nest пишет:
А что было то?
Алгоритм немного другой. Робот с ним по линии ехать не должен был. А так, программа должна компилироваться и в симуляторе нормально работать.
cjA пишет:
по алгоритму mihail
Алгоритм не мой. Я его позаимствовал из другой статьи myROBOT (робот с логической микросхемой http://myrobot.ru/stepbystep/el_...bot_for_line.php ) Смущение
cjA пишет:
все получится
Не факт. Там, моторчики надо правильно подключить Голливудская улыбка
 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



у него есть возможность программного ШИМа,
поедет, куда денется.
(можно и без редукторов)
(я уже запутался в чем трабла- в проге или механике? или в makefile?)

(Отредактировано автором: 31 Октября, 2010 - 19:25:56)

 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



cjA пишет:
у него есть возможность программного ШИМа,
поедет, куда денется.
(можно и без редукторов)

Вы, видимо, ни разу не пробовали моторчики на мало-заполненном Шим-е запускать ...
 
 Top
ilnur888 Post Id



Маршал


Сообщений всего: 103
Дата рег-ции: Окт. 2010  



cjA пишет:
у него есть возможность программного ШИМа,
поедет, куда денется.
(можно и без редукторов)
(я уже запутался в чем трабла- в проге или механике? или в makefile?)




теперь и сам не знаю! я его с makefile никак не разберусь! Ребята всем СПАСИБО за то что отвечаете мне!

Завтра попробую прошить и испытать, результаты отпишу...
Всем пока!
(Добавление)
Кто-нибудь, помогите создать hex-файл по алгоритму mihail (см. выше) ! Ну не получается у меня! Жалуется на makefile!!!

Пожалуйстаааа-ааа!



\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Все-таки сделал hex! Через Codevision AVR, тот жаловался конечно, пришлось там названия портов подправить, компиляция прошла без ошибок.

Вот, смотрите сами (код от mihail):
CODE:
#include <mega8.h>
#include <stdio.h>


int main(void) // начало основной программы

{



DDRC = 0xff; // все выводы порта C сконфигурировать как выходы

DDRD = 0x00; // все выводы порта D сконфигурировать как входы



PORTD = 0xff; // установить "1" на всех выводах порта D,

// включаем подтягивающие резисторы



while(1) // Бесконечный цикл

{



// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА



if( !(PIND & (1<<PIND.1)) ) // проверить "0" на линии 1 порта D

{

// ---- включаем левый мотор, останавливаем правый -----

PORTC.1=1; // установить "1" на линии 1 порта C

PORTC.2=0; // установить "0" на линии 2 порта C

PORTC.3=1; // установить "1" на линии 3 порта C

PORTC.4=1; // установить "1" на линии 4 порта C

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

}

else

{

// ---- останавливаем левый мотор, включаем правый -----

PORTC.1=1; // установить "1" на линии 1 порта C

PORTC.2=1; // установить "1" на линии 2 порта C

PORTC.3=1; // установить "1" на линии 3 порта C

PORTC.4=0; // установить "0" на линии 4 порта C

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

}



} // закрывающая скобка бесконечного цикла



} // закрывающая скобка основной программы



вот хекс:
CODE:

:0200000020C01E
:10000200FECFFDCFFCCFFBCFFACFF9CFF8CFF7CFA2
:10001200F6CFF5CFF4CFF3CFF2CFF1CFF0CFEFCFD2
:10002200EECFEDCF1027E80364000A0001000010B4
:100032000001100001000000020060013800000011
:10004200F894EE27ECBBF1E0FBBFEBBFE5BFF8E1B4
:10005200F1BDE1BD8DE0A2E0BB27ED938A95E9F702
:1000620080E094E0A0E6ED930197E9F7EAE3F0E09F
:1000720085919591009761F0A591B59105901590A4
:10008200BF01F00105900D920197E1F7FB01F0CF5E
:10009200EFE5EDBFE4E0EEBFC0E6D1E000C0EFEF78
:1000A200E4BBE0E0E1BBEFEFE2BB10B2E0E081993C
:1000B200E1E0A1E017D0E12129F4A99AAA98AB9A2C
:1000C200AC9A04C0A99AAA9AAB9AAC98EECFFFCF89
:1000D2005F9BFECFECB108955D9BFECFE881ECB94A
:1000E20021960895EE230E2EEA2F19F0EE0F0A94B0
:1000F200E9F708955A934A933A932A931A930A93E3
:1001020008955D814C813B812A811981088108957E
:00000001FF


Завтра прошью и отпишу! Всем пока!

(Отредактировано автором: 31 Октября, 2010 - 21:34:47)

 
 Top
cjA Post Id



Генерал


Сообщений всего: 3291
Дата рег-ции: Янв. 2010  



вот я и говорю что в make.exe от gcc уже лет пятнадцать какойто ляп тянедся Грустный
 
 Top
ilnur888 Post Id



Маршал


Сообщений всего: 103
Дата рег-ции: Окт. 2010  



Всем добрый вечер!
Как обещал, отписываюсь. Значит так, в проге ошибку понял в чем, в предыдущем варианте он вращал колесами вперед или назад, а не следовал за линией, я почему-то комментариям в программе доверился и не проверял ничего (ну и ДУРАК Я!), так что Огромное СПАСИБО mihail'у за исправление!

Как я писал выше, раньше при включении робота оба моторчика вращались в одну сторону не реагируя ни на белое, ни на черное...
А теперь, крутится только один моторчик, а второй стоит, опять таки на белое или черное реакции НИКАКОЙ!!!

Вообщем, буду искать ошибку в схеме, думаю, может нанозамыкание???

(Отредактировано автором: 01 Ноября, 2010 - 20:19:30)

 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Проверьте работу схемы с помощью вольтметра. Минусовой щуп вольтметра соедините с GND, а плюсовой с PD1. В зависимости от того освещен фотосенсор или нет напряжение должно меняться от 0В (или около того) до 5В (или около того). Это если от источника тока на схему подается 5В.
 
 Top
ilnur888 Post Id



Маршал


Сообщений всего: 103
Дата рег-ции: Окт. 2010  



mihail пишет:
Проверьте работу схемы с помощью вольтметра. Минусовой щуп вольтметра соедините с GND, а плюсовой с PD1. В зависимости от того освещен фотосенсор или нет напряжение должно меняться от 0В (или около того) до 5В (или около того). Это если от источника тока на схему подается 5В.


Добрый день!
mihail , как вы мне и написали - проверил:

• ик-диод над белой бумагой = 1.11В
• ик-диод над черной бумагой = 1.77В
Я правильно понимаю что должно быть 0В, когда робот находится над белой бумагой???

(Отредактировано автором: 22 Ноября, 2010 - 21:10:17)

 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



ilnur888 пишет:
Я правильно понимаю что должно быть 0В, когда робот находится над белой бумагой?
Точнее, около нуля. Может быть чуть больше.

Сколько вольт подается на микроконтроллер?

http://easyelectronics.ru/fotodatchik.html Фотосенсор подключен так как сказано в этой статье?
 
 Top
ilnur888 Post Id



Маршал


Сообщений всего: 103
Дата рег-ции: Окт. 2010  



mihail пишет:
ilnur888 пишет:
Я правильно понимаю что должно быть 0В, когда робот находится над белой бумагой?
Точнее, около нуля. Может быть чуть больше.

Сколько вольт подается на микроконтроллер?

http://easyelectronics.ru/fotodatchik.html Фотосенсор подключен так как сказано в этой статье?


Так, подается от 4.8 до прибл. 5.2. вольт.

Подключен ли так, мгм, непонял я картинку на сайте.
Если вы имеете ввиду правильно ли подключен у него эмиттер/коллектор, то я соблюдал + и -. ТОгда бы о светодиод на роботе не загорался бы...
Даже незнаю что делать, к кому идти...
 
 Top
mihail Post Id



Гуру


Сообщений всего: 1065
Дата рег-ции: Март 2010  



Какой фотосенсор используете? Если фотодиод, то подключите его наоборот.
 
 Top
ilnur888 Post Id



Маршал


Сообщений всего: 103
Дата рег-ции: Окт. 2010  



mihail пишет:
Какой фотосенсор используете? Если фотодиод, то подключите его наоборот.


А с чего так????
Ну ради интереса - сейчас попробую!
Голливудская улыбка Одобряю
(Добавление)
0 реакции, все так же.
(Добавление)
кстати, используется фотодиод
 
 Top
Страниц (6): « 1 [2] 3 4 5 6 »
« С чего начать? »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru