- •Введение:
- •Назначение и область применения
- •Обобщенная структурная схема робота
- •Технические характеристики мобильного робота
- •Механическая часть робота MicroCamp
- •Электронная часть
- •Особенности Atmega8
- •Назначение выводов микроконтроллера Atmega8
- •Программное обеспечение для набора MicroCamp
- •Шаги программирования робота
- •Библиотеки и специализированные команды:
- •Программа на с
- •Программа на с
- •Список литературы:
Программа на с
#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. С тем условием, что роботу нужно будет двигаться за объектом, держась на расстоянии от него.
начало
S1=0 s2=0 s3=0
да нет
S2>225&&S2<250
S2<205
да н
Forward(0)
етда
Forward(30)
S2>250
нетForward(-30)
S1<205&&S2<205&&S3<250
да нет
S_left(30)
s1>250&&s2<205 &&s3<205
да нет
S_left(30)
КОНЕЦ
#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».