Оглавление:

Серво-робот, управляемый Arduino (SERB): 7 шагов (с изображениями)
Серво-робот, управляемый Arduino (SERB): 7 шагов (с изображениями)

Видео: Серво-робот, управляемый Arduino (SERB): 7 шагов (с изображениями)

Видео: Серво-робот, управляемый Arduino (SERB): 7 шагов (с изображениями)
Видео: Вагнеровцы после обороны Бахмута #shorts 2024, Ноябрь
Anonim
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)
Серво-робот, управляемый Arduino (SERB)

Что может быть лучше для начала экспериментов с микроконтроллерами с открытым исходным кодом (Arduino), чем создание собственного робота с открытым исходным кодом (CC (SA -BY))? Что делать с вашим SERB?

  • (здесь) - Как подключить SERB к Интернету и управлять им по видеозвонку Skype.
  • (здесь) - Как контролировать свой SERB с помощью акселерометров нунчака Wii
  • (здесь) - Как добавить роботу усы для обнаружения препятствий
  • (здесь) - Как сделать 30 комплектов (Открытое производство)

Функции:

  • Полностью программируется с помощью микроконтроллера Arduino Duemilanove (или другого микроконтроллера по вашему выбору).
  • Паять не нужно.
  • Выбор вариантов резки акриловых деталей. (спиральная пила, доступ к лазерному резчику, покупка предварительно нарезанных деталей)
  • Легко расширяется и модифицируется с помощью дополнительных отверстий для болтов и прилагаемой макетной платы.
  • Заднее колесо с двойным шарикоподшипником.
  • Готовность к работе 1-2 часа. (из комплекта)
  • Дизайн с открытым исходным кодом (создавайте сколько угодно)

(Shameless Plug) В Великобритании и любите вещи Arduino? ознакомьтесь с нашим недавно открывшимся интернет-магазином oomlout.co.uk Быстрое видео с завершенным серво-роботом, управляемым Arduino - (SERB) запускает прилагаемую тестовую программу (шаг 6). Как сделать серво-робот, управляемый Arduino - (SERB)

Шаг 1. Детали и инструменты

Запчасти и инструменты
Запчасти и инструменты

Все болты можно найти на местном складе товаров для дома. Остальные детали можно найти в Интернете (я добавил ссылку на свой любимый источник для каждого из них). Список деталей: комплект, содержащий все элементы оборудования, можно приобрести в магазине oomlout.com (здесь) (120 долларов США). Гайки и болты:

  • Болт 3 мм x 15 мм (x20)
  • Болт 3 мм x 10 мм (x12)
  • Гайка 3 мм (x34)
  • Шайба 3 мм (x12)
  • Болт 8 мм x 25 мм (2 шт.)
  • Гайка 8 мм (2 шт.)
  • Подшипники для коньков (x2) (VXB) (это стандартные подшипники для коньков, поэтому их можно восстановить с помощью пары роликовых коньков или скейтборда)

Шины

  • Большое уплотнительное кольцо (4,5 "ID 3/16" Bead Dash # 349) (x2) (McMaster-Carr Product # 9452K407)
  • Маленькое уплотнительное кольцо (3/4 "ID 3/16" Bead Dash # 314) (x1) (McMaster-Carr Product # 9452K387)

Электроника

  • Arduino Duemilanove (x1) (Мастерская)
  • Сервопривод непрерывного вращения (x2) (параллакс)
  • 400 контактных макетов (x1) (вся электроника))
  • Ящик для четырех батареек AA (x1) (вся электроника)
  • Зажим аккумулятора 9 В (x1) (вся электроника)
  • Штекер 2,1 мм (x1) (вся электроника)
  • 3-контактный разъем (x2) (вся электроника)
  • USB-кабель A-B - тип принтера (x1) (вся электроника) (не входит в комплект)

Батареи:

  • Батарейка AA (x4) (в комплект не входит)
  • Батарея 9 В (x1) (не входит в комплект)

Проволока: (весь прочный провод 22 AWG, я покупаю свой через McMaster-Carr)

  • 15 см фиолетовый (x2)
  • 15 см черный (x1)
  • 5 см черный (x2)
  • 5 см красный (x2)

Инструменты

  • Отвертка (x1) (Philips)
  • Игольчатые плоскогубцы (1 шт.)

Шаг 2: нарезка деталей

Режущие части
Режущие части
Режущие части
Режущие части
Режущие части
Режущие части
Режущие части
Режущие части

Пожалуйста, выберите шаги в зависимости от выбранного вами варианта резки. Вариант 1 (Покупка предварительно нарезанных деталей)

Купите предварительно нарезанное шасси в магазине oomlout.com (здесь) (60 долларов США, включая доставку в США и Канаду)

Вариант 2 (цифровое производство (например, Ponoko) / доступ к лазерному резаку)

  • Загрузите макет лазерного резака («03 SERB Ponoko Cutting Layout P2.eps» или «03- (SERB) -Ponoko Cutting Layout (P2).cdr»)
  • Вырежьте файлы с помощью Ponoko или вашего собственного лазерного резака (с использованием акрила 3 мм, 0,118 дюйма (иногда продается как.125))

Вариант 3 (спиральная пила и дрель)

  • Загрузите и распечатайте шаблон PDF (пожалуйста, выберите файл, соответствующий размеру вашей бумаги) 03- (SERB) -ScrollSaw Pattern (letter).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (важно не масштабировать рисунок при печати)
  • Измерьте линейку на распечатке по линейке, которой вы доверяете, если они не совпадают с шаблоном, был масштабирован, и вам нужно проверить настройки вашего принтера перед повторной печатью. Если они совпадают, вперед.
  • Приклейте узор к акриловому листу (3 мм, 0,118 дюйма (иногда продается как 0,125 дюйма).
  • Просверлите отверстия.
  • Вырезание деталей с помощью спиральной пилы

Шаг 3: Сборка

сборка
сборка
сборка
сборка
сборка
сборка

Поздравляем с выполнением этого этапа. 90% процесса завершено, просто загрузите инструкции по сборке на этом этапе (04- (SERB) -Assembly Guide.pdf), и после небольшой сборки в стиле лего / механо вы будете готовы к подключению. Чтобы развлечь вас по пути, вот промежуток времени моего собрания:

Шаг 4: Подключение

Проводка
Проводка
Проводка
Проводка

Собрав все большие части вместе, пришло время добавить маленькие электрические жилы, которые позволят управлять нашим роботом. Для этого загрузите и распечатайте электрическую схему (05- (SERB) -Wiring Diagram.pdf). На первый взгляд это может показаться довольно устрашающим, однако, если вы выполняете каждое подключение последовательно и не торопитесь, все получается замечательно быстро. Проводка довольно проста, и никакой вред вашей цепи не может быть нанесен, пока вы не добавите батареи. Так что подключите все, дважды проверьте это, затем добавьте мощность.

Шаг 5. Тестирование и устранение неполадок

Тестирование и устранение неисправностей
Тестирование и устранение неисправностей

Если вы заказали комплект, ваш Arduino поставляется с предустановленной тестовой программой. Просто вставьте 4 батарейки AA и подключите батарею 9 В к Arduino. И если все было сделано правильно, ваш робот начнет движение (он повернется в случайном направлении в течение времени от 0,1 до 1 секунды, а затем двинется вперед на случайное время от 1 до 2 секунд, затем остановится на 2 секунды перед повторным запуском). Если вы не приобрели комплект, потребуется дополнительный шаг. Загрузите прикрепленный zip-файл (07- (SERB) - SERB-Test Arduino Program.zip). Затем распакуйте его в папку с эскизами Arduino (по умолчанию «Мои документы / Arduino \») и загрузите на свою плату Arduino. (если вы новичок в Arduino, сделайте шаг вперед, где есть ссылки на отличные руководства по началу работы) Общие проблемы: Мой SERB движется медленно, когда его нужно остановить. Это результат того, что ваши сервоприводы не откалиброваны совсем правильно, чтобы откалибровать сервоприводы, подождите, пока ваша программа остановит сервоприводы, затем с помощью небольшой отвертки поверните потенциометр внутри сервопривода (маленькое отверстие в корпусе сервопривода чуть выше того места, где). Поворачивайте его влево или вправо до полной остановки сервопривода. Что-то не работает должным образом. Отправьте нам электронное письмо с вашими симптомами, и мы постараемся помочь вам, пока вы ждете ответа, дважды проверьте все свои провода с помощью схемы подключения из шага 4. Если у вас возникнут какие-либо проблемы, пожалуйста, добавьте комментарий в это руководство или отправьте электронное письмо по адресу [email protected], и мы сделаем все возможное, чтобы помочь вам заставить ваш SERB работать

Шаг 6: программирование

Программирование
Программирование

Физический робот готов, пора начать давать ему мозг. Прежде чем мы перейдем к деталям программирования серво-робота, управляемого Arduino - (SERB) - несколько ссылок на отличные ресурсы по программированию Arduino в Интернете. Руководство для начинающих по Arduino - Руководство чтобы помочь вам начать работу с Arduinos, от загрузки среды программирования до написания вашей первой программы. Arduino Programming Reference - Полное простое справочное руководство по языку программирования Arduino. How Servos Work - Краткое руководство по работе сервомоторов. Arduino Servo Library. - Как работает библиотека Arduino Servo (как мы управляем сервоприводами). Хорошо, изучив, давайте приступим к программированию. Есть три способа начать программирование вашего серво-робота, управляемого Arduino - (SERB). Вариант 1: (Изменение SERB_Test.pde) Иногда при программировании проще всего взять рабочую программу и начать добавлять к ней свой собственный код. Для этого загрузите заархивированную программу SERB_Test (07- (SERB) - SERB-Test Arduino Program.zip). Распакуйте его в папку с эскизами Arduino (по умолчанию «Мои документы / Arduino \»). Наконец, откройте среду программирования Arduino и загрузите ее на свой Arduino. Код хорошо прокомментирован. (Или скопируйте и вставьте код из приложения на этом этапе в новый эскиз Arduino) Вариант 2: (Добавление подпрограмм SERB к вашей программе) Добавьте несколько простых подпрограмм к вашей уже существующей программе (например, goForward (), setSpeed (int) и т. д.). Для этого загрузите подпрограммы в текстовый файл (07- (SERB) - Simple Routines Text.txt). 1. Скопируйте и вставьте преамбулу в начало вашей программы. Скопируйте и вставьте рутинную часть в тело вашей программы. Добавить вызов serbSetup (); в подпрограмму setup (). Вариант 3: (Создание собственной программы с нуля) Это не так уж сложно. Все, что требуется, - это ознакомиться с библиотекой сервоприводов Arduino. Затем правый сервопривод подключается к выводу 9, а левый сервопривод - к выводу 10. Примечание: здесь будут добавляться дополнительные программы по мере их разработки; или если вы что-то разрабатываете и хотите, чтобы это было представлено, отправьте мне личное сообщение, и это можно будет добавить. Приложение: (Код SERB_Test.pde)

/ * * Arduino Controlled Servo Robot (SERB) - Тестовая программа * Для получения более подробной информации посетите: https://www.oomlout.com/serb * * Поведение: простая тестовая программа, которая заставляет SERB * случайным образом поворачиваться влево или вправо для * случайного периода времени от 0,1 до 1 секунды. * Затем SERB будет двигаться вперед в течение случайного * периода времени от 1 до 2 секунд. Наконец * пауза на 2 секунды перед повторным запуском. * * Подключение: правый серво сигнал - контакт 9 * левый серво сигнал - контакт 10 * * Лицензия: эта работа находится под лицензией Creative Commons * Attribution-Share Alike 3.0 Unported License. Чтобы * просмотреть копию этой лицензии, посетите * https://creativecommons.org/licenses/by-sa/3.0/ * или отправьте письмо в Creative Commons, 171 Second * Street, Suite 300, Сан-Франциско, Калифорния 94105, * СОЕДИНЕННЫЕ ШТАТЫ АМЕРИКИ. * * / // --------------------------------------------- ----------------------------- // НАЧАЛО УПРАВЛЯЕМОГО ARDUINO SERVO ROBOT (SERB) ПРЕАМБУЛА # include #define LEFTSERVOPIN 10 #define RIGHTSERVOPIN 9Servo leftServo; Servo rightServo; int speed = 100; // устанавливает скорость робота (обоих сервоприводов) // в процентах от 0 до 100 // КОНЕЦ СЕРВОРОБОТА, УПРАВЛЯЕМОГО ARDUINO (SERB), ПРЕАМБУЛА // ---------------- -------------------------------------------------- -------- / * * устанавливает контакты в соответствующие состояния и присоединяет сервоприводы. Затем делает паузу * на 1 секунду перед запуском программы * / void setup () {serbSetup (); // устанавливает состояние всех необходимых // выводов и добавляет сервоприводы в ваш скетч randomSeed (analogRead (0)); // устанавливает начальное число случайного числа с // некоторой слегка случайной задержкой (1000);} / * * поворачивает робота влево или вправо (случайным образом) на период от * 0,1 до 1 секунды. Перед переходом вперед на случайный период времени * от 1 до 4 секунд. Перед двухсекундной паузой и повторным запуском *. * / Void loop () {turnRandom (100, 1000); // Поворачивает в случайном порядке влево или вправо в течение // произвольного периода времени от.1 секунды // до одной секунды goForwardRandom (1000, 2000); // Перемещение вперед на случайный период времени // между // 1 и 2 секундами goStop (); // Останавливает задержку робота (2000); // останавливается на 2 секунды (пока остановлен)} / * * поворачивает робота случайным образом влево или вправо в течение случайного периода времени между * minTime (миллисекунды) и maxTime (миллисекунды) * / void turnRandom (int minTime, int maxTime) {int выбор = случайный (2); // Случайное число для выбора // между левым (1) и правым (0) int turnTime = random (minTime, maxTime); // Случайное число для паузы // время if (choice == 1) {goLeft ();} // Если случайное число = 1, повернуть // налево else {goRight ();} // Если случайное число = 0, то поворот // задержка вправо (turnTime); // задержка на случайное время} / * * идет вперед на случайный период времени между minTime (миллисекунды) * и maxTime (миллисекунды) * / void goForwardRandom (int minTime, int maxTime) {int forwardTime = random (minTime, maxTime); // определяем случайное время для // движения вперед goForward (); // устанавливает задержку пересылки SERB (forwardTime); // задержки на случайный период времени} // ---------------------------------------- -------------------------------- // НАЧАЛО РАБОТЫ УПРАВЛЯЕМОГО СЕРВОРОБОТА ARDUINO (SERB) / * * настраивает ваш arduino для обращения к вашему SERB с помощью включенных подпрограмм * / void serbSetup () {setSpeed (speed); pinMode (ЛЕФТСЕРВОПИН, ВЫХОД); // устанавливает левый вывод сигнала серво // на вывод pinMode (RIGHTSERVOPIN, OUTPUT); // устанавливает правый вывод сигнала серво // на вывод leftServo.attach (LEFTSERVOPIN); // присоединяет левый сервопривод rightServo.attach (RIGHTSERVOPIN); // подключает правый сервопривод goStop ();} / * * устанавливает скорость робота между 0- (остановлен) и 100- (полная скорость) * ПРИМЕЧАНИЕ: скорость не изменит текущую скорость, вы должны изменить скорость * затем вызвать ее методов go до внесения изменений. * / void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // если скорость больше 100 // сделать 100 if (newSpeed <= 0) {newSpeed = 0;} // если скорость меньше 0, делаем // 0 скорость = newSpeed * 0.9; // масштабирует скорость // от 0 до 90} / * * отправляет робота вперед * / void goForward () {leftServo.write (90 + speed); rightServo.write (90 - скорость);} / * * отправляет робота назад * / void goBackward () {leftServo.write (90 - скорость); rightServo.write (90 + скорость);} / * * отправляет робота вправо * / void goRight () {leftServo.write (90 + скорость); rightServo.write (90 + скорость);} / * * отправляет робота влево * / void goLeft () {leftServo.write (90 - скорость); rightServo.write (90 - скорость);} / * * останавливает робота * / void goStop () {leftServo.write (90); rightServo.write (90);} // КОНЕЦ ПРОЦЕССОВ СЕРВИСНОГО РОБОТА, УПРАВЛЯЕМОГО ARDUINO (SERB) // ---------------------------- -----------------------------------------------

Шаг 7: Готово, другие, кто закончил, и будущее

Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее
Закончено, другие, кто закончил, и будущее

Поздравляю с тем, что вы зашли так далеко, и я надеюсь, что вам нравится работать с вашим серво-роботом, управляемым Arduino - (SERB). SERB Майкла Бека - Майкл нашел чертежи SERB на Thingiverse.com и вырезал его из желтого и красного акрила. Я думаю, что это выглядит великолепно. SERB Майка - Майк (из клуба роботов ROBOMO в районе Сент-Луиса) попросил друга лазерной резки шасси SERB и использовал свои собственные робототехнические ноу-хау, чтобы запустить его. Я считаю, что в синем цвете это выглядит потрясающе. (Посетите его веб-сайт, чтобы узнать подробности об этом, а также о других его роботах (здесь). В этом разделе будут подробности о будущих разработках и приложениях (они будут представлены здесь, прежде чем они будут должным образом задокументированы). Но я также хотел бы показать фотографии других людей SERB's. Итак, если вы закончили, отправьте мне личное сообщение с фотографией и несколькими словами (будь то описание или ссылка на ваш сайт), и я добавлю его сюда. (Shameless Plug) Если вам понравилось на сайте oomlout.com можно найти другие интересные проекты с открытым исходным кодом.

Первый приз в конкурсе SANYO eneloop Battery Powered Contest

Рекомендуемые: