roboforum.ru

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

Фотоглаз робота

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Фотоглаз робота

Сообщение Radist » 18 сен 2012, 16:05

Делаю небольшой модулек, так называемый фотоглаз робота. На модуле находятся тинька и три фототранзистора треугольником. Тинька выдает сигнал типа "лучше всего освещен фототранзистор такой-то". Теперь о задачах, которые хочу решать при помощи фотоглаза. Первая задача: управление мобильной платформой при помощи светового пятна на полу (от фонарика). Для этого модулек имеет разъем, при помощи которого его можно подстыковать к роботу, при этом фототранзисторы смотрят вперед/вниз, на пол. Вторая задача: фотонейрон для бима. Для этого модулек переворачивается вверх ногами, при этом он начинает смотреть вперед/вверх. Можно реализовать алгоритм поведения "движение к свету/движение от света". Теперь про алгоритмы. Когда мы будем управлять фонариком, надо чтобы робот бегал за световым пятном и стоял в случае его отсутствия. Для этого я пока думаю сделать так: при включении питания (фонарик выключен) глаз самокалибруется, измеряя естественное освещение и учитывая его в дальнейшем. Но когда модулек будет фотонейроном - этого делать нельзя. Как-то сказать модульку кем он должен работать нельзя - все ноги уже заняты. Так что нужна помощь зала :) : как сделать, чтобы в одном случае модуль выдавал сигнал "освещенность ниже порога", а в другом случае не выдавал этого сигнала. Все входы тиньки задействованы фототранзисторами, выходы задействованы для выдачи логического сигнала в двоичном коде.
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Фотоглаз робота

Сообщение legion » 18 сен 2012, 16:39

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

А куда идут выходы модуля? Напрямую на движок/драйвер?
На один из выходов можно повесить кнопку и при включении питания первым делом ее опрашивать. Нажата - один режим, не нажата - другой. Последующей передаче данных кнопка не помешает.

Можно использовать сами фототранзисторы. Естественное освещение в режиме глаза явно не может быть близко к уровню прямой засветки лампой, т.к. в этом случае световое пятно будет неразличимо. Значит, если при подаче питания датчики регистрируют очень высокий уровень освещения (поднесли вплотную к лампе), то работаем в режиме бима. Иначе запоминаем уровень и работаем в режиме глаза.
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

Re: Фотоглаз робота

Сообщение Radist » 18 сен 2012, 17:12

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

Re: Фотоглаз робота

Сообщение legion » 18 сен 2012, 18:19

Можно в мозг кнопку спрятать. Простеньким протоколом при включении говорить модулю по одной из линий вывода, чего от него ждут.
Или в тиньку модуля примитивный софтовый уарт на передачу зашить, тогда освободятся аж два вывода.
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

Re: Фотоглаз робота

Сообщение elmot » 18 сен 2012, 18:44

Подтягивать один из выходов вверх илит вниз. При старте переводим его в Z состояние и смотрим 1 там или 0. После чено переключаев как выход и чуть-чуть греем подтяжку.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Фотоглаз робота

Сообщение legion » 18 сен 2012, 18:57

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

Можно извратиться еще, и со стороны мозга использовать для сигнала земля/hi-z, со стороны модуля читать сигнал входом с подтяжкой к +, а передавать выход-земля = 0, вход-подтяжка к + = 1. Тогда будет безопасно.
legion
 
Сообщения: 736
Зарегистрирован: 24 апр 2010, 14:47
Откуда: Уфа
прог. языки: avr asm

Re: Фотоглаз робота

Сообщение elmot » 18 сен 2012, 19:23

Да, внешнюю подтяжку через резистор. Вверх или вниз - смотрите как удобнее. На плате - мостики для перепайки.
Аватара пользователя
elmot
 
Сообщения: 5691
Зарегистрирован: 10 ноя 2011, 12:02
Откуда: Turku, Finland
Skype: elmot73
прог. языки: Java и все-все=все
ФИО: Илья

Re: Фотоглаз робота

Сообщение Radist » 20 сен 2012, 02:15

Закончил фотоглаз, отладил прогу - все работает. А теперь подробнее.
Фотоглаз предназначен для установки на какого-либо робота, я планирую на двухмоторного паука-скрепкохода. Он умеет работать в двух режимах: видеть пятно света на полу и выдавать его положение: право/лево/назад, а также выдавать направление на наиболее освещенный участок его обзора. Разъемы для подключения модуля находятся с двух сторон, при этом в одном положении модуль смотрит вперед и вниз (на пол), в другом положении вперед и вверх.
Модуль собран на базе тиньки 45, хотя хватило бы и 25 (поставил что было). Три фототранзистора (ОЭ) идут на три канала ацп, два светодиода индицируют состояние модуля и выдают двоичный код: право/лево/назад/темно. Чтобы не было дребезга - измерение делается раз в секунду.
Алгоритм работы следующий. После включения пауза 3 секунды. Если робот будет бегать за фонариком, то за это время надо поставить робота на пол, чтоб он адаптировался к световому фону и при выключенном фонарике стоял на месте. Если робот будет просто искать самое светлое место, то надо пальцем закрыть нижний фототранзистор - это даст модулю понять, что компенсировать фон не надо. А потом он сравнивает коды с трех каналов и выбирает самый освещенный. Красный светодиод - светлее справа, зеленый - слева, оба горят - внизу, оба не горят (только при выключенном фонарике) - стоп.
Не стал заморачиваться с протоколами типа уарта - тогда на мозге робота придется задействовать прерывания или делать полудуплекс - сделал по простому. Ну и пара фоток модуля.
Вложения
PICT2947.JPG
PICT2946.JPG
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Фотоглаз робота

Сообщение Radist » 25 сен 2012, 22:22

В габаритах фотоглаза сделал ИК бампер, который видит препятствие примерно с 20 см. Работает также на базе тиньки, на этот раз 25. Также две ноги индикаторные, управляют двумя светодиодами (горит правый-препятствие справа, левый - слева, оба - спереди, ни один - свободно). Одна нога генерит сигнал 36 кГц + НЧ огибающая. Этот сигнал идет на две микросхемы 2И, второй сигнал от контроллера - выбор излучателя (правый/левый), этот сигнал идет напрямую в одну микросхему 2И, а в другую идет через инвертор. Последняя оставшаяся нога - вход тсопа. ИК светодиоды светят по очереди, есть цифровая фильтрация результатов (из 10 вспышек не менее 5 отражений увидели - сигнал есть). Такой ИК бампер легко превращается в ИК локатор для мини сумо, надо только разнести излучатели подальше и настроить на нужную дальность. У меня модуль планируется ставить на робота в качестве бесконтактного бампера, чтоб в препятствия не тыкался. Еще придумал одну примочку, чтобы робот знал, что в него установлен/не установлен фотоглаз/ИК барьер. Для этого на фотоглазе я закорачиваю двойную PLS с одной стороны, а на бампере - с двух сторон. А ответную часть подключаю как вход, подтянутый к питанию (один контакт), а второй контакт к земле. Высокий уровень на входах - модулей в разъемах нет, один высокий - стоит фотоглаз, нет высоких - стоит бампер.

ЗЫ. Обратите внимание, что оба модуля стилизованы под роболицо.
Вложения
PICT2957.JPG
PICT2958.JPG
Аватара пользователя
Radist
 
Сообщения: 2241
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

Re: Фотоглаз робота

Сообщение Plastilinstyle » 29 сен 2012, 08:18

я только не понял, зачем эти ни к чему не подключенный ноги?
Аватара пользователя
Plastilinstyle
 
Сообщения: 263
Зарегистрирован: 26 июл 2012, 18:40
Откуда: Екатеринбург

Re: Фотоглаз робота

Сообщение MegaBIZON » 29 сен 2012, 08:29

крепёж.. не?
.............солнце светит, птички поют, я - зелёный бамбук меня тянет к солнцуЯ - зелёный бамбук, я - зелёный бамбук , меня тянет к солнцу. Я - не огурчик и не лягушка, я - зелёный бамбук. Меня курят...............
Аватара пользователя
MegaBIZON
 
Сообщения: 6285
Зарегистрирован: 12 янв 2007, 00:34
Откуда: Масква

Re: Фотоглаз робота

Сообщение Radist » 29 сен 2012, 11:47

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


Вернуться в Наши проекты

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

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