Мазмуну:

Arduino башкарган робот колу W/ 6 даражадагы эркиндик: 5 кадам (сүрөттөр менен)
Arduino башкарган робот колу W/ 6 даражадагы эркиндик: 5 кадам (сүрөттөр менен)

Video: Arduino башкарган робот колу W/ 6 даражадагы эркиндик: 5 кадам (сүрөттөр менен)

Video: Arduino башкарган робот колу W/ 6 даражадагы эркиндик: 5 кадам (сүрөттөр менен)
Video: Контрольная лампа переменного тока с диммером Arduino AC 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 мм болгон. Окшош материалдар бул жерде АКШда 1/8 дюймду түзөт, анын калыңдыгы болжол менен 3,7 мм. Бул башында пресстөө үчүн иштелип чыккан тешиктерде боштукту калтырды. Чиймелерди оңдоонун ордуна мен бул түйүндөрдү бекемдөө үчүн Gorilla Glue колдондум.

Ал ошондой эле АКШдагы жергиликтүү аппараттык дүкөнүңүздө стандарттуу эмес M3 жиптүү гайкаларды жана болтторду колдонгон. Муну жергиликтүү жеткиликтүү варианттарга айландыруунун ордуна, мен жөн гана аппаратты онлайнда буйрук кылдым, төмөндөгү бөлүктөрүмдө көрсөтүлгөндөй.

  • 22 - M3 x 0.5 x 23mm Standoffs
  • 15 - М3 х 15мм аралык
  • 40 - M3 бурамалары
  • M3 Hex Nuts
  • M3 25мм бурамалар
  • 1 - Жаз
  • 3/4 "Эки тараптуу монтаж тасмасы
  • 5 - SG 5010 TowerPro Servo
  • 1 - SG92R TowerPro мини сервосу
  • 1 - SG90 TowerPro мини сервосу
  • 2.54 мм Single Row String Pin Header
  • 1 - Жарым өлчөмдөгү нан тактасы
  • 1 - Аял/Эркек 'Extension' Jumper Wires - 40 x 6"
  • 1 - 12 "x 24" Көк Акрил Барагы же лазердик кесимдер сиздин сүйүктүү кызмат көрсөтүүчүңүздөн
  • 2 - 3мм х 20мм + 4мм х 5мм биргелешкен подшипник аралыктары 3D Басылган (төмөндү караңыз)
  • 1 - Башкаруу панели *Электр зымдары бөлүмүндөгү Эскертүүнү караңыз
  • 1 - таралган RGB (үч түстүү) 10мм LED
  • 1 - Arduino Uno
  • 1 - Стандарттык ЖК 16x2 + кошумча - көк түстө ак
  • 1 - i2c / SPI мүнөздөгү ЖК рюкзагы
  • 1-Adafruit 16-канал 12-бит PWM/Servo Driver
  • 1 - MCP3008 - SPI интерфейси менен 8 -канал 10 -бит ADC
  • 3 - JoyStick Breakout Module Sensor *Электр зымдары бөлүмүндөгү Эскертүүнү караңыз
  • DC Barrel Jack
  • AC адаптерине
  • Servo Extension кабели - ар кандай узундукта

Бул колдун дээрлик бардык бөлүктөрү 1/8 дюймдук акрилден кесилген. Бириккен эки подшипникти басып чыгаруу керек. Ошондой эле, иштелип чыккан оригинал эки бириктиргич аралык базанын подшипник шахтасына 7 мм бийик болушун талап кылган. Мен жогорку колду чогулта баштаганымда, бул TowerPro сервосунун бийиктигинен улам өтө бийик экени бат эле билинди. Мен бийиктиги болгону 3 мм болгон жаңы биргелешкен подшипниктерге ээ болушум керек эле, бирок, айтор, дагы эле бир аз бийик, бирок башкарылуучу. Сиз сервопроводдоруңуздун салыштырмалуу бийиктигин эске алып, эки астыңкы куралдын ортосундагы аралыкты эсепке алгыңыз келет:

Серво бийиктиги + servo мүйүзү + бириктирилген подшипник + эки жактуу скотч = 47мм +/- 3мм.

2 -кадам: Курал чогултуу

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

Баштоодон мурун, бардык серверлериңизди борборго коюңуз! Эгерде курулуштун кайсы убагында болбосун, эгер сиз кол менен servo абалын жылдырсаңыз, анда аны рамкага бекитүүдөн мурун аны жаңыртууңуз керек болот. Бул, айрыкча, дайыма биримдикте кыймылдашы керек болгон ийин сервосунда маанилүү.

  1. Негизги сервону M3 25мм бурамалар менен алты бурчтуу гайкаларды колдонуп үстүңкү базалык табакка бекиткиле. ЭСКЕРТҮҮ: Сиз жаңгактарды колдонуу учурунда бошоңдоону азайтуу үчүн жиптерге бекитип коюңуз.

  2. Эгерде сиз менин бөлүктөрүмдүн тизмесин колдонуп жатсаңыз, анда сиз 5 базалык аралыкты чогултуп, M3 x 0.5 x 23mm Standoffsтун ар бирин экиге бириктирип, анан аларды үстүңкү базалык табакка алты бурчтуу гайкалар менен жабыштыргыңыз келет.
  3. Төмөнкү базалык плитаны 5 M3 бурама менен тирешүүгө тиркеңиз.
  4. Акрил коопсуз жабышчаакты колдонуу менен ийин плитасын эки servo монтаждоочу табличкага бекиңиз. Мен бул жерде Gorilla Glue колдондум. ЭСКЕРТҮҮ: Ар бир серво плитасынын артында тешиги бар, бул аларды бириктирүүчү арматураны салууга мүмкүндүк берет. Тешиктердин тизилгенин текшериңиз!* Колуңузда клей бар болсо, алдыга жылып, билектин монтаждоочу табагын кармагычтын негизги табагы менен кошуңуз. Мен муну төмөндө сүрөттөлгөн тирешүүлөр менен бириктирүү үчүн кылган жокмун.
  5. Азыр айыккан ийин курамын базалык сервого бекиңиз. Мен servo менен коштолгон эң кең мүйүздү колдондум, ал алты сабактуу монтаж мүйүзү болчу.
  6. Ийиндин сервосуна төмөнкү кол алкагын кошуу татаал болушу мүмкүн. Улантуудан мурун мүйүздөрдү астынкы колдорго бекитүүнү сунуштайм. ЭСКЕРТҮҮ: Сервоңузду ийинге чогултуу үчүн аларды борборго тактап коюңуз. Бул эки серво бирдикте кыймылга келиши керек, эгерде алар туура эмес жайгашса, минималдуу түрдө серво чырына себеп болот жана эгер туура эмес жайгашса, кадрга же сервого зыян келтириши мүмкүн. * Ар бир ийин сервопластинасы плиталар аркылуу өтпөстөн, кронштейндери менен орнотулган плиталардын арт жагына орнотулган - бул мүйүздү servo валына бурч менен түртүп, бураманы бекитүүгө мүмкүндүк берет. Сервону орнотуу плитасына азырынча бекитпеңиз. * Андан кийин, ички сервону кошуп, колго орнотуңуз

  7. Серваларды колтуктардагы боштуктар аркылуу түртүп, андан кийин эки колтуктун эки пластинасынын ортосуна боштуктарды салып, M3 бурамалары менен бекитүү менен жогорку колдун алкагын жана серволорун чогултуп алыңыз.
  8. Чыканак муунунун арасына эки тараптуу скотч кошуп, ашыкчасын кыркыңыз.
  9. Спираторду чыканактын кыймылдаткычы катары кызмат кыла турган сервонун түбүнө тиркеңиз.
  10. Колуңуздун үстүңкү бөлүгүн астынкы колтуктун алкагына салыңыз жана servo мүйүз бурамаларын бекиңиз.
  11. Төмөнкү колдун эки табагынын арасына тирөөчтөрдү кошуңуз. Мен салмакты түшүрүү үчүн төртөөнүн ордуна экөөнү колдондум.
  12. Билектин жогорку бөлүгүнүн арт жагына эки тараптуу скотч кошуп, ашыкчасын кыркыңыз.
  13. Аралыкты билектин кыймылдаткычынын милдетин аткара турган сервонун түбүнө бекиңиз.
  14. Билектин сырткы табагын билек серво мүйүзүнө бекитип, мүйүз бурамасы менен бекемдеңиз.
  15. Билек серво плитасын эки билек бириктиргич плитасы жана тирөөчтөрү менен чогуңуз.
  16. Серво плитасындагы билек сервону серво кысуучу табак менен бекемдеңиз.
  17. Мүйүз бурамасынын тешиги жабылып калгандыктан, туткунун мүйүзүн ошол мүйүзгө бекитүүдөн мурун, билектин мүйүзүн сервого бекитиш керек.
  18. Туткучтун серво мүйүзүн сервого бекитүүдөн мурун туткунун бөлүктөрүн туура орнотуп алыңыз. Бул мурунку кадамда мүйүздү бузууга орун берет.
  19. Кармагычтын мүйүзүн анын сервосуна бекиңиз жана туткунун муундарын кармаган бурамаларды дагы бекемдеңиз. ЭСКЕРТҮҮ: бул гайкаларды жана болтторду толугу менен тартпаңыз, анткени алар туткунун жылышына уруксат берүү үчүн бош болушу керек.

3 -кадам: Электр өткөргүчтөрү жана башкаруу панели

Электр өткөргүчтөрү жана башкаруу панели
Электр өткөргүчтөрү жана башкаруу панели
Электр өткөргүчтөрү жана башкаруу панели
Электр өткөргүчтөрү жана башкаруу панели
Электр өткөргүчтөрү жана башкаруу панели
Электр өткөргүчтөрү жана башкаруу панели

Мен бул долбоорду кийинчерээк билим берүүчү долбоордо болгон кээ бир идеялар үчүн өнүгүү платформасы катары кургам. Ошентип, менин байланыштарымдын көбү жөнөкөй дюпонт коннекторлору. Мен жасаган жалгыз ширетүү MCP3008 үчүн болгон. Эгерде сиз бул компоненттин сынык тактасын тапсаңыз, анда сиз бул колду акысыз кура алышыңыз керек.

Компоненттердин 3 тобу бар:

  1. Кириштер - Бул нерселер колдонуучунун маалыматын алат жана джойстиктерден жана mcp3008 ADCден турат.
  2. Чыгыштар - Бул нерселер колдонуучуларга статусту көрсөтүү же позиция маалыматтары менен серволорду жаңыртуу аркылуу маалыматтарды дүйнөгө жеткирет. Бул нерселер - LCD экраны, ЖК рюкзагы, RGB LED, Servo айдоочу тактасы жана акырында серволор.
  3. Иштетүү - Arduino коддордун көрсөтмөлөрүнө ылайык маалыматтарды киргизүүчү акыркы топту ороп, маалыматтарды чыгууга түртөт.

Жогорудагы Фритзинг схемасы бардык компоненттердин пин туташуусун деталдаштырат.

Кириштер

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

Ушундан улам, мен MCP3008 аналогун санариптик өзгөрткүчкө (ADC) коштум. Бул чип 8 аналогдук кирүүнү кабыл алат жана аларды Arduino'нун SPI байланыш түйүндөрүнүн үстүнөн санариптик сигналга айлантат:

  • MCP Pins 1-6> Бармактын джойстиктеринин өзгөрмөлүү жыйынтыктары
  • MCP Pins 7 & 8> Байланыш жок
  • MCP Pin 9 (DGND)> Жер
  • MCP Pin 10 (CS/SHDN)> Uno Pin 12
  • MCP Pin 11 (DIN)> Uno Pin 11
  • MCP Pin 12 (DOUT)> Uno Pin 10
  • MCP Pin 13 (CLK)> Uno Pin 9
  • MCP Pin 14 (AGND)> Жер
  • MCP Pin 15 & 16> +5V

Схемада джойстиктин байланыштары жөн гана мисал үчүн көрсөтүлгөн. Кайсы джойстиктер сатып алына жана кантип орнотулганына жараша, сиздин туташууларыңыз меникинен айырмаланышы мүмкүн. Джойстиктин ар кандай бренддери башка пинутка ээ болушу мүмкүн, ошондой эле X жана Y ар кандай багытталышы мүмкүн. Маанилүү нерсе, ADCдеги ар бир маалымат эмнени билдирерин түшүнүү. Ар бир пин менин кодумда төмөнкү мамилелерди билдирет:

  • Pin 1 - Негизги - Бул пиндеги аналогдук маалыматтар роботтун эң төмөнкү сервосун айландырат
  • Pin 2 - Ийин - Бул пиндеги аналогдук маалыматтар базалык сервонун үстүндөгү эки сервону айландырат
  • Pin 3 - чыканак - бул пиндеги аналогдук маалыматтар кийинки сервону ийин сервосунан өйдө бурат
  • Pin 4 - UP/DN Wrist - Бул пиндеги аналогдук маалыматтар билек сервосун айлантып, туткундун курамын көтөрүп жана түшүрөт
  • Pin 5 - Gripper - Бул пиндеги аналогдук маалыматтар туткунду ачат жана жабат
  • 6 -пин - Билекти буруңуз - Бул пиндеги аналогдук маалыматтар тутканы айландырат

ЭСКЕРТҮҮ: Бөлүктөрдүн тизмесинде көрсөтүлгөн бармактын джойстиктерин сатып алууда жана орнотууда, модулдардын багыты меникинен айырмаланышы мүмкүн экенин, ADCге туура туташуу үчүн x жана y сыноолорун текшерип көрүңүз. Ошондой эле, эгер сиз менин 3D басылган башкаруу панелимди колдонуп жатсаңыз, анда орнотуу тешиктери меники менен алмаштырылышы мүмкүн.

Чыгуулар

Adafruit PWM/Servo Controller бул долбоорду өтө жөнөкөй кылат. Серволорду сервоприводдорго туташтырыңыз жана бардык күч жана сигнал байланыштары иштетилет. Кошумча узундугу бар сервоприемниктерди таппасаңыз, баардык серво кабелдериңиз контролер тактасына жетиши үчүн ар кандай узундуктагы серво кабелдик кеңейтүүлөрдүн топтомун алгыңыз келет.

Сервалар төмөнкүчө туташат:

  • Позиция 0 - Негизги серво
  • Позициясы 1 - ийин servo (Servo Y Cable)
  • 2 -позиция - чыканак Servo
  • 3 -позиция - Билек 1 Серво
  • Позиция 4 - Gripper Servo
  • Позиция 5 - Билек 2 Серво

Кошумча, VCC жана V + экөө тең +5 Вольтко, ал эми GND Жерге туташкан.

ЭСКЕРТҮҮ 1: Бул жерде бир ЧОҢ эскертүү: Бүтүндөй долбоордун камсыздоо чыңалуусу Серво башкаруу тактасындагы электр терминалы блогу аркылуу келип жатат. Серво контроллериндеги V+ пин чынында терминал блогунан чынжырдын калган бөлүгүнө энергия берет. Эгерде сизге Uno программаңыз керек болсо, анда мен Uno -ны компьютериңизге туташтыруудан мурун V+ пинди ажыратууну сунуштайм, анткени серволордон учурдагы тартуу USB портуна зыян келтириши мүмкүн.

ЭСКЕРТҮҮ 2: Мен долбоорду кубаттоо үчүн DC дубал адаптерине 6V AC колдонуп жатам. Мен кеминде 4А ток бере ала турган адаптерди сунуштайм, ошондо бир же бир нече сервопростор байланганда, токтун күтүлбөгөн жерден көтөрүлүшү сиздин системаңызды кызартып, Arduino'ду баштапкы абалга келтирбейт.

16X2 ЖК экраны Adafruit ЖК рюкзакына туташып, I2C интерфейсинин артыкчылыктарын пайдаланып, Servo Controller тарабынан колдонулуп жатат. Серво контроллериндеги SCL жана рюкзактагы CLK экөө тең Uno боюнча A5 пинге туташат. Ошо сыяктуу эле, Серво контроллериндеги SDA жана рюкзактагы DAT экөө тең Uno боюнча пин A4 менен туташат. Кошумча, 5V +5 Вольтко, GND Жерге туташкан. Рюкзакта LAT эч нерсеге байланыштуу эмес.

Акырында, RGB LED Uno боюнча 7 (КЫЗЫЛ), 6 (Жашыл) жана 5 (Көк) казыктарга туташкан. LEDдин буту 330Ohm резистору аркылуу жерге туташтырылган.

Иштетилүүдө

Акыркы, бирок жок дегенде, жогоруда саналып өтпөгөн Arduino байланыштарынын калгандары төмөндөгүдөй: Pin 5V +5 Вольтко, GND Жерге туташкан.

Менин орнотуумда, мен баардык түзмөктөр үчүн I2C төөнөгүчтөрүн жана электр линияларын бириктирүү үчүн нан тактасынын каптал рельстерин колдондум.

4 -кадам: Код

Code
Code

Мурда айтылгандай, мен бул долбоорду алгач жергиликтүү Maker Faire үчүн көрсөтмө катары кургам. Мен муну биздин стендде балдар менен чоңдор ойной турган нерсе кылууну көздөдүм. Көрүнүп тургандай, бул мен ойлогондон да популярдуу болгон - ушунчалык көп болгондуктан, балдар аны талашып жатышты. Ошентип, кайра жазуу убактысы келгенде, мен "Демо режимин" киргиздим, ал убакытты чектейт.

Кол ошол жерде отурат, кимдир бирөө джойстикти кыймылдатуусун күтөт жана качан алар 60 секунддук таймерди баштайт. 60 секунддун аягында, ал колдонуучунун киргизүүсүн токтотот жана 15 секундга "Эс алат". Кыска көңүл буруу, бул эс алуу убактысы таяк убактысы үчүн болгон чыр -чатакты абдан азайтты.

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

Төмөндө маалымдама бөлүмүндө көрсөтүлгөн код абдан жөнөкөй. Массив 6 муунду мин, максимум, үй позициясы жана учурдагы абалы менен көзөмөлдөп турат. Колу иштетилгенде, баштоо функциясы MCP3008, LCD рюкзагы (жана андан кийин экран) менен сүйлөшүү үчүн керектүү китепканаларды аныктайт жана LED казыктарын аныктайт. Ал жерден ал негизги системаларды текшерет жана колун үйгө өтөт. Үй функциясы туткадан башталат жана кадимки шарттарда милдеттүү болуу мүмкүнчүлүгүн азайтуу үчүн базага түшөт. Эгерде кол толугу менен узартылган болсо, анда аны иштетүүдөн мурун кол менен колго кармоо жакшы болот. Жалпы серволор анын позициясы тууралуу пикирин билдирбегендиктен, биз алардын ар бирин алдын ала аныкталган жерге коюп, ар биринин канчалык жылып кеткенин көзөмөлдөп турушубуз керек.

Негизги цикл алгач күтүү режиминде башталат - джойстиктерди борбордук абалынан алыстоо үчүн издөө. Мындай болгондон кийин, негизги цикл штаттарды артка саноо абалына өзгөртөт. Колдонуучу ар бир джойстикти жылдырганда, джойстиктин борбордон салыштырмалуу абалы учурдагы белгилүү позицияга кошулат же алып салат жана тиешелүү сервону жаңыртат. Серво бир багытта белгиленген чекке жеткенде, джойстик токтойт. Колдонуучу аны кайра жылдыруу үчүн джойстикти башка жакка жылдыруу керек болот. Бул программалык камсыздоонун чектөөсү, алардын жабдууларынын токтоосуна карабай серволорго жүктөлөт. Бул өзгөчөлүк, керек болсо, колдун кыймылын белгилүү бир операциялык аймакта сактоого мүмкүндүк берет. Эгерде джойстик борборго кое берилсе, кыймыл токтойт.

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

5 -кадам: Шилтемелер жана ресурстар

Курал шилтемелер

  • Бул долбоорго шыктандырган пост
  • Original Designers блог посттору Менин жеке роботтук колум Менин мини серво кармагычтарым жана бүткөн роботтук колум Робот колу менен электрониканы көбөйткүлө
  • Thingiverse Arm
  • Thingiverse Mini Servo Gripper

Программалык китепканалар

  • Adafruit PWM/Servo Controller Resources
  • MCP3008 китепканасы
  • MCP3008 маалымат жадыбалы

Башкаруу панели жана коду

  • Мен жасаган панелдин Tinkercad чиймеси
  • Учурдагы коддун репозиторийи

Сунушталууда: