- •Введение:
- •Назначение и область применения
- •Обобщенная структурная схема робота
- •Технические характеристики мобильного робота
- •Механическая часть робота MicroCamp
- •Электронная часть
- •Особенности Atmega8
- •Назначение выводов микроконтроллера Atmega8
- •Программное обеспечение для набора MicroCamp
- •Шаги программирования робота
- •Библиотеки и специализированные команды:
- •Программа на с
- •Программа на с
- •Список литературы:
Библиотеки и специализированные команды:
Библиотека это файл, содержащий одну или несколько схожих функций. Обычно, название библиотеки отражает назначение содержащихся в ней функций.Для использования библиотеки разработчик должен ее объявить в заголовке главной программы на языке 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)
КОНЕЦ