Оглавление:
- Шаг 1. Детали и инструменты
- Шаг 2: нарезка деталей
- Шаг 3: Сборка
- Шаг 4: Подключение
- Шаг 5. Тестирование и устранение неполадок
- Шаг 6: программирование
- Шаг 7: Готово, другие, кто закончил, и будущее
Видео: Серво-робот, управляемый Arduino (SERB): 7 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Что может быть лучше для начала экспериментов с микроконтроллерами с открытым исходным кодом (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
Рекомендуемые:
Сделай сам Arduino управляемый Bluetooth автомобиль: 6 шагов (с изображениями)
Сделай сам Arduino управляемый Bluetooth автомобиль: Здравствуйте, друзья! Меня зовут Николас, мне 15 лет, я живу в Афинах, Греция. Сегодня я покажу вам, как сделать 2-колесный автомобиль с управлением по Bluetooth, используя Arduino Nano, 3D-принтер и несколько простых электронных компонентов! Обязательно посмотрите мой
Доступный, управляемый PS2 Hexapod Arduino Nano 18 DOF: 13 шагов (с изображениями)
Доступный по цене PS2 управляемый Arduino Nano 18 DOF Hexapod: простой робот Hexapod с сервоконтроллером arduino + SSC32 и беспроводным управлением с помощью джойстика PS2. Сервоконтроллер Lynxmotion имеет множество функций, которые могут обеспечить красивое движение для имитации паука. Идея состоит в том, чтобы сделать робота-гексапода, который
Беспроводной резервуар, управляемый Arduino (nRF24L01): 6 шагов (с изображениями)
Беспроводной резервуар, управляемый Arduino (nRF24L01): Привет! Сегодня я покажу вам, как построить резервуар и пульт, управляемый Arduino. Детали танка, напечатанные на 3D-принтере (за исключением контроллера, направляющей гусеницы и крышки бака), были разработаны компанией Timmiclark и могут быть найдены здесь
Настольный светильник, управляемый Arduino / приложением: 6 шагов (с изображениями)
Настольный светильник, управляемый Arduino / приложением: для этого проекта мне нужно было что-то, что позволило бы мне больше узнать об электронике / программном обеспечении, чего я еще не понял … Я решил, что свет будет хорошей платформой для этого. дизайн, который я придумал, был для аплайтера
Контроллер полета Multiwii, управляемый своими руками Arduino: 7 шагов (с изображениями)
Контроллер полета Multiwii, управляемый DIY Arduino: этот проект предназначен для создания универсальной, но настраиваемой логической платы дрона для мультикоптеров на базе Arduino и Multiwii