Программирование с использованием набора R:ED X EDU
Создание проектов
11.47M

lekcia-no2.4-s-prakticeskim-zadaniem

1. Программирование с использованием набора R:ED X EDU

Лекция № 2.4
Программирование
с использованием
набора R:ED X EDU

2.

2
Здравствуйте!
Дорогие слушатели курса, я тренер
компании R:ED. На данной лекции
мы познакомимся с программированием,
используя набор по робототехнике
R:ED X EDU.

3.

3
ПРОГРАММИРОВАНИЕ —
это процесс создания и модификации алгоритма действий для модели проекта.
Программирование основывается на использовании языков программирования
и средств программирования. В основном, языки программирования основаны
на текстовом представлении программ, но иногда программировать можно,
используя, например, визуальное блочное программирование.

4.

4
СРЕДА ПРОГРАММИРОВАНИЯ
R:ED CODE 3
R:ED Code —
визуальная событийно-ориентированная среда
программирования, созданная для детей
и подростков. Программное обеспечение
содержит библиотеки функций, изображенных
в виде иконок, из которых перетаскиванием
мыши можно составлять блок-схемы и писать
простые или сложные программы.

5.

5
ИНТЕРФЕЙС СРЕДЫ ПРОГРАММИРОВАНИЯ R:ED CODE 3
1
2
3
4
11
5
6
7
12
14
8
10
9
13
1. Выбор языка
2. Название проекта (сохраненного
файла)
3. Открытие | Загрузка | Сохранение
проекта
4. Переход в личный кабинет |
Информация о версиях ПО и ОС
5. Компиляция и загрузка прошивки
в контроллер | Открытие и закрытие
окна консоли | Программная
перезагрузка контроллера
6. Выбор порта для работы
с контроллером
7. Меню выбора группы блоков
8. Выбранные блоки для создания кода
9. Поле для создания кода из блоков
10. Поиск кода на поле |
Масштабирование поля |
Корзина с удаленными блоками
11. Выбор режима программирования
блоками или вручную на языке C/С++
12. Поле создания текстового кода
13. Окно консоли
14. Запуск консоли | Очистка консоли

6.

6
ГРУППЫ БЛОКОВ ДЛЯ СОЗДАНИЯ КОДА В R:ED CODE 3
— Группа блоков для создания основы кода, добавления условий, циклов, задержек и т.д.
— Группа блоков для создания операторов и взаимодействия с ними.
— Группа блоков для работы с текстом.
— Группа блоков для создания переменных и взаимодействия с ними.
— Группа блоков для создания функций и взаимодействия с ними.
— Группа блоков создания алгоритмов для работы с исполнителями.
— Группа блоков создания алгоритмов для работы с устройством R:ED X Display v1.0.
— Группа блоков создания алгоритмов для работы с датчиками.
— Группа блоков для взаимодействия с консолью.
— Группа блоков создания алгоритмов для работы с устройством R:ED X Wireless module v1.0.

7.

7
ГРУППА БЛОКОВ «УПРАВЛЕНИЕ»
Запускает
алгоритм действий
при инициализации
контроллера
Главный цикл
программы
Настраиваемая
задержка
выполнения
программы
Цикл с настраиваемым
количеством
повторений
Условие
Бесконечный цикл
с условием выхода
Условие
Прерывание или
повторение цикла
Бесконечный цикл

8.

8
ГРУППА БЛОКОВ «ОПЕРАТОРЫ»
Константа
Преобразование
дробных чисел
в целое/округление
Операторы
сравнения
Вызов функции генерации
случайного числа
Задание диапазона
сравнения
Математические
операторы
Набор логических
значений
Логические операторы

9.

9
ГРУППА БЛОКОВ «ТЕКСТ»
Текстовая
константа
Возвращает
количество
символов
в заданном тексте
Выделить из текста
подстроку
с заданных позиций
Преобразует
указанное
значение в текст
Преобразовать все
буквы в тексте
в заглавные
или строчные
Найти первое/последнее
вхождение указанной строки
в тексте
Заменить указанную
строку в тексте
на другую
Удалить пробелы
в начале и/или конце
текстовой строки

10.

10
ГРУППА БЛОКОВ «ПЕРЕМЕННЫЕ»
Выбор типа переменной | Добавление
переменной в код программы
Интерфейс создания
переменной
Изменение значения
выбранной переменной
Присваивание значения
выбранной переменной

11.

11
ГРУППА БЛОКОВ «ФУНКЦИИ»
Создание функции
Вызов функции

12.

12
ГРУППА БЛОКОВ «ИСПОЛНИТЕЛИ»
Блок остановки
моторов
Блок для работы с мотором
Блок для работы с энкодером
Блок для работы с RGB-светодиодом
Блок для работы с зуммером
Блок для работы с сервомотором

13.

13
ГРУППА БЛОКОВ «ДИСПЛЕЙ»
Блок заливки
дисплея
Блок регулировки
яркости дисплея
Блок создания окружности на дисплее
Вызов функции RGB565
для преобразования цвета
из цветовых компонент в число
Блок создания прямоугольника на дисплее
Блок вывода изображения
на дисплей
Блок создания текста на дисплее
Блок создания линии на дисплее

14.

14
ГРУППА БЛОКОВ «ДАТЧИКИ»
Блок для работы
с ультразвуковым датчиком
Блок для работы
с ИК датчиком
(A — аналоговый)
Чтение значения
цифрового выхода
Блок для работы
с датчиком цвета (A)
Блок для работы
с датчиком нажатия
Блок для работы с джойстиком
Возвращает время
в миллисекундах, прошедшего
с момента запуска контроллера
Чтение значения
аналогового выхода
Блок для работы с ИК
датчиком (D — цифровой)
Блок для работы
с акселерометром
Запись цифрового значения
в выбранный порт

15.

15
ГРУППА БЛОКОВ «КОНСОЛЬ»
Вывод в консоль
Проверка наличия введенных
символов с консоли

16.

16
ГРУППА БЛОКОВ «BLUETOOTH»
Инициализация Bluetooth-модуля
в роли Ведомого устройства
Функция
отправки данных
Признак наличия
необработанных данных
Инициализация Bluetooth-модуля
в роли Ведущего устройства
Функция получения
необработанных данных
Функция обратного
вызова (Callback)
обработки данных
Bluetooth-модуля

17.

17
ПРИМЕР ПРОЕКТА
С ИСПОЛЬЗОВАНИЕМ КОНТРОЛЛЕРА
Для проекта вам потребуется:
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Порядок действий при создании проекта:
Подключите контроллер к ПК с помощью кабеля USB Type C.
Запустите ПО R:ED Code 3 v1.1.0 на своём ПК. Создайте код,
как показано в примере, с помощью блоков или с помощью
окна создания кода C/С++. Нажмите на кнопку компиляции
и обновления прошивки контроллера. Запустите консоль.
#include <Arduino.h>
void setup() {
}
Результаты проекта:
Данный алгоритм действий будет циклично выводить
в консоль фразу «Hello, R:D!» с периодичностью
в 1 секунду.
void loop() {
Serial.println("Hello, R:D!");
delay(1000);
}
Блочный код
Код на C/С++

18.

18
ПРИМЕР ПРОЕКТА
С ИСПОЛЬЗОВАНИЕМ МОТОРА
Для проекта вам потребуется:
6 элементов питания типа ААА (общее напряжение
должно составлять от 5В до 12В)
R:ED X Motor v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
#include <Arduino.h>
#include <Motors.h>
Порядок действий при создании проекта:
Установите элементы питания в контроллер. Подключите мотор
к порту M1 контроллера. Подключите контроллер к ПК
с помощью кабеля USB Type C. Запустите ПО R:ED Code 3 v1.1.0
на своём ПК. Создайте код, как показано в примере, с помощью
блоков или с помощью окна создания кода C/С++. Нажмите
на кнопку компиляции и обновления прошивки контроллера.
Результаты проекта:
Данный алгоритм действий будет циклично запускать мотор
против часовой стрелки на 1 секунду, затем — по часовой
стрелке на 1 секунду.
void setup() {
motorsInit();
}
void loop() {
M1(FORWARD, 1000);
delay(1000);
M1(BACKWARD, 1000);
delay(1000);
}
Блочный код
Код на C/С++

19.

19
ПРИМЕР ПРОЕКТА
С ИСПОЛЬЗОВАНИЕМ СЕРВОМОТОРА
Для проекта вам потребуется:
R:ED X Servomotor v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
#include <Arduino.h>
#include <Servo.h>
Servo servoD1;
Порядок действий при создании проекта:
Подключите сервомотор к порту D1 контроллера. Подключите
контроллер к ПК с помощью кабеля USB Type C. Запустите ПО
R:ED Code 3 v1.1.0 на своём ПК. Создайте код, как показано
в примере, с помощью блоков или с помощью окна создания
кода C/С++. Нажмите на кнопку компиляции и обновления
прошивки контроллера.
void setup() {
servoD1.attach(D1);
}
void loop() {
servoD1.write(-180);
delay(1000);
servoD1.write(180);
delay(1000);
}
Результаты проекта:
Данный алгоритм действий будет циклично запускать установку
выходного вала сервомотора на угол -180 градусов с ожиданием
в 1 секунду, затем — на угол 180 градусов с ожиданием
в 1 секунду.
Блочный код
Код на C/С++

20.

20
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
ДАТЧИКА ЛИНИИ (D)
Для проекта вам потребуется:
R:ED X Servomotor v1.0 1 шт.
R:ED X IR sensor (D) v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
#include <Arduino.h>
#include <IR.h>
#include <Servo.h>
IR ir_D1;
Servo servoD2;
Порядок действий при создании проекта:
Подключите сервомотор к порту D2, а датчик линии — к порту
D1 контроллера. Подключите контроллер к ПК с помощью
кабеля USB Type C. Запустите ПО R:ED Code 3 v1.1.0 на своём
ПК. Создайте код, как показано в примере, с помощью блоков
или с помощью окна создания кода C/С++. Нажмите на кнопку
компиляции и обновления прошивки контроллера.
Результаты проекта:
Данный алгоритм действий будет циклично запускать установку
выходного вала сервомотора на угол -180 градусов при
срабатывании датчика на отражающую поверхность, иначе
будет запускаться установка выходного вала сервомотора
на угол 180 градусов.
void setup() {
ir_D1.attachDigital(D1);
servoD2.attach(D2);
}
void loop() {
if(ir_D1.readDigital() == WHITE) {
servoD2.write(-180);
}
else {
servoD2.write(180);
}
}
Блочный код
Код на C/С++

21.

21
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
ДАТЧИКА ЛИНИИ (A)
Для проекта вам потребуется:
R:ED X IR sensor (A) v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Порядок действий при создании проекта:
Подключите датчик линии к порту A1 контроллера. Подключите
контроллер к ПК с помощью кабеля USB Type C. Запустите ПО
R:ED Code 3 v1.1.0 на своём ПК. Создайте код, как показано
в примере, с помощью блоков или с помощью окна создания
кода C/С++. Нажмите на кнопку компиляции и обновления
прошивки контроллера. Запустите консоль.
#include <Arduino.h>
#include <IR.h>
IR irA1;
void setup() {
irA1.attachAnalog(A1);
}
void loop() {
Serial.println(irA1.readAnalog());
delay(1000);
}
Результаты проекта:
Данный алгоритм действий будет циклично выводить в консоль
значения с датчика линии с периодичностью в 1 секунду.
Блочный код
Код на C/С++

22.

#include <Arduino.h>
#include <RGB.h>
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
RGB-СВЕТОДИОДА
Для проекта вам потребуется:
R:ED X RGB LED v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Порядок действий при создании проекта:
Подключите вход R RGB-светодиода к порту А1 контроллера.
Подключите контроллер к ПК с помощью кабеля USB Type C.
Запустите ПО R:ED Code 3 v1.1.0 на своём ПК. Создайте код,
как показано в примере, с помощью блоков или с помощью
окна создания кода C/С++. Нажмите на кнопку компиляции
и обновления прошивки контроллера.
RGB rgbA1A2A3;
void setup() {
rgbA1A2A3.R.attach(A1);
rgbA1A2A3.G.attach(A2);
rgbA1A2A3.B.attach(A3);
}
void loop() {
rgbA1A2A3.R.write(1000);
rgbA1A2A3.G.write(0);
rgbA1A2A3.B.write(0);
delay(1000);
rgbA1A2A3.R.write(0);
rgbA1A2A3.G.write(0);
rgbA1A2A3.B.write(0);
delay(1000);
}
Код на C/С++
Результаты проекта:
Данный алгоритм действий будет циклично запускать излучение
красного светодиода на 1 секунду, затем выключать светодиод
на 1 секунду.
Блочный код
22

23.

23
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
ЗУММЕРА
Для проекта вам потребуется:
R:ED X Buzzer v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Порядок действий при создании проекта:
Подключите зуммер к порту D1. Подключите контроллер к ПК
с помощью кабеля USB Type C. Запустите ПО R:ED Code 3 v1.1.0
на своём ПК. Создайте код, как показано в примере, с помощью
блоков или с помощью окна создания кода C/С++. Нажмите
на кнопку компиляции и обновления прошивки контроллера.
#include <Arduino.h>
#include <Tone.h>
void setup() {
}
void loop() {
tone(D1, 1000);
delay(1000);
noTone(D1);
delay(1000);
}
Код на C/С++
Результаты проекта:
Данный алгоритм действий будет циклично запускать излучение
звуковой волны на 1 секунду, затем выключать зуммер
на 1 секунду.
Блочный код

24.

24
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
УЛЬТРАЗВУКОВОГО ДАТЧИКА
#include <Arduino.h>
#include <Ultrasonic.h>
Для проекта вам потребуется:
R:ED X Ultrasonic sensor v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Ultrasonic usD1D2;
Порядок действий при создании проекта:
Подключите выводы T и E ультразвукового датчика
к портам D1/D2 контроллера. Подключите контроллер
к ПК с помощью кабеля USB Type C. Запустите ПО R:ED
Code 3 v1.1.0 на своём ПК. Создайте код, как показано
в примере, с помощью блоков или с помощью окна
создания кода C/С++. Нажмите на кнопку компиляции
и обновления прошивки контроллера. Запустите консоль.
void loop() {
Результаты проекта:
Данный алгоритм действий будет циклично выводить
в консоль значение с ультразвукового датчика
с периодичностью в 1 секунду.
void setup() {
usD1D2.attachEcho(D1);
usD1D2.attachTrig(D2);
}
Serial.println(usD1D2.readDistance());
delay(1000);
}
Код на C/С++
Блочный код

25.

25
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
ДАТЧИКА НАЖАТИЯ
Для проекта вам потребуется:
R:ED X Button sensor v1.0 1 шт.
R:ED X Motor v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
#include <Arduino.h>
#include <Button.h>
#include <Motors.h>
Button buttonD1;
void setup() {
buttonD1.attach(D1);
motorsInit();
}
Порядок действий при создании проекта:
Подключите датчик нажатия к порту D1, а мотор — к порту M1
контроллера. Подключите контроллер к ПК с помощью кабеля
USB Type C. Запустите ПО R:ED Code 3 v1.1.0 на своём ПК.
Создайте код, как показано в примере, с помощью блоков
или с помощью окна создания кода C/С++. Нажмите на кнопку
компиляции и обновления прошивки контроллера.
void loop() {
if(buttonD1.isPressed()) {
M1(FORWARD, 1000);
}
else {
M1(FORWARD,0);
M2(FORWARD,0);
M3(FORWARD,0);
M4(FORWARD,0);
}
}
Результаты проекта:
Данный алгоритм действий будет циклично запускать вращение
мотора против часовой стрелки при срабатывании датчика
нажатия, иначе будет останавливаться моторы.
Блочный код
Код на C/С++

26.

26
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
ДАТЧИКА ЦВЕТА
Для проекта вам потребуется:
R:ED X Color sensor v1.0 1 шт.
R:ED X Controller v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Порядок действий при создании проекта:
Подключите датчик цвета к порту I2C контроллера.
Подключите контроллер к ПК с помощью кабеля USB
Type C. Запустите ПО R:ED Code 3 v1.1.0 на своём ПК.
Создайте код, как показано в примере, с помощью блоков
или с помощью окна создания кода C/С++. Нажмите
на кнопку компиляции и обновления прошивки
контроллера. Запустите консоль.
#include <Arduino.h>
#include <Color.h>
Color colorSensor;
void setup() {
}
void loop() {
Serial.println(colorSensor.get_R());
delay(1000);
}
Результаты проекта:
Данный алгоритм действий будет циклично выводить
в консоль значение красной компоненты датчика цвета
с периодичностью в 1 секунду.
Блочный код
Код на C/С++

27.

#include <Arduino.h>
#include <Bluetooth.h>
#include <Joystick.h>
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
BLUETOOTH-МОДУЛЯ (ЧАСТЬ 1)
Для проекта вам потребуется:
R:ED X Wireless module v1.0 2 шт.
R:ED X Controller v1.0 2 шт.
R:ED X Motor v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
27
String _bt_data;
boolean bt_data_available = false;
void _bt_callback() {
msgType type =
bt_module.get_msg_type();
if (type == DATA_MODE) {
_bt_data = bt_module.get_data();
bt_data_available = true;
}
}
void setup() {
joystickInit();
bt_module.init("RED1", "1", MASTER);
bt_module.set_slave_name("RED2");
bt_module.set_callback(_bt_callback);
bt_module.begin();
Порядок действий при создании проекта
(Настройка контроллера в роли Ведущего):
Подключите Bluetooth-модуль к порту UART контроллера.
Подключите контроллер к ПК с помощью кабеля USB Type C.
Запустите ПО R:ED Code 3 v1.1.0 на своём ПК. Создайте код,
как показано в примере, с помощью блоков или с помощью
окна создания кода C/С++. Нажмите на кнопку компиляции
и обновления прошивки контроллера.
}
Блочный код для
Ведущего контроллера
void loop() {
if(joystick_get_center_state() ==
PRESSED) {
bt_module.send_data("START");
delay(10);
}
if(joystick_get_center_state() ==
RELEASED) {
bt_module.send_data("STOP");
delay(10);
}
}
Код на C/С++

28.

#include <Arduino.h>
#include <Bluetooth.h>
#include <Motors.h>
ПРИМЕР ПРОЕКТА С ИСПОЛЬЗОВАНИЕМ
BLUETOOTH-МОДУЛЯ (ЧАСТЬ 2)
Порядок действий при создании проекта
(Настройка контроллера в роли Ведомого):
Подключите второй Bluetooth-модуль к порту UART, мотор —
к порту M1 второго контроллера. Подключите контроллер
к ПК с помощью кабеля USB Type C. Запустите ПО R:ED Code 3
v1.1.0 на своём ПК. Создайте код, как показано в примере,
с помощью блоков или с помощью окна создания кода C/С++.
Нажмите на кнопку компиляции и обновления прошивки
контроллера. Перезагрузите оба контроллера, дождитесь,
пока светодиоды на контроллерах перестанут моргать.
String _bt_data;
boolean bt_data_available = false;
void _bt_callback() {
msgType type = bt_module.get_msg_type();
if (type == DATA_MODE) {
_bt_data = bt_module.get_data();
bt_data_available = true;
}
}
String bt_get_data() {
bt_data_available = false;
return _bt_data;
}
void setup() {
motorsInit();
bt_module.init("RED2", "1", SLAVE);
bt_module.set_callback(_bt_callback);
bt_module.begin();
}
Результаты проекта:
Данный алгоритм действий будет запускать вращение
мотора против часовой стрелки на ведомом контроллере
после нажатия на центральную кнопку джойстика ведущего
контроллера и останавливать мотор, когда кнопка
будет отпущена.
Блочный код для
Ведомого контроллера
28
void loop() {
if(bt_data_available) {
if(bt_get_data() == "START") {
M1(FORWARD, 1000);
}
if(bt_get_data() == "STOP") {
M1(FORWARD,0);
M2(FORWARD,0);
M3(FORWARD,0);
M4(FORWARD,0);
}
}
}
Код на C/С++

29. Создание проектов

Практическая работа
Создание
проектов

30.

30
ОПИСАНИЕ ЗАДАНИЯ
Для успешного выполнения практической работы необходимо создать три проекта в
ПО R:ED Code по заданному описанию. Проекты разделены по сложности:
Простой – 3 балла
Средний – 6 баллов
Сложный – 9 баллов
Задание считается выполненным, если вы набрали не менее 9 баллов

31.

31
ПРОЕКТ «МЕТРОНОМ» - 3 балла
Для проекта вам потребуется:
R:ED X Controller v1.0 1 шт.
R:ED X Servomotor v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Описание проекта:
Балка, закрепленная на сервомотор, совершает колебания от -60о до
+60о с одинаковой частотой. Колебания должны происходить с
одинаковым интервалом.
Результаты проекта:
Файл/Скриншот с готовым кодом и видео-подтверждение работающего
проекта

32.

32
ПРОЕКТ «УСКОРЕНИЕ» - 6 баллов
Для проекта вам потребуется:
R:ED X Controller v1.0 1 шт.
R:ED X Motor v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Описание проекта:
Мотор повышает скорость с постоянным шагом с 0 до 1000, затем
скорость снижается с 1000 до 0 с тем же шагом.
Результаты проекта:
Файл/Скриншот с готовым кодом и видео-подтверждение работающего
проекта

33.

33
ПРОЕКТ «СВЕТОФОР» - 9 баллов
Для проекта вам потребуется:
R:ED X Controller v1.0 1 шт.
R:ED X RGB LED v1.0 1 шт.
R:ED X Ultrasonic sensor v1.0 1 шт.
Кабель USB Type C 1 шт.
ПК 1 шт.
Описание проекта:
Цвет RGB-светодиода изменяется в зависимости от значений ультразвукового датчика: от
зелёного (препятствие далеко) к жёлтому (препятствие приближается), если препятствие
вплотную – цвет меняется на красный
Результаты проекта:
Файл/Скриншот с готовым кодом и видео-подтверждение работающего проекта

34.

!
После прослушивания лекции
необходимо пройти тестирование
и выполнить практическую работу
English     Русский Rules