Колесный мобильный робот Micrоcamp 2.0
Назначение и область применения набора MicroCamp, расположение элементов на его плате. Обобщенная структурная схема и технические характеристики мобильного робота. Обзор микроконтроллера Atmega 8. Разработка программного обеспечения для набора MicrоCamp.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 15.07.2012 |
Размер файла | 7,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
История робототехники начинается во второй половине 20 века, при появлении компьютерный технологий. С момента своего появления роботы прошли путь от примитивный механизмов до сложных, эффективных устройств, во многом превзойдя по своим возможностям человека. В ближайшее десятилетия все более современные роботы станут незаменимыми помощниками людей и смогут взять на себя обеспечение большей части потребностей цивилизации.
Краткая история:
Первым по праву и действительно мобильным можно считать луноход. 10 ноября ракета-носитель "Протон-К" вывела на траекторию полета к Луне автоматическую межпланетную станцию "Луна-17" с самоходным аппаратом "Луноход-1" на борту. 17.11.70 "Луна-17" совершила мягкую посадку. Через два с половиной часа "Луноход-1" по трапу сошел с посадочной платформы, приступив к выполнению исследовательской программы."Луноход-1" (Изображение 1.) был создан за несколько лет до запуска конструктором Григорием Николаевичем Бабакиным. Управление исследовательским аппаратом осуществлялось при помощи комплекса аппаратуры контроля и обработки телеметрической информации на базе ЭВМ "Минск-22".20 февраля, по окончанию 4 лунного дня (лунный день длится две земные недели), ТАСС сообщил о полном выполнении первоначальной программы работ. Однако "Луноход-1" не собирался "умирать" и в три раза перекрыл свой первоначально рассчитанный ресурс. Колеса лунохода проложили по Луне дорожку длиной 10 540 м. Более чем в 500 точках ее были определены физические свойства грунта. Во время движения лунохода на Землю было передано около 25 тыс. снимков и 211 панорам лунной поверхности. Высадка мобильного автоматического аппарата на лунную поверхность стала очередной победой СССР в освоении космического пространства.
Луноход 1(Изображение 1)
Спустя два года после "естественной смерти в весьма преклонном возрасте" первого планетохода была запущена автоматическая межпланетная станция "Луна-21", доставившая 16 января 1973 года на лунную поверхность
"Луноход-2"(Изображение 2).
"Луноход-2" оказался гораздо продуктивней своего предшественника. Благодаря опыту экипажа и усовершенствованной телевизионной системе за неполные четыре месяца работы планетоход успел пройти около 40 километров. К сожалению, на этом история советских луноходов закончилась. Для "Лунохода-3" просто не нашлось свободного носителя -- космическая программа СССР надолго отвернулась от Луны.
Что же касается наземной мобильной робототехники 80-90х годов, то здесь следует отметить труды специального конструкторско-технологическом бюро прикладной робототехники при МГТУ им. Баумана (СКТБ).
После катастрофы на Чернобыльской АЭС в этом бюро, в кратчайшие сроки разработаны три мобильных робота для проведения работ в зоне аварии. С помощью этих роботов (МРК, робот - ЧХВ(Изображение 3))
Робот - ЧХВ(Изображение 3)
был проведен полный технологический цикл уборки и подготовки под бетонирование участка крыши третьего энергоблока без единого выхода человека в опасную зону. В данный момент, специальное конструкторско-технологическое бюро прикладной робототехники при МГТУ им. Баумана выпускает современные роботы, предназначенные для замены человека при выполнении в экстремальных, опасных условиях, такие как МРК-27 МРК-02 МРК-35
Так же надо отметить заслуги Центрального научно-исследовательского института робототехники и технической кибернетики (ЦНИИ РТК) который создал мобильного робота ДУМК (дистанционно управляемый мобильный комплекс). Комплекс ДУМК (Изображение 4) предназначен для поиска, изъятия или ликвидации на месте взрывоопасных и других опасных объектов для Управления ФСБ по Санкт-Петербургу и Ленинградской области.
Комплекс ДУМК (Изображение 4)
Мобильный механизм робота способен перемещаться по лестничным переходам. В состав комплекса входит нашлемная система целеуказания и управления.
Первый в мире серийно выпускаемый бытовой робот-пылесос Trilobite (Рисунок5) представлен на рынок шведской компанией Electrolux. Робот ориентируется с помощью ультразвукового сонара и имеет высоту 13 см при диаметре 35 см. Максимальная скорость уборки -- 40 квадратных сантиметров в секунду. Когда аккумуляторы робота "садятся", Trilobite сам находит зарядное устройство и едет заряжаться.
Робот-пылесос Trilobite (Рисунок5)
На рисунке 6 изображен робот"HallucII",созданный в 2008 году. У Halluc II восемь ног, причём каждая из них заканчивается колесом, что позволяет перемещаться по разнообразным, даже очень неровным поверхностям и преодолевать препятствия. Если колесо наезжает на небольшую неровность, то нога, на которой оно находится, приподнимается, повторяя колёсиком контур поверхности.
Робот"HallucII"(Рисунок 6)
В 2006 году с 15 по 18 мая в Хаммельбурге прошли состязания наземных роботов ELROB (Рисунок7)EuropeanLand-RobotTrial. В соревнованиях приняли участие 20 команд из 5 европейских стран. ELROB показал достижения европейского сообщества в области автономных наземных роботов (UGV - unmannedgroundvehicles). Это достаточно уникальная разработка, даже больше не в своей механической части (четырехколесный робот с передним приводом), а в электронной. Данные с двух видеокамер передаются через спутник на наземную станцию управления, которая может находиться на расстоянии… до 1000 км. Технология называется SOTM ("Satellite On The Move")
EuropeanLand-RobotTrial(Рисунок7)
Назначение и область применения
Набор MicroCamp (рисунок 8) предназначен для изучения основ программирования современных микроконтроллеров путем построения робота. Выполнение всех предложенных заданий позволит освоить программирование микроконтроллера и изучить принципы его взаимодействия с датчиками и исполнительными механизмами.
MicroCamp (Рисунок 8)
Расположение элементов на плате MicroCamp
Набор включает в себя плату микроконтроллера ("плата MicroCamp"), контактный модуль, инфракрасный отражательный датчик, мотор постоянного тока с редуктором и много других частей для создания программируемого робота.
Расположение элементов на плате Microcamp
Обобщенная структурная схема робота
В качестве основного микроконтроллера используется 8-разрядный AVR микроконтроллер от фирмы Atmel; ATmega8.Он отличается следующими особенностями: 10-разрядный АЦП (ADC), флеш память для записи программ 8KB (10,000 циклов перезаписи), флеш память для записи данных 512 байт и ОЗУ (RAM) 512 байт. Частота процессора 16MHz, стабилизирована кварцевым резонатором.5-канальный программируемый порт (каждый канал снабжен 3-контактным разъемом).Каждый канал может быть запрограммирован как цифровой вход, цифровой выход или аналоговый вход. К контактам разъема подведено питающее напряжение (обычно +5В), аналоговый сигнал или цифровые данные и "земля" соответственно. * Зарезервированный порт для подключения ИК приемника 38kHz. Этот порт объединен со входом приемника последовательного порта (RxD), предназначенного для подключения внешних устройств с последовательным каналом передачи данных.
Также имеется пьезоизлучатель для воспроизведения звуков.
-2 кнопки.
-кнопка "Сброс".
-2 светодиода, светящихся при подаче логической единицы.
-двухканальный драйвер моторов постоянного тока. Параметры драйвера: от 4.5 до 6В, 600мА; светодиоды индикации активности.
Напряжение питания от +4.8 до +6В (4 батарейки размера AA). Батарейный отсек смонтирован на задней стороне платы. Встроенный импульсный регулятор напряжения для стабилизации +5В и защиты от провалов при включении моторов постоянного тока
Технические характеристики мобильного робота
Сердцем контроллерной платы является микроконтроллер ATmega8. Он работает с тактовой частотой 16MHz, задаваемой кварцевым резонатором, подключенным к выводам PB6 и PB7.
Порты микроконтроллера PC0 - PC4 переименованы в P0 - P4. Эти обозначения нанесены на печатную плату для упрощения монтажа. Все порты могут быть сконфигурированы как аналоговые входы или цифровые входы/выходы. Аналоговый сигнал с этих портов поступает на АЦП, встроенный в микроконтроллер ATmega8. Разрешение АЦП составляет 10-бит.
Порты PB3, PB4 и PB5 предназначены для внутрисхемного программирования. Они подключены к разъему ISP, к которому подключается программатор.
Порт PC6/RESET подключен к кнопке "Сброс" для возможности ручного перезапуска программы микроконтроллера пользователем.
Порт PD0/RxD является входом приемника последовательного порта. К этому порту подключается модуль ИК приемника через разъем IRM и последовательный порт через 5-контактный разъем.
Порт PD1/TxD является выходом передатчика последовательного порта. Он используется для подсвечивания индикатора LED5 (обозначение на плате IND2) и подключен к выводу TxD 5-контактного разъема последовательного порта. Индикатор LED4 (IND1) подключен к порту PC5 через ограничивающий резистор.
На плате контроллера установлены две кнопки. Они подключены к портам PD2 и PD3 с подтягивающими резисторами 4.7kQ для задания уровня логической единицы при отсутствии нажатия и уровня логического нуля при нажатии кнопки.
Порт PD4 подключен через конденсатор 10мкФ к пьезоизлучателю.
На контроллерной плате смонтирован двухканальный драйвер моторов постоянного тока. Драйвер реализован на микросхеме L293D. Для управления одним мотором постоянного тока необходимо формировать три сигнала:
A и B для задания направления вращения.
E для включения соответствующего драйвера. Также, можно контролировать скорость вращения мотора путем подачи ШИМ-сигнала (PWM) на этот вход. Более широкий импульс соответствует подаче большего напряжения на мотор.
На выходе L293D включены двухцветные светодиодные индикаторы, указывающие направление вращения соответствующего двигателя. Зеленый цвет соответствует вращению вперед. Красный цвет соответствует вращению назад.
Для стабилизации питающего напряжения используется импульсный стабилизатор TL499A. Несмотря на повышенное потребление энергии при работе моторов стабилизатор поддерживает питающее напряжение микроконтроллера на постоянном уровне +5В.
Список деталей робота:
В набор входят все необходимые детали для построения простого движущегося робота. Детали робота разделяются на 2 типа: механические компоненты и электронные компоненты.
Детали робота
Механическая часть робота MicroCamp
На рисунке предоставлена круглая основа робота MicroCamp, на которой в последствие устанавливаются все его делали:
Двигатели, инфракрасные датчики, контактные датчики и другие механические и электронные компоненты этого робота.
Колеса с резиновым покрытием
Два колеса с резиновым покрытием, которое обеспечивает более лучшее сцепление с поверхностью по которой будет двигаться робот. Колеса устанавливаются напрямую к моторам.
Набор крепежных деталей
Полный набор крепежных деталей для сборки MicroCamp. Включающий в себя: набор стоек разных размеров, винтов, гаек, пластиковые крепления как угловые так и прямые. Так же в наборе имеются шурупы и металлические стойки
Коробка для аккумуляторов
Оболочка для аккумуляторов, так же сверху на ней устанавливается сама плата MicroCamp
Электронная часть
Внутрисхемный программатор PX-400. Через это устройство зашиваются разнообразные программы на робот MicroCamp. Его можно подключать как к Com порту, так и к USB, выбор входа осуществляется по желанию
программатор PX-400
Набор имеет два концевых "датчик-кнопку" которые реагируют на нажатие.
Контактный датчик
Датчик количества отраженного света который можно использовать для следования по черной линии на фоне белого цвета
Датчик количества отраженного света
Модуль инфракрасного излучения ИК приемник GP2D120. Его применяют для измерения дистанции. Данный датчик может измерять дистанцию от 4см до 30 см
Два электромотора с помощью которых приводится в движение робот MicroCamp. Каждый из моторов оснащен редуктором за счет этого возможно дифференциальное управление, можно задавать роботу движение по произвольной траектории за счет разной скорости и направления вращения колес
Пульт дистанционного управления
Пульт дистанционного управления роботом с четырьмя кнопками направления. MicroCamp может работать самостоятельно или управляться с данного пульта
Набор MicroCamp имеет приемник инфракрасного излучения TSOP для приема сигналов различных пультов дистанционного управления.
- приемник инфракрасного излучения TSOP
- LCD дисплей
LCD дисплей для вывода информации в виде текста. Дисплей содержит 2 строки по 16 символов
Краткий обзор микроконтроллера Atmega8
Микроконтроллер Atmega8 выполнен по технологии CMOS, 8-разрядный, микропотребляющий, основан на AVR архитектуре RISC. Выполняя одну полноценную инструкцию за один такт, Atmega8 достигает производительности 1 MIPS на МГц, позволяя достигнуть оптимального соотношения производительности к потребляемой энергии.
Особенности Atmega8
Малопотребляющий 8-разрядный микроконтроллер с архитектурой AVR. Память программы 8кб с возможностью перезаписать 10.000 раз, 512 байт флешпамяти для хранения переменных (100,000 циклов перезаписи), 1 Кб ОЗУ и 32регистра общего назначения. 23 порта ввода/вывода, объединенных в 3 группы
Порт B (PB0 - PB7): Два вывода (PB6 и PB7) используются для подключения кварцевого резонатора. Выводы PB2 - PB5 зарезервированы для внутрисхемного программирования. Таким образом, для общего применения остаются порты PB0 и PB1.
Порт C (PC0 - PC6: 7 выводов) Порты PC0 - PC5 можно использовать в качестве аналоговых входов. PC6 обычно используется для сброса.
Порт D (PD0 - PD7: 8 выводов) Этот порт можно использовать для общего применения.
робот микроконтроллер программный micrоcamp
Два 8-разрядных Таймера/Счетчика с раздельным прескалером, режим сравнения
· 16-разрядный Таймер/Счетчик с раздельным прескалером, режим сравнения, режим захвата
· Таймер реального времени с независимым генератором
· Три канала ШИМ
· 6 каналов 10-разрядного АЦП
· Двухпроводный последовательный интерфейс
· Программируемый последовательный USART
· Интерфейс SPI с режимами Master/Slave
· Программируемый сторожевой таймер с отдельным независимым генератором
· Встроенный аналоговый компаратор
· Сброс при включении питания, программируемая защита от провалов питания
· Встроенный калиброванный RC-генератор
· Обработка внутренних и внешних прерываний
· 5 режимов с пониженным энергопотреблением: Idle, ADCNoiseReduction, Power- save, Power-down, и Standby
· Напряжение питания 4.5 - 5.5 В
· Тактовая частота 0 - 16 МГц
Назначение выводов микроконтроллера Atmega8
На рисунке 24 таблица с назначениями всех вход\выход портов и ножек микроконтроллера ATmega8
Программное обеспечение для набора MicroCamp
Разработка программного обеспечения для набора MicrоCamp производится на языке C. В комплект поставки входят следующие программы:
а)AVRStudio: Это программное обеспечение разработано фирмой AtmelCorporation. AVRStudio это средство разработки для микроконтроллеров AVR.AVRStudio позволяет разработчику отлаживать программное обеспечение во встроенном эмуляторе процессора.AVRStudio позволяет исполнять программы на ассемблере, разработанные при помощи AtmelCorporation'sAVRAssembler и программы на языке C, компилированные в WinAVRCCompiler. Компиляция производится в HEX-файл, который затем загружается в память программ микроконтроллера.
б) Библиотека: Это набор дополнительных файлов, которые позволяют значительно упростить процесс разработки приложения на языке C.
в) Программатор: Это программное обеспечение позволяет загрузить .HEX-файл в микроконтроллер AVR. В этот набор включенаAVRProg. Этот программатор произведен фирмой Atmel и является частью AVRStudio. Программа AVRProg работает с программатором PX-400. Программатор PX-400 входит в состав набора MicroCam.
Шаги программирования робота
1)Запустите AVRStudio. Если выполняется какой-либо проект, его необходимо закрыть Project - CloseProject
2)Для создания нового проекта выбирайте Project -NewProject.
3)Появится окно свойств проекта. Установите следующие параметры:
4)В окне Projecttype выделите строку AVRGCC: для выбора проекта на языке C.
5)Задайте имя проекта Switch_LED (пример). Будет создана начальная часть файла проекта. В этом проекте файл главного модуля будет иметь имя Switch_LED.
6)Задайте адрес проекта в Location: Пример: M:\ROBO\AVR-ROBOT\Code. После этого нажмите кнопку Finish.
7)Рабочая область проекта Switch_LED будет выглядеть как на рисунке ниже.
8)Далее необходимо определить параметры микроконтроллера и задать путь ко всем библиотекам и файлам, которые будут использованы в проекте. Выберите пункт Project-ConfigurationOptions
9)После этого появится окно Switch_LED Project Options. В левой части окна расположены 5 иконок:
* General
* Include Directories
* Libraries
* Memory Settings
* CustomOptions
В пункте General задаются следующие параметры
* Device :Atmega8
* Frequency: 16000000 Hz
10)Иконка Libraries предназначена для связи всех библиотек с проектом
11)В окошке AvailableLinkObjects:, выделите строку libm.a и нажмите кнопку AddLibrary. Нажмите кнопку OK для завершения
Иконка IncludeDirectories предназначена для задания пути к библиотеке. Найдите и выделите файл библиотеки, затем нажмите кнопку Add.
12)Затем введите код на языке C в файл Switch_LED.c.
13)Компилируйте программу в файл Switch_LED.hex выбирая команду Build
Статус операции будет отображаться в окне внизу главного окна AVRStudio, как показано на рисунке:
Как установить программу на робота.
При возникновении любой ошибки, такой как неправильная команда или ошибка связи, появляется окно BuildOutput. В этом случае необходимо отредактировать программу, устранить все ошибки и повторить компиляцию.
После компиляции необходимо загрузить HEX-файл в микроконтроллер. В нашем случае результирующий файл будет Switch_LED.hex. Загрузка файла в микроконтроллер производится в следующем порядке:
а) Включите питание платы (выключатель POWER). Должен загореться зеленый светодиод.
б) Подключите ISP-кабель к программатору PX-400 и к плате MicroCamp.
Схема1 - Подключение программатора PX-400 к плате MicroCamp для загрузки программы:
Запустите программу AVRStudio, выбирайте пункт меню Tool - AVRProg
Должно появиться окно AVRprog
1. В окне AVRprog нажмите кнопку Browse для задания пути к файлу Switch_LED.hex или любому hex-файлу, предназначенному для загрузки.
2. Нажмите кнопку Program в группе Flash. Файл Switch_LED.hex будет загружен в микроконтроллер ATmega8 на плате MicorCamp.
Когда загрузка заканчивается, программа запускается автоматически. Нажимайте кнопки SW1 и SW2 на плате MicroCamp. Обратите внимание на состояние индикаторов LED.Индикатор LED будет включаться и выключаться при нажатии на кнопки и мигать когда кнопки не нажаты
Библиотеки и специализированные команды:
Библиотека это файл, содержащий одну или несколько схожих функций. Обычно, название библиотеки отражает назначение содержащихся в ней функций. Для использования библиотеки разработчик должен ее объявить в заголовке главной программы на языке 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: управление скоростью робота
Описание схемы:
У робота танковая система движения. Работают два независимых мотора и рулевые колеса.
По данной программе робот движется согласно графику скорости:
Описание программы:
Программа может задавать скорость движения вперед и назад, для обоих моторов одновременно и для каждого мотора в частности
#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 (б) показана электрическая схема датчика-кнопки и изображен датчик-кнопка
Использование сенсоров для роботов:
Контактный датчик - прибор для обнаружения препятствий при непосредственном контакте с объектом.
Обнаружение объектов это задание предназначено для изучения работы контактных детекторов, расположенных в передней части робота. После обнаружения столкновения, робот отъезжает назад и меняет направление движения
Детектор может находиться в двух состояниях.
· Когда кнопка не нажата, 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
Программа на С
#include<motor.h> //подключение библиотеки моторов
#include<stdlib.h> //подключение библиотеки преобразования данных
#include<sleep.h> //подключение библиотеки задержки времени
#include<analog.h>
#include<in_out.h> //подключение библиотеки вывода информации
main() //главная программа
{ //открытие главной программы
intsensor=0;
char i=0;
sleep(500);
while(1) //бесконечныйцикл
{
sensor=0;
for (i=0;i<5;i++)
{
sensor=(sensor+analog(4)); //считывание данных с датчика
}
sensor=(sensor/5); //усреднение
if (sensor>184) //до препятствия 14 сантиметров
{
s_left(60); //влево на 60% мощности
sleep(200); //пауза 0.2 секунды
}
else //если нет препятствий, то
{
forward(60); //вперед на 60% мощности
}
}}
Таким образом, мы рассмотрели работу инфракрасного бесконтактного датчика GP2D120. И написали программу на языке С для бесконтактного обнаружения объектов.
Задача 4: Движение за движущимся объектом.
Данная задача представляет собой усложненный вариант задачи 3. С тем условием, что роботу нужно будет двигаться за объектом, держась на расстоянии от него.
#include<stdlib.h>
#include <motor.h>
#include <sound.h>
#include <analog.h>
#include <in_out.h>
#include <sleep.h>
void main()
{
unsignedint sensor1,sensor2,sensor3;
unsigned char i=0;
sleep(200);
while(1)
{
sensor1=0; sensor2=0; sensor3=0;
for (i=0; i<5;i++)
{
sensor1=(sensor1+analog(2)); sensor2=(sensor2+analog(1)); sensor3=(sensor3+analog(0));
}
sensor1=(sensor1/5); sensor2=(sensor2/5); sensor3=(sensor3/5);
if(sensor2>225 && sensor2<250)
forward(0);
if(sensor2<205 )
forward(30);
if( sensor2>250)
forward(-30);
if(sensor1<205 && sensor2<205 &&sensor3>250 )
s_left(30);
if(sensor1>250 && sensor2<205 &&sensor3<205 )
s_left(-30);
}
}
Задача 5: Дистанционное управление
В данной задаче мы рассматриваем технику приема данных, используя пульт дистанционного управления ER-4.Пульт передает данные по последовательному каналу. Передаваемые данные моделируют несущую частоту 38 кГц. Робот должен быть оборудован ИК-приемником 38 кГц для демодулирования полученных данных.
Можно использовать пульт ER-4 для управления движением робота.
Пульт дистанционного управления ER-4
· Рабочая дистанция от 4х до 8ми метров на открытом пространстве.
· 4 кнопки для передачи команд
· Малое энергопотребление
· Питание от2.4-3.0 В от двух батареек АА
· Передача последовательных данных в соответствии со стандартом RS-232со скоростью 1200 bps в формате 8N1
ИК-приемник ZX-IRM
При передаче данных по ИК-каналу на большие расстояния(5...10м) используется несущая частота 38 кГц. Таким образом, приемник должен демодулировать несущую частоту 38 кГц. После этого передать последовательные данные в микроконтроллер. Если несущая частота 38 кГц отсутсвует, то на выходе будет логическая "1". В противном случае, если детектируется 38 кГц, то на выходе будет логический "0".
Программа на С
#include<motor.h>
#include<serial.h>
charkey;
voidmain()
{ uart_set_baud(1200);
while(1)
{
key=uart_getkey(20000);
if ((key=='a')||(key=='A'))
backward(50);
else if ((key=='d')||(key=='D'))
forward(50);
else if ((key=='с')||(key=='С'))
s_right(50);
else if ((key=='b')||(key=='B'))
s_left(50);
else
motor_off();
}
}
Список литературы
1. http://www.myrobot.ru/articles
2. http://microcamp.narod.ru/
3. http://webcache.googleusercontent.com/search?q=cache:EH8N8i4BxbQJ:guap.ru/guap/skb/docs/g1.doc+%D0%BC%D0%BE%D0%B1%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%80%D0%BE%D0%B1%D0%BE%D1%82&cd=15&hl=ru&ct=clnk&gl=ru
4. http://roboforum.ru/
5. http://www.itlicorp.com/news/tag/Робототехника/
6. Руководство пользователя MicroCamp: инструкция по сборке и программированию
Размещено на Allbest.ru
Подобные документы
Обзор схемы конструкции автоматизированного мобильного робота. Выбор компонентов конструкции. Общая классификация роботов; виды двигателей. Выбор типа микроконтроллера. Осуществление программирования на основе расчётов по математической модели робота.
курсовая работа [1,2 M], добавлен 20.05.2015Обзор существующих мобильных роботов и их виды: на гусеничном ходу, на колёсном ходу, стационарные. Разработка проекта совершенного мобильного робота для обезвреживания взрывоопасных объектов. Описание информационной системы для управления механизмом.
курсовая работа [2,6 M], добавлен 25.06.2013Назначение, технические характеристики промышленного робота МП20. Режимы работы робота и кинематическая схема. Приводные электродвигатели. Элементы электроавтоматики. Алгоритм управления следящим цифроаналоговым приводом. Интерфейс станочной магистрали.
курсовая работа [1,7 M], добавлен 15.04.2013Информационно-измерительные системы мобильных роботов. Системы технического зрения; дескриптивный подход к обработке, анализу и распознаванию изображений. Разработка программного обеспечения для создания СТЗ мобильного робота для ориентации в комнате.
дипломная работа [5,5 M], добавлен 10.05.2014Структура программного комплекса. Ввод информации из заданного файла. Создание набора данных. Добавление элементов в конец набора данных. Просмотр всех элементов набора данных. Копирование информации из НД в заданный файл. Сортировка массива по номерам.
курсовая работа [630,5 K], добавлен 01.06.2014Описание и технические характеристики объекта управления. Описание алгоритма функционирования промышленного робота. Описание цифровых характеристик габаритов и зоны действия. Определение используемых ресурсов и параметров инициализации микроконтроллера.
курсовая работа [685,9 K], добавлен 02.02.2016Описание программного комплекса, его структура и общая характеристика составных модулей. Механизм создания набора данных, поиск элементов по номеру. Методика просмотра элементов и вычисление среднего, минимума и максимума из заданного диапазона.
курсовая работа [239,6 K], добавлен 12.12.2013Классификация колесных наземных мобильных роботов. Обзор приводов мобильных платформ. Особенности стабилизации скорости мобильной платформы Rover 5 с дифференциальным приводом. Разработка алгоритмов управления на основе микроконтроллера Arduino.
курсовая работа [1,3 M], добавлен 04.05.2017История возникновения и развития современной робототехники, применение технологий искусственного интеллекта. Разработка структурной схемы системы навигации мобильного робота, коррекция траектории его движения, методы управления локальными перемещениями.
дипломная работа [1,1 M], добавлен 18.05.2011Проектирование устройства, выполняющего функцию определения минимального давления на основе информации о показаниях полученных от 7 датчиков. Разработка набора команд управления микроконтроллером в среде программного обеспечения Code Vision AVR.
курсовая работа [24,5 K], добавлен 28.06.2011