roboforum.ru

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

ЕВРОБОТ 2011

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

Re: ЕВРОБОТ 2011

Сообщение RootAdmin » 27 май 2011, 02:08

Макетку собрал - попробовал. Правда фотодиодов не оказалось, одни ТСОПы. Попытка заменить светодиодом - неудачно. Надо утром заехать в магазин.
Один цикл измерений - 20 миллисекунд. Попробую уменьшить.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение DimRoboForum » 27 май 2011, 11:52

20 миллисекунд на ТСОПе?
Если и на фотодиоде будет похожая скорость -- очень хорошо.
"Вау! Настоящий робот! Или это дурацкий новогодний костюм?"

( (С) "Футурама" http://ru.wikiquote.org/wiki/%D0%A4%D1% ... 0%BC%D0%B0)
Аватара пользователя
DimRoboForum
 
Сообщения: 58
Зарегистрирован: 02 окт 2010, 15:19
Откуда: Южный Округ Москвы :)
Skype: nevermindim
прог. языки: PROLOG
ФИО: Дмитрий А.

Re: ЕВРОБОТ 2011

Сообщение RootAdmin » 27 май 2011, 15:40

На светодиоде в качестве фотодиода.
Причем очень неуверенно.
Нашел фотодиод, неопознанный - попробую.
Сейчас так:
IMG_20110527_153753.jpg

IMG_20110527_153806.jpg

Светодиоды подогнуты так, чтобы "пятна" на поверхности совпадали.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение RootAdmin » 27 май 2011, 22:29

Нищета...
Фотодиод оказался инфракрасным.
Из-за отсутствия вариантов вскрыл транзистор МП37.
Результаты. Чем сильнее отраженный сигнал - тем меньше значение.
На белом:
sensor OFF = 159
sensor Blu = 98
sensor Red = 89
sensor ON = 43
sensor interval = 116



на синем:
sensor OFF = 152
sensor Blu = 125
sensor Red = 139
sensor ON = 111
sensor interval = 41



На красном:
sensor OFF = 151
sensor Blu = 118
sensor Red = 97
sensor ON = 70
sensor interval = 81


И это со спиленным транзистором. %)
Придумаю алогоритм автокалибровки, каждое измерение будет состоять из четырех циклов:
sensor OFF - компенсируем фоновую засветку. Измеряем при выключенных светодиодах.
sensor Blu - сигнал при синей подсветке.
sensor Red - при красной
sensor ON - при обоих, для контроля на ошибку, "баланс красно-синего", лень подстроечники на светодиоды ставить, пусть МК считает.

Добавлено спустя 1 час 39 минут 49 секунд:
Скетч для подбора резистора (максимальный интервал значений) и наводки светодиодов:
Код: Выделить всёРазвернуть
 int ledPin =  13;    // LED connected to digital pin 13
int Rled0 =  2;    // Red LED connected to digital pin 0
int Bled0 =  3;    // Blue LED connected to digital pin 1
int  analogValue0;
int  analogValueB;
int  analogValueR;
int  analogValueRB;

void setup() {
  Serial.begin(9600);
  pinMode(ledPin, OUTPUT);     
  pinMode(Rled0, OUTPUT);     
  pinMode(Bled0, OUTPUT);     
}

void loop() {

  // read the analog input into a variable:
   analogValue0 = analogRead(0);
  // wait 10 milliseconds for the analog-to-digital converter
  // to settle after the last reading:
   delay(10);   


   digitalWrite(Bled0, HIGH);   // set the Bled on
   delay(1);   
   analogValueB = analogRead(0);
    digitalWrite(Bled0, LOW);   // set the Bled off
   // wait 10 milliseconds for the analog-to-digital converter
      delay(10);

   digitalWrite(Rled0, HIGH);   // set the Rled on
   delay(1);   
   analogValueR = analogRead(0);
    digitalWrite(Rled0, LOW);   // set the Rled off
     // wait 10 milliseconds for the analog-to-digital converter
   
   delay(10);   
   digitalWrite(Bled0, HIGH);   // set the Bled on
   digitalWrite(Rled0, HIGH);   // set the Rled on
   delay(1); 
   analogValueRB = analogRead(0);
   // print the result:
   delay(1000);
   digitalWrite(Bled0, LOW);   // set the Bled ff
   digitalWrite(Rled0, LOW);   // set the Rled ff
   

   Serial.print("sensor OFF = " );
   Serial.println(analogValue0);
   
   
   Serial.print("sensor Blu = " );
   Serial.println(analogValueB);
   
   Serial.print("sensor Red = " );
   Serial.println(analogValueR);

   Serial.print("sensor ON = " );
   Serial.println(analogValueRB);
   
   
   Serial.print("sensor interval = " );
   Serial.println(analogValue0-analogValueRB);
   
   Serial.println();
   Serial.println();
   delay(20);
}
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение DimRoboForum » 27 май 2011, 23:02

RootAdmin писал(а):на синем:
sensor Blu = 125
sensor Red = 139
На красном:
sensor Blu = 118
sensor Red = 97

Разницы в дельте от освещения нет -- это плохо.
"Дрожание" по высоте даст разброс значений, перекрывающий дельту...
Я потому и настроен хоть на какой-то видимый диапазон, чтобы дельта в определении цвета была значительная.
Иначе гарантированно определить не получится.
Скорость какая получилась?
"Вау! Настоящий робот! Или это дурацкий новогодний костюм?"

( (С) "Футурама" http://ru.wikiquote.org/wiki/%D0%A4%D1% ... 0%BC%D0%B0)
Аватара пользователя
DimRoboForum
 
Сообщения: 58
Зарегистрирован: 02 окт 2010, 15:19
Откуда: Южный Округ Москвы :)
Skype: nevermindim
прог. языки: PROLOG
ФИО: Дмитрий А.

Re: ЕВРОБОТ 2011

Сообщение RootAdmin » 27 май 2011, 23:27

В общем - идея жизнеспособна.
Транзистор плохо реагирует на синий светодиод... Почти никак
Скорость - без вывода на UART около 50 в секунду.
DimRoboForum, попробуйте свой фотодиод, как будет работать на синий и красный светодиоды?

Добавлено спустя 10 минут 56 секунд:
Проверил, все ж распознает. Полоски синей и красной изоленты на столе. ;) Зажигает светодиод если красный. И другой - если синий. Высотой игрался плюс-минус 10 мм.

Добавлено спустя 4 минуты 15 секунд:
Подогнал яркость светодиодов резисторами. Жаль, нет одинаковых, красный - от оптической мыши, мощный.
В "нормальном состоянии" от фотодиода до поверхности 10 мм
Если поднимаешь больше чем на 25 мм - светодиод начинает помаргивать над синей. Красную распознает четко.
Попробуйте...
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение DimRoboForum » 27 май 2011, 23:59

Ок. Замечательно!
Буду пробовать.
Только получится поэкспериментировать после 1-го числа.
До 1-го нужно готовиться к судейству на Московском кубке по Евроботу...
Номиналы, как на схеме? (Конденсатор 100мкф?)
"Вау! Настоящий робот! Или это дурацкий новогодний костюм?"

( (С) "Футурама" http://ru.wikiquote.org/wiki/%D0%A4%D1% ... 0%BC%D0%B0)
Аватара пользователя
DimRoboForum
 
Сообщения: 58
Зарегистрирован: 02 окт 2010, 15:19
Откуда: Южный Округ Москвы :)
Skype: nevermindim
прог. языки: PROLOG
ФИО: Дмитрий А.

Re: ЕВРОБОТ 2011

Сообщение RootAdmin » 28 май 2011, 00:09

Схему с номиналами завтра вывешу. Конденсатор - да, можно меньше. И шунтирован керамикой на 0,1. Транзисторы-ключи светодиодов - npn 9014, можно любые.
Дым, идущий из всех устройств в помещении предвещает появление электрика.
RootAdmin
 
Сообщения: 1725
Зарегистрирован: 07 авг 2010, 21:29
Откуда: КМВ
прог. языки: C
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение dccharacter » 30 май 2011, 02:41


Датчик цвета S371. Опрос + sprintf + выгрузка в УАРТ - около 20 мс.
Очень чувствителен к расстоянию до объекта. По даташиту 4 мм - так, примерно, и есть. Но это чтобы воспроизводить похожий цвет. А если просто выделять доминирующий, то область действия увеличится.

Во время тестов как-то печально сдох i2c в ОРдуине. Пришлось на ПИКе мастырить (заодно проверил i2c библиотеку, которую HiTech поставляет в семплах. Редкостный идиотизм, к тому же неработающий...)
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение Eruman » 30 май 2011, 07:30

А на цветном видеоглазке не вариант датчик сделать? И ковырять RGB-сигнал с выхода.
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: ЕВРОБОТ 2011

Сообщение dccharacter » 30 май 2011, 09:33

Цена: розничная: 3186.00 руб.
оптовая: 3021.00 руб.
дилерская: звоните
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение Eruman » 30 май 2011, 11:08

В смысле "дорого"? Это смотря как считать, и где покупать... На мой дилетантский взгляд применимо. Астраханская команда использует, и вроде успешно.
У камеры лучше дальность, и распознаваемость сигнала слабо зависит от засветок, вспышек и импульсных осветителей, а на соревнованиях их хватает.
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 897
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

Re: ЕВРОБОТ 2011

Сообщение DimRoboForum » 30 май 2011, 17:21

Eruman писал(а):А на цветном видеоглазке не вариант датчик сделать? И ковырять RGB-сигнал с выхода.

Я посмотрю, как на финале видеокамеры работают ;)
На следующий год, если найду желающего с видеосигналом поработать, может и "замутю".
А на датчики цвета я купил по ардуине нано: 8х700=5600, так что цена сопоставима :)
Проблема оказалась в i2c: на ардуине 5В (даже не очень понятно, когда подаю 7 с лишним Вольт питания {рекомендовано от 7В до 12В}, то на цифровых выходах те же 7 с лишним; что же на шине???), а на датчике цвета от 2.6В до 3.5В.

RootAdmin писал(а):Схему с номиналами завтра вывешу.

Получается?
"Вау! Настоящий робот! Или это дурацкий новогодний костюм?"

( (С) "Футурама" http://ru.wikiquote.org/wiki/%D0%A4%D1% ... 0%BC%D0%B0)
Аватара пользователя
DimRoboForum
 
Сообщения: 58
Зарегистрирован: 02 окт 2010, 15:19
Откуда: Южный Округ Москвы :)
Skype: nevermindim
прог. языки: PROLOG
ФИО: Дмитрий А.

Re: ЕВРОБОТ 2011

Сообщение dccharacter » 30 май 2011, 17:26

DimRoboForum писал(а):
Eruman писал(а):А на цветном видеоглазке не вариант датчик сделать? И ковырять RGB-сигнал с выхода.

Я посмотрю, как на финале видеокамеры работают ;)
На следующий год, если найду желающего с видеосигналом поработать, может и "замутю".
А на датчики цвета я купил по ардуине нано: 8х700=5600, так что цена сопоставима :)
Проблема оказалась в i2c: на ардуине 5В (даже не очень понятно, когда подаю 7 с лишним Вольт питания {рекомендовано от 7В до 12В}, то на цифровых выходах те же 7 с лишним; что же на шине???), а на датчике цвета от 2.6В до 3.5В.

Я бы рекомендовал купить горсть пиков pic16f1827 за 40 руб штука (они работают от 3,3В, толерантные к 5В), прошивку я легко адаптирую с 18-го пика на 16-й, а данные по цвету выкидывать на УАРТ. Было бы вообще зашибись сделать эти пики i2c слейвами и повесить их все на одну шину (в pic16f1827 два i2c - один мастером опрашивает датчик, другой слейвом сливает инфу в общую шину), но у меня что-то не получилось заставить i2c slave работать.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4995
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: ЕВРОБОТ 2011

Сообщение DimRoboForum » 30 май 2011, 17:40

Будет команда -- можно работать :)
"В одного" я повёлся на лёгкость программирования Ардуино и подключения к ней периферии.
(Тем более, что паяльник до сего момента, я брал в руки лет 20 назад...)
"Вау! Настоящий робот! Или это дурацкий новогодний костюм?"

( (С) "Футурама" http://ru.wikiquote.org/wiki/%D0%A4%D1% ... 0%BC%D0%B0)
Аватара пользователя
DimRoboForum
 
Сообщения: 58
Зарегистрирован: 02 окт 2010, 15:19
Откуда: Южный Округ Москвы :)
Skype: nevermindim
прог. языки: PROLOG
ФИО: Дмитрий А.

Пред.След.

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

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

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