Съдържание:

Servo робот с контролиран Arduino (SERB): 7 стъпки (със снимки)
Servo робот с контролиран Arduino (SERB): 7 стъпки (със снимки)

Видео: Servo робот с контролиран Arduino (SERB): 7 стъпки (със снимки)

Видео: Servo робот с контролиран Arduino (SERB): 7 стъпки (със снимки)
Видео: Вагнеровцы после обороны Бахмута #shorts 2024, Юли
Anonim
Серво робот с контролиран Arduino (SERB)
Серво робот с контролиран Arduino (SERB)
Servo робот с контролиран Arduino (SERB)
Servo робот с контролиран Arduino (SERB)
Servo робот с контролиран Arduino (SERB)
Servo робот с контролиран Arduino (SERB)
Servo робот с контролиран Arduino (SERB)
Servo робот с контролиран Arduino (SERB)

Какъв по -добър начин да започнете да експериментирате с микроконтролери с отворен код (Arduino) след това, като създадете свой собствен робот с отворен код (CC (SA -BY))? Какво да направите с вашия SERB?

  • (тук) - Как да свържете вашия SERB към интернет и да го управлявате през видео разговор по Skype.
  • (тук) - Как да контролирате SERB с помощта на акселерометрите на Wii nunchuck
  • (тук) - Как да добавите мустаци за откриване на препятствия към вашия робот
  • (тук) - Как да направите 30 комплекта (Отворено производство)

Характеристика:

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

(Безсрамен щепсел) Във Великобритания и харесвате неща от Arduino? разгледайте нашия новооткрит уеб магазин oomlout.co.uk Бързо видео на завършен серво робот, управляван от Arduino - (SERB), изпълняващ включената тестова програма (стъпка 6) Забележка: Изходните файлове са достъпни на паралелен Instructable (Изходни файлове за) - Как да си направим серво робот с контролиран Arduino - (SERB)

Стъпка 1: Части и инструменти

Части и инструменти
Части и инструменти

Всички болтове могат да бъдат намерени в местния Home Depot. Другите части могат да бъдат намерени онлайн (включих връзка към любимия ми източник за всеки). Списък с части: Пакет, съдържащ всички хардуерни елементи, може да бъде закупен в магазина на oomlout.com (тук) ($ 120) Гайки и болтове:

  • Болт 3 мм x 15 мм (x20)
  • Болт 3 мм x 10 мм (x12)
  • 3 мм гайка (x34)
  • 3 мм шайба (x12)
  • 8 мм х 25 мм болт (х2)
  • 8 мм гайка (x2)
  • Лагери за кънки (x2) (VXB) (това са стандартни лагери за кънки, така че могат да бъдат спасени от чифт ролкови остриета или скейтборд)

Гуми

  • Голям уплътнителен пръстен (4.5 "ID 3/16" Bead Dash #349) (x2) (продукт на McMaster-Carr 9452K407)
  • Малък О-пръстен (3/4 "ID 3/16" Bead Dash #314) (x1) (Продукт на McMaster-Carr #9452K387)

Електроника

  • Arduino Duemilanove (x1) (навес за създаване)
  • Серво за непрекъснато въртене (x2) (паралакс)
  • 400 Контактна платка (x1) (Цяла електроника))
  • Quad AA кутия за батерии (x1) (Цяла електроника)
  • 9V скоба за батерия (x1) (Цяла електроника)
  • 2,1 мм щепсел (x1) (Цяла електроника)
  • 3 -пинов хедър (x2) (Цяла електроника)
  • A -B USB кабел - стил на принтер (x1) (Цяла електроника) (не е включен в комплекта)

Батерии:

  • AA батерия (x4) (не е включена в комплекта)
  • 9v батерия (x1) (не е включена в комплекта)

Кабел: (целият проводник е 22 AWG твърд, купувам моя чрез McMaster-Carr)

  • 15 см лилаво (x2)
  • 15 см черен (x1)
  • 5 см черен (x2)
  • 5 см червен (x2)

Инструменти

  • Отвертка (x1) (Philips)
  • Клещи за иглени носове (x1)

Стъпка 2: Изрязване на парчета

Рязане на парчета
Рязане на парчета
Рязане на парчета
Рязане на парчета
Рязане на парчета
Рязане на парчета
Рязане на парчета
Рязане на парчета

Моля, изберете кои стъпки да следвате въз основа на опцията за рязане, която сте избрали. Вариант 1 (Закупуване на предварително нарязани части)

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

Вариант 2 (Цифрово производство (т.е. Ponoko) / Достъп до лазерен нож)

  • Изтеглете оформлението на лазерния нож ("03 SERB Ponoko Cutting Layout P2.eps" или "03- (SERB) -Ponoko Cutting Layout (P2).cdr")
  • Нарежете файловете с помощта на Ponoko или със собствен лазерен нож (с помощта на 3 мм,.118 "акрил (понякога се продава като.125")

Вариант 3 (циркуляр и трион)

  • Изтеглете и отпечатайте PDF шаблона (моля, изберете файла, съответстващ на размера на вашата хартия) чертежа по време на печат)
  • Измерете линийката на разпечатката спрямо линийка, на която имате доверие, ако те не съответстват на шаблона, който е мащабиран и трябва да разгледате настройките на принтера си, преди да отпечатате отново. Ако те съвпадат, нататък.
  • Залепете шаблона към акрилния лист (3 мм,.118 "(понякога се продава като.125").
  • Пробийте дупки.
  • Изрежете парчета с помощта на циркуляр

Стъпка 3: Монтаж

Монтаж
Монтаж
Монтаж
Монтаж
Монтаж
Монтаж

Поздравления, че стигнахте дотук 90% от процеса е завършен, просто изтеглете инструкциите за сглобяване на тази стъпка (04- (SERB) -Ръководство за сглобяване.pdf) и след малко сглобяване в стил лего/механо ще бъдете готови за свързване. За да ви забавлявам по пътя ето един интервал от време на моята асамблея:

Стъпка 4: Окабеляване

Електрически инсталации
Електрически инсталации
Електрически инсталации
Електрически инсталации

С всички големи парчета е време да добавим малките електрически вени, които ще позволят на нашия робот да бъде контролиран. За да направите това, изтеглете и отпечатайте електрическата схема (05- (SERB) -Wiring Diagram.pdf). Първият поглед към него може да изглежда доста обезсърчаващ, но ако правите всяка връзка последователно и отделяте време, тя се събира забележително бързо. Така че свържете всичко два пъти, проверете го, след това добавете захранване.

Стъпка 5: Тестване и отстраняване на проблеми

Тестване и отстраняване на неизправности
Тестване и отстраняване на неизправности

Ако сте поръчали комплект, вашият Arduino е предварително оборудван с тестова програма. Просто поставете 4 батерии AA и включете 9v батерията в Arduino. И ако всичко е направено правилно, вашият робот ще започне да се движи (той ще се завърти в произволна посока за време между 0,1 и 1 секунда, преди да продължи напред за произволно време между 1 и 2 секунди, след което направи пауза за 2 секунди, преди да започне отново). Ако не сте закупили комплект, е необходима допълнителна стъпка. Изтеглете прикачения zip файл (07- (SERB)-SERB-Test Arduino Program.zip). След това го разархивирайте във вашата директория за скици на Arduino (по подразбиране "моите документи / Arduino \") и го изтеглете на дъската си arduino. (ако сте нов в Arduino, преминете напред с една стъпка, където има връзки към страхотни уроци за начало) Чести проблеми: Моят SERB се движи бавно, когато трябва да бъде спрян. Това е резултат от това, че вашите сервомотори не са калибрирани съвсем правилно, за да калибрирате вашите сервомотори изчакайте, докато програмата ви спре сервомоторите и след това с малка отвертка завъртете потенциометъра вътре в серво (малкия отвор в корпуса на серво точно над мястото, където са проводниците). Завъртете го наляво или надясно, докато сервоустройството наистина спре. Нещата не работят както трябва. Изпратете ни имейл с вашите симптоми и ние ще се опитаме да ви помогнем, докато чакате отговор, проверете отново всичките си проводници с електрическата схема от стъпка 4. Ако срещнете някакъв проблем, моля, добавете коментар на този Instructable или изпратете имейл на [email protected] и ние ще направим всичко възможно да ви помогнем да накарате вашия SERB да работи

Стъпка 6: Програмиране

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

Физическият робот е приключил, за да започне да му дава мозък. Преди да се впуснем в подробностите за програмирането на Arduino контролиран серво робот - (SERB) - няколко връзки към някои отлични ресурси за програмиране на Arduino в интернет. за да ви помогне да започнете с Arduinos, от изтегляне на програмната среда до писане на първата ви програма. Arduino Programming Reference - Пълно лесно за справка ръководство за езика за програмиране Arduino. Как работят сервомоторите - Бърз пример за работата на серво моторите. 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 Servo Library. След това дясното серво е свързано към пин 9, а лявото към серво 10. забележка: Допълнителни програми ще бъдат добавени тук, докато се разработват; или ако разработите нещо и бихте искали да го представите, изпратете ми лично съобщение и то може да бъде добавено. Приложение: (SERB_Test.pde код)

/ * * Управляван от Arduino серво робот (SERB) - Програма за тестване * За повече подробности посетете: https://www.oomlout.com/serb * * Поведение: Проста тестова програма, която кара SERB * да се завърта произволно наляво или надясно за * случаен период от време между 0,1 и 1 секунда. * След това SERB ще продължи напред за произволен * период от време между 1 и 2 секунди. Накрая * пауза за 2 секунди, преди да започнете отново. * * Окабеляване: Десен серво сигнал - щифт 9 * Ляв серво сигнал - щифт 10 * * Лиценз: Тази творба е лицензирана под Creative Commons * Приписване -Споделяне на подобен 3.0 Неподдържан лиценз. За да * видите копие на този лиценз, посетете * https://creativecommons.org/licenses/by-sa/3.0/ * или изпратете писмо до Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * САЩ. * */// --------------------------------------------- ----------------------------- // НАЧАЛО НА АРДУИНО КОНТРОЛИРАН СЕРВО РОБОТ (СЪРБ) ПРЕАМБУЛА #включва #дефинирайте ЛЕВИЯ СЕРВОПИН 10 #дефинирайте ПРАВОТО СЕРВОПИН 9Servo leftServo; Серво дясно int скорост = 100; // задава скоростта на робота (и двете сервоустройства) // процент между 0 и 100 // КРАЙ НА АРДУИНО КОНТРОЛИРАНИЯ СЕРВО РОБОТ (СЪРБ) ПРЕАМБУЛА // ---------------- -------------------------------------------------- --------/ * * настройва щифтовете в подходящи състояния и свързва серво. След това прави пауза * за 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/ * * настройва вашия arduino за адресиране на вашия SERB с помощта на включените процедури*/void serbSetup () {setSpeed (speed); pinMode (LEFTSERVOPIN, OUTPUT); // задава левия щифт на серво сигнала // към изход pinMode (RIGHTSERVOPIN, OUTPUT); // задава десния щифт за серво сигнал // към изход leftServo.attach (LEFTSERVOPIN); // прикачва ляво серво rightServo.attach (RIGHTSERVOPIN); // прикрепя дясното серво на методите go преди да настъпят промени.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // ако скоростта е по -голяма от 100 // направете 100 if (newSpeed <= 0) {newSpeed = 0;} // ако скоростта е по -малка от 0 make // it 0 speed = newSpeed * 0.9; // мащабира скоростта, която да бъде // между 0 и 90}/ * * изпраща робота напред */void goForward () {leftServo.write (90 + скорост); 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 // ---------------------------- -----------------------------------------------

Стъпка 7: Готово, други, които са приключили и бъдещето

Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето
Готови, други, които са приключили и бъдещето

Поздравления, че стигнахте дотук и се надявам да се забавлявате с вашия Arduino управляван серво робот - (SERB). SERB на Майкъл Бек - Майкъл намери плановете за SERB на Thingiverse.com и го изряза от жълт и червен акрил. Мисля, че изглежда страхотно. СРЪБ на Майк - Майк (от роботския клуб ROBOMO в района на Сейнт Луис) е имал приятел, който лазерно изряза шаси на СЪРБ, и използва собственото си роботизирано ноу -хау, за да го задейства. Мисля, че изглежда страхотно направено в синьо. (вижте уебсайта му за подробности относно това, както и другите му роботи (тук) Този раздел ще съдържа подробности за бъдещите разработки и прикачени файлове (те ще бъдат представени тук, преди да бъдат правилно документирани). Но аз също бих искал да покажа снимки на други хора SERB's. Така че, ако сте приключили, изпратете ми лично съобщение със снимка и няколко думи (било то описание или линк към вашия уебсайт) и ще го добавя тук. (Безсрамна приставка) Ако ви харесва тази инструкция проверете на oomlout.com за други забавни проекти с отворен код.

Първа награда в конкурса SANYO eneloop, захранван от батерии

Препоръчано: