Реализация простейшего зрения, позволяющего определить направление на источник света или двигаться по линии на полу
Нужные компоненты:
· два фоторезистора
· два постоянных резистора на 10 кОм
· провода со штырьками на обоих концах: два красных (+5 В), четыре произвольного цвета (но не красного, синего или черного)
1. Соберите схему опроса двух фоторезисторов:

2. загрузите в контроллер следующую программу:
int photoPin1 = A0; // первый фоторезистор подключен к аналоговому входу A0
int photoPin2 = A1; // второй фоторезистор подключен к аналоговому входу A1
int ledPin1 = 3; // первый светодиод подключается к digital pin 3
int ledPin2 = 2; // первый светодиод подключается к digital pin 2
int val1 = 0; // значение с фоторезистора 1
int val2 = 0; // значение с фоторезистора 2
void setup()
{
Serial.begin(9600);
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
}
void loop() {
val1 = analogRead(photoPin1); // считываем значение с фоторезистора 1
val2 = analogRead(photoPin2); // считываем значение с фоторезистора 2
Serial.print("values: "); // выводим значения в COM-порт
Serial.print(val1);
Serial.print(": ");
Serial.println(val2);
if(val1==val2) // если значения равны - зажигаем оба светодиода
{
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
Serial.println("forward"); // едем вперед
}
else
{
if(val1>val2) // если освещённость первого больше – зажигаем
{ // первый светодиод, а второй гасим
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, LOW);
Serial.println("left"); // едем влево
}
else // если освещённость второго больше – зажигаем
{ // второй светодиод, а первый гасим
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin1, LOW);
Serial.println("right"); // едем вправо
}
}
delay(200);
}
|
3. убедитесь, что поведение светодиодов и выдаваемые в Монитор порта команды соответствуют нужным – при подключении моторов вместо светодиодов (через драйвер двигателя) робот ехал бы на свет
Дополнительное практическое занятие: линейка светодиодов, количество горящих светодиодов зависит от уровня напряжения на датчике
Дополнительное практическое занятие: подключение Sound Sensor и его опрос программой AnalogInOutSerial