Робот, объезжающий ямы

Тема в разделе "Глядите, что я сделал", создана пользователем Makhonin, 28 май 2012.

  1. Makhonin

    Makhonin Гик

    Сам робот:
    [​IMG]

    Но не очень оптимизированный. Какие есть варианты оптимизации?
    Еще проблема: Через какое-то время колеса просто перестают крутиться. Приходится немного подождать и перезапустить плату. Мне кажется, что из-за перегрева.
     
  2. Зачет.Скажите пожалуйста,а у вашей платформы колеса на ходу не отваливаются?
     
  3. Makhonin

    Makhonin Гик

    Нет, вроде. А что, должны? Меня интересует, как улучшить зрение робота, т.е. как разместить дальномеры. Задание: видеть ямы и стены и объезжать их
     
  4. aysheka

    aysheka Нерд

    По фото не понятно, где может виснуть ваша программа. Выкладывайте скетч.
     
  5. Makhonin

    Makhonin Гик

    Код (Text):
    #include <URMSerial.h>
    URMSerial urm;
    #include <AFMotor.h>
    AF_DCMotor leftbort(1);
    AF_DCMotor rightbort(3);
    #define SENSOR_PIN A0
    int urm37;
    int sharp;
    void setup() {
      Serial.begin(9600);
      urm.begin(2,3,9600);
      leftbort.setSpeed(160);
      rightbort.setSpeed(160);
      leftbort.run(RELEASE);
      rightbort.run(RELEASE);
    }
     
    void loop()
    {
      uint8_t i;
      leftbort.run(FORWARD);
      rightbort.run(FORWARD);
      urm.requestMeasurementOrTimeout(DISTANCE, urm37);
      int sharp = 65*pow(analogRead(SENSOR_PIN)*0.0048828125,-1.10);
      Serial.print("URM37: ");
      Serial.println(urm37);
      Serial.print("SHARP: ");
      Serial.println(sharp);
      if (urm37 > 10)
      {
      leftbort.run(BACKWARD);
      rightbort.run(BACKWARD);
      delay(700);
      leftbort.run(FORWARD);
      rightbort.run(BACKWARD);
      delay(1500);
      }
        if (sharp < 22)
        {
      leftbort.run(FORWARD);
      rightbort.run(BACKWARD);
      delay(1300);  
        }
        else
      leftbort.run(FORWARD);
      rightbort.run(FORWARD);
      }
     
     
  6. Моя телега бывает их теряет.думаю на герметик посадить их
     
  7. скорее всего у вас не хватает питания!вы все от кроны питаете?
     
  8. Makhonin

    Makhonin Гик

    Для моторов свой блок батареек.
    motor shield и i/o shield от кроны
     
  9. Makhonin

    Makhonin Гик

    заметил еще, что перед тем, как дальномеры отключаются, лампочка на i/o shield начинает мигать. Что это значит?
     
  10. Io shield замыкает джампер на motor shield,который отвечает за выбор питания.отключите питание моторов и посмотрите,что происходит.
     
  11. Arkad_snz

    Arkad_snz Гик

    Буду на своего робота для контроля пола ставить не дальномер, а
    Инфракрасный датчик препятствий
    Тоже хотелось бы, чтобы он не прыгал со стола..
    Зачем мне расстояние до пола? Измерять глубину ямы!?
    Если датчик ямы установить, как и дальномер, на поворотной башне, то алгоритм обхода такой же как движение "по стеночке":
    1. Повернуть башню на препятствие (влево или вправо - выбрать направление обхода - по часовой или против)
    2. Повернуться телом в противоположную сторону -
    3. Двигаться вперед, выдерживая расстояние до препятствия. (Не забывая про гистерезис, иначе будет как пьяный биться и отскакивать от стенки)
     
    Последнее редактирование: 13 окт 2016