Робот крокодил (по мотивам Lego WeDo на Arduino)

Источник вдохновения — робот крокодил из набора LEGO Education 9580 WeDo.
Робот ждёт с открытой пастью, если в неё засунуть какой-то предмет — закрывает пасть.

Наш вариант робота сильно отличается от WeDo, но основная мысль близкая: робот собирается вместе с ребёнком, ему должно быть интересно и в процессе ребёнок получит полезные знания и навыки:

  • конструирование и творчество (cборка крокодила из кирпичиков Lego)
  • механника: передача движения от мотора к челюсти крокодила.
  • электричество : полярность, ток, проводники.
  • знакомство с элементами роботостроения: контроллер, датчик, мотор.
  • геометрия: угол, мера угла (для работы с сервоприводом)
  • программирование (создание программы в блочном виде и загрузка её в Ардуино)

При создании робота использовались:

Программное обеспечение:

  • Arduino IDE
  • Плагин Ardublock (плагин блочного программирования для Arduino)
  • Сайт code.org (для обучения базовым навыкам программирования)

1. Конструируем тело крокодила с открывающимся ртом.

 

 

2. Добавляем в конструкцию датчик и мотор.

В качестве датчика присутствия использован датчик линии, т.к. он довольно распространён, к тому же он у меня был, чувствительности его хватило для этой задачи, плюс встроеная подсветка делает крокодила интересней.  Выбором места размещения датчика и ширины открытия пасти подбираем оптимальный вариант срабатывания датчика (для проверки достаточно лишь запитать датчик — при срабатывании загорается светодиод на датчике).

Датчик просто зажат между деталями лего, и держится на своем месте.
Сервоприод SG-90 я приклеил суперклеем к пластинке лего, теперь он лего-совместимый.

 

 

3. Собираем корпус контроллера

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

 

 

4. Подключаем к Arduino

Батарейку подключаем к +Vin и GND, тумблер устанавливаем в разрыв плюсового провода.
Датчик подключаем к +5V, GND и входу «8».
Сервопривод SG-90 тоже подключим к внутреннему питанию, он маломощный и преобразователя на плате Arduino будет достаточно чтобы его прокормить: +5V, GND и выход «9».

 

5. Пишем программу

Нужно объяснить ребёнку что такое программирование. Для начала хорошы игры на составление и выполнение алгоритмов вроде «управление папой-роботом» и наоборот «ребёнок-робот». Дальше мы использовали сайт code.org (замечательный проект, всем советую) для обучения блочному программированию.
Затем прицепляем к Arduino IDE плагин Ardublock и ребёнок(с вашей помощью) пишет программу в привычном блочном виде. О плагине Ардублок я узнал из статьи на Гиктаймс. У меня получилось некоторое расхождение с данными автора при установке: файл плагина ardublock-all.jar нужно было поместить не в Документы, а в место установки Ардуино (Program Files (x86)\Arduino\tools\ArduBlockTool\tool\), файл переименовывать не обязательно.

Вот простейший вариант программы:

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

Отправляя алгоритм в ардуино получаем такой скетч:

#include <Servo.h>
Servo servo_pin_9;

void setup()
{
 pinMode( 8 , INPUT);
 servo_pin_9.attach(9);
 servo_pin_9.write( 100 );
 delay( 1000 );
}

void loop()
{
 if (digitalRead(8))
 {
 servo_pin_9.write( 0 );
 delay( 1000 );
 servo_pin_9.write( 100 );
 delay( 1000 );
 }
}


6. Готово.

Играем. Пишем другие версии алгоритма поведения крокодила.

Ниже на видео демострация работы робота в одной из вариаций.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *