Како направити „уради сам“ Ардуино и Блуетоотх контролисану роботску руку?

У последњем веку, роботика је поље истраживања у развоју. Роботи су преузели контролу над готово свиме што су људи некада радили. У нашем друштву можемо видети аутономне роботе који обављају разне задатке. Постоје и неки роботи са даљинским управљањем који нам помажу у обављању различитих операција. Од израде Нано кола у пољу инжењерства до уклањања сложених операција у области медицине, роботи су поузданији од људи.

Роботиц Арм

У овом пројекту ћемо направити роботску руку којом ће управљати Ардуино микроконтролер. Управљаће се преко Блуетоотх-а уз помоћ андроид апликације за даљинско управљање.



Како контролирати роботску руку користећи Ардуино?

Сад кад знамо сажетак нашег пројекта. Прикупимо још неколико информација о струјном кругу и започнимо изградњу Блуетоотх роботске руке и контролишемо је преко Блуетоотх-а.



Корак 1: Прикупљање компонената

Најбољи приступ започињању било ког пројекта је прављење комплетне листе компонената. Ово није само интелигентан начин за започињање пројекта, већ нас такође штеди од многих непријатности усред пројекта. Списак компонената овог пројекта дат је у наставку:



  • ХЦ-05 бежични Блуетоотх серијски примопредајник
  • 6В адаптер
  • Јумпер Вирес
  • Бреадбоард

Корак 2: Проучавање компонената

Како имамо потпуну листу свих компонената које ћемо користити, померимо се корак напред и прођите кроз кратку студију свих компоненти.

Ардуино Нано је плоча микроконтролера која врши различите операције у различитим круговима. То захтева а Ц Цоде то говори табли које задатке треба да обавља и како. Има 13 дигиталних И / О пинова што значи да можемо да радимо са 13 различитих уређаја. Ардуино Нано има потпуно исту функционалност као Ардуино Уно, али у прилично малој величини. Микроконтролер на плочи Ардуино Нано је АТмега328п. Ако желите да контролишете више од 13 уређаја, користите Ардуино Мега.

Ардуино Нано



ХЦ-05 бежични Блуетоотх серијски примопредајник : У овом пројекту нам је потребна бежична комуникација, па ћемо користити Блуетоотх технологију, а за тај модул који ће се користити је ХЦ-05. Овај модул има неколико програмабилних брзина преноса, али задата брзина преноса је 9600 бпс. Може се конфигурисати као мастер или славе, док други модул ХЦ-06 може радити само у славе моду. Овај модул има четири пина. Један за ВЦЦ (5В), а преостала три за ГНД, ТКС и РКС. Подразумевана лозинка овог модула је 1234 или 0000 . Ако желимо да комуницирамо између два микроконтролера или комуницирамо са било којим уређајем са Блуетоотх функцијом као што је Телефон или Лаптоп ХЦ-05, помаже нам у томе. Неколико Андроид апликација је већ доступно што овај процес чини много лакшим.

ХЦ-05 Блуетоотх модул

Типичан Роботиц Арм састоји се од неколико сегмената и обично у себи има 6 зглобова. Садржи најмање 4 корачна мотора којима управља рачунар. Корачни мотори се разликују од осталих једносмерних мотора. Они се крећу тачно у тачним корацима. Ове роботске руке се користе за извођење различитих операција. Њима можемо ручно управљати преко даљинског управљача или их можемо програмирати да раде аутономно.

Роботиц Арм.

Корак 3: Састављање компонената

Сад кад знамо о раду свих главних компонената које се користе. Почнимо да их састављамо и направимо коло за изградњу роботизоване руке на даљинско управљање.

  1. .Причврстите плочу Ардуино Нано на плочи за плочу. Ардуино ће се напајати позитивном и негативном жицом адаптера.
  2. Поставите Блуетоотх модул и на плочу са плочама. Укључите Блуетоотх модул путем Ардуина. Повежите Тк пин модула Блуетоотх са Рк пином плоче Ардуино Нан и спојите Рк пин Блуетоотх модула са Тк пином плоче Ардуино Нано.
  3. Као што знамо да постоје 4 корачна мотора. Свака има техничко име. Они се зову Лакат , Раме , База, и Гриппер . Вцц и уземљење свих мотора биће заједнички и повезани са позитивним и негативним 6В адаптера. Сигнални пин свих четири мотора биће повезани на пин5, пин6, пин9 и пин11 Ардуино Нано-а.
  4. Уверите се да су везе које сте успоставили у складу са следећим дијаграмом кола.

    Кружни дијаграм

Корак 4: Почетак рада са Ардуином

Ако већ нисте упознати са Ардуино ИДЕ-ом, не брините јер је у наставку објашњен корак по корак за подешавање и употребу Ардуино ИДЕ-а са плочом микроконтролера.

  1. Преузмите најновију верзију Ардуино ИДЕ са Ардуино.
  2. Повежите своју Ардуино Нано плочу са преносним рачунаром и отворите контролну таблу. Затим кликните на Хардвер и звук . Сада кликните на Уређаји и штампачи. Овде пронађите порт на који је повезана плоча вашег микроконтролера. У мом случају јесте ЦОМ14 али је различито на различитим рачунарима.

    Проналажење луке

  3. Кликните на мени Алат и поставите плочу на Ардуино Нано из падајућег менија.

    Одбор за постављање

  4. У истом менију Алат поставите порт на број порта који сте раније приметили у Уређаји и штампачи .

    Подешавање порта

  5. У истом менију Алат поставите процесор на АТмега328П (стари покретач).

    Процесор

  6. Да бисмо написали код за управљање серво моторима, потребна нам је посебна библиотека која ће нам помоћи да напишемо неколико функција за серво моторе. Ова библиотека је приложена заједно са кодом, у доњој вези. Да бисте укључили библиотеку, кликните на Скица> Укључи библиотеку> Додај ЗИП. Библиотека.

    Укључи библиотеку

  7. Преузмите доленаведени код и налепите га у свој Ардуино ИДЕ. Кликните на отпремити дугме за нарезивање кода на плочи микроконтролера.

    Отпремити

Да бисте преузели код, кликните овде.

Корак 5: Преузимање апликације

Као што смо сада саставили цело коло и поставили код на плочу микроконтролера. омогућава преузимање мобилне апликације која ће радити као даљински управљач за роботску руку. Бесплатна апликација је доступна у Гоогле Плаи продавници. Назив апликације је Литтле Арм Робот Цонтрол . Да бисте успоставили Блуетоотх везу, укључите Блуетоотх на свом мобилном телефону. Идите на подешавања и упарите свој мобилни телефон са модулом ХЦ-05. Након тога притисните Блуетоотх дугме у апликацији. Ако постане зелено, то значи да је апликација сада повезана и спремна за управљање роботском руком. Постоје клизачи за подешавање рада роботске руке по жељи.

Апликација

Корак 6: Разумевање кодекса

Код је добро коментарисан и лак за разумевање. И даље је укратко објашњено у наставку.

1. У почетку је укључена библиотека за писање кода за управљање серво моторима. Друга библиотека матх.х је укључен за извођење различитих математичких операција у коду. Четири објекта су такође иницијализована да се користе за четири серво мотора.

#инцлуде // ардуино либрари #инцлуде // стандард ц либрари #дефине ПИ 3.141 Серво басеСерво; Серво рамеСерво; Серво лакатСерво; Серво грипперСерво; инт наредба;

2. Затим се декларише структура која узима вредности за постоље, раме и лакат серво мотора.

струцт јоинтАнгле {// декларисање структуре инт басе; инт раме; инт лакат; };

3. Након овога, неке променљиве су иницијализоване да ускладиште жељено приањање, кашњење и положај серво мотора. брзина је постављена на 15, а објекат је направљен тако да узима вредност угла у структури.

инт жељениГрип; инт грипперПос; инт десиреДелаи; инт сервоСпеед = 15; инт спреман = 0; струцт јоинтАнгле жељениАнгле; // жељени углови серво погона

Четири. воид сетуп () је функција која се користи за постављање пинова Ардуина као ИНПУТ или ОУТПУТ. Овде, у овој функцији, прогласили смо да ће пин мотора бити повезан на које иглице Ардуина. Такође је осигурано да Ардуино предуго не чита серијски улаз. Почетна функција и брзина преноса су такође подешени у овој функцији. Брзина преноса је брзина којом ће плоча микроконтролера комуницирати са серво-има и прикљученим Блуетоотх модулом.

воид сетуп () {Сериал.бегин (9600); басеСерво.аттацх (9); // причвршћује основни серво на пину 9 за серво објекат СхоулдерСерво.аттацх (10); // причвршћује серво раме на пину 9 за објект серво елбовСерво.аттацх (11); // причвршћује лакатни серво на пин 9 на серво објект грипперСерво.аттацх (6); // прикључује серво хватаљке на пин 9 на серво објекат Сериал.сетТимеоут (50); // осигурава да ардуино предуго не чита серијски Сериал.принтлн ('покренут'); басеСерво.врите (90); // почетни положаји серво раменаСерво.врите (150); елбовСерво.врите (110); спреман = 0; }

5. сервоПараллелЦонтрол () је функција која се користи за откривање тренутног положаја роботске руке и њено померање према наредби датој преко мобилне апликације. Ако је тренутни положај мањи од стварног, рука ће се померити горе и обрнуто. Ова функција ће вратити вредност тренутног положаја и брзину серво-погона.

инт сервоПараллелЦонтрол (инт тхеПос, Серво тхеСерво, инт тхеСпеед) {инт стартПос = тхеСерво.реад (); // читање тренутне поз инт невПос = стартПос; // инт тхеСпеед = брзина; // дефинишемо где је поз у односу на наредбу // ако је тренутна позиција мања од стварне померања нагоре иф (стартПос (тхеПос + 5)) {невПос = невПос - 1; тхеСерво.врите (невПос); кашњење (тхеСпеед); ретурн 0; } елсе {ретурн 1; }}

6. воид лооп () је функција која се понавља у петљи. Ова функција чита податке који долазе серијски и чува угао сваког сервоа у структури. У почетку је статус свих серво уређаја постављен на нулу. Овде функција сервоПараллелЦонтрол () позива се и у њему се преносе параметри. ова функција ће вратити вредност и она ће бити ускладиштена у променљиву статуса.

воид лооп () {иф (Сериал.аваилабле ()) {реади = 1; жељениАнгле.басе = Сериал.парсеИнт (); жељениАнгле.схоулдер = Сериал.парсеИнт (); жељениАнгле.елбов = Сериал.парсеИнт (); жељениГрип = Сериал.парсеИнт (); жељенаДелаи = Сериал.парсеИнт (); иф (Сериал.реад () == ' н') {// ако је последњи бајт 'д', зауставите читање и извршите наредбу 'д' значи 'готово' Сериал.флусх (); // обришите све остале наредбе нагомилане у међуспремнику // пошаљите завршетак наредбе Сериал.принт ('д'); }} инт статус1 = 0; инт статус2 = 0; инт статус3 = 0; инт статус4 = 0; инт готово = 0; вхиле (доне == 0 && реади == 1) {// преместите серво на жељени положај статус1 = сервоПараллелЦонтрол (жељениАнгле.басе, басеСерво, жељениДелаи); статус2 = сервоПараллелЦонтрол (жељениАнгле.хоулдер, СхоулдерСерво, жељениДелаи); статус3 = сервоПараллелЦонтрол (жељениАнгле.елбов, лакатСерво, жељениДелаи); статус4 = сервоПараллелЦонтрол (жељениГрип, грипперСерво, жељениДелаи); ако (статус1 == 1 & статус2 == 1 & статус3 == 1 & статус4 == 1) {готово = 1}} // крај неког времена}

Ово је био цео поступак израде роботске руке. Након спаљивања кода и преузимања апликације, робот би требао савршено радити када се клизачи на апликацији премјесте. Такође можете програмирати руку да ради аутономно за извршавање жељеног задатка.