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


 Страниц (2): [1] 2 »   

> Описание: Пара глупых вопосов о программировании на C
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



Здравствуйте!!На днях меня посетила идея, сделать робота, который будет выходить из лабиринта. Алгоритм я написал. Для полноценного его исполнения мне надо знать, как сделать так что-бы порты были настроены на вход.(а можно ещё сделать так, что половина портов настроена на вход а половина на выход?) Ещё я не знаю как делать проверку на уровень сигнала и какие библиотеки надо использовать тоже не знаю.
Ещё. Как сделать так, что-бы при определённом условии, микроконтроллер(точнее динамик, подключенный к нему) издавал "ПИК"?
(Добавление)
А, и ещё. Используется WINAVR.
 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



Неплохо было бы вам сначала светодиодом помигать, написав простейшую программу, а потом уж за езду по лабиринтам браться. Подмигивающий
 
 Top
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



Роботов пишет:
Неплохо было бы вам сначала светодиодом помигать, написав простейшую программу, а потом уж за езду по лабиринтам браться. Подмигивающий

Светодиодом я уже мигал...И даже "бегущий огонёк" делал
 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



Тогда непонятно вот это:
Резистор пишет:
Для полноценного его исполнения мне надо знать, как сделать так что-бы порты были настроены на вход.(а можно ещё сделать так, что половина портов настроена на вход а половина на выход?)

Если светодиодом мигали, значит знаете как порты настраивать.
...или мигали чужой программой? Подмигивающий
 
 Top
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



Как порты настраивать мне понятно(раньше я делал это на асме). Не совсем понятно, можно-ли их настроить так, чтоб половина была на вход, другая половина на выход(
DDRD = 11110000b; так?)И как получать с них данные.А затем проверить на наличие сигнала( логической единицы ).
Изначальный вопрос был некорректно составлен мной

(Отредактировано автором: 11 Сентября, 2013 - 18:03:51)

 
 Top
Роботов Post Id



Гуру


Сообщений всего: 1350
Дата рег-ции: Июнь 2011  



Резистор пишет:
DDRD = 11110000b; так?)

Если на Си то вот так: DDRD=0b11110000; или DDRD=0xF0;
Получить данные с порта D можно так: i = PIND;
А вообще, в даташите на ваш МК в разделе порты ввода-вывода всё описано, и даже примеры есть на Си и на ассемблере.
(Добавление)
З.Ы. Какой МК-то?
 
 Top
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



Роботов пишет:
Резистор пишет:
DDRD = 11110000b; так?)

Если на Си то вот так: DDRD=0b11110000; или DDRD=0xF0;
Получить данные с порта D можно так: i = PIND;
А вообще, в даташите на ваш МК в разделе порты ввода-вывода всё описано, и даже примеры есть на Си и на ассемблере.
(Добавление)
З.Ы. Какой МК-то?


Atmega8
 
 Top
Vladimir72 Post Id



Великий стратег


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



Лабиринты бывают разные, лабиринт линия, или коридор?
Какие датчики ты используешь цифровые или аналоговые, и сколько датчиков?
И мне интересно какой алгоритм ты используешь?
И хочу тебе дать совет, начни от простого к сложному, этот робот сложный, я над проектом робот лабиринт год работаю. Глатко было на бумаге, а на поле то овраги.

(Отредактировано автором: 12 Сентября, 2013 - 01:45:09)

 
 Top
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



[quote=Vladimir72][/quote]
Ну ладно, предположим, что я отказался от идеи сделать робота. Но мне всё равно интересно как сделать проверку, есть напряжение на одном порту или нет?
Датчики аналоговые - фоторезистор(другого в магазине не было)
 
 Top
Петр Киселев Post Id



Гуру


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



Резистор пишет:
Но мне всё равно интересно как сделать проверку, есть напряжение на одном порту или нет?

Для этого можно взять простой индикатор (свветодиод и сопротивление) и подключить его к интересующему тебя порту.
Еще лучше взять восьми разрядный индикатор и его подключить к интересующим портам.
(Добавление)
Но это можно будет сделать, если у тебя не динамический режим!
Или можно, если подача сигналов на порт идет с частотой 1 Гц/сек.
(Добавление)
Еще можно программно организовать тестовый режим и помигать в нем по портам светодиодом (ты писал, что это умеешь делать).

(Отредактировано автором: 12 Сентября, 2013 - 13:34:00)

 
 Top
Vladimir72 Post Id



Великий стратег


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



Вот ссылка http://myrobot.ru/stepbystep/r_firstbot2.php посмотри там есть что тебя интересует
(Добавление)
подключение фотосенсоров http://myrobot.ru/wiki/index.php...impleRobotTuning
 
 Top
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



[quote=Vladimir72][/quote]
спасибо, а вы можете объяснить мне вот эту строчку:
if (!(PIND & (1<<PIND1)))?
 
 Top
Vladimir72 Post Id



Великий стратег


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



Проверить "0" на линии 1 порта D
(Добавление)
читай внимательно там все написано
CODE:
// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОВНЯ ОТ ФОТОДАТЧИКА

if (!(PIND & (1<<PIND1))) // проверить "0" на линии 1 порта D
{
 
 Top
Резистор Post Id


Лейтенант


Сообщений всего: 20
Дата рег-ции: Авг. 2013  



[quote=Vladimir72][/quote]
это я итак понял, мне нужно поподробнее(что делает например << или PIND, что значит 1<<PIND и т.д)
 
 Top
Vladimir72 Post Id



Великий стратег


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



читай внимательно там все написано
CODE:
// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОВНЯ ОТ ФОТОДАТЧИКА

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

(Добавление)
Если на входе 3 МК "0" то делаем
{
едем вперед
}
иначе // на входе 3 МК "1"
{
едем назад
}
(Добавление)
<< двигаем "1" PD1 в МК mega8 это 3 нога.
 
 Top
Страниц (2): [1] 2 »
« С чего начать? »


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





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