Мазмуну:

Arduino жана PC тарабынан башкарылган робот колу: 10 кадам
Arduino жана PC тарабынан башкарылган робот колу: 10 кадам

Video: Arduino жана PC тарабынан башкарылган робот колу: 10 кадам

Video: Arduino жана PC тарабынан башкарылган робот колу: 10 кадам
Video: Контрольная лампа переменного тока с диммером Arduino AC 2024, Ноябрь
Anonim
Image
Image
Долбоордун артындагы теория
Долбоордун артындагы теория

Роботтук курал өнөр жайда кеңири колдонулат. Мейли монтаждоо иштери үчүн болсун, ширетүү же ал тургай ISSке (Эл аралык космостук станцияга) туташуу үчүн колдонулат, алар адамдарга жумушта жардам беришет же адамды толугу менен алмаштырышат. Мен курган кол - бул объекттерди жылдыруу үчүн колдонулушу керек болгон роботтун кичине өкүлү. Бул серверлерди көзөмөлдөө үчүн буга чейин камтылган китепканасы бар arduino pro mini тарабынан башкарылат. Серверлер PWM (Pulse Width Modulation) тарабынан башкарылат, аны программалоо кыйын эмес, бирок бул китепкана аны жеңилдетет. Колдонуучу бул серволорду потенциометрлердин жардамы менен көзөмөлдөй алат, алар чыңалуу бөлгүчтөрү катары иштөө үчүн иштелип чыккан же серво моторлорун башкаруу үчүн 4 жылдыргычты колдонгон компьютердеги программадан.

Бул долбоор үчүн мен өзүмдүн жеке ПКБны иштеп чыгып, аны жасоого, 3D колунун моделдерин түзүүгө жана баарын көзөмөлдөгөн код жазууга туура келди. Анын үстүнө мен питондогу кошумча программаны коддоп койдум, ал сигналдарды декоддоону жана серверлерди колдонуучу койгон позицияга жылдырууну башкарган arduinoго жөнөтөт.

1 -кадам: Долбоордун артындагы теория

Долбоордун артындагы теория
Долбоордун артындагы теория

Arduino сонун иштейт, ал бекер китепкананы сунуштайт. Бул долбоор үчүн мен Servo.h китепканасын колдондум, бул серверлерди көзөмөлдөөнү бир топ жеңилдетет.

Серво мотору PWM -Pulse Width Modulation- тарабынан башкарылат, демек сервону көзөмөлдөө үчүн кыска чыңалуу импульсун жасоо керек. Серво бул сигналдын узундугун чечип, берилген позицияга бурула алат. Бул жерде мен буга чейин айтылган китепкананы колдонгом. Сигналдын узундугун өз алдынча эсептеп чыгуунун кажети жок болчу, бирок мен китепкананын функцияларын колдондум, ага мен жөн гана градуска параметри өткөрүп берчүмүн жана сигнал берет.

Серваларды көзөмөлдөө үчүн мен чыңалуу бөлүүчү катары кызмат кылган потенциометрлерди колдондум. Arduino такталарында мен долбоор үчүн колдонгон бир нече аналогдук/санариптик алмаштыргычтар бар. Негизинен arduino потенциометрдеги ортоңку пиндеги чыңалууну көзөмөлдөп турат, эгерде ал бир тарапка чыңалса 0 Вольт (маани = 0), экинчи жагында 5 Вольт (мааниси = 1023). Бул маани 0 - 1023 - 0 - 180 диапазонуна чейин масштабдалып, андан кийин жогоруда айтылган функцияга өткөрүлөт.

Дагы бир тема - бул ардуино менен сериялык байланыш, мен кыскача айтып берем. Негизинен компьютерде жазылган программа колдонуучу тандаган маанини жөнөтөт, arduino аны чечмелеп, сервону берилген позицияга жылдыра алат

2 -кадам: PCB долбоорлоо

PCB долбоорлоо
PCB долбоорлоо
ПХБ долбоорлоо
ПХБ долбоорлоо
PCB долбоорлоо
PCB долбоорлоо

Мен 2 ПХБны иштеп чыктым - бирин башкы көзөмөлдөө үчүн, бул жерде servo үчүн arduino жана пинтер, экинчисинде потенциометрлер. 2 ПХБнын себеби, мен робот колун коопсуз аралыктан башкаргым келди. Эки схема берилген узундуктагы кабель менен туташкан - менин учурда 80 см.

Кубат булагы үчүн мен тышкы адаптерди тандап алдым, анткени мен колдонгон серверлер arduino бере албаганга караганда көбүрөөк энергия керектейт. Көрүнүп тургандай, мен айта элек конденсаторлор бар. Алар чыпкалоо үчүн колдонулган конденсаторлор. Белгилүү болгондой, servo мотор кыска импульстар менен башкарылат. Бул импульстар буга чейин 0-5 вольттун чыңалуусунун төмөндөшүн жана потенциометрлердин азыраак диапазонуна ээ боло алат. Бул ортоңку пиндеги чыңалуу өзгөрөт жана arduino бул маанини алат жана servo мотордун абалын өзгөртөт дегенди билдирет. Бул түбөлүккө улана берет жана керексиз термелүүнү пайда кылат, аны кээ бир конденсаторлор менен катар параллелдүү түрдө жок кылууга болот.

3 -кадам: PCB жасоо

PCB жасоо
PCB жасоо
PCB жасоо
PCB жасоо
PCB жасоо
PCB жасоо

PCB жасоо үчүн мен муну окуп чыгууну сунуштайм.

Мен Iron on Glossy paper ыкмасын колдондум жана ал абдан жакшы иштеди.

Андан кийин мен тетиктерди ПХБга ширеттим. Келечекте мага керек болуп калса, мен arduino розеткасын колдонгонумду көрө аласыз.

4 -кадам: Колдун дизайнын түзүү

Кол долбоорлоо
Кол долбоорлоо
Кол долбоорлоо
Кол долбоорлоо
Кол долбоорлоо
Кол долбоорлоо

Бул долбоорду түзүүнүн эң кыйын бөлүгү болгон жок.

Бүтүндөй орнотуу 8 бөлүктөн турат, мында 4 кыймылдабай турган бөлүктөр - потенциометрлер үчүн куту жана arduino жайгашкан база - жана калган төртөө колдун өзү. Дизайн абдан интуитивдүү жана кандайдыр бир жол менен жөнөкөй болгонун эске албаганда, майда -чүйдөсүнө чейин айтпайм. Бул менин бөлүктөрдүн тизмесине киргизе турган менин жеке ПКБ жана серволорума ылайыкташтырылган.

5 -кадам: Бөлүктөрдү басып чыгаруу

Бөлүктөрдү басып чыгаруу
Бөлүктөрдү басып чыгаруу
Бөлүктөрдү басып чыгаруу
Бөлүктөрдү басып чыгаруу
Бөлүктөрдү басып чыгаруу
Бөлүктөрдү басып чыгаруу

Бөлүктөр Prusa принтеринде басылган. Кээ бир жүздөрдү бир аз тегиздеп, тешиктерди казуу керек болчу. Ошондой эле тирөөч мамыларды алып салуу керек.

6 -кадам: Бардыгын бириктирүү

Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу
Баарын бир жерге коюу

Бул кадамда аталышта айтылгандай, мен баарын бириктирдим.

Алгач мен зымдарды потенциометрлерге, анан ошол зымдарды ПХБга коштум. Потенциометрлер тешиктерге абдан ылайыктуу жана мен ПКБны кутунун ылдый жагында басылган мамыларга ысык чаптап койгом. Сиз тактайга жана кутуга тешик бурсаңыз болот, бирок мен аны жабыштыруу жетиштүү экенин билдим. Анан мен кутунун эки бөлүгүн жаптым жана аларды мен ойлогон тешиктерге туура келген 4 бурамалар менен бекемдедим.

Кийинки кадам катары мен эки тактаны туташтыруу үчүн жалпак лента кабелин жасадым.

Негизги кутуда мен туташтыргычтын VCC пининен, андан кийин Vcc тактасына жана GNDден to GND коннекторуна зымдарды коштум. Андан кийин мен туташтыргычты ордуна коюп, мамыларга тактай чаптадым. Коннектор тешикке туура келет, андыктан ысык клейдин кереги жок.

Андан кийин, бурамаларды колдонуу менен мен астыңкы сервону кутунун түбүнө бекиттим.

Андан кийин, мен потенциометрдин кутусунун үстүңкү бөлүгүн астынкы бөлүгүнө коюп, аны 4 бурама менен бекиттим.

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

Акыркы кадам катары мен кутучалардын түбүнө лента чаптадым, анткени антпесе алар жылып кетет.

7 -кадам: Arduino программалоо

Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо

Мен долбоордун артында программанын теориялык жактан кандай иштээрин айттым, бирок мен аны андан да көбүрөөк талкалайм.

Ошентип, башында биз кээ бир өзгөрмөлөрдү аныкташыбыз керек. Көбүнчө ал 4 жолу көчүрүлөт, анткени бизде 4 сервос бар жана менин оюмча, программаны бир аз кыскартып коюу үчүн татаал логиканы жасоонун кажети жок.

Андан кийин боштук орнотуулары бар, анда серволордун төөнөгүчтөрү аныкталат.

Андан кийин боштук цикл бар - чексиз айлануучу программанын бир бөлүгү. Бул бөлүктө программа потенциометрдин маанисин тартып, аны таразалап, өндүрүштү киргизет. Бирок потенциометрдин мааниси бир аз секирип турган бир көйгөй бар, ошондуктан мен акыркы 5 маанинин орточо чыпкасын кошуум керек болчу, андан кийин ал өндүрүштү киргизет. Бул керексиз чайкоочулуктун алдын алат.

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

Кодду толук түшүнүү үчүн мен сизге расмий arduino вебсайттарына кирүүнү сунуштайм.

8 -кадам: Pythonдо программалоо

Pythonдо программалоо
Pythonдо программалоо
Pythonдо программалоо
Pythonдо программалоо
Pythonдо программалоо
Pythonдо программалоо

Бул долбоордун бул бөлүгү кереги жок, бирок бул долбоорго көбүрөөк маани берет деп ойлойм.

Python колдонууга бекер болгон көптөгөн китепканаларды сунуштайт, бирок бул долбоордо мен тектер менен сериалдарды колдонуп жатам. Tkinter GUI (Графикалык Колдонуучу Интерфейси) үчүн колдонулат жана сериалда анын аты айтылгандай сериялык байланыш үчүн колдонулат.

Бул код GUIди 4 слайдер менен түзөт, алардын минималдуу мааниси 0 жана максималдуу 180. Бул сиз үчүн даражада экенин жана ар бир сыдырма бир сервону көзөмөлдөө үчүн программаланганын билдириши мүмкүн. Бул программа абдан жөнөкөй - бул маанини алат жана arduinoго жөнөтөт. Бирок анын жөнөтүү жолу кызык. Эгерде сиз биринчи сервонун маанисин 123 градуска өзгөртүүнү чечсеңиз, анда ал 1123 arduino маанисине жөнөтүлөт. Жөнөтүлгөн ар бир сандын биринчи саны кайсы серво көзөмөлдөнөрүн билдирет. Arduinoдо бул кодду чече турган жана туура сервону жылдыра турган код бар.

9 -кадам: Бөлүктөрдүн тизмеси

Бөлүктөрдүн тизмеси
Бөлүктөрдүн тизмеси
  • Arduino Pro Mini 1 даана
  • Servo FS5106B 1 даана
  • Servo Futaba S3003 2 даана
  • Pinx header 2x5 1шт
  • Pinx header 1x3 6 даана
  • Конденсатор 220uF 3 даана
  • Micro Servo FS90 1 даана
  • AWP-10 туташтыргычы 2 даана
  • Коннектор FC681492 1 даана
  • Switch P-B100G1 1 даана
  • Розетка 2х14 1 даана
  • TTL-232R-5v-конвертер 1 даана
  • Потенциометр B200K 4 даана
  • жана дагы көптөгөн бурамалар, төшөмөлөр жана гайкалар

10 -кадам: Акыркы ойлор

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

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