Возможно ли такое (Балансирующий робот)

Тема в разделе "Глядите, что я сделал", создана пользователем Maks, 5 июн 2013.

  1. Maks

    Maks Нерд

    Почитав о балансируещем роботе, в очередной раз убедился что не потяну ни гироскоп, ни акселерометр.

    А возможно ли (чисто гипотетически) использовать допустим датчик линии.С сыном собирали робота по линии,и заметили что у датчика есть зона чуствительности (даже белого фона).Так вот, если для балансировки использовать их,установив спереди и сзади.Понимаю что придется точно юстировать расстояние между датчиками и поверхностью.Робот в строго вертикальном положении - обои датчики не видят поверхность,при срабатывании первого - на двигателя приходит одна полярность ,при срабатывании второго - приходит противоположная .
     
  2. roggedhorse

    roggedhorse Гик

    поясните эту мысль, пожалуйста. Что вас смущает тут ?
     
  3. Maks

    Maks Нерд

    Написание скетча
     
  4. Mitrandir

    Mitrandir Гуру

    это наименьшая из проблем которая тебя ждет, данные с него берутся в 1 строку
     
  5. roggedhorse

    roggedhorse Гик

    а какая разница, что является источником данных ?

    "...при срабатывании первого - на двигателя приходит одна полярность ,при срабатывании второго - приходит противоположная..."

    Приближенно говоря: на акселерометре "плюс" - на двигателях "плюс", на акселерометре "минус" - на двигателях тоже
    Вас это не должно пугать.
    В поставленной вами задаче математика несколько сложнее, чем скетч
     
    Mitrandir нравится это.
  6. Maks

    Maks Нерд

    Поподробней можно,что может быть хуже.С механикой проблем не возникнет....
    А откуда ждать подвох
     
  7. Mitrandir

    Mitrandir Гуру

    Код (C):
    gyro.getAngularVelocity(&ax,&ay,&az);
    и вот в ax ay az угловые скорости.
     
  8. Maks

    Maks Нерд

    Поэтому я и писал,со скетчем будут проблемы.
     
  9. Mitrandir

    Mitrandir Гуру

    а в чем со скетчем то проблема?
     
  10. Mitrandir

    Mitrandir Гуру

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

    Сомнительный метод...
    так как расстояния на котором он перестает видеть ты не знаешь, и оно не постоянно

    погрешность будет огого какая.


    к примеру у меня ик дальномер http://amperka.ru/collection/proximity-sensors/product/infrared-range-meter-80

    на 80см+ выдает сплошной мусор
     
  11. Maks

    Maks Нерд

    Не спорю метод сомнительный,по расстоянию не видения - есть светодиод на идкикации
    не постоянное расстояние - попытаться сделать что типа кожуха и конечно механически юстировать
    про скетч как раз и имел в виду ускорения и грамотно расставить все формулы расчета,чего у меня и не выйдет
    на вот таком https://amperka.ru/product/analog-line-sensor по идее получалось ловить 1-2 мм
     
  12. roggedhorse

    roggedhorse Гик

    Сейчас отказывать себе в удовольствии добиться результата - лучше не браться за работу :)

    Однако пойдите правильным путем. На дальномерах и тем более на датчиках линии реализовать затею не получится
     
    Mitrandir нравится это.
  13. Mitrandir

    Mitrandir Гуру

    Это проблемы с математикой а не со скетчем.
    по мне проще математику почитать, чем фильтровать данные от датчика на граничных диапазонах.
     
  14. Maks

    Maks Нерд

    фильтровать не придется-он дискретный
     
  15. roggedhorse

    roggedhorse Гик

    дискретность в случае балансирующего робота: "упал" - "не упал" :)
     
    Mitrandir нравится это.
  16. Maks

    Maks Нерд

    Возможно но с математикой ммм;)
     
  17. Mitrandir

    Mitrandir Гуру

    с
    все равно придется вот картинка:
    dalnomer.jpg
    Черная область - видит дает 1
    Белая область - не видит нает 0
    серая может увидеть а может нет, что даст не известно
     
  18. Mitrandir

    Mitrandir Гуру

    Дальномер тоже не выйдет, так как не даст достаточную точность
    угол = atan(x/L)
    где x - значение дальномера
    L- растояние от дальномера до оси робота

    допустим он закреплен на 10 см от оси

    робот стоит ровно угол равен 0
    x = tg(a)*L
    x = 0 * 0.1 = 0

    пусть робот накренился на 1 градус

    x = tg(1)*0.1 = 0.01745 * 0.1 = 0.001745 м

    сомневаюсь, что ты найдешь дальномер который сможет среагировать на смещение на 1.7 мм
     
  19. Maks

    Maks Нерд

    Черная область - видит дает 1
    Белая область - не видит нает 0
    серая может увидеть а может нет, что даст не известно[/quote]

    По моему в нем стоит ОУ и пашет как компаратор
     
  20. Maks

    Maks Нерд

    Про использование дальнометра и в мыслях не было (понимаю полную абсурдность) и не писал