- •Система ориентирования в пространстве
- •Оглавление
- •Глава I. Эхолокация 4
- •Глава II. Arduino 13
- •Введение
- •Глава I. Эхолокация
- •I.1. История
- •I.2. Принципы эхолокации
- •I.3. Способы применения
- •I.4. Виды эхолокации.
- •I.5. Принцип измерения.
- •I.6. Виды приборов.
- •Глава II. Arduino
- •II.1. Применение.
- •II.2. Язык программирования.
- •II.3. Отличия от других платформ.
- •II.4. Широтно-импульсная модуляция.
- •III.1. Эксперимент.
- •III.2. Эксперимент.
- •III.2. Эксперимент.
- •В данной работе мы рассмотрели эхолокацию как явление в технике, медицине и животного мира. Изучили историю данного явления.
III.1. Эксперимент.
В этом эксперименте мы доказали, что наша установка способна ездить и изменять свою скорость, пример программы для этих действий вы найдёте в приложении 3. Программа на удивление проста: в начале мы задаём начальные данные такие как скорость работы с последовательным портом, то есть мы задаём скорость считывания наших данных. Затем мы устанавливаем на какие из портов мы подаём напряжение. Затем из библиотеки читаем скорость вращения двигателей. Далее в нашей программе стоит функция считывания данных, если мы вводим “1”, то наши двигатели включаются, а если «0», то они отключаются. При вводе символа «+», скорость вращения двигателей увеличивается, а при вводе «-», скорость двигателя уменьшается.
III.2. Эксперимент.
В этом эксперименте мы доказали, что наш робот может ориентироваться в пространстве и измерять расстояние до цели. Пример программы вы найдёте в приложении 4. В большей своей части эта программа схожа с программой в эксперименте 1, но с добавлением части которая измеряет расстояние в сантиметрах. Она рассчитывает расстояние по зависимости расстояния по времени.
III.2. Эксперимент.
В данном эксперименте мы смогли измерять расстояние с помощью особых датчиков замеряющих обороты колёс. Пример программы найдёте в приложении 2. Данный способ измерения точнее, так-как основан на более точных данных.
Заключение
В данной работе мы рассмотрели эхолокацию как явление в технике, медицине и животного мира. Изучили историю данного явления.
Так же изучили устройство аппаратной платформы Arduino и ознакомились с её программным обеспечением. С помощью него мы создали установку способную ориентироваться в пространстве и рисовать простейшие планы комнат. Эта установка не требует особых затрат и проста в сборке. Программирование на Arduino просто и его может освоить любой человек. В дальнейшем установка будет доработана и сможет составлять полноценные карты. Протестировав эту установку, мы можем сказать, что она может помочь многим людям в будущем, ведь установка может проникать в те места в которые люди не могут добраться. Также он поможет автоматизировать процесс картографии и разведки.
Список литературы и Интернет-источников
Ультразвук. Маленькая энциклопедия / Под. ред. И.П. Голяминой. М.: Советская Энциклопедия, 1979.
Применение ультразвука в медицине. Физические основы / Пер. с англ.; под ред. К. Хилла. М.: Мир, 1989.
Клиническая ультразвуковая диагностика: руководство для врачей: в 2 т. / Под ред. Н.М. Мухарлямова. М.: Медицина, 1987.
Рейман А.М. Ультразвуковой жиромер // Физика-ПС. 2007. № 1. с. 37–38. (Издат. дом «Первое сентября»).
Рейман А.М. Ежедневно вместо мыла... // Физика-ПС. 2007. № 24. с. 33–34. (Издат. дом «Первое сентября»).
Hielscher – Ultrasound Technology [Электронный ресурс] URL: http://www.hielscher.com/ultrasonics/nano_03.htm (дата обращения 23.11.2009).
Мякишев Г.Я., Синяков А.З., Слободской Б.А. Физика. Электродинамика. 10–11 кл. учеб. для общеобразоват. учреждений. М.: Дрофа, 2002. с. 111–112.
Nuclear Emissions during Self-Nucleated Cavitation / R.P. Taleyarkhan [et al.] // Phys. Rev. Letts, 96, 034301, 2006.
Сб. трудов XIX сессии РАО: в 3 т. М.: ГЕОС, 2007.
Официальный сайт 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);
}
