Объясните как работает код

warlock
Offline
Зарегистрирован: 07.04.2012

Я купил себе 4wd MiniQ. Нашел примеры:http://www.dfrobot.com/wiki/index.php?title=4WD_MiniQ_Complete_Kit_(SKU:ROB0050)

Интересует пока код примера "преодоление препятствий". Программирование я знаю, и C++ в частности - это не проблема. Проблема в низкоуровневом программировании и понимании физики + программирование.

Ну теперь собственно вопросы: 

  1. откуда машинка знает, что перед ней препятствие?
    Мое понимание: тут используются 2 ИК-трансмиттера (левый и правый), каждый из них генерирует импульсы. В какой-то момент вызывается (когда?) прерывание pcint и там учитывается только что посланный импульс. Если прерывание "словило" все 20 импульсов - значит перед нами препятствие. 
  2. как учитывать отдельно значение каждого датчика? Чтобы знать препятствие слева или справа. Чтобы хоть как-то узнать угол, на который нужно повернуть.
  3. используется ли ИК-ресивер? В коде я не нашел. Но как же микроконтроллер узнает когда выполнить прерывание?
  4. для чего вообще ИК-трансмиттер для машинки? разве нам не достаточно ресивера?
  5. когда вызывается прерывание pcint?

Если есть возможность, ответьте на все вопросы хоть по предложению, потому что зная все это, я легко продвинусь дальше.

 

warlock
Offline
Зарегистрирован: 07.04.2012

 Неужели никто не знает? Или влом разбираться в коде? Если последнее, то уверяю вас что там 2 минуты на понимание, даже меньше.

LEVV2006
LEVV2006 аватар
Offline
Зарегистрирован: 15.04.2011

По твоей ссылке вообще никакого примера нет. 

warlock
Offline
Зарегистрирован: 07.04.2012

 На этом форуме весьма "умный" парсер. Так что последнюю часть ссылки он съел. Скопируйте ссылку выше (вместе с "(SKU:ROB0050)").

Это вики-страница, на которой чуть ниже есть раздел "Sample Code", в нем интересует пример "Obstacle Avoidance Sample". 

Alexander
Offline
Зарегистрирован: 25.04.2010

Поправил ссылку.