"Botbase"

учитель детских курсов

Реализация различных видов движения мобильной платформы на языке С++

Тема. Реализация различных видов движения на языке C++
Цель: реализовать движение мобильной платформы во всех возможных направлениях. Для каждого направления написать отдельную функцию.

План:

1. Переменные

2. Функции

Теоретическая часть

1. Переменные

Как и в Skretch, переменные в С++ представляют собой некоторые области памяти, которые имеют имя и могут принимать различные значения. В Skretch все переменные создаются одинаково, не учитывая какие данные будут храниться в этой переменной: целое значение, дробное значение, true false, текст. В С++ при создании переменной так же указывается и тип данных, которые будут храниться в этой переменной. В общем виде объявление переменной выглядит следующим образом:

тип_данных имя_переменной;

Основные типы данных перечислены ниже:
int - целые значения
bool - false/true
double - вещественные числа(с добной частью после запятой, например 3.14)
char - символьный тип.

Таким образом объявление (создание) целочисленной переменной с именем a будет выглядеть так: int a;
Задать (присвоить) значение можно при объявлении: int a=10;
Или в любом месте программы после объявления: а=10;

 

учитель детских курсов

Переход с языка Skretch на язык C++

Цель: начать осваивать программирование в среде Arduino. Научиться работать с цифровыми портами.

План урока

1. Описание среды Arduino
2. Основные функции

Теоретическая часть

1. Описание среды Arduino

Для программирования плат Arduino существует специальная интегрированная среда разработки IDE Arduino. Рассмотрим внешний вид программы(рис 1).

IDE Arduino

Рисунок 1 - Внешний вид IDE Arduino

учитель детских курсов

Робототехническая смена в Лагере Бойко.

Приглашаем всех желающих присоединиться к робототехнической смене Boteon в летнем лагере Бойко!

 летняя школа робототехники

В этой смене школьники всех возрастов смогут приобщиться к сфере робототехники. Для младших школьников ( 1 - 4 классы ) будут преподаваться основы информатики и они смогут запрограммировать роботов LEGO Mindstorms. Дети, начиная с пятого класса, будут изучать основы программирования, конструирования, лектроники и схемотехники. В зависимости от уровня подготовки дети поделятся на две группы, которые будут заниматься такими проектами, как мобильная платформа и робот-собака. Оба проекта базируются на аппаратной вычислительной платформе Arduino.

 

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

 

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

 

учитель детских курсов

Реализация движения мобильной платформы во всех направлениях

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

Порядок выполнения работы:

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

вперед

Рисунок 1 - Организация движения вперед

2. По нажатии стрелки вниз мобильная платформа должна двигаться назад. 

учитель детских курсов

Урок 11 - Работа с последовательным портом со стороны платы

План

1. Работа с последовательным портом
2. Основные функции
3. Пример программы

Теоретическая часть

1. Работа с последовательным портом

Для связи компьютера с платой Arduino существует последовательный порт обмена данными(UART). Для обмена данными искользуется USB порт и цифровые порты ввод/вывода 0 (RX) и 1 (TX).
Важно! При работе с последовательным портом выводы 0 и 1 не могут использоваться для других целей.
Для работы с последовательным интерфейсом IDE Arduino имеет Монитор порта (Serial monitor). Внешний вид монитора порта изображен на рисунке 1.

учитель детских курсов

Управление движением мобильной платформы с помощью клавиатуры

Цель урока: реализовать управление мобильной платформой с помощью клавиатуры. Когда нажата клавиша Вверх, мобильная платформа едет вперед, когда нажата клавиша Вниз — назад. Если ничего не нажато - неподвижна.

Порядок выполнения задания:

1. Создаем стандартную структуру программы, состоящую из блока начала и блока «Всегда». Внутри блока «Всегда» вставляем блок «Если» . В группе Сенсоры есть блок «Клавиша нажата?» Блок возвращает значение ИСТИНА, если заданная клавиша нажата и ЛОЖЬ в обратном случае. С помощью этого блока задаем действия, которые должны выполняться при нажатой клавише вниз ( двигатель вращается назад).

обработка нажатия клавиши вниз

Рисунок 1 — Реализация движения назад при нажатой клавише вниз

учитель детских курсов

Урок 9-10. Установка ноги собаки в точку с заданными координатами.

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

Последовательность выполнения задания:
1. В программу для Arduino берем функции two_angles() и rad_to_microsec() из программы, написанной на прошлом занятии. Создаем объекты типа Servo и привзываем серводвигатели к пинам, с помощью функции attach().

#include
Servo myServo[2];
int pin[2]={2,4};

void setup ()
{
myServo[0].attach(pin[0]);
myServo[1].attach(pin[1]);
}
int rad_to_micro(float q1)
{
int x;
x=1856*q1/3.14;
return x;
}
void two_angles(double L1, double L2, double x, double y,int leg)
{
/*
Q1 - угол между вертикалью и первым звеном
Q2 - угол между продолжением звена 1 и звеном 2
*/
float B;
float const Pi=3.1415;
B=sqrt(pow(x,2)+pow(y,2));
if (x>0)
q[0]=asin(y/B)-asin((pow(L1,2)+pow(B,2)-pow(L2,2))/(2*L1*B));
if (x<=0)
q[0]=Pi/2+acos(y/B)-asin((pow(L1,2)+pow(B,2)-pow(L2,2))/(2*L1*B));
q[1]=(Pi/2)+asin((pow(L1,2)+pow(L2,2)-pow(B,2))/(2*L1*L2));
}
void loop ()
{
}

учитель детских курсов

Урок 8. Создание мобильной платформы

План:

1. Описание мобильной пллатформы
2. Написание программы

Теоретическая часть

1. Описание мобильной пллатформы

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

мобильная платформа

Рисунок 1 - Модель мобильной платформы

учитель детских курсов

Завершение создания игры "Кроты" на шесть светодиодов и пять кнопок

Создание программы «Кроты»

На данном уроке завершается создание проекта «Кроты», начатого на прошлых уроках. Смысл игры заключается в том, что через случайный промежуток времени (от 0.5с до 1с) зажигается случайный светодиод и горит секунду. За это время нужно успеть нажать находящуюся под ним кнопку. Когда кнопка была нажата светодиод гаснет и загорается зеленый светодиод, который сигнализирует о попадании. Установка состоит из пяти кнопок, которые управляют пятью светодиодами и одного зеленого сигнального светодиода. Расположение элементов изображено на рисунке 1.

установка для Кротов

Рисунок 1 – Расположение установки для проекта «Кроты»

Последовательность действий:

1. Возьмем за основу шаблон, который созданный на прошлом уроке. В нем изначально выключаются все светодиоды, потом случайным образом генерируется номер светодиода led, который нужно зажечь и время delay, через которое будет зажигаться светодиод. Далее зажигается светодиод, соответствующий переменной led. Шаблон изображен на рисунке 2.

шаблон для игры

Рисунок 2 – Заготовка для программы «Кроты»

учитель детских курсов

Расширение прототипа игры "Кроты" на шесть светодиодов

На данном уроке начинаем расширять двухкнопочный прототип игры «Кроты», начатого на прошлых уроках на 5 кнопок и светодиодов. Смысл игры заключается в том, что через случайный промежуток времени (от 0.5с до 1с) зажигается случайный светодиод и горит секунду. За это время нужно успеть нажать находящуюся под ним кнопку. Когда кнопка была нажата светодиод гаснет и загорается зеленый светодиод, который сигнализирует о попадании. Установка состоит из пяти кнопок, которые управляют пятью светодиодами и одного зеленого сигнального светодиода. Расположение элементов изображено на рисунке 1.

расположение элементов

Рисунок 1 – Расположение установки для проекта «Кроты»

Последовательность действий:

1. Начинаем программу с блока «Когда щелкнут по» и прикрепляем к нему снизу блок «Всегда». Изначально нам нужно погасить все светодиодов. Справа налево светодиоды подключены к следующим портам: первый к 10 цифровому, второй к 11 цифровому, 3 к 12 цифровому, 4 к аналоговому пятому, 5 к аналоговому шестому и 6 к аналоговому девятому. Тушим светодиоды, подключенные к цифровым портам с помощью блока digital … off, а те, которые подключены к аналоговым с помощью блока analog … value 0. Данный участок программы изображен на рисунке 2.

Страницы:
1
2 3 4