roboforum.ru

Технический форум по робототехнике.


Skyer's PID Linetracer

Skyer's PID Linetracer

Сообщение Skyer » 21 окт 2011, 20:54

Здравствуйте, начал собирать своего робота, первоначальная задача - следование по линии. При сборке столкнулся со следующй проблемой, считываю показания с датчиков (их семь 0-6), почему-то каждый раз на нулевом канале показания сильно искажаются, причем так будто линия под нулевым датчиком. Например, если полоса по центру (под третьим), то показания нулевого и третьего датчиков примерно одинаковы, иногда даже показания нулевого чуть меньше. Для датчиков использовал фототранзисторы L-53P3C и ИК-светодиоды IR513B-40. Датчики между собой не разделял перегородкой, так как в каждый момент времени опрашивается один канал (хотя изначально было, потом убрал) Прикладываю два файла, в них показания с датчиков в виде номер канала - значение. Также прикладываю фотографии того, что собрано на текущий момент. Кто может помочь выявить ошибку? Заранее благодарен :)
Вложения
Platform-new-3.JPG
Плата датчиков
Platform-new-2.JPG
Плата драйвера двигателей L298
Platform-new-1.JPG
Общий вид платформы
Полоса по центру.txt
Полоса под 3им датчиком, по центру робота
(1.83 КиБ) Скачиваний: 528
Нет полосы.txt
Полосы нет, робот стоит на белом листе бумаги
(1.52 КиБ) Скачиваний: 523
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: Skyer's PID Linetracer

Сообщение Radist » 22 окт 2011, 20:29

Подозреваю что дело в железе. Ну и пару советов-замечаний. Датчики друг от друга не светоизолированы, так что там может быть все что угодно (хоть и по очереди включаете, но переход от темнового тока к световому происходит не мгновенно). И еще - зачем так много? Предвижу ответ - чтобы было больше значений для ПИД регулятора. Но для этого достаточно двух датчиков!!! (даже одного). Датчики располагаем над краями линии, а сигналы с них заводим на два канала АЦП контроллера (сейчас он есть почти в каждом контроллере). Получаем два кода и вычитаем их. Ноль - мы точно на линии, знак и число покажут отклонение. Если линия потеряна - все равно есть направление с какой стороны она осталась. Ну и обычно в качестве датчиков используют отражательные оптроны - в них нет проблемы паразитной засветки.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Skyer's PID Linetracer

Сообщение Myp » 23 окт 2011, 12:53

вопервых заизолируй фототранзисторы от окружающей обстановки.
надень на них трубочки и закупорь со стороны выводов.
фототранзисторы реагируют на свет со всех сторон и даже на тот который идёт сзади ИК диода, отражается от платы и идёт в зад транзистора
сейчас они у тебя реагируют на всё что угодно вплоть до тени от рук.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Skyer's PID Linetracer

Сообщение Skyer » 08 ноя 2011, 13:00

Спасибо, занят был, поэтому долго не отвечал. В общем одел снова трубочки (не знаю почему я их одевал в первый раз на светодиоды), ситуация улучшилась, сторону с выводами чуть попозже думаю закрасить темным лаком. На текущий момент такие результаты:
0 - 0x18 = 24
1 - 0x1D = 29
2 - 0x25 = 37
3 - 0x14 = 20
4 - 0x24 = 36
5 - 0x28 = 40
6 - 0x32 = 50

Явно видна разница в показаниях крайних каналов (5-6 и 0-1), думаю это связано с АЦП МК, серия экспериментов это подтверждает. Поэтому думаю дальше поможет только калибровка. Будет ли польза от уменьшения расстояния между датчиками (текущее 1см, плату буду переделывать, поэтому интересуюсь). Стоит ли менять светодиоды на другие (те же TSALы)?
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: Skyer's PID Linetracer

Сообщение Myp » 08 ноя 2011, 13:46

кстати у тебя чёрная полоса чем "нарисована" ?
это она в дневном свете чёрная, а в ИК она может запросто быть не такой уж и чёрной.
некоторые чёрные материалы ИК отражают довольно хорошо.
ну и попробуй уменьшить мощность излучения, поставь резисторы побольше.
может у тебя там такой яркий ИК свет что он и от чёрной полосы достаточно отражается.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Re: Skyer's PID Linetracer

Сообщение Radist » 08 ноя 2011, 13:50

+ многа.
От черной изоленты хорошее отражение, а от маркеров - зависит от маркеров. Мне попадались и прозрачные и хорошо отражающие. И пока не купишь - не узнаешь что за маркер.

1 см между датчиками - нормально.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Skyer's PID Linetracer

Сообщение Skyer » 08 ноя 2011, 13:51

Полосу рисовал маркером черным на обычном листе А4, ширина полосы 1см. Когда камерой телефона смотрел там не сильное излучение вроде, светодиоды то на 40мВт
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: Skyer's PID Linetracer

Сообщение Radist » 08 ноя 2011, 14:32

только по адекватному ответу робота можно судить о ИК прозрачности линии. Срочно замените маркер черной изолентой и отлаживайте робота. Когда заработает - покупаете разных маркеров и рисуете разные линии, На некоторых робот будет работать, а на некоторых - нет.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Skyer's PID Linetracer

Сообщение Skyer » 08 ноя 2011, 15:03

С изолентой тестил, отражение больше как вы и говорили, на датчике который напротив линии показания меньше стали. Но на крайних датчиках то тоже самое)) Тем более что изолента, что маркер - основой то является лист бумаги.

Кстати что со светодиодами?стоит ли менять? щас стоят на 40мВт, думаю насчет TSALов на 130мВт
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: Skyer's PID Linetracer

Сообщение Radist » 08 ноя 2011, 20:52

Менять пока рано. Надо в программе рыть. Планируем эксперимент такой:
1. Робота всегда ставим на одно и то же место, внешние условия чтоб тоже не менялись.
2. Сперва получаем инфу с одного датчика, проверяем повторяемость инфы.
3. Теперь с двух и тоже повторяемость проверяем.
4. Если инфа с первого датчика изменилась - вводим задержку между опросами первого и второго датчиков.
5. Повторить для всех датчиков.
6. В идеале общая картинка инфы должна быть повторяема сильно.
7. Не знаю в какой логике вы работаете, но на краях линейки показания должны быть практически одинаковыми - концы оба над белым.
8. Когда этого добились - можно подвигать линейку по линии и наблюдать правильную картину распределения засветок.
9. Когда все заработало - ввести мат. обработку кадра засветки, чтобы на выходе иметь отклонение от центра линии (в мм, уе, попугаях) и сторону, в которой находится центр линии.
10. После этого эти данные можно пихать в пид регулятор.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Skyer's PID Linetracer

Сообщение Skyer » 17 ноя 2011, 19:24

Radist, спасибо за подробный ответ. Щас собрал платы. Хотелось бы проконсультироваться насчет частоты опроса датчиков, способа опроса и того какие помехи возможны. От этого щас зависит компоновка. Длина проводов думаю будет 10-15 см. Надо ли пускать землю между линиями ацп в шлейфе?
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: Skyer's PID Linetracer

Сообщение Radist » 18 ноя 2011, 03:56

Частота опроса - желательно по максимуму большая, если хотите гонять быстро и чтоб ничего вас не ограничивало. Помехи - в основном паразитная засветка, поэтому светоизолируйте датчики или программно учитывайте. Земля между линиями ацп еще никому не мешала.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Skyer's PID Linetracer

Сообщение Skyer » 13 дек 2011, 23:26

Дособрал все железо. На днях выложу фотки. Пока такой вопрос, вот у меня на первом датчике хоть убей а значение резко отличается от остальных (при одинаковых условиях). В чем может быть причина? Светодиод и фотодиод менял, не помогло.
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

Re: Skyer's PID Linetracer

Сообщение Radist » 14 дек 2011, 10:49

Снова планируем эксперимент: исключаем первый датчик из опроса и смотрим, не стал ли второй как первый. Если стал - проблема в программе, если не стал - проблема в железе. Пора уже показать схему и программу.
Аватара пользователя
Radist
 
Сообщения: 2254
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Skyer's PID Linetracer

Сообщение Skyer » 23 дек 2011, 12:38

Провел первый тест по линии с релейным алгоритмом :Yahoo!: . С показаниями вроде все нормализовалось, точно посмотрю на днях, сессия была, не до этого было. Касаемо схемы. У себя на сайте я выложил некоторые материалы по роботу. Текущие наработки выкладываю всегда там, не вижу смысла их дублировать в форум. На сайте выложено:

1 Фотографии обоих версий шасси (показанная здесь на фотках и самая первая) с их описанием.
2 Схемы электроники - блок управления и датчиков, силовой блок и блок преобразователя уровней на MAX232
3 Видео тестового запуска платформы, показанной тут на фотках
4 Фотография и видео запуска доработанной платформы уже по линии
5 Планы по дальнейшей разработке.

Видяшки весят пару мб, просьба не пугаться.

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

P.S. Надеюсь за такое не забанят, но просьба кому не жалко дернуть за рекламку, как-никак спонсирование разработки :pardon:
Последний раз редактировалось Skyer 25 фев 2012, 18:57, всего редактировалось 1 раз.
Аватара пользователя
Skyer
 
Сообщения: 24
Зарегистрирован: 13 окт 2011, 09:32
Откуда: Ханты-Мансийск
прог. языки: AVR asembler, Delphi, C++, Php

След.

Вернуться в Line Tracer

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12