Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсач 1 общага.docx
Скачиваний:
12
Добавлен:
21.09.2019
Размер:
3.15 Mб
Скачать

Библиотеки и специализированные команды:

Библиотека это файл, содержащий одну или несколько схожих функций. Обычно, название библиотеки отражает назначение содержащихся в ней функций.Для использования библиотеки разработчик должен ее объявить в заголовке главной программы на языке C. Для корректной работы библиотеки необходимо правильно задать путь к ее файлу при создании проекта AVRStudio.

В состав набора MicroCamp входит большое количество библиотек для разработки и обучения. Среди них библиотека управления портами ввода/вывода, чтение данных с аналоговых входов, библиотека временных задержек, библиотека контроля моторов и воспроизведения звука

Перечень библиотек комплекта:

in_out.h Библиотека работы с цифровыми портами.

Пример: x = in_b(2); // Чтение значения с порта РВ2 и запись в х

out_c(5,0);// Выдача логического “0" в порт РС5

sleep.h Библиотека временных задержек

Пример: sleep(1000); //Продолжительность действия в одну секунду

analog.h Библиотека чтения аналоговых данных с портов P0...P4

Пример:adc_val = analog(0); // чтение из аналогового порта 0 (РСО) и запись в adc_val

led.h Библиотека управления светодиодом LED

Пример: led1_on()//Включить мигание LED1 (PC5)

led1_off()//Выключить мигание LED1 (PC5)

motor.h Библиотека управления мотором постоянного тока

Пример:motor(1,60); // Вращение мотора 1 со скоростью 60%

motor_stop(ALL); // остановка двух моторов

sound.h Библиотека генерации звука

Пример:sound (2000,500);// формирует сигнал с частотой 2кГц, длительностью 0.5 секунды

Все необходимые библиотеки должны храниться в папке проекта или путь к ним должен быть правильно указан в проекте. Все дополнительные библиотеки хранятся в папке MicroCamp_include на компакт-диске из комплекта.

Задание 1: управление скоростью робота

Описание схемы:

У робота танковая система движения. Работают два независимых мотора и рулевые колеса.

По данной программе робот движется согласно графику скорости:

Описание программы:

Программа может задавать скорость движения вперед и назад, для обоих моторов одновременно и для каждого мотора в частности

начало

I=0

I=0;i<60;i++

backward

I=60;i>0;i--

backward

I=0;i<100;i++

forward

I=0;i<100;i++

forward

КОНЕЦ

#include<in_out.h> //подключение библиотеки ввода-вывода информации

#include <sleep.h> //подключение библиотеки задержки

#include <motor.h> //подключение библиотеки контроля моторов

void main() //главная программа

{ int i; //задание переменной «i»

while(1) //бесконечный цикл

{

for (i=1;i<60;i++) //конечный цикл увеличения скорости от 1% до 30%

{

backward(i); //движение назад 0.05 секунды

sleep (50);

}

for (i=60;i>0;i--) //конечный цикл уменьшения скорости от 30% до 1%

{

backward(i);

sleep (50);

}

sleep (2000); //задержка 2 секудны

for (i=1;i<100;i++) //цикл увеличения скорости

{

forward(i); // движение вперёд 0.02 секунды

sleep (20);

}

for (i=100;i>0;i--) //цикл уменьшения скорости

{

forward(i);

sleep (20);

}

Задание 2: контактное обнаружение объектов

Описание контактного датчика

Контактный датчик МicroCamp имеет следующую схему: На рисунке 25 (а) и на рисунке 25 (б) показана электрическая схема датчика-кнопки и изображен датчик-кнопка

Рисунок 25 (а) - Электрическая схема датчика-кнопки

Рисунок 25 (б) - Датчик-кнопка

Использование сенсоров для роботов:

Контактный датчик – прибор для обнаружения препятствий при непосредственном контакте с объектом.

Обнаружение объектов это задание предназначено для изучения работы контактных детекторов, расположенных в передней части робота. После обнаружения столкновения, робот отъезжает назад и меняет направление движения

Детектор может находиться в двух состояниях.

  • Когда кнопка не нажата, DATA принимает значение «1»

  • Когда кнопка нажата, DATA принимает значение «0» и светодиод LED1 загорается.

Поскольку выходной сигнал принимает 2 состояния, детектор является цифровым.

Это задание предназначено для изучения работы контактных детекторов, расположенных в передней части робота. После обнаружения столкновения, робот отъезжает назад и меняет направление движения.

#include<motor.h> // подключение библиотеки контроля моторов

#include<sleep.h> // подключение библиотеки задержки

#include<in_out.h> // подключение библиотеки вывода информации

void main() // открытие основной программы

{

while(1) // бесконечный цикл

{

if (in_c(2)==0) // проверка статуса пр. детектора

{

backward(100); // если есть препятствие, то робот движется назад

sleep(400); // задержка 0.4 секунды

s_left(50); // разворачивается влево 0.3 секунды

sleep(300);

}

if (in_c(3)==0) // проверка статуса левого детектора

{

backward(100); // если есть препятствие, то робот движется назад

sleep(400);

s_right(50); // разворачивается вправо 0.3 секунды

sleep(300);

}

else

{

forward(100); // если препятствий нет, то робот движется вперед

}

}

}

При отсутствии препятствий робот движется вперед. При срабатывании левого детектора, робот отъедет назад и затем повернет направо чтобы объехать препятствие. При срабатывании правого детектора, робот отъедет назад и затем повернет налево чтобы объехать препятствие.

Задание 3: Бесконтактное обнаружение объектов

Принцип действия ИК-детектора:

Одним из наиболее важных детекторов является ИК-измеритель дистанции. В набор входит модуль, который позволяет измерять дистанцию и обнаруживать препятствия при помощи инфракрасного света. Этот модуль позволяет создать робота, уклоняющегося от препятствий без физического воздействия.

Бесконтактный датчик GP2D120 позволяет измерять дистанцию и обнаруживать препятствия при помощи инфракрасного света. Этот модуль позволяет создать робота, уклоняющегося от препятствий без физического контакта с ними.

  • Используется отражение ИК луча для измерения дистанции

  • Может измерять дистанцию от 4 до 30 см.

  • Питание от 4.5 до 5В, потребляемый ток 33мА

  • Выходное напряжение от 0.4 до 2.4В при питании +5В

Инфракрасный свет излучается в направлении объекта через фокусирующую линзу, что позволяет сузить луч. Свет отражается от объекта, и часть отраженного света возвращается назад. Отраженный свет проходит через вторую линзу и попадает на линейку фототранзисторов. Точка, в которую попадает отраженный луч, используется для вычисления дистанции до объекта. Измеренное значение дистанции преобразуется в постоянное напряжение, которое поступает на выход модуля.

Работа инфракрасного датчика GP2D120

НАЧАЛО

I=0; i<5 i++

Sensor4

Sensor4>185

нет да

Forward(60)

S_left(60)

КОНЕЦ