ArduBlock Программа блочного кодирования для платформ Arduino Arduino МОБИЛЬНЫЙ РОБОТ 30 проектов Инструкция по сборки робота Блочное программирование Дистанционное управление ardublock.ru ArduBlock МОБИЛЬНЫЕ РОБОТЫ NRF Bluetooth ik Bluetooth NRF ik ArduBlock | Technologies 2020 ArduBlock Компоненты Плата Arduino Uno ­ 2 шт. ПлатаСветодиоды 5мм ­ 1 шт. Активный зуммер ­ 1шт. TSOP1736 ­ 1шт. ИК модуль Пульт ­ 1 шт. HC­05 Bluetooth ­ 1 шт. 2,4G NRF24L01 ­ 2 шт. Драйвер L9110S DC ­ 1шт. Драйвер L298N ­ 1 шт. Ультрозвуковой дальномер ­ 1шт. Двухосевой XY джойстик ­ 1шт. Датчик линии ­ 2 шт. 2WD робот тележка ­ 1 шт. Плата расширения ­ 1 шт. Dupont кабель ­ 20 шт. Телефон Android ­ 1 шт. Ссылочки на компоненты с Aliexpress http://ardublock.ru/ali/?ali=3 Плата Arduino Uno ­ 2 шт. http://ardublock.ru/ali/?ali=6 Светодиоды 5мм ­ 1 шт. http://ardublock.ru/ali/?ali=20 Активный зуммер ­ 1шт. http://ardublock.ru/ali/?ali=21 TSOP1736 ­ 1шт. http://ardublock.ru/ali/?ali=25 Dupont кабель ­ 20 шт. http://ardublock.ru/ali/?ali=36 ИК модуль Пульт ­ 1 шт. http://ardublock.ru/ali/?ali=37 HC­05 Bluetooth ­ 1 шт. http://ardublock.ru/ali/?ali=40 2,4G NRF24L01 ­ 2 шт. http://ardublock.ru/ali/?ali=46 Драйвер L9110S DC ­ 1шт. http://ardublock.ru/ali/?ali=49 Драйвер L298N ­ 1 шт. http://ardublock.ru/ali/?ali=66 Ультрозвуковой дальномер ­ 1шт. http://ardublock.ru/ali/?ali=69 Двухосевой XY джойстик ­ 1шт. http://ardublock.ru/ali/?ali=116 2WD робот тележка ­ 1 шт. http://ardublock.ru/ali/?ali=32 Плата расширения ­ 1 шт. http://ardublock.ru/ali/?ali=141 Датчик линии ­ 2 шт. 1 ArduBlock Оглавление 1. Знакомство с ArduBlock и первый старт. 3 2. Моя первая программа: Мигающий светодиод. 4 8 3. Комплект Перво робота + Чертежи в масштабе 1:1. 10 4. Перво робот ­ Установка моторов на платформу робота. 11 5. Перво робот ­ Установка передних шасси. 12 6. Перво робот ­ Установка, платы Arduino UNO. 13 7. Перво робот ­ Установка отсека батареек на платформу робота. 14 8. Перво робот ­ Установка платы драйвера моторов + подключение. 15 9. Перво робот ­ Программа: Первые движения робота + скорость. 19 10. Перво робот ­ Программа: Движение робота по времени. 11. Робот дальномер ­ Установка дальномера на робота + подключение. 20 21 12. Робот дальномер ­ Программа: Ультра звуковая линейка. 13. Робот дальномер ­ Программа: Остановка робота при препятствии. 22 23 14. Робот дальномер ­ Программа: Робот охотник. Нападает на цель. 24 15. Робот дальномер ­ Программа: Поле Чудес. Крутим барабан. 25 16. Робот дальномер ­ Программа: Робот пылесос. 26 17. Робот лине ­ Установка лине сенсора на робота. 27 18. Робот лине ­ Программа: Робот боится чёрной линии. 28 19. Робот лине ­ Программа: Робот миноискатель. 29 20. Робот лине ­ Программа: Робот суммо. Битва роботов. 30 21. Робот лине ­ Программа: Робот ездит по линии. 31 22. Робот лине ­ Программа: Робот ездит по линии + остановка. 32 23. Управление роботом ­ Установка джойстика + Управление. 24. Управление роботом ­ Установка ik модуля + Сканируем код кнопок. 34 25. Управление роботом ­ Программа: Движение робота с кнопок пульта. 35 36 26. Управление роботом по Bluetooth. 39 27. Сборка джойстика ­ Пульт. 28. Сборка джойстика ­ Подключение джойстика и NRF к плате Arduino. 40 41 39. Сборка джойстика ­ Программа пульта. 30. Управление роботом ­ NRF к роботу, программа управление роботом. 42 2 ArduBlock Знакомство и первый старт 1. Скачайте Arduino IDE #ardu block 2. Установите Arduino IDE 3. Скачайте архив с библиотеками ArduBlock 4. Распакуйте архив в Мои документы → Arduino 5. Подключите плату Arduino к компьютеру через USB 6. Запустите Arduino IDE 7. В «Инструменты → Плата» выберите модель вашей платы 8. В «Инструменты → Порт» выберите порт COM 9. Откройте онлайн приложение ArduBlock http://ardublock.ru/ 10. Соберите программу из блоков 11. Для того чтобы скопировать код кликните скопировать код 12. Перейдите в программу Arduino IDE 13. Замените код. Кликните на рабочее поле, Control + A, Control + V, 14. Нажмите «Загрузить» на панели инструментов. 15. Программа компилируется и загружается на плату Arduino. Копировать код Удалить все блоки Сохранить ino файл Загрузить проект Сохранить проект Язык Библиотеки Основной блок Блоки Масштаб: Центр Увеличить Уменьшить Корзина 3 ArduBlock Моя первая программа Установите светодиод на плату Arduino. Длинная нога светодиода это плюс в 13 pin. Минус светодиода в GND. Напишем программу ­ Мигающий светодиод. Откроем онлайн приложение ArduBlock. ­ + Моя первая программа на Arduino ­ Мигающий светодиод. lock #ardub Перед нами основной блок и две глобальные функции. Функция настройки ­ Производит настройки программы, устанавливает подключение и тд. Выполняется только один раз и только при включении питания платы Arduino. Функция программа ­ Это основная часть программы, здесь и собирается, бесконечно выполняемая программа. Программа выполняется бесконечно, пока на плату Arduino, подаётся питание. Включим светодиод! В меню блоков открываем раздел Модули выхода ­ Светодиод Светодиод Установите блок светодиод в основной блок программы и измените Pin 1 на Pin 13 Сигнал включить. 4 ArduBlock Моя первая программа Если загрузить нашу программу на плату Arduino, то мы увидим простое свечение светодиода. А наша цель добиться мигания светодиода так что продолжаем, работать над программой. При мигании светодиода, Мы в начале включаем светодиод на какое то время и потом отключаем его на определённое время, и так бесконечно, пока на плату будет подаваться питание. Переходим в Меню блоков Время ­ Системное ­ Миллисекунды. Установим блок Миллисекунд 1000 = 1 секунда, после включения светодиода. Читаем программу: Бесконечно Светодиод будет включён на 1 секунду Светодиод включен на 1 секунду, теперь отключим светодиод. Создадим дубликат блока (клик правой кнопкой мыши откроется меню) Дублировать 5 Моя первая программа Измените сигнал светодиода, Отключить. ArduBlock Установите блок Светодиод отключен после времени включения. Отключим светодиод так же на 1 секунду или 1000 миллисекунд. Дублируем блок Миллисекунд и установим после отключения светодиода. Читаем программу: Бесконечно Светодиод будет включён на 1 секунду Отключаем светодиод на 1 секунду Всё это находится в бесконечном цикле программы и выполняться будет бесконечно пока на плату подаётся питание. 6 ArduBlock Моя первая программа Загрузим программу на плату Arduino. Клик Копировать код. 1 Код находится в буфере обмена Открываем программу Arduino IDE Выделяем всё (CTRL+A), Вставляем код (CTRL+V) 4 Загрузить 2 Выделить всё (CTRL+A) Вставить код (CTRL+V) 3 Программа загрузиться на плату Arduino, Светодиод мигает. Поздравляю тебя с первой программой на Arduino! 7 ArduBlock Комплект перво робота Основа робота: 1 шт. Крепление моторов: 4 шт. Винты m3x30mm: 4 шт. Гайки m3: 4 шт. Масштаб 1:1 mm. Перечерчено: Для ЧПУ или печати на 3D принтере. 8 ArduBlock Комплект перво робота Колесо: Мотор редуктор: Стойки m3x10: Передние шасси: 2 шт. 2 шт. 8 шт. 1 шт. Болты m3x5,6: 16 шт. Плата Arduino Uno: 1 шт. Драйвер моторов: Драйвер моторов: 1 шт. 1 шт. или L9110S Отсек для батареек: 1 шт. АА АА АА АА 9 L298N Провода: 12 шт. ArduBlock Установка моторов на платформу 1. Установите центральные держатели моторов на платформу робота: 2.Подготовьте Винт m3x30, второй держатель, мотор: 3. Установите сборку: мотор с держателем к первому держателю на платформе. 4. Закрутите гайки. Для удобной работы переверните платформу робота. 5.Установите колёса. 10 ArduBlock Установка передних шасси 1. Прикрутите 4 стойки m3x10 на шасси болтами m3x5,6. 2. Прикрутите собранные шасси к платформе робота болтами m3x5,6. Шасси робота установлены. 11 Установка платы Arduino UNO ArduBlock 1. Прикрутите 2 стойки m3x10 на плату болтами m3x5,6. 2. Установите плату Arduino на робо ­ платформу. 3. Зафиксируйте плату Arduino на робо ­ платформе, болтами m3x5,6. 12 ArduBlock Установка отсека батареек 1. Прикрутите 2 стойки m3x10 на отсек батареек, болтами m3x5,6. 2. Прикрутите отсек батареек, к платформе, болтами m3x5,6. Вкл/Выкл 3. Отсек батареек установлен. 4. Подключение: Батарея Плата + (плюс) +5v ­ (минус) GND 13 ArduBlock Установка драйвера моторов 1. Установите драйвер моторов на основу робота. Вкл/Выкл Вкл/Выкл 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 8 9 10 11 12 13 2. Подключите драйвер моторов к плате Arduino. ML MR 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Motor B 0 1 2 3 4 5 6 7 VIN GND GND +5V 8 9 10 11 12 13 14 Motor A VIN GND GND +5V Первые шаги робота с L298N 1. Движение робота: Вперёд. 2. Движение робота: Назад. ArduBlock L R L R L R L R L R 3. Движение робота: На право. 4. Движение робота: На лево. 5. Остановка робота. 15 Первые шаги робота с L9110S 1. Движение робота: Вперёд. 2. Движение робота: Назад. ArduBlock В А В А В А В А В А 3. Движение робота: На лево. 4. Движение робота: На право. 5. Остановка робота. 16 ArduBlock Функции движения робота 1. Для удобной работы с движением робота, создадим функции движения: 2.Переименуйте название функции 3.Forward Движение робота вперёд 4.Back Движение робота назад 5.Left Движение робота на лево 6.Right Движение робота на право 7.Stop Остановка робота 8.Функции: L9110S 17 ArduBlock Функции движения робота 1. Для удобной работы с движением робота, создадим функции движения: 2.Переименуйте название функции 3.Forward Движение робота вперёд 4.Back Движение робота назад 5.Left Движение робота на лево 6.Right Движение робота на право 7.Stop Остановка робота 8.Функции: L298N 18 ArduBlock Движение робота по времени В 1. Движение робота по времени: Каждую минуту робот выполняет действие. А В А А В В А А В 2. Функция движение вперёд 3. Движение вперёд на 1 секунду 4. Поворот на право 5. На право 1 секунду (время поворота подбирается при тестировании робота) 19 Установка ультразвукового дальномера ArduBlock 1. На кусочек двух сторонней липкой ленты, приклейте конектокры. 2. Установите дальномер. 3. Приклейте дальномер к отсеку батареек. Вкл/Выкл 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +5V pin3 ­ Trig pin4 ­ Echo GND 4. Подключите дальномер к плате Arduino UNO. 20 ArduBlock Ультразвуковая звуковая линейка 1. Установите предмет перед роботом. 1 СМ 2 СМ 3 СМ 4 СМ 5 СМ 6 СМ 7 СМ 2. Отправим полученные значения монитор последовательного порта: Установим скорость общения монитора порта Каждый раз с новой строки будем отображать значения с ультразвукового дальномера: Период обновления отправки значения поставим 200 мс. 3. Откроем монитор последовательного порта: Посмотрим на результат. Скорость: 21 Остановка робота при препятствии ArduBlock 1. Если значение на дальномере будет меньше 10, то остановка робота. STOP 10 СМ 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) 3. Все полученные значения будем отправлять в монитор com порта. 4. Если значение на ультразвуковом дальномере будет меньше 10, то остановка робота, “а если ложно” то: иначе робот едет вперёд. 22 ArduBlock Робот охотник, нападает на цель 1. Если значение на дальномере будет меньше 10, робот начинает движение. STOP 10 СМ 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) 5 6 7 8. Если значение меньше 10, то движение вперёд, если нет то остановка. 3 9 4 23 ArduBlock Робот, крутит барабан, ПолеЧудес 1. Если значение на дальномере будет меньше 10, робот начинает движение. 100 р уб Игра: lock #ardub START 500 руб 10 СМ STOP уб 50 р 0 руб 20 lock #ardub 0р уб 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) 3. Если значение на Ультразвуковом дальномере будет меньше 10, то робот начинает разворот, с случайным значением временем от 2 до 5 секунд. 24 ArduBlock STOP 10 Переменна для хранения поворота 10 СМ STOP 10 СМ Робот, пылесос 10 СМ 25 ArduBlock Установка лине сенсора на робота L R pin А4 +5V GND pin А5 +5V GND 1 или 1023 m3 m3x40 Вкл/Выкл L 0 1 2 3 4 5 6 7 8 9 10 11 12 13 R 26 0 ArduBlock Робот боится чёрной линии 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) 3. Если один из датчиков линии зафиксировал чёрную линию то производим разворот робота, иначе продолжаем движение дальше, до препятствия. L R 27 ArduBlock Робот ­ Миноискатель 1. Установите Зуммер на робота. 2. Зуммер будет сигнализировать о нахождении чёрной метки на столе. Зуммер + GND STOP ПИП + 11pin + 0 1 2 3 4 5 6 7 8 9 10 11 12 13 + #ardub lock Если на один из датчиков линии попала чёрная метка то Робот останавливается Подаёт сигнал Проезжает метку И снова движется по спирали в поиске новой метки Новая функция для движения робота по спирали. Выберите свой драйвер! 28 ArduBlock Робот ­ Суммо 1. Робот выталкивает стаканчики за чёрную линию. 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) 4. Робот касается чёрной линии. Движение назад. 3. Робот выталкивает стаканчик за предел поля. 2. В поле зрения робота попала цель: Стаканчик. 1. Робот крутится в поиске цели. 29 5. Робот снова в поиске новой цели. ArduBlock Робот ­ Движение по линии 1. Робот движется по чёрной линии. 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) 3 этап ч б откл вкл ч б вкл Левый датчик линии pin A4 S ­ A0­A5 V ­ +5V G ­ GND вкл 2 этап откл Правый датчик линии pin A5 вкл б б 1 этап А5 30 Робот ­ Движение по линии + остановка ArduBlock 1 этап вкл 1. Робот движется по чёрной линии, если есть препятствие то остановка. 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) откл 2 этап ч б вкл откл 3 этап ч вкл б б б вкл STOP А5 31 ArduBlock Вкл/Выкл Робот ­ Подключение джойстика GND ­ GND Vcc ­ +5V X ­ Pin A1 Y ­ Pin A0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 X ­ Pin A1 = 0 Y ­ Pin A0 = 500 X ­ Pin A1 = 500 Y ­ Pin A0 = 1023 1. Прочитаем значения с А0 и А1. 2. Отправим полученные значения в монитор порта. 32 X ­ Pin A1 = 500 Y ­ Pin A0 = 0 X ­ Pin A1 = 1023 Y ­ Pin A0 = 500 ArduBlock Робот ­ Управление с джойстика Оси джойстика 1. Функция движения робота стр 17­18. (Выбор драйвера моторов) X ­ Pin A1 = 0 Y ­ Pin A0 = 500 X ­ Pin A1 = 500 Y ­ Pin A0 = 1023 2. Проверяем каждую ось и выполняем действие. STOP X ­ Pin A1 = 500 Y ­ Pin A0 = 0 X ­ Pin A1 = 1023 Y ­ Pin A0 = 500 X ­ Pin A1 = 0 X ­ Pin A1 = 1023 Y ­ Pin A0 = 0 Y ­ Pin A0 = 1023 STOP 33 ArduBlock Робот ­ Управление с пульта Вкл/Выкл 1. Установите ik модуль на плату Arduino. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 GND ­ GND Vcc ­ +5V S ­ Pin 11 2. Отправим значение c ik в Serial USB и посмотрим под каким кодом каждая кнопка на пульте. Выпишите код каждой 16712445 ck ardublo # кнопки для дальнейшего использования. Код кнопок 16769055 16754775 каждого пульта отличается. 16750695 16748655 34 ArduBlock Робот ­ Управление с пульта 16712445 16769055 16750695 lock #ardub Вкл/Выкл 16754775 16748655 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Код кнопки 35 Робот ­ Управление по Bluetooth 1. Подключение Bluetooth модуля к Arduino. ArduBlock 0 1 2 3 4 5 6 7 8 9 10 11 12 13 2. Отправим полученные значения в Монитор порта с Bluetooth модуля. 36 Робот ­ Управление по Bluetooth ArduBlock 1. Установите приложение Bluetooth Arduino на телефон. Ссылочка на приложение: http://ardublock.ru/index.php?id=ru­041 2. Запустите приложение: Поиск Клик Введите напротив кнопок цифры Настройки 37 Робот ­ Управление по Bluetooth ArduBlock 1. Откройте монитор последовательного порта. Клик на кнопки в приложении. 2. Напишем программу управления роботом. 38 ArduBlock Робот ­ Управление по NRF 1. Пульт: Масштаб 1:1 mm. Перечерчено: Для ЧПУ или печати на 3D принтере. 39 Робот ­ Управление по NRF 1. Установите джойстик на основание Пульта: ArduBlock 2. Подключите джойстик и NRF модуль к плате Arduino: 1 ­ GND ­ GND 2 ­ Vcc ­ +3.3V 3 ­ pin9 4 ­ pin10 5 ­ pin13 6 ­ pin11 7 ­ pin12 3.3v GND ­ GND Vcc ­ +5V X ­ Pin A1 Y ­ Pin A0 9v 3. Установите плату Arduino на основу пульта. 40 ArduBlock Робот ­ Управление по NRF Оси джойстика 1. Напишем программу для пульта. 1 X ­ Pin A1 = 500 Y ­ Pin A0 = 1023 4 STOP 0 X ­ Pin A1 = 0 Y ­ Pin A0 = 500 STOP X ­ Pin A1 = 1023 Y ­ Pin A0 = 500 2 STOP 41 3 X ­ Pin A1 = 500 Y ­ Pin A0 = 0 ArduBlock Робот ­ Управление по NRF 0 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ­ GND ­ GND 2 ­ Vcc ­ +3.3V 3 ­ pin7 4 ­ pin8 5 ­ pin13 6 ­ pin11 7 ­ pin12 3.3v 1. Подключаем NRF к роботу. 2. Функция движения робота стр 17­18. (Выбор драйвера моторов) Архив с программами и 3d моделями: http://ardublock.ru/book/002a.zip 42 ArduBlock Для заметок 43 ArduBlock Для заметок 44 ArduBlock Для заметок 45 ArduBlock Программа блочного кодирования для платформ Arduino Мобильный робот на платформе Arduino 30 проектов Издатель: ArduBlock Сайт: ardublock.ru Автор: Виталий Николаевич Эл.почта: ardublock@mail.ru