Необходимо решить задачу одометрии (определение месторасположения робота в пространстве) на основе колесного кодера. На сайте Амперки я, к сожалению, не нашел альтернативы для своей платформы miniQ. Нет ли возможности как-то заказать через вас MiniQ Robot Chassis Encoder: http://www.dfrobot.com/index.php?route=product/product&product_id=823. Спасибо.
А попробуйте рассмотреть такой вариант http://www.martijnthe.nl/2009/07/interfacing-an-optical-mouse-sensor-to-your-arduino/
У этого варианта, есть очень много минусов (ограниченный размер макс. сдвига, очень сильно шумит). В своем проекте, такую же проблему решил самодельным энкодером - датчик линии + прерывания
Выглядит все это дело как то так http://goo.gl/KU3jB, а черновой код можно посмотреть тут https://github.com/aysheka/Spy Вам нужен этот кусок кода: Код (Text): #define LINE_TRACKER_PIN 0 // pin 2 #define LINE_TRACKER_STEP 6 // while label interruot (in cm) volatile int moveDirection = 0; volatile int distance = 0; void setup() { attachInterrupt(LINE_TRACKER_PIN, lineTracking, RISING); } void lineTracking() { int step = 0; if(moveDirection == MOVE_BACK){ step = 0 - (int)LINE_TRACKER_STEP; } else if(moveDirection == MOVE_AHEAD){ step = (int)LINE_TRACKER_STEP; } distance = distance + step; }
Есть еще один интересный способ. Можно из мышки сделать сканер. Если Ваш робот движется не слишком быстро, то этого будет достаточно для определения пройденного пути с точностью до сантиметров и даже миллиметров. В сети есть программы-одометры под Винды, которые в пикселях считают пройденный мышею путь - это для примера. Ставите сенсор из мышки под днище робота и как можно чаще его опрашиваете, сдвиги суммируете.