roboforum.ru

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

Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая)

Правила форума
Правила раздела OpenRobotics

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 02 фев 2012, 00:34

Здравствуйте первый раз подключаю диод и датчикилинии 4 штуки. С диодом разобрался, а как подключить датчик, лучше проводки по пинам? И код что бы диод мигал когда датчик срабатывал... И 3 вопрос: Что если Д293 драйвер запитать от платы ардуин и снеё сделать выводы на диод и датчики? Уменя ардуие нано.

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

=DeaD= » 02 фев 2012, 08:10

Подключить просто - "-" на землю, "+" на питание 5В, "s" на D* или A* ногу ардуины кроме A6,A7.
Пример кода для использования датчика есть тут: [[OR-BWSENS]]

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

SkyStorm » 02 фев 2012, 09:53

Мартин писал(а):Что если Д293 драйвер запитать от платы ардуин и снеё сделать выводы на диод и датчики? Уменя ардуие нано.

Не рекомендую.

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

=DeaD= » 02 фев 2012, 13:55

И да, пожалуйста, обсуждение всего остального кроме датчика цвета - в других ветках ;)

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 20 фев 2012, 01:34

Спасибо за совет, я так и сделал. Но всё запитал от платы ордуин нано, не работает... Пробовал и схему л293д, тоже не работает.... Проверял л293д от ордуина работает... Датчики, подключил верно... Посмотрел в сети и увидел что есть фототранзисторы и фото диоды... Вопрос датчик света это фотодиод или фототранзистор? ПС Хорошо, про ветки и деревья, а также про обсуждения сидя на тематических ветках всё понял)

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

=DeaD= » 20 фев 2012, 08:10

Датчик цвета это скорее фототранзистор, причем составной.

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 20 фев 2012, 19:08

""Подключить просто - "-" на землю, "+" на питание 5В, "s" на D* или A* ногу ардуины кроме A6,A7.
Пример кода для использования датчика есть тут: [[OR-BWSENS]]"" Код пробовал со страницы поддержки пишет ошибка ""
sketch_feb18b.cpp:1:30: error: PololuQTRSensors.h: No such file or directory
sketch_feb18b:3: error: 'PololuQTRSensorsRC' does not name a type
sketch_feb18b:3: error: expected unqualified-id before ',' token
sketch_feb18b:3: error: expected unqualified-id before numeric constant
sketch_feb18b.cpp: In function 'void setup()':
sketch_feb18b:10: error: 'qtr' was not declared in this scope
sketch_feb18b.cpp: In function 'void loop()':
sketch_feb18b:21: error: 'qtr' was not declared in this scope
sketch_feb18b:22: error: expected `;' at end of input
sketch_feb18b:22: error: expected `}' at end of input"" А код беру""#include <PololuQTRSensors.h>

#define LED 13 // LED на pin 13


// создаем объект, датчик подключен на pin 10
PololuQTRSensorsRC qtr((unsigned char[]) {10}, 1);


void setup()
{
pinMode(LED, OUTPUT); //установка LED pin как выход
digitalWrite(LED, HIGH); // LED on
// калибровка датчика
int i;
for (i = 0; i < 250; i++)
{
qtr.calibrate();
delay(20);
}
digitalWrite(LED, LOW); // LED off
Serial.begin(9600);
}

void loop()
{
digitalWrite(LED, LOW); // LED Off
unsigned int sensors[1]; // результаты измерений сенсора
int position = qtr.readLine(sensors);
Serial.println(sensors[0], DEC); //результат измерений 0(самый белый) .. 1000(самый черный)
if (sensors[0] > 500) // скорее черный чем белый
{
digitalWrite(LED, HIGH); // turns the LED on
}
delay(10); // waits for a 10 uSec
}"" ПС я по профессии политолог, и самоучка программист...)

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

=DeaD= » 20 фев 2012, 20:15

Вам надо библиотеку подцепить, вроде бы тут описано как: http://www.pololu.com/docs/0J19/2

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 21 фев 2012, 00:38

Спасибо большое что помогаете! Я очень рад что есть отечественные специалисты и производителей и рад, что не все подвержены оболваниванию... Есть у нас специалисты... Хотел бы достичь Вашего уровня познаний! Обязательно попробую завтра... Добавлю библиотеку и перепишу код... Может оживёт) Я подключил датчик к л293 управлению моторов и силового... Если даёшь импульс с Ордуины нано, то мигает диод(в место мотора подключён)А датчик подключаешь, мигает диод только раз в минуту(примерно)Так и не понял на что реагирует... Может какой конденсатор надо...

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 21 фев 2012, 13:05

Пробовал код и всё сделал по ссылке, как там говорится. Ошибка пропала... Но сенсоры молчат... Не могу понять почему л293д молчит с ним и ведёт импульсность... Реакции ноль ни на чёрное ни на белое...

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

SkyStorm » 21 фев 2012, 13:08

Молчат - говорят это как?

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 21 фев 2012, 17:10

Молчат в смысле реакции не видно на изменение цвета поверхности. Я думаю к датчикам конденсатор нужен... Сигнал с платы идёт... Может надо как то вручную калибровать...

Добавлено спустя 5 минут 56 секунд:
Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая)
Диодами подсвечиваю поверхность, все цвета перепробовал(6 цветов)

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

SkyStorm » 21 фев 2012, 17:25

Код: Выделить всёРазвернуть
Serial.println(sensors[0], DEC); //результат измерений 0(самый белый) .. 1000(самый черный)


В мониторе чего?

Там датчик самодостаточный ничего не нужно.
Датчик простой до безобразия и у всех работает.

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

Мартин » 22 фев 2012, 18:44

Спасибо, добрый вечер. Посмотрю, нельзя целиком код прислать?. Мой код #include <QTRSensors.h>

// This example is designed for use with six QTR-1A sensors or the first six sensors of a
// QTR-8A module. These reflectance sensors should be connected to analog inputs 0 to 5.
// The emitter control pin can optionally be connected to digital pin 2, or you can leave
// it disconnected and change the EMITTER_PIN #define below from 2 to QTR_NO_EMITTER_PIN.

// The setup phase of this example calibrates the sensor for ten seconds and turns on
// the pin 13 LED while calibration is going on. During this phase, you should expose each
// reflectance sensor ot the lightest and darkest readings they will encounter. For
// example, if you are making a line follower, you should slide the sensors across the
// line during the calibration phase so that each sensor can get a reading of how dark the
// line is and how light the ground is. Improper calibration will result in poor readings.
// If you want to skip the calibration phase, you can get the raw sensor readings
// (analog voltage readings from 0 to 1023) by calling qtra.read(sensorValues) instead of
// qtra.readLine(sensorValues).

// The main loop of the example reads the calibrated sensor values and uses them to
// estimate the position of a line. You can test this by taping a piece of 3/4" black
// electrical tape to a piece of white paper and sliding the sensor across it. It
// prints the sensor values to the serial monitor as numbers from 0 (maximum reflectance)
// to 9 (minimum reflectance) followed by the estimated location of the line as a number
// from 0 to 5000. 1000 means the line is directly under sensor 1, 2000 means directly
// under sensor 2, etc. 0 means the line is directly under sensor 0 or was last seen by
// sensor 0 before being lost. 5000 means the line is directly under sensor 5 or was
// last seen by sensor 5 before being lost.


#define NUM_SENSORS 6 // number of sensors used
#define NUM_SAMPLES_PER_SENSOR 4 // average 4 analog samples per sensor reading
#define EMITTER_PIN 2 // emitter is controlled by digital pin 2

// sensors 0 through 5 are connected to analog inputs 0 through 5, respectively
QTRSensorsAnalog qtra((unsigned char[]) {0, 1, 2, 3, 4, 5},
NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
unsigned int sensorValues[NUM_SENSORS];


void setup()
{
delay(500);
int i;
pinMode(13, OUTPUT);
digitalWrite(13, HIGH); // turn on LED to indicate we are in calibration mode
for (i = 0; i < 400; i++) // make the calibration take about 10 seconds
{
qtra.calibrate(); // reads all sensors 10 times at 2.5 ms per six sensors (i.e. ~25 ms per call)
}
digitalWrite(13, LOW); // turn off LED to indicate we are through with calibration

// print the calibration minimum values measured when emitters were on
Serial.begin(9600);
for (i = 0; i < NUM_SENSORS; i++)
{
Serial.print(qtra.calibratedMinimumOn[i]);
Serial.print(' ');
}
Serial.println();

// print the calibration maximum values measured when emitters were on
for (i = 0; i < NUM_SENSORS; i++)
{
Serial.print(qtra.calibratedMaximumOn[i]);
Serial.print(' ');
}
Serial.println();
Serial.println();
delay(1000);
}


void loop()
{
// read calibrated sensor values and obtain a measure of the line position
// from 0 to 5000, where 0 means directly under sensor 0 or the line was lost
// past sensor 0, 1000 means directly under sensor 1, 200 means directly under sensor 2, etc.
// Note: the values returned will be incorrect if the sensors have not been properly
// calibrated during the calibration phase. To get raw sensor values, call:
// qtra.read(sensorValues);
unsigned int position = qtra.readLine(sensorValues);

// print the sensor values as numbers from 0 to 9, where 0 means maximum reflectance and
// 9 means minimum reflectance, followed by the line position
unsigned char i;
for (i = 0; i < NUM_SENSORS; i++)
{
Serial.print(sensorValues[i] * 10 / 1001);
Serial.print(' ');
}
Serial.print(" ");
Serial.println(position);

delay(250);
}

Добавлено спустя 12 минут 49 секунд:
Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая)
Если ввести этот ко: #include <PololuQTRSensors.h>

#define LED 13 // LED на pin 13


// создаем объект, датчик подключен на pin 10
PololuQTRSensorsRC qtr((unsigned char[]) {10}, 1);


void setup()
{
pinMode(LED, OUTPUT); //установка LED pin как выход
digitalWrite(LED, HIGH); // LED on
// калибровка датчика
int i;
for (i = 0; i < 250; i++)
{
qtr.calibrate();
delay(20);
}
digitalWrite(LED, LOW); // LED off
Serial.begin(9600);
}

void loop()
{
digitalWrite(LED, LOW); // LED Off
unsigned int sensors[1]; // результаты измерений сенсора
int position = qtr.readLine(sensors);
Serial.println(sensors[0], DEC); //результат измерений 0(самый белый) .. 1000(самый черный)
if (sensors[0] > 500) // скорее черный чем белый
{
digitalWrite(LED, HIGH); // turns the LED on
}
delay(10); // waits for a 10 uSec
}

то выдаёт ошибку












sketch_feb22b.cpp:1:30: error: PololuQTRSensors.h: No such file or directory
sketch_feb22b:6: error: 'PololuQTRSensorsRC' does not name a type
sketch_feb22b:6: error: expected unqualified-id before ',' token
sketch_feb22b:6: error: expected unqualified-id before numeric constant
sketch_feb22b.cpp: In function 'void setup()':
sketch_feb22b:17: error: 'qtr' was not declared in this scope
sketch_feb22b.cpp: In function 'void loop()':
sketch_feb22b:28: error: 'qtr' was not declared in this scope

Добавлено спустя 3 минуты 32 секунды:
Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая)
ТА!! дам!!! с ошибкой справился и понял в синтаксис ошибки! Может чего то дальше получется?!)

Re: Модуль OR-BWSENS: Датчик цвета поверхности (черная/белая

=DeaD= » 22 фев 2012, 20:44

Вы библиотеку скачали, куда надо выложили?


Rambler\'s Top100 Mail.ru counter