Мазмұны:

Arduino басқарылатын серво -робот (SERB): 7 қадам (суреттермен)
Arduino басқарылатын серво -робот (SERB): 7 қадам (суреттермен)

Бейне: Arduino басқарылатын серво -робот (SERB): 7 қадам (суреттермен)

Бейне: Arduino басқарылатын серво -робот (SERB): 7 қадам (суреттермен)
Бейне: How to control Servo Motor using ESP32 with Arduino ESP32 Servo library 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 бейнеқоңырауы арқылы басқаруға болады.
  • (мұнда) - Wii nunchuck акселерометрлерінің көмегімен SERB -ті қалай басқаруға болады
  • (мұнда) - роботқа кедергілерді анықтайтын мұртты қалай қосуға болады
  • (мұнда) - 30 жиынтықты қалай жасауға болады (Ашық өндіріс)

Ерекше өзгешеліктері:

  • Arduino Duemilanove микроконтроллерінің көмегімен (немесе сіз таңдаған басқа микроконтроллермен) толық бағдарламаланатын.
  • Дәнекерлеудің қажеті жоқ.
  • Акрил кесектерін кесу нұсқаларын таңдау. (айналдыру арасы, лазерлік кескішке қол жеткізу, алдын ала кесілген бөлшектерді сатып алу)
  • Қосымша болтты тесіктермен және тақтайшамен оңай кеңейтілетін және өзгертілетін.
  • Артқы доңғалақты қос шарлы мойынтірек.
  • 1-2 сағатта іске қосылады. (жиынтықтан)
  • Ашық бастапқы дизайн (қалағаныңызша жасаңыз)

(Ұятсыз штепсель) Ұлыбританияда және Arduino заттарын ұнатасыз ба? біздің жаңадан ашылған веб -дүкенді қараңыз oomlout.co.ukArduino басқарылатын серво -роботтың қысқартылған бейнесі - (SERB) қосылған тестілік бағдарламаны іске қосады (6 -қадам) Ескерту: Бастапқы файлдар параллель нұсқаулықта (бастапқы файлдар үшін) қол жетімді - Arduino басқарылатын роторлы роботты қалай жасауға болады - (SERB)

1 -қадам: Бөлшектер мен құралдар

Бөлшектер мен құралдар
Бөлшектер мен құралдар

Барлық болттарды жергілікті үй қоймасынан табуға болады. Қалған бөліктерді Интернеттен табуға болады (мен олардың әрқайсысы үшін сүйікті дереккөзге сілтемені енгіздім). Бөлшектер тізімі: Құрал -жабдықтың барлық элементтері бар пакетті oomlout.com дүкенінен сатып алуға болады (мұнда) ($ 120) Жаңғақтар мен болттар:

  • 3 мм x 15 мм болт (x20)
  • 3 мм x 10 мм болт (x12)
  • 3 мм гайка (x34)
  • 3 мм жуғыш (x12)
  • 8 мм x 25 мм болт (x2)
  • 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) (Барлық электроника))
  • Төрт АА батарея қорабы (x1) (Барлық электроника)
  • 9В аккумуляторлық қысқыш (x1) (Барлық электроника)
  • 2.1 мм штепсель (x1) (Барлық электроника)
  • 3 істікшелі тақырып (x2) (Барлық электроника)
  • A -B USB кабелі - принтер стилі (x1) (барлық электроника) (жинаққа кірмейді)

Батареялар:

  • AA батареясы (x4) (жинаққа кірмейді)
  • 9в батарея (x1) (жинаққа кірмейді)

Сым: (барлық сым 22 AWG қатты, мен шахтаны McMaster-Carr арқылы сатып аламын)

  • 15 см күлгін (x2)
  • 15 см Қара (x1)
  • 5 см Қара (x2)
  • 5 см Қызыл (x2)

Құралдар

  • Бұрауыш (x1) (Philips)
  • Ине-мұрынды қысқыштар (x1)

2 -қадам: кесектерді кесу

Кесетін бөліктер
Кесетін бөліктер
Кесетін бөліктер
Кесетін бөліктер
Кесетін бөліктер
Кесетін бөліктер
Кесетін бөліктер
Кесетін бөліктер

Сіз таңдаған кесу опциясына сәйкес қандай қадамдарды орындау керектігін таңдаңыз. 1-нұсқа (алдын ала кесілген бөлшектерді сатып алу)

Oomlout.com дүкенінен алдын ала кесілген шасси сатып алыңыз (мұнда) (АҚШ пен Канадаға жеткізуді қосқанда 60 доллар)

2 -нұсқа (Сандық өндіріс (яғни. Поноко) / Лазерлік кескішке қол жеткізу)

  • Лазерлік кескіштің орналасуын жүктеңіз («03 SERB Ponoko Cutting Layout P2.eps» немесе «03- (SERB) -Ponoko Cutting Layout (P2).cdr»)
  • Файлдарды Ponoko көмегімен немесе өзіңіздің лазерлі кескішпен кесіңіз (3 мм,.118 «акрилді қолданыңыз (кейде.125» деп сатылады)

3 -нұсқа (Аралау және бұрғылау)

  • PDF үлгісін жүктеңіз және басып шығарыңыз (қағаз өлшеміне сәйкес файлды таңдаңыз) 03- (SERB) -ScrollSaw Pattern (әріп).pdf 03- (SERB) -ScrollSaw Pattern (A4).pdf (масштабтамау маңызды) басып шығару кезіндегі сурет)
  • Басып шығарудағы сызғышты сенетін сызғышпен өлшеңіз, егер олар үлгіге сәйкес келмесе, масштабталды және қайта басып шығарар алдында принтердің параметрлерін қарау қажет. Егер олар сәйкес келсе, әрі қарай.
  • Үлгіні акрил парағына жабыстырыңыз (3 мм,.118 «(кейде.125» деп сатылады).
  • Бұрғылау тесіктері.
  • Айналмалы араның көмегімен кесінділер

3 -қадам: құрастыру

Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея
Ассамблея

Бұл процестің 90% аяқталғаны үшін құттықтаймын, тек осы қадам бойынша құрастыру нұсқаулығын жүктеп алыңыз (04- (SERB)-Құрастыру нұсқаулығы.pdf) және лего/механо стиліндегі сәл құрастырудан кейін сіз сымға дайын боласыз. Бұл жерде сізді қызықтыру үшін менің ассамблеямның уақыты өтті:

4 -қадам: Сымдарды жалғау

Сымдар
Сымдар
Сымдар
Сымдар

Барлық үлкен бөлшектермен бірге роботты басқаруға мүмкіндік беретін кішкене электрлік веналарды қосу уақыты келді. Мұны істеу үшін сымдардың схемасын жүктеп алыңыз және басып шығарыңыз (05- (SERB) -Сымдардың диаграммасы.pdf). Бір қарағанда, бұл өте қорқынышты болып көрінуі мүмкін, бірақ егер сіз әр қосылымды ретімен жасасаңыз және ол тез жиналса, сымдар өте қарапайым және сіз батареяларды қоспайынша сіздің схемаңызға зиян келтіре алмайды. Сондықтан барлығын екі рет тексеріңіз, содан кейін қуат қосыңыз.

5 -қадам: тестілеу және ақаулықтарды жою

Тексеру және ақаулықтарды жою
Тексеру және ақаулықтарды жою

Егер сіз жинаққа тапсырыс берсеңіз, сіздің Arduino тестілеу бағдарламасымен алдын ала жүктелген. Тек 4 АА батареясын салып, 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 -дан бастауға көмектесу үшін, бағдарламалау ортасын жүктеуден бастап бірінші бағдарламаны жазуға дейін. Arduino бағдарламалау сілтемесі - Arduino бағдарламалау тіліне сілтеме жасау үшін толық нұсқаулық - Arduino Servo кітапханасы қалай жұмыс істейді (біз сервистерді қалай басқарамыз). Дұрыс емес, бағдарламалауды үйренуге рұқсат етіңіз. Arduino басқарылатын сервистік роботты бағдарламалауды бастаудың үш әдісі бар - (SERB). 1 -нұсқа: (SERB_Test.pde өзгерту) Кейде бағдарламалау кезінде жұмыс бағдарламасын алып, оған өз кодын қосуды бастау қажет. Ол үшін SERB_Test қысылған бағдарламасын жүктеңіз (07- (SERB)-SERB-Test Arduino Program.zip). Мұны Arduino эскиз қалтасында ашуды жалғастырыңыз (әдепкі «Менің құжаттарым / Arduino \»). Соңында Arduino бағдарламалау ортасын ашып, оны Arduino -ға жүктеңіз. Код жақсы түсіндірілген. (Немесе осы қадамдағы қосымшадан жаңа Arduino Sketch-ке кодты көшіріп қойыңыз) 2-нұсқа: (SERB бағдарламаларын сіздің бағдарламаңызға қосу) Бұрыннан бар бағдарламаңызға бірнеше қарапайым рәсімдерді қосыңыз (мысалы, goForward (), setSpeed (int) және т. Мұны істеу үшін мәтіндік файлдағы тәртіптерді жүктеңіз (07- (SERB)- Simple Routines Text.txt). 1. Преамбула бөлігін көшіріп, бағдарламаның басына қойыңыз. Кәдімгі бөлікті бағдарламаның негізгі бөлігіне көшіріп қойыңыз. SerbSetup () қызметіне қоңырау қосыңыз; 3 -нұсқа: (Өз бағдарламаңызды нөлден жасау) Бұл өте қиын емес. Тек Arduino Servo кітапханасымен танысу қажет. Содан кейін оң жақ серво 9 түйреуішке, ал сол жақ серво 10 түйреуішке қосылады. Ескерту: Қосымша бағдарламалар әзірленген кезде осында қосылады; немесе егер сіз бірдеңе дамытсаңыз және оның ерекшелігі болғанын қаласаңыз, маған жеке хабарлама жіберіңіз және оны қосуға болады. Қосымша: (SERB_Test.pde коды)

/ * * Arduino басқарылатын робот -робот (SERB) - тест бағдарламасы * Қосымша ақпарат алу үшін мына сайтқа кіріңіз: https://www.oomlout.com/serb * * Мінез -құлық: SERB * кездейсоқ солға немесе оңға бұрылуға мүмкіндік беретін қарапайым тест бағдарламасы. 0,1 мен 1 секунд арасындағы * кездейсоқ уақыт кезеңі үшін. * SERB содан кейін кездейсоқ * 1 секундтан 2 секундқа дейін алға жылжиды. Соңында * 2 секундқа кідіртіп, қайтадан бастаңыз. * * Сымдар: оң жақ серво сигналы - түйреуіш 9 * сол жақ серво сигналы - 10 түйреуіш * * Лицензия: Бұл жұмыс Creative Commons * Attribution -Share Alike 3.0 Unported лицензиясы бойынша лицензияланған. * Бұл лицензияның көшірмесін қарау үшін * https://creativecommons.org/licenses/by-sa/3.0/ * сайтына кіріңіз немесе Creative Commons, 171 Second * Street, Suite 300, Сан-Франциско, Калифорния 94105, * АҚШ. * */// --------------------------------------------- ----------------------------- // ARDUINO БАСҚАРЫЛҒАН СЕРВО РОБОТЫНЫҢ СТАРТЫ (СЕРБ) АЛҒАШҚЫ #қамтиды #анықтайтын LEFTSERVOPIN 10 #анықтаңыз RIGHTSERVOPIN 9Servo leftServo; Servo rightServo; int жылдамдығы = 100; // роботтың жылдамдығын орнатады (екі серво да) // 0 мен 100 арасындағы пайыз // ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE SONU // ---------------- -------------------------------------------------- --------/ * * түйреуіштерді тиісті күйлерге орнатады және серверлерді бекітеді. Содан кейін бағдарлама басталмай тұрып 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); // Үзіліс үшін кездейсоқ сан // уақыт (егер таңдау == 1) {goLeft ();} // Егер кездейсоқ сан = 1 болса, // солға бұрыңыз {goRight ();} // Егер кездейсоқ сан = 0 болса бұрылу // оңға кешігу (turnTime); // кездейсоқ уақытқа кешіктіру}/ * * minTime (миллисекунд) * пен maxTime (миллисекунд) */void goForwardRandom (int minTime, int maxTime) {int forwardTime = кездейсоқ (minTime, maxTime) арасындағы кездейсоқ уақыт кезеңіне алға жылжиды; // кездейсоқ уақытты анықтау // алға өту goForward (); // SERB алға кідірісін орнатады (forwardTime); // кездейсоқ уақыт кезеңінің кешігуі} // ---------------------------------------- -------------------------------- // ARDUINO бақыланатын SERVO ROBOT (SERB) ROUTINES START/ * * сіздің параметрлеріңізді орнатады arduino SERB -ге енгізілген процедураларды қолдана отырып*/void serbSetup () {setSpeed (жылдамдық); pinMode (LEFTSERVOPIN, OUTPUT); // сол жақ серво сигналының түйреуішін орнатады // pinMode шығуына (RIGHTSERVOPIN, OUTPUT); // оң жақ серво сигналының түйреуішін орнатады // leftServo.attach (LEFTSERVOPIN) шығару үшін; // сол жақ серво оң жаққа бекітедіServo.attach (RIGHTSERVOPIN); // goStop () сервоприводын бекітеді;}/ * * роботтың жылдамдығын 0- (тоқтатылған) мен 100- (толық жылдамдық) аралығында орнатады * ЕСКЕРТПЕ: жылдамдық ағымдағы жылдамдықты өзгертпейді, сіз жылдамдықты өзгертуіңіз керек * содан кейін біреуіне қоңырау шалыңыз. Өзгерістер болмай тұрып өту әдістерінің.*/void setSpeed (int newSpeed) {if (newSpeed> = 100) {newSpeed = 100;} // егер жылдамдық 100 -ден үлкен болса // оны 100 -ге айналдырыңыз (newSpeed <= 0) {newSpeed = 0;} // егер жылдамдық 0 -ден төмен болса // ол 0 жылдамдық = 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 бақыланатын SERVO ROBOT (SERB) ЖОЛДАРЫНЫҢ СОҢЫ // ---------------------------- -----------------------------------------------

7 -қадам: Аяқталды, аяқтағандар және болашақ

Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ
Аяқталды, аяқтағандар және болашақ

Осы қадамға жеткеніңізбен құттықтаймын және сіз Arduino басқарылатын роторлы роботпен көңілді жүресіз деп үміттенемін. Менің ойымша, бұл өте жақсы көрінеді. Майктың SERB - Майк (Сент -Луис аймағындағы ROBOMO робот -клубының) досы лазермен SERB шассиін кесіп алып, оны іске қосу үшін өзінің роботтық ноу -хауын қолданды. Менің ойымша, бұл көк түспен жасалған керемет көрінеді. (бұл туралы және оның басқа роботтары туралы егжей -тегжейлі ақпарат алу үшін оның веб -сайтын қараңыз) Егер сіз аяқтаған болсаңыз, маған фотосуреті мен бірнеше сөзі бар жеке хабарлама жіберіңіз (бұл сіздің веб -сайтыңыздың сипаттамасы немесе сілтемесі болсын), мен оны осында қосамын. (ұятсыз штепсель) Бұл нұсқаулық oomlout.com сайтында ашық көзі ашық басқа қызықты жобалар үшін.

SANYO eneloop аккумуляторлық жарыстардың бірінші жүлдесі

Ұсынылған: