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


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

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



Маршал


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



Всем привет!
Пожалуйста помогите!
Не получается создать hex-файл для робота, при компиляции WinAVR выходят ошибки. Если надо, могу скопировать на форум...
Все собирал по схеме: http://myrobot.ru/downloads/pdf/...obot_scheme2.pdf
Так вот, нужен hex-файл, пожалуйста, помогите сделать!
Если что:
1. МК MEGA8-16PI
2. кварцевый резонатор на 8 МГц (как видно на схеме)
я их прописывал в makefile, думаю мог я ошибиться там где указывают частоту для МК...

Заранее спасибо!

вот созданный мною hex-файл (нерабочий):
:1000000012C019C018C017C016C015C014C013C044
:1000100012C011C010C00FC00EC00DC00CC00BC06C
:100020000AC009C008C011241FBECFE5D4E0DEBF5E
:10003000CDBF02D011C0E4CF8FEF84BB11BA82BB19
:10004000819905C0A99AAA98AB9AAC98F9CFA998BA
:0C005000AA9AAB98AC9AF4CFF894FFCFBA
:00000001FF

(Отредактировано автором: 30 Октября, 2010 - 22:59:50)

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



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


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



ilnur888 пишет:
вот созданный мною hex-файл (нерабочий):
а с чего вы взяли, что он нерабочий?
 
 Top
cjA Post Id



Генерал


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



какой то он махонький, пустой main в hex выдает 14 строчек.
ilnur888 а что за ошибки? Пути к библиотекам не прописали? (Схема тут непричем, компилятор про нее ничего не знает.)
 
 Top
mihail Post Id



Гуру


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



ilnur888
HEX является результатом компиляции написанной Вами программы. Какова программа - таков и HEX. Правда, возможны проблемы вызванные оптимизацией программы компилятором, но здесь не этот случай.

Подозреваю, что Вы просто воспользовались написанной кем то программой и не вникали в ее суть. Если бы Вы попытались разобраться в логике работы программы, то легко нашли бы все ошибки. Вы очень невнимательны! Грустный

cjA пишет:
Схема тут непричем
Схема и программа взаимосвязаны. Рассматривать схему без программы и программу без схемы - непросто.
 
 Top
cjA Post Id



Генерал


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



mihail
когда она уже прошита в МК- не спорю. (или эмуляторах)
А ilnur888 пишет что WinAVR ошибки выдает. До схемы еще далеко.
 
 Top
ilnur888 Post Id



Маршал


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



nest пишет:
ilnur888 пишет:
вот созданный мною hex-файл (нерабочий):
а с чего вы взяли, что он нерабочий?


Nest, я зашивал его в МК, результата никакого. Понимаете, я подозреваю что я вставил и то что надо и то что не надо...
http://myrobot.ru/stepbystep/r_firstbot2.php
- пример №4
я скомпилировал весь текст с комментариями, и даже там где звездочки... потому и грешу на то, что сделал hex файл неправильный, отсюда и схемка не работает...
компиляция проходила без ошибок, а теперь постоянно жалуется на ошибку в makefile!
makefile-шаблон пробовал и с этого сайта скачивать и переделывать -- не помогло, ошибок стало больше...
Вот посмотрите пример №4, для него делал, ничего в программе не изменял.

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

 
 Top
ilnur888 Post Id



Маршал


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



cjA пишет:
какой то он махонький, пустой main в hex выдает 14 строчек.
ilnur888 а что за ошибки? Пути к библиотекам не прописали? (Схема тут непричем, компилятор про нее ничего не знает.)


cjA про пути к библиотекам ничего не слышал, я делал все так, как написано здесь:
http://myrobot.ru/stepbystep/mc_makefile.php
что за библиотеки???

Файл makefile и rob.c находятся в одной отдельной папке, пути к ним без пробелов и без русского языка, так что в этом все норм.

вот текст makefile:
http://ifolder.ru/20036013 ОН ПРИЛОЖЕН НИЖЕ И К СООБЩЕНИЮ
там в архиве папка с makefile и rob.c, посмотрите пожалуйста, может у вас получиться что-то сделать. Здесь выложить не могу, слишком оно длинное.

файл программы "rob.c":
CODE:

#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

// -----------------------------------------------------
}


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

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


(Добавление)
mihail пишет:
ilnur888
HEX является результатом компиляции написанной Вами программы. Какова программа - таков и HEX. Правда, возможны проблемы вызванные оптимизацией программы компилятором, но здесь не этот случай.

Подозреваю, что Вы просто воспользовались написанной кем то программой и не вникали в ее суть. Если бы Вы попытались разобраться в логике работы программы, то легко нашли бы все ошибки. Вы очень невнимательны! Грустный

cjA пишет:
Схема тут непричем
Схема и программа взаимосвязаны. Рассматривать схему без программы и программу без схемы - непросто.


Да, я это понимаю, потому и хотел hex-то переделать, и вот здесь ошибкииии...
Воспользовался кем-то написанной? Ну да, я ж сначала уже написал откуда схема,
текст программы отсюда
http://myrobot.ru/stepbystep/r_firstbot2.php
- пример №4

Программа-то простая, вроде все понятно, ничего не изменял.
Насчет проблем с оптимизацией, это я тоже подозреваю, по схеме (см. выше) на схеме стоит кварц на 8МГц, а когда провожу через makefile, то прописал частооту такую: 1000000
вот, да еще и галочки узнал что надо ставить для того чтобы МК установить на частоту тактирования кварца. НО! В программе не используются никакие таймеры и др., отсюда МК всет равно должен по сути работать...

Если что не так поправьте, отругайте, отошлите, но хоть как-нибудь помогите пожалуйста

Заранее благодарен!
Скачать файл: pj03.rar
Скачан раз: 265

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

 
 Top
cjA Post Id



Генерал


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



Научите обходиться без makefile!
все время маке на него ругается, чуть одну букву поменяешь.
не смотрите что у меня перерыв в программинге был лет шесть, на маке я в обиде уже лет 15...

(со стандартным, без изменения, макеfile у меня скомпилировалось тоже без ошибок...)
 
 Top
ilnur888 Post Id



Маршал


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



cjA пишет:
Научите обходиться без makefile!
все время маке на него ругается, чуть одну букву поменяешь.
не смотрите что у меня перерыв в программинге был лет шесть, на маке я в обиде уже лет 15...

(со стандартным, без изменения, макеfile у меня скомпилировалось тоже без ошибок...)



А как это, без makefile???

(Отредактировано автором: 31 Октября, 2010 - 10:24:51)

 
 Top
cjA Post Id



Генерал


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



ручками
вначале предпроцессор
потом компилятор
потом линковщик
потом сборщик
потом транслятор
потом программатор
потом ...
Это все должен делать маке. но не делает, елки-палки!!!
(Добавление)
например тип и частоту я могу задать в программе, так?
 
 Top
ilnur888 Post Id



Маршал


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



cjA пишет:
ручками
вначале предпроцессор
потом компилятор
потом линковщик
потом сборщик
потом транслятор
потом программатор
потом ...
Это все должен делать маке. но не делает, елки-палки!!!
(Добавление)
например тип и частоту я могу задать в программе, так?


РУЧКАМИ???
cjA,
(Добавление)
Не я конечно может и тупой в этом деле, ручками!!! вот это объяснение!!!
(Добавление)
cjA пишет:

(Добавление)
например тип и частоту я могу задать в программе, так?


Ну так да, смотря в какой программе и где в ней задавать тип и частоту. Вот я и хотел бы чтобы кто-нибудь мне помог сделать hex-файл в какой-нить проге, НО! На сайте myROBOT там не указано какие галочки при прошивке отмечать, какую частоту выставлять - всего этого нет, а я в этом деле новичок

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

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



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


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



ilnur888 пишет:
nest пишет:
ilnur888 пишет:
вот созданный мною hex-файл (нерабочий):
а с чего вы взяли, что он нерабочий?

Nest, я зашивал его в МК, результата никакого.

А вот симулятор с вами категорически не согласен Смущение
Всё работает как положено.

Собарнную схему покажите.
Похоже вы что то где то не так соединили.
 
 Top
ilnur888 Post Id



Маршал


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



Сейчас попробую выложить фото
(Добавление)















(Добавление)
Вообще как, как только я его включаю 2 моторчика начинают сразу же вращаться, и ни на что не реагируют. L293D немного становиться тепленьким от работы, но не перегревается, а вот МК холодный как лед понимаю конечно что так работоспособность проверяется, но вот так.
(Добавление)
вид сверху:

(Добавление)
Вот, чтобы понятнее было:

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

 
 Top
mihail Post Id



Гуру


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



nest пишет:
Всё работает как положено.
Если работает, то это хорошо. Хотя, по моему, не должно Замешательство

ilnur888
В Makefile указывается частота на которой работает микроконтроллер. У Вас установлен 1 MHz. И это правильно. На эту частоту МК настроен производителем. Подключение кварцевого резонатора не приводит к немедленному изменению тактовой частоты МК. Частоту микроконтроллера изменяют с помощью Fuse Bits. Про них читайте в datasheet и в Wiki myROBOT. Не трогайте их пока.

Программа должна работать примерно так: когда фотосенсор освещен, моторы крутятся в одну сторону, а когда фотосенсор не освещен, то в другую. Проверьте. Если все так, то схема в порядке.

Фотосенсор у Вас не очень хороший (ИМХО). И он расположен слишком далеко от поверхности. Он должен быть в нескольких миллиметрах от линии. Может он еще и подключен наоборот.
 
 Top
ilnur888 Post Id



Маршал


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



mihail пишет:
nest пишет:
Всё работает как положено.
Если работает, то это хорошо. Хотя, по моему, не должно Замешательство

ilnur888
В Makefile указывается частота на которой работает микроконтроллер. У Вас установлен 1 MHz. И это правильно. На эту частоту МК настроен производителем. Подключение кварцевого резонатора не приводит к немедленному изменению тактовой частоты МК. Частоту микроконтроллера изменяют с помощью Fuse Bits. Про них читайте в datasheet и в Wiki myROBOT. Не трогайте их пока.

Программа должна работать примерно так: когда фотосенсор освещен, моторы крутятся в одну сторону, а когда фотосенсор не освещен, то в другую. Проверьте. Если все так, то схема в порядке.

Фотосенсор у Вас не очень хороший (ИМХО). И он расположен слишком далеко от поверхности. Он должен быть в нескольких миллиметрах от линии. Может он еще и подключен наоборот.


Фотосенсор инфракрасный и оба они настроены на работу с одинаковыми длинами волн.
Видите на 5-ой фотке ручку, а на конце дырка, в дырке зеленый светодиод? Так вот я с ним проверял работают они или нет. Если поставить машинку над черной поверхностью то светодиод потухнет, если же над белой - засветиться.
Я тоже думал в этом дело, но потом вот параллельно подкл светодиод и проверил - ик-диод и ик-фоторезистор работают.
(Добавление)
mihail пишет:
nest пишет:
Всё работает как положено.
Если работает, то это хорошо. Хотя, по моему, не должно Замешательство

ilnur888
Программа должна работать примерно так: когда фотосенсор освещен, моторы крутятся в одну сторону, а когда фотосенсор не освещен, то в другую. Проверьте. Если все так, то схема в порядке.

Фотосенсор у Вас не очень хороший (ИМХО). И он расположен слишком далеко от поверхности. Он должен быть в нескольких миллиметрах от линии. Может он еще и подключен наоборот.


Когда я его включаю, то моторы (оба и сразу) начинают вращаться в одну сторону, а должно быть: один вращается в одну сторону, а второй стоит и наоборот в зависимости от нахождния робота на белой или черной линии.
Нет, нет при подключении я соблюдал полярности, смотрел где эмиттер, где коллектор(кажись так зовут).

Вот и незнаю, что же делать, в чем дело?

(Отредактировано автором: 31 Октября, 2010 - 14:59:02)

 
 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