Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tyukalov_Dima_1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
232.45 Кб
Скачать

III.3. Эксперимент.

В данном эксперименте мы смогли измерять расстояние с помощью особых датчиков замеряющих обороты колёс. Пример программы найдёте в приложении 2. Данный способ измерения лучше, так-как основан на более точных данных. Датчик оборотов вы найдёте в приложении 6. Этот датчик позволяет считывать обороты, пройденные колесом за время работы программы. С помощью только этих данных мы можем уже найти не только расстояние, пройденное роботом, но и измерить скорость и время вращения того или иного двигателя. Этот способ не самый надёжный т.к. при повороте один из двигателей перестаёт работать и датчик замеряет показания с другого колеса, из-за этого расстояние, пройденное ботом, увеличивается, хотя он ни проходит многим меньше, особенно в пространстве где нужно много поворачивать. Но эту проблему можно исправить, посчитав среднее значение замеров. Правда придётся сделать несколько заходов. Также в отличии от УЗ-датчиков для датчика оборотов не существует помех, которые могли бы повредить измерениям.

III.4. Эксперимент.

В данном эксперименте мы добились того, что наш бот смог наконец рисовать планы территории. Для этого пришлось написать две программы, которые вы найдёте в приложении 8, одна для бота, другая для считывания информации с него. Первая часть программы — это программное обеспечение бота. Мы использовали все выше перечисленные программы, соединили их в мести и добавили функцию записи координат. Во время включения бот запоминает свою координату как начальную и стремится, проверив комнату, вернутся обратно. По ходу движения бот посылает сигналы с боковых датчиков и ищет все неровности поверхности записываю в память координаты мест смещения. После возврата в начальную координату бот делает ещё несколько заходов, корректируя свои данные, затем он обрабатывает информацию и высчитывает положение по отношению к экватору и вычисляет площадь. Вторая часть программы в свою очередь при подключении бота к компьютеру считывает с него информацию и по данным координатам чертит план территории и распечатывает его. Повторные заходы нужны для более точных замеров (проблемы и потребность датчиков в сравнении данных описано в эксперименте №2).

Заключение

В данной работе мы рассмотрели эхолокацию как явление в технике, медицине и животного мира. Изучили историю данного явления.

Так же изучили устройство аппаратной платформы Arduino и ознакомились с её программным обеспечением. С помощью него мы создали установку способную ориентироваться в пространстве и рисовать простейшие планы комнат. Эта установка не требует особых затрат и проста в сборке. Программирование на Arduino просто и его может освоить любой человек. В дальнейшем установка будет доработана и сможет составлять полноценные карты. Протестировав эту установку, мы можем сказать, что она может помочь многим людям в будущем, ведь установка может проникать в те места в которые люди не могут добраться. Также он поможет автоматизировать процесс картографии и разведки.

Список литературы и Интернет-источников

  1. Ультразвук. Маленькая энциклопедия / Под. ред. И.П. Голяминой. М.: Советская Энциклопедия, 1979.

  2. Применение ультразвука в медицине. Физические основы / Пер. с англ.; под ред. К. Хилла. М.: Мир, 1989.

  3. Клиническая ультразвуковая диагностика: руководство для врачей: в 2 т. / Под ред. Н.М. Мухарлямова. М.: Медицина, 1987.

  4. Рейман А.М. Ультразвуковой жиромер // Физика-ПС. 2007. № 1. с. 37–38. (Издат. дом «Первое сентября»).

  5. Рейман А.М. Ежедневно вместо мыла... // Физика-ПС. 2007. № 24. с. 33–34. (Издат. дом «Первое сентября»).

  6. Hielscher – Ultrasound Technology [Электронный ресурс] URL: http://www.hielscher.com/ultrasonics/nano_03.htm (дата обращения 23.11.2009).

  7. Мякишев Г.Я., Синяков А.З., Слободской Б.А. Физика. Электродинамика. 10–11 кл. учеб. для общеобразоват. учреждений. М.: Дрофа, 2002. с. 111–112.

  8. Nuclear Emissions during Self-Nucleated Cavitation / R.P. Taleyarkhan [et al.] // Phys. Rev. Letts, 96, 034301, 2006.

  9. Сб. трудов XIX сессии РАО: в 3 т. М.: ГЕОС, 2007.

  10. Официальный сайт Arduino в России, http://arduino.ru/About

П

#define PinA 2

static boolean output = HIGH;

void setup()

{

pinMode(PinA, INPUT);

digitalWrite(PinA, HIGH); attachInterrupt(0, int_on, CHANGE);

}

void loop()

{

}

void int_on()

{

digitalWrite(13, (output==HIGH) ? output=LOW : output=HIGH);

}

риложение

char k;

char val1;

char val2;

char power;

int i;

void setup() {

Serial.begin(9600); //скорость работы с последовательным поротом

pinMode(11, OUTPUT); //выводы устанавливаюся в режим выхода

digitalWrite(11, LOW); //на выходе низкий уровень

pinMode(9, OUTPUT);

digitalWrite(9, LOW);

power=EEPROM.read(1); }

void loop()

{

if (Serial.available() > 0)

{k = Serial.read();

if (k=='1')

{val1=HIGH; val2=HIGH;

}

else if (k=='+')

{ power=power+10; Serial.println(power, DEC);

EEPROM.write(1,power);

}

else if (k=='-')

{power=power-10;

Serial.println(power, DEC);

EEPROM.write(1,power);

}

else

{val1=LOW;

val2=LOW;

}

}

analogWrite(11, val1*power);

analogWrite(9, val2*power);}

#include <EEPROM.h

const int TRIG_PIN = 12;

const int ECHO_PIN = 13;

char val1;

char val2;

char power;

int va10;

int va7;

int ledPin = 10;

int inPin = 7;

int i;

void setup() {

Serial.begin(9600);

pinMode(TRIG_PIN,OUTPUT);

pinMode(ECHO_PIN,INPUT);

}

void loop()

{

long duration, distanceCm, distanceIn;

pinMode(11, OUTPUT); digitalWrite(11, LOW); pinMode(9, OUTPUT);

digitalWrite(9, LOW);

power=EEPROM.read(1);

digitalWrite(TRIG_PIN, LOW);

digitalWrite(TRIG_PIN, HIGH);

digitalWrite(TRIG_PIN, LOW);

duration = pulseIn(ECHO_PIN,HIGH);

distanceCm = duration / 29.1 / 2 ;

distanceIn = duration / 74 / 2;

if (distanceCm <= 30)

{

analogWrite(11, val1*power);

analogWrite(9, val2*power);

val1=LOW;

val2=LOW;

pinMode(ledPin, INPUT);

pinMode(inPin, INPUT);

va10 = digitalRead(inPin);

va7 = digitalRead(ledPin);

analogWrite(11, val1*power);

analogWrite(9, val2*power);

val1=HIGH; val2=LOW;

pinMode(ledPin, INPUT

pinMode(inPin, INPUT);

va10 = digitalRead(inPin);

va7 = digitalRead(ledPin);

analogWrite(11, val1*power);

analogWrite(9, val2*power);

val1=HIGH; val2=LOW;

}

else

{

analogWrite(11, val1*power);

analogWrite(9, val2*power);

val1=HIGH;

val2=HIGH;}

delay(1000);

if (distanceCm <= 0){

Serial.println("Out of range");

}

else {

Serial.print(distanceIn);

Serial.print("in, ");

Serial.print(distanceCm);

Serial.print("cm");

Serial.println();

}

delay(1000);

}

21

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]