Мазмұны:

Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі: 5 қадам (суреттермен)
Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі: 5 қадам (суреттермен)

Бейне: Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі: 5 қадам (суреттермен)

Бейне: Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі: 5 қадам (суреттермен)
Бейне: Arduino ҚАЗАҚША [6] ШИМ порттар 2024, Шілде
Anonim
Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі
Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі
Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі
Arduino басқарылатын роботтық қол W/ 6 еркіндік дәрежесі
Arduino басқарылатын роботтық қол W/ 6 дәрежелі бостандық
Arduino басқарылатын роботтық қол W/ 6 дәрежелі бостандық

Мен робототехника тобының мүшесімін және біздің топ жыл сайынғы Mini-Maker жәрмеңкесіне қатысады. 2014 жылдан бастап мен жыл сайынғы іс -шараға жаңа жоба құруды шештім. Сол кезде менде іс -шара басталардан бір ай бұрын бірдеңе жинау керек еді, мен не істегім келетінін білмедім.

Бір әріптес менің қызығушылығымды арттыратын «ашық көзі ашық роботтық қол құрастыру» сілтемесін орналастырды. Жоспарлар тек басқарусыз немесе контроллері жоқ қол болды. Уақытымның шектеулілігін ескере отырып, бұл өте жақсы бастау нүктесі болып көрінді. Жалғыз мәселе - менде бастау үшін ешқандай құрал жоқ еді.

Кейбір топ мүшелерінің көмегімен мен акрил бөлшектерін кесіп, маған жібердім, сонымен қатар төменде көрсетілген 3D басып шығарылған екі бөлікті алдым. Бірнеше түндік аппараттық тапсырыстармен және жергілікті аппараттық дүкенге бірнеше сапармен бірге мен іс -шараға бір күн қалғанда жұмыс жобасын аяқтадым!

Әдеттегідей, төменде көргендеріңізге сәйкес жинақталған әңгіме мен бірнеше бейнелер бар. Егер сізде артқы тарихқа қызығушылық болса, толығырақ мына жерден табуға болады:

1 -қадам: Сізге не қажет - аппараттық құралдар мен электроника

Сізге не керек - жабдық пен электроника
Сізге не керек - жабдық пен электроника
Сізге не қажет - жабдық пен электроника
Сізге не қажет - жабдық пен электроника

Жобаның түпнұсқалық дизайнері Еуропада өмір сүрді, содан кейін метрикалық өлшемдер мен сол жерде қолданылатын материалдарды қолданды. Мысалы, ол корпус үшін қолданған пресс-тақтаның қалыңдығы 5 мм. АҚШ -тағы ұқсас материалдың қалыңдығы шамамен 3,7 мм болатын 1/8 дюйм. Бұл бастапқыда сығуға арналған саңылауларда бос орын қалдырды. Сызбаларды түзетудің орнына мен бұл түйіспелерді бекіту үшін Gorilla Glue қолдандым.

Ол сонымен қатар АҚШ -тағы жергілікті жабдықтар дүкенінде стандартты емес M3 бұрандалы гайкалар мен болттарды қолданды. Оларды жергілікті қол жетімді опцияларға айналдырудың орнына, мен төмендегі бөліктер тізімінде көрсетілгендей аппараттық құралға онлайн тапсырыс бердім.

  • 22 - М3 х 0,5 х 23мм
  • 15 - М3 x 15мм аралықтар
  • 40 - M3 бұрандалары
  • M3 алты бұрышты жаңғақтар
  • М3 25 мм бұрандалар
  • 1 - Көктем
  • 3/4 «Екі жақты монтаж таспасы
  • 5 - SG 5010 TowerPro сервисі
  • 1 - SG92R TowerPro шағын серво
  • 1 - SG90 TowerPro шағын серво
  • 2,54 мм бір қатарлы түзу түйреуіш
  • 1 - жартылай өлшемді нан тақтасы
  • 1 - Әйелдер/Еркектерге арналған ұзартқыш сымдар - 40 x 6 «
  • 1 - 12 «x 24» көк акрил парағы немесе сіздің сүйікті қызмет провайдеріңіздің лазерлік кесектері
  • 2 - 3мм х 20мм + 4мм х 5мм қосалқы мойынтіректер аралықтары 3D басып шығарылған (төменде қараңыз)
  • 1 - Басқару тақтасы *Сымдар бөліміндегі ескертуді қараңыз
  • 1 - таралған RGB (үш түсті) 10 мм жарық диоды
  • 1 - Ардуино Уно
  • 1 - стандартты СКД 16x2 + қосымша - ақ түсте көк
  • 1 - i2c / SPI таңбалы СКД рюкзагы
  • 1-Adafruit 16-арналы 12-разрядты PWM/Servo драйвері
  • 1 - MCP3008 - SPI интерфейсі бар 8 каналды 10 биттік ADC
  • 3 - JoyStick Breakout модулінің сенсоры *Сымдар бөліміндегі ескертуді қараңыз
  • DC баррель Джек
  • Айнымалы токтан тұрақты ток адаптері
  • Серво ұзартқыш кабельдері - әр түрлі ұзындықтар

Бұл қолдың барлық дерлік бөліктері 1/8 дюймдік акрилден кесілген. Дегенмен, қосалқы мойынтіректердің аралық бөліктерін басып шығару қажет. Сондай -ақ, түпнұсқада мойынтіректің білігіне 7 мм биіктіктегі аралық қосқыш негізі қажет. Мен жоғарғы қолды жинай бастаған кезде, олардың TowerPro сервосының биіктігіне байланысты тым биік екені тез түсінікті болды. Маған биіктігі небары 3 мм болатын подшипниктер болуы керек еді, олар айтпақшы, тым биік, бірақ басқаруға болатын. Сервалардың салыстырмалы биіктігіне назар аударғыңыз келеді және төменгі екі қолдың арасындағы қашықтықты ескеріңіз:

Серво биіктігі + серво мүйізі + түйіспе мойынтірек + екі жақты таспа = 47мм +/- 3мм.

2 -қадам: қару жинау

Қол жинау
Қол жинау
Қол жинау
Қол жинау
Қол жинау
Қол жинау
Қол жинау
Қол жинау

Жұмысқа кіріспес бұрын, барлық сервистерді ортаға қойыңыз! Егер құрылыс кез келген уақытта, егер сіз серваның орнын қолмен жылжытсаңыз, оны жақтауға бекітпес бұрын оны жақындату қажет болады. Бұл әсіресе біркелкі қозғалуды қажет ететін иық серверлері үшін өте маңызды.

  1. Негізгі серводы M3 25 мм бұрандалар мен алты бұрышты гайкалар көмегімен үстіңгі тақтайшаға бекітіңіз. ЕСКЕРТПЕ: Қолдану кезінде жаңғақтардың босап кетуін азайту үшін жіптерге бекітпе қолданған жөн.

  2. Егер сіз менде жоғарыда келтірілген бөлшектер тізімін қолдансаңыз, келесіде сіз M3 x 0,5 x 23мм штепсельдердің әрқайсысын 2 -ге бұрап, содан кейін оларды алтыбұрышты гайкалармен жоғарғы тақтайшаға бекіту арқылы 5 базалық аралықты жинағыңыз келеді.
  3. Төменгі тақтайшаны 5 M3 бұранда көмегімен бекіткіштерге бекітіңіз.
  4. Иық пластинасын акрил қауіпсіз желім көмегімен екі серво монтаждау тақтасына бекітіңіз. Мен мұнда Gorilla Glue қолдандым. ЕСКЕРТПЕ: Екі сервопластинаның әрқайсысының артқы жағында тесік бар, ол оларды біріктіретін арматураны салуға мүмкіндік береді. Тесіктердің бір -біріне сәйкес келетініне көз жеткізіңіз!* Қолыңызда желім бар болса, жалғастырыңыз және білекке бекітетін тақтаны ұстағыштың негізгі тақтасына қосыңыз.* Сонымен қатар, білектің серво тақтасын екі білезік буын пластинасына жабыстыруға болады. Мен мұны төменде сипатталғандай қарсылықтармен біріктіру үшін жасаған жоқпын.
  5. Енді емделген иық түйінін негізгі сервоға бекітіңіз. Мен сервоға қосылған ең кең мүйізді қолдандым, ол алты бағаналы мүйіз болды.

  6. Қолдың төменгі жақтауын иық сервосына қосу қиын болуы мүмкін. Жалғастырмас бұрын мүйізді төменгі қол жақтауларына бекітуді ұсынамын. ЕСКЕРТПЕ: Серверлерді жақтауға бекітпес бұрын иық жиналуына арналған орталықтандырылғанына көз жеткізіңіз. Бұл екі серво біркелкі қозғалуы керек, ал егер олар дұрыс реттелмесе, минималды түрде серво серпілісін тудырады, ал егер қате реттелген болса, кадрға немесе сервоға зақым келтіруі мүмкін. * Иық сервосының әрқайсысы тіректерді тақталар арқылы өткізудің орнына бекіткіш тақталардың артқы жағына бекітіледі - бұл мүйізді серво білігіне бұрышпен итеруге және бұранданы бекітуге мүмкіндік береді. Сервоны бекіту тақтасына әлі бекітпеңіз. * Әрі қарай, ішкі серво қосып, қолды орнатыңыз
  7. Жоғарғы жақтаулар мен сервоприводтарды жинап, серваларды қолдардағы бос орындар арқылы итеріп, содан кейін аралық бөліктерді екі білек пластиналарының арасына салып, M3 бұрандалармен бекітіңіз.
  8. Шынтақ буынының артқы жағына екі жақты жабысқақ таспаны қосып, артық бөлігін кесіңіз.
  9. Аралық бөлікті серво түбіне бекітіңіз, ол шынтақты қозғаушы рөлін атқарады.
  10. Жоғарғы білек жинағын астыңғы тірек рамасына сырғытыңыз және серво мүйізінің бұрандаларын бекітіңіз.
  11. Төменгі екі тақтайшаның арматуралық тіректерін қосыңыз. Мен салмақты төмендету үшін төртеуінің орнына екеуін қолдандым.
  12. Білек буынының аралық бөлігінің артқы жағына екі жақты жабысқақ таспаны қосып, артық бөлігін кесіңіз.
  13. Білек жетегінің рөлін атқаратын аралық бөлікті серво түбіне бекітіңіз.
  14. Сыртқы білезік пластинасын білек серво мүйізіне бекітіп, мүйіз бұрандамен бекітіңіз.
  15. Білек серво пластинасын екі білек буынының табақшасымен және ілгектермен жинаңыз.
  16. Серво тақтасындағы білек сервосын серво қысқыш пластинасымен бекітіңіз.
  17. Мүйіз бұрандасының саңылауының бітелуіне байланысты ұстағышты сол мүйізге бекітпес бұрын, білекке арналған мүйізді сервоға бекіту керек.
  18. Сервоға серво мүйізін бекітпес бұрын, ұстағыш бөліктерін бекіту үшін бос етіп жинаңыз. Бұл алдыңғы қадамда мүйізді бұрап алуға мүмкіндік береді.
  19. Тұтқаның мүйізін сервоға бекітіңіз және ұстағыштың буындарын ұстап тұратын бұрандаларды одан әрі қатайтыңыз. ЕСКЕРТПЕ: бұл гайкалар мен болттарды толық тартпаңыз, себебі ұстағыштың қозғалуына мүмкіндік беру үшін оларды босату қажет.

3 -қадам: Сымдар мен басқару тақтасы

Сымдар мен басқару тақтасы
Сымдар мен басқару тақтасы
Сымдар мен басқару тақтасы
Сымдар мен басқару тақтасы
Сымдар мен басқару тақтасы
Сымдар мен басқару тақтасы

Мен бұл жобаны кейінірек білім беру жобасы бойынша кейбір идеяларды дамыту алаңы ретінде құрдым. Сонымен, менің қосылымдардың көпшілігі қарапайым дюпонды қосқыштар. Мен жасаған жалғыз дәнекерлеу MCP3008 болды. Егер сіз осы компонент үшін үзіліс тақтасын тапсаңыз, онда сіз бұл білікті дәнекерлемей жасай аласыз.

Компоненттердің 3 тобы бар:

  1. Кірістер - бұл элементтер пайдаланушыдан ақпарат алады және джойстиктер мен mcp3008 ADC -тен тұрады.
  2. Шығарылымдар - бұл элементтер деректерді пайдаланушыға күйді көрсету немесе сервисті позиция деректерімен жаңарту арқылы жеткізеді. Бұл элементтер - СКД экраны, СКД рюкзагы, RGB светодиоды, Servo драйверлер тақтасы және соңғы сервистер.
  3. Өңдеу - Arduino кірістерден деректерді қабылдайтын соңғы топты жинайды және код нұсқауларына сәйкес мәліметтерді шығысқа шығарады.

Жоғарыдағы Фритзинг схемасы барлық компоненттердің түйреуіш байланыстарын егжей -тегжейлі көрсетеді.

Кірістер

Біз кірістерден бастаймыз. Джойстиктер - бұл аналогты құрылғылар, яғни олар Arduino -ға кіріс ретінде айнымалы кернеуді ұсынады. Үш джойстиктің әрқайсысында X және Y үшін екі жоғары аналогтық шығыс бар (жоғары, төмен, солға оңға) Arduino -ға барлығы 6 кірісті құрайды. Arduino Uno -да 6 аналогтық кіріс бар болса да, біз осы түйреуіштердің екеуін экранға және серво контроллеріне I2C байланысы үшін пайдалануымыз керек.

Осыған байланысты мен MCP3008 аналогын цифрлық түрлендіргішке (ADC) енгіздім. Бұл чип 8 -ге дейін аналогты кірісті қабылдайды және оларды Arduino SPI байланыс түйреуіштері арқылы цифрлық сигналға түрлендіреді:

  • MCP түйреуіштері 1-6> Бас бармақ джойстиктерінің айнымалы шығысы
  • 7 және 8 MCP түйреуіштері> Байланыс жоқ
  • MCP Pin 9 (DGND)> Жер
  • MCP Pin 10 (CS/SHDN)> 12 түйінін ажырату
  • MCP Pin 11 (DIN)> Біртұтас түйреуіш 11
  • MCP Pin 12 (DOUT)> Бұру түйреуіші 10
  • MCP түйрегіші 13 (CLK)> бұру түйреуіші 9
  • MCP түйрегіші 14 (AGND)> Жер
  • MCP түйреуіші 15 және 16> +5В

Схемада джойстик қосылыстары мысал ретінде көрсетілген. Қандай джойстиктерді сатып алатындығына және олардың қалай орнатылғанына байланысты сіздің қосылымдар менікінен өзгеше болуы мүмкін. Джойстиктің әр түрлі маркалары басқа түйреуішке ие болуы мүмкін, сонымен қатар X пен Y -ге әр түрлі бағытталуы мүмкін. ADC -тегі әрбір кіріс нені білдіретінін түсіну маңызды. Әр түйін менің кодымда келесі қатынастарды көрсетеді:

  • 1 түйреуіш - Негіз - Бұл түйреуіштегі аналогтық деректер роботтағы ең төменгі серводы айналдырады
  • 2 -түйреуіш - иық - бұл түйреуіштегі аналогтық деректер негізгі серво үстіндегі екі серводы айналдырады
  • 3 -ші түйреуіш - шынтақ - бұл түйреуіштегі аналогтық деректер келесі серваны иық серводардан жоғары қарай айналдырады
  • 4 -түйреуіш - UP/DN білезігі - бұл түйреуіштегі аналогтық деректер білек сервосын айналдырады, ұстағыш қондырғысын көтереді және төмендетеді.
  • 5 -түйреуіш - ұстағыш - бұл түйреуіштегі аналогтық деректер ұстағышты ашады және жабады
  • 6 -түйреуіш - білекті бұру - осы түйреуіштегі аналогтық деректер ұстағышты айналдырады

ЕСКЕРТПЕ: Бөлшектер тізімінде көрсетілген саусақ джойстиктерін сатып алу және монтаждау кезінде, модульдердің бағдары менікінен өзгеше болуы мүмкін екенін есте сақтаңыз, ADC -ке дұрыс қосылу үшін x және y сынақтарын тексеріңіз. Сонымен қатар, егер сіз менің 3D басып шығарылған басқару тақтасын қолдансаңыз, бекіту тесіктері менікінен ығысуы мүмкін.

Шығарулар

Adafruit PWM/Servo Controller бұл жобаны өте қарапайым етеді. Серверлерді сервоприводтарға қосыңыз және барлық қуат пен сигнал қосылымдары өңделеді. Егер сіз қосымша ұзын сымдары бар сервоприводтарды таппасаңыз, барлық серво кабельдеріңіз контроллер тақтасына жету үшін әр түрлі ұзындықтағы серво кабельдік кеңейтімдер жиынтығын алғыңыз келеді.

Серверлер келесі түрде қосылады:

  • Позиция 0 - базалық серво
  • 1 -позиция - иық серво (Servo Y кабелі)
  • 2 -позиция - шынтақ серво
  • 3 -позиция - 1 білек
  • 4 -позиция - Gripper Servo
  • 5 -позиция - 2 білек

Сонымен қатар, VCC және V + екеуі де +5 вольтке, ал GND жерге қосылған.

1 ЕСКЕРТПЕ: мұнда бір үлкен ескерту: барлық жобаның қоректену кернеуі сервистік басқару тақтасындағы қуат терминалы блогы арқылы түседі. Серво контроллеріндегі V+ түйреуіші шынымен терминал блогынан тізбектің қалған бөлігіне қуат береді. Егер сізге Uno -ны бағдарламалау қажет болса, мен Uno -ны компьютерге қоспас бұрын V+ түйреуішін ажыратуды ұсынамын, себебі серводардан ағымдағы тарту USB портын зақымдауы мүмкін.

ЕСКЕРТПЕ 2: Мен жобаны қуаттандыру үшін 6В айнымалы токтан тұрақты токқа арналған қабырға адаптерін қолданамын. Мен кемінде 4А ток беретін адаптерді ұсынамын, осылайша бір немесе бірнеше серво байланыстырылған кезде, токтың кенеттен өсуі сіздің жүйеңізді қызартып, Arduino-ны қалпына келтірмейді.

16X2 СКД экраны Adafruit СКД рюкзагына қосылған, ол Servo Controller қолданып жүрген I2C интерфейсін пайдалану үшін. Серво контроллеріндегі SCL және рюкзактағы CLK екеуі де Uno -дағы A5 түйреуішіне қосылады. Сол сияқты, Серво контроллеріндегі SDA мен рюкзактағы DAT екеуі де Uno -дағы A4 түйреуішіне қосылады. Сонымен қатар, 5В +5 вольтке, ал GND жерге қосылады. Рюкзактағы LAT ештеңеге қосылмаған.

Ақырында, RGB светодио 7 (ҚЫЗЫЛ), 6 (Жасыл) және 5 (Көк) түйреуіштеріне қосылады. Светодиодтың жерге тұйықтауы 330 Ом резистор арқылы жерге қосылады.

Өңдеу

Ақырында, жоғарыда көрсетілмеген Arduino қосылымдарының қалған бөлігі келесідей: 5V түйреуіші +5 вольтке, ал GND жерге қосылған.

Менің қондырғымда мен барлық тақтаның бүйірлік рельстерін пайдаланып, барлық қуат пен жер желілерін, сондай -ақ барлық құрылғыларға арналған I2C түйреуіштерін байланыстырдым.

4 -қадам: код

Код
Код

Бұрын айтылғандай, мен бұл жобаны жергілікті Maker Faire көрмесі ретінде құрдым. Мен мұны балалар мен ересектерге біздің стендте ойнауға болатын нәрсе деп ойладым. Белгілі болғандай, бұл мен ойлағаннан да танымал болды, сондықтан балалар бұл үшін ұрыса бастады. Сонымен, қайта жазу уақыты келгенде, мен «демонстрациялық режимді» енгіздім, ол уақыт шегін енгізеді.

Қол сол жерде отырады, біреу джойстиктің қозғалуын күтеді, және олар 60 секундтық таймерден басталады. 60 секундтың соңында пайдаланушыдан кіріс алуды тоқтатады және 15 секундқа «Демалыс». Қысқаша назар аударатын болсақ, бұл демалыс кезеңі таяқшаға таласты айтарлықтай азайтты.

Негізгі операция

Төмендегі сілтеме бөлімінде көрсетілген код өте қарапайым. Жиын минималды, максималды ауқымы, негізгі позициясы мен ағымдағы орнын көрсететін 6 буынның есебін жүргізеді. Қуат қосылған кезде, іске қосу функциясы MCP3008, СКД рюкзак (және одан кейін экран) сөйлесуге қажетті кітапханаларды анықтайды және жарықдиодты түйреуіштерді анықтайды. Ол жерден негізгі жүйені тексеріп, қолды үйге жібереді. Үй функциясы ұстағыштан басталады және қалыпты жағдайда байланыстыру мүмкіндігін азайту үшін негізге қарай жүреді. Егер қол толық ұзартылған болса, онда оны қолмен жұмыс жасамас бұрын қолмен ұстаған дұрыс. Жалпы сервистер өзінің позициясы туралы кері байланыс бермейтіндіктен, олардың әрқайсысын алдын ала белгіленген нүктеге қойып, әрқайсысының қаншалықты жылжытылғанын қадағалауымыз қажет.

Негізгі цикл алдымен күту режимінде басталады - джойстиктерді орталық қалыптан алыстату үшін іздейді. Бұл орын алғаннан кейін, негізгі цикл күйлерді кері санау күйіне өзгертеді. Пайдаланушы әр джойстикті жылжытқанда, джойстиктің ортадан салыстырмалы орналасуы қазіргі белгілі позицияға қосылады немесе шегеріледі және сәйкес серво жаңартылады. Серво бір бағытта белгіленген шегіне жеткенде, джойстик тоқтайды. Қайтадан жылжу үшін пайдаланушы джойстикті басқа бағытта жылжытуы керек. Бұл бағдарламалық қамтамасыз етудің шектеулері, олардың сервистік құралдардың тоқтауына қарамастан. Бұл мүмкіндік қажет болған жағдайда қолдың қозғалысын белгілі бір операциялық аймақта ұстауға мүмкіндік береді. Егер джойстик орталыққа шығарылса, қозғалыс тоқтайды.

Бұл код тек жалпы бастапқы нүкте. Сіз өзіңіздің қалауыңыз бойынша жеке режимді қоса аласыз. Бір мысал, таймерсіз үздіксіз жұмыс режимі болуы мүмкін немесе джойстиктің түймелерін кіріс ретінде қосып, жазу/ойнату режимін жазуы мүмкін.

5 -қадам: Сілтемелер мен ресурстар

Қол сілтемелері

  • Бұл жобаға шабыт берген пост
  • Түпнұсқалық дизайнерлер блог жазбалары Менің жеке роботтық қолым Менің шағын серво ұстағыштарым мен аяқталған робот қолым Робот қолы мен электрониканы көбейтіңіз.
  • Білек қолы
  • Thingiverse шағын серво ұстағыш

Бағдарламалық қамтамасыз ету кітапханалары

  • Adafruit PWM/Servo Controller Resources
  • MCP3008 кітапханасы
  • MCP3008 мәліметтер кестесі

Басқару тақтасы және код

  • Мен жасаған панельдің Tinkercad сызбасы
  • Ағымдағы код қоймасы

Ұсынылған: