Показаны сообщения с ярлыком BlockMotor. Показать все сообщения
Показаны сообщения с ярлыком BlockMotor. Показать все сообщения

пятница, 1 августа 2014 г.

IR Rider w Any IRremote - Управляем роботом с помощью любого ИК пульта



Снова я вне дома, снова без семьи, и-нета, друзей и телевизора. А это значит, что нужно чем-то заполнять пустоту в мозгах.
Достал из чемодана своего IR-Rider'а, а пульт, под который он был запрограммирован, остался где-то там где я тогда работал. Тут же возникла мысль запрограммировать его для обучения "на лету" под любой пульт.

четверг, 24 октября 2013 г.

Line Rider Railway - Железная дорога из бумаги для робота

Робот едущий по линииВ продолжение статьи 'Робот бегущий по линии, с одним датчиком - Line Rider 1'

Исправил проблему с потерей линии. Теперь робот, съехав с линии, поворачивается на небольшую величину в заданную сторону и не найдя линии поворачивается в другую на чуть большую величину, и так далее.
Основное тело программы выглядит так:
void loop() { // Основное тело программы
  if(isLine()) {                  // если под нами линия
    digitalWrite(LED_PIN, LOW);     // гасим индикаторный светодиод
    counter = 3;                    // сбрасываем счетчик
    Run();                          // едем вперед
  } else {                        // иначе (нет под нами линии)
    digitalWrite(LED_PIN, HIGH);    // включаем индикаторный светодиод
    Rotation(MIN_ROT);              // поворачиваем на минимальную величину
    if(!isLine()) {                 // смотрим снова, если под нами нет линии (знак '!' - знак отрицания)
      isCW=!isCW;                     // меняем направление поворота
      Rotation(MIN_ROT * counter);    // поворачиваем на несколько (зависит от количества попыток) минимальных величин
      counter= counter + 4;           // увеличиваем счетчик попыток
    }
  }    
} // конец основной программы, начинаем все сначала
Обратите внимание, что добавилась переменная
int counter;
Для проверки работоспособности собрал небольшую трассу с резкими поворотами и прямыми углами. Тест показал неплохую работоспособность, за исключением небольшого но: на очередном повороте робот потеряв линию проскочил ее снова и начал раскачиваться вокруг своей вертикальной оси. А все потому, что наличие линии определяется только в конечных точках. В общем нашел он ее только развернувшись в обратную сторону. Вот видео:

вторник, 22 октября 2013 г.

Inclination Rider - Едем по наклонной

Как и обещал, подключил акселерометр к управлению роботом.
Inclination Rider - Робот поворачивается в сторону небольшого наклона и едет вперед при бо'льшем наклоне.

Алгоритм прост:
  • если наклон по Х(право-лево) и Y(нос-корма) меньше допустимого, то стоим;
  • если нос вниз и левый борт чуток внизу, то направо;
  • если нос вниз и правый борт чуток внизу, то налево;
  • если левый борт внизу, то направо;
  • если правый борт внизу, то налево;
  • а если нос вверх в два раза больше допустимого, то едем вперед;

понедельник, 21 октября 2013 г.

Compass Rider - Робот знающий свое направление

Продолжаем играться в роботов.

На этот раз прикурочил я к моему роботу компас на микросхеме LSM303, от Sparkfun.

Робот с компасом на основе LSM303


Замечательная штучка - работает по протоколу I2C, а у меня как раз под нее разъемчик появился.

среда, 25 сентября 2013 г.

Робот бегущий по линии, с одним датчиком - Line Rider 1

Отчитавшись о Boundary Rider, в тот же вечер сел думать о следующих шагах на пути к роботу ездящему по линии, а так как паять еще один датчик было лень, да и не из чего (нужно распаивать другой датчик), то решил поизгаляться и заделать такого робота с одним датчиком.
Дело за малым - за алгоритмом и его реализацией. С алгоритмом решил не усложнять и пошел по простому пути:
смотрим в пол
если линия есть, то едем дальше
иначе (линии нет):
поворачиваем чуток в заданную сторону
если снова линии нет:
то меняем направление поворота
поворачиваем в два раза больше чем чуток в другую сторону
начинаем все сначала

четверг, 19 сентября 2013 г.

Робот не выезжающий за черную линию - Boundary Rider

Продолжаем экспериментировать с гусеничной платформой от Pololu.
Вид робота Boundary Rider
Захотелось на этот раз сделать робота ездящего по линии, для этого я запаял датчик линии, вернее датчик яркости: Паяем датчик линии на CleClo:Proto
Но так как датчик пока один, то решил пока сделать робота не выезжающий за границу.
Робот состоит из:
Датчик подключил сразу напрямую в шину BlockDuino, благо этому ничего не мешает, шина у нас пустая. Подключил в порт A0.

вторник, 27 августа 2013 г.

Робот объезжающий препятствия пользуясь ультразвуковым датчиком расстояния - USonic Rider

Продолжаем экспериментировать с гусеничной платформой от Pololu.
На этот раз едем куда попало в автономном режиме, но объезжаем препятствия используя ультразвуковой датчик расстояния. А раз автономно, то можем с чистой совестью считать эту машинку роботом.
Машинка состоит из (слева направо):

воскресенье, 18 августа 2013 г.

Управление гусеничным роботом с пульта ДУ от чего-то там (IR Rider)

Не то, что бы я решил изобрести велосипед и показать как это клёво, примеров ездящих шасси управляемых пультом от телевизора в и-нете дофигась. Просто вырвался наконец-то на берег и купил желанных четыре пальчиковых аккумулятора для шасси. И в честь этого в ближайший свободный вечер было собрано из стандартных Blockduino'вских средств такое чудо. Конечно же без использования паяльника.
Итак в него входят:
Пульт можно использовать практически любой из тех что под рукой, у меня оказался такой:
ИК пульт от ДВД плеера
Удобное расположение кнопок для управления траком
А далее все просто:

среда, 10 апреля 2013 г.

Управление гусеничным роботом со смартфона


  В продолжение предыдущей статьи решил поуправлять небольшим шасси на гусеничном ходу купленном на Pololu.

  Для этого необходимо:

и по необходимости:
  • плата BlockProto (если есть желание подпаять модуль Bluetooth);
  • и шлейф для параллельного соединения блоков (без шлейфа блоки подключаются последовательно);

пятница, 5 апреля 2013 г.

Управление обычной радиоуправляемой игрушки с помощью смартфона

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

воскресенье, 14 октября 2012 г.

Подключение шагового двигателя к BlockMotor

Шаговый двигатель PM35L-048-HPD4Попался мне в руки когда-то выковырянный со струйного принтера шаговый двигатель.
Маркирован как PM35L-048-HPD4. Попробовал подключить к своей платке BlockDuino через BlockMotor (когда-то я его крутил через ULN2003).
Сразу дело не пошло - дергался он на одном месте в три шага, но подключив логику и светодиоды вместо моторчика, я таки выяснил нужную последовательность и оживил железяку.