роботы
робототехника
микроконтроллеры
Главная
Как сделать робота
Новости
Спорт
Статьи
Wiki
Форум
Downloads
Ссылки
Контакты  

Простейший робот
Схема и описание простого робота на одной микросхеме. Робот может двигаться на свет или следовать за рукой.  

Схема и описание первого проекта на микроконтроллере AVR
"Hello, world!" для микроконтроллера.  

Робот на микроконтроллере AVR
Схема робота на микроконтроллере. Примеры программ.  

ПРОСТОЙ РОБОТ НА МИКРОКОНТРОЛЛЕРЕ (Часть 3)



Робот для соревнований.


Робот для соревнований Кегельринг Следующим экспериментом с датчиком, реагирующим на отраженный свет, будет робот, движущийся в пределах области, ограниченной черной линией.

Схема робота останется такой же, как во второй части статьи "Простой робот на микроконтроллере: Робот с фотодатчиком".

Алгоритм, использованный в этом роботе, будет представлять собой следующую последовательность движений. Находясь на белом поле, робот будет двигаться вперед до тех пор, пока не наткнется на черную границу. Наткнувшись на линию, робот отъедет назад и повернется на небольшой угол. Затем алгоритм повторится.


/**********************************************************
ПРИМЕР 5 :: РОБОТ ДЛЯ СОРЕВНОВАНИЙ КЕГЕЛЬРИНГ :: MYROBOT.RU
***********************************************************/ 

#define F_CPU 1000000UL  // указываем частоту в герцах

#include <avr/io.h>
#include <util/delay.h>

int main(void) // начало основной программы
{
  
   DDRC = 0xff; // все выводы порта C сконфигурировать как выходы
   DDRD = 0x00; // все выводы порта D сконфигурировать как входы


   PORTD = 0xff; // установить "1" на всех выводах порта D,
		 // включаем подтягивающие резисторы

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

		// ПРОВЕРЯЕМ СИГНАЛ НИЗКОГО УРОНЯ ОТ ФОТОДАТЧИКА

		if (!(PIND & (1<<PIND1))) // проверить "0" на линии 1 порта D
		{
            		// -------------- включаем моторы вперед ---------------

            		PORTC |= _BV(PC0); // установить "1" на линии 0 порта C
            		PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
            		PORTC |= _BV(PC3); // установить "1" на линии 3 порта C
            		PORTC &= ~_BV(PC2); // установить "0" на линии 2 порта C

            		// -----------------------------------------------------
		}
		else
		{
                        // ------------------ отъезд назад ------------------
                        // -------- включаем моторы назад на 1,8 сек --------

                        PORTC &= ~_BV(PC0); // установить "0" на линии 0 порта C
                        PORTC |= _BV(PC1); // установить "1" на линии 1 порта C
                        PORTC &= ~_BV(PC3); // установить "0" на линии 3 порта C
                        PORTC |= _BV(PC2); // установить "1" на линии 2 порта C

                        _delay_ms(1800); // ждем 1,8 сек.

                        // --------------------------------------------------

                        // --------------------- поворот --------------------
                        //  правый мотор вперед, левый мотор стоп на 0,6 сек 

            		PORTC |= _BV(PC0); // установить "1" на линии 0 порта C
            		PORTC &= ~_BV(PC1); // установить "0" на линии 1 порта C
            		PORTC |= _BV(PC3); // установить "1" на линии 3 порта C

                        _delay_ms(600); // ждем 0,6 сек.

                        // --------------------------------------------------
		}


        } // закрывающая скобка бесконечного цикла

} // закрывающая скобка основной программы



Соревнования Кегельринг

   Смысл соревнования состоит в том, чтобы робот за наиболее короткое время, не выходя за пределы круга, очерчивающего ринг, вытолкнул расположенные в нем кегли.

   Диаметр ринга - 1 метр. Цвет ринга - белый, цвет ограничительной линии - черный. На ринге устанавливается 8 кеглей. Перед началом соревнования робот помещается в центр ринга.

Робот должен быть включен или инициализирован вручную в начале состязания по команде судьи, после чего в его работу нельзя вмешиваться.

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

Кегля считается вытолкнутой, если никакая ее часть не находится внутри круга, ограниченного линией.

Максимальная ширина робота - 20 см, длина - 20 см. Высота робота не ограничена.
Соревнования на Российской Олимпиаде Роботов


Данного робота можно использовать на соревнованиях "Кегельринг". Сделайте белый круглый ринг, ограниченный черной линией около 50 мм шириной (именно такая ширина ограничительной линии используется на соревнованиях "Кегельринг"). Внутренний диаметр круга - 1 метр. Ринг может быть сделан из листов белого ватмана. Расставьте в круге 8 кеглей (используйте в качестве кеглей пустые жестяные банки объемом 0,33 л. из-под напитков).

Кегельринг


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

Наиболее выигрышной будет конструкция робота с установленным спереди заборником. Он необходим для того, чтобы робот "захватывал" попавшиеся ему на пути кегли. Заборник должен быть вынесен вперед относительно датчика настолько, чтобы робот, подъезжая к ограничительной линии, мог полностью вытолкнуть кеглю с ринга.

Настройка робота для соревнований "Кегельринг" является увлекательнейшим занятием, а сами соревнования одними из самых азартных и зрелищных.

Желаем Вам успехов!


Как выглядит робот, собранный в точном соответствии с приведенной схемой, на соревнованиях Кегельринг, вы можете посмотреть на видеоролике в режиме он-лайн или скачать видеофайл.

В России соревнования роботов "Кегельринг" проводятся на Открытом робототехническом турнире на Кубок Политехнического музея.

Официальный регламент соревнований можно прочитать здесь.





myROBOT.ru Это оригинальная статья myROBOT.ru
Постоянный адрес статьи: http://myrobot.ru/stepbystep/r_firstbot3.php




Файлы:

Схемы роботов (версии для печати в фомате PDF).


Видео с роботами, сделанными по приведенной схеме:

ROBOChannel Робот "HexoCraft".
http://www.youtube.com/user/ROBOchannel#p/u/3/5eWsCI6ACQI
Соревнования роботов Кегельринг на Всероссийском робототехническом фестивале (26 июня 2009 г.) - "золотая" медаль.

Робот "Монстр".
http://www.youtube.com/user/ROBOchannel#p/u/5/z7G2M4MfeMk
Соревнование роботов Кегельринг на Открытом робототехническом турнире на Кубок Политехнического музея (9 января 2009 г.) - 1 место (12.39 сек. - официальный рекорд в Кегельринге, продержавшийся до 11 октября 2009 г.).

Робот "Slim".
http://www.youtube.com/user/ROBOchannel#p/u/4/iw_BXX8eNjE
Соревнование роботов Кегельринг на Открытом робототехническом турнире на Кубок Политехнического музея (9 января 2009 г.). - 2 место (12.44 сек).



Datasheets:

Описание микросхемы управления двигателем L293D (англ.).
L293D.pdf

Описание микроконтроллера ATmega8 (англ.).
ATmega8.pdf

Для просмотра необходим Adobe Acrobat Reader     Скачать Acrobat Reader






Статьи раздела
РОБОТЫ

Все статьи курса
Простой робот на микроконтроллере (Часть 1).
Управляем электромоторами.


Простой робот на микроконтроллере (Часть 2).
Робот с фотодатчиком.


Простой робот на микроконтроллере (Часть 3).
Робот для соревнований.


Простой робот на микроконтроллере (Часть 4).
Как сделать робота, объезжающего препятствия.









Copyright © myrobot.ru, 2005-2023


Яндекс.Метрика   Рейтинг@Mail.ru