roboforum.ru

Технический форум по робототехнике.
Текущее время: 18 фев 2025, 20:36

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: ИК Определитель расстояния
СообщениеДобавлено: 14 апр 2007, 19:21 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
Опять же, почему используете ссопы мне не ясно.
Я использую простую схему ИК светодиод- ИК фотодиод.

Зажигаю ИК светодиод, меряю напр на фотодиоде, выключаю и снова меряю. Если изменения нет, значит и препятствий нет.
Чем больше изменение напр на фотодиоде во время вкл-выкл, тем ближе препятствие. Необходимости в ссоп ваших невижу никакой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 19:44 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
Вот примерный код

Светодиод подсоединен на ножку 0 порта А.
Фотодиод подсоединен на ножку 1 порта А. Через резистор притянут к +5В. Анод его - на землю. Резистор к примеру 100к. Зависит от фотодиода.
Подбираю экспериментально.

Код:
int level(){

  int prev_adc,adc;

  PORTA &= ~0x01; //выключаем светодиод, если был вкл.
  prev_adc = read_adc(1);
  PORTA |= 1; //ключаем светодиод
  adc=read_adc(1);

  PORTA &= ~0x01; //выключаем светодиод, чтоб не ел энергию.

  if (adc>prev_adc) return (adc-prev_adc);
  return (prev_adc-adc);
};


Последний раз редактировалось maktep 14 апр 2007, 20:12, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 19:56 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
Схема включения:


Вложения:
схема.PNG
схема.PNG [ 71.03 КиБ | Просмотров: 4827 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 20:09 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Стабильность сомнительна так как АЦП может при неизменном напряжении на входе давать разный результат.

Наверно в 8-ми битном режиме АЦП эта схема будет лучше работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 20:10 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
По результатам опыта шум ацп порядка 6-7 делений АЦП. А реальный сигнал при подносе руки на уровне 100 единиц АЦП.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 апр 2007, 20:23 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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


[off]и нафига таие картинки гиганские постить
не судьба уменьшать ато в пол экрана пролистывать замучаешься[/off]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 19:12 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
maktep писал(а):
Схема включения:


а где схема то?
куда потерялась?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 20:52 
Не в сети
Аватара пользователя

Зарегистрирован: 12 янв 2007, 00:34
Сообщения: 6285
Откуда: Масква
Myp писал(а):
maktep писал(а):
Схема включения:


а где схема то?
куда потерялась?

Я задел...
Сорри :oops:
Опять хотел уже страницу зделать, и того...
Уже исправил :?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 15 апр 2007, 20:53 
Не в сети
Аватара пользователя

Зарегистрирован: 12 янв 2007, 00:34
Сообщения: 6285
Откуда: Масква
Myp писал(а):
[off]и нафига таие картинки гиганские постить
не судьба уменьшать ато в пол экрана пролистывать замучаешься[/off]

За тем я туда и полез :evil:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2007, 11:20 
Не в сети
Аватара пользователя

Зарегистрирован: 17 июн 2005, 08:08
Сообщения: 265
Откуда: Москва
Самый точный определитель расстояния - УЗ по времени отклика. Лазер не берем.

_________________
Как назвать ребенка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2007, 13:33 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
кстати если вы посмотрите тему где я тсопы мычал то в конце сможете заметить что для поддержки тсопа реально надо 7-8 строк кода

самая трудность это первый раз въехать как он работает
а дальше сплошное удовольствие=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2007, 15:44 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
В любом случае необходимо ставить фильтр на фотодиод и модулятор на светодиод... иначе огромное количество ошибок, ложных срабатываний, в результате чего робот начинает беситься "по непонятным причинам".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2007, 16:40 
Не в сети
Правохранитель
Аватара пользователя

Зарегистрирован: 23 фев 2007, 02:23
Сообщения: 197
Откуда: Зеленоград
Фильтр - да. Нужен в любом случае.
Этот - конкретизированный. Работает на 2 уровня, задаваемые заранее.
Уровень сигнала него - выдает  единичку.
Уровень сигнала ниже него - выдает 0.

Это есть фильтр на 4 импульса (4 измерения АЦП).
Если все 4 подряд значения АЦП равносильны состоянию 1, то состояние переходит в 1.
Если 4 подряд состояния - ноль, то состояние переходит в ноль.
Все, что промежуточное - не изменяет состояния.

Переделывайте, как хотите.
Фильтр писал прямо сейчас, и не проверял - поэтому могут быть небольшие ошибки.
Суть фильтра уже выложил. И Цифра вообще может эффективно заменять аналоговые фильтры.

Код:

int levels=0;

// 4 значения АЦП идут на фильтр
#define mask 0x0f

//уровень перехода в состояние 1 из нуля
#define level_1 50

//уровень перехода в состояние 0 их 1
#define level_0 45

//они спецально выбраны так, чтобы не было "дерганья" туда и обратно. можно сделать совпадающими

char result_opto;

int filter(){

//смещаем на 1 бит влево для того, чтобы записать новое значение в крайний бит. эта переменная - место где храним значения для обработки.
levels <<= 1;

if (result_opto)
{
 //пишем по умолчанию текущее значение оптопары, ибо она
 //может попасть в некалиброванный диапазон и
 //тогда должна остаться  такого же значения.
  levels |= 1;
};



if (result_opto)
{
  if (level()<=level_0)  levels &= ~0x01;
};

if (!result_opto)
{
  if (level()>level_1)  levels |= 0x01;
};

if (levels&mask==mask)
{
  result_opto=1;
};
if (levels&mask==0)
{
  result_opto=0;
};

return result_opto;
};


Последний раз редактировалось maktep 17 апр 2007, 04:45, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2007, 18:23 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Я советую if  писать со скобками {}   так как на форуме много начинающих.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 16 апр 2007, 18:37 
Не в сети
Аватара пользователя

Зарегистрирован: 08 окт 2004, 16:43
Сообщения: 2114
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий
А теперь поднесите ваше устройство к люминисцентной лампе...

Если уж хочется задавать порог, то можно сделать его адаптивным...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO