Мазмұны:

Arduino робот қолы: 5 қадам
Arduino робот қолы: 5 қадам

Бейне: Arduino робот қолы: 5 қадам

Бейне: Arduino робот қолы: 5 қадам
Бейне: Lesson 24: Smart Car Part 2: Moving Forwared, Reverse, left and right and Controling Speed of Car 2024, Шілде
Anonim
Image
Image
Arduino роботтық қолы
Arduino роботтық қолы
Arduino роботтық қолы
Arduino роботтық қолы

Бұл менің Arduino стартерлік жинағының 15 оқулығынан кейінгі алғашқы жобам болғандықтан, оның негізгі мақсаты - меннен артық білетіндердің сыншыларын, кеңестерін, ұсыныстарын, идеяларын алу.

Бұл жоба робот қолы туралы, 4 допты және тұтқасы бар. Шамалы бюджетпен: құрылымды досы қысқартты, 4 серво - 30 евро, 2 джойстик - 4 евро, болттар - 10 евродан аз, ал қалғаны (Arduino, сымдар, ұстағыш серво т.б.) менің бастапқы жинағыма енгізілген. Барлығы 45-50 АҚШ долларын құрайтын 40-45 еуроға (қару-жарақ жиынтығының бағасы бірдей, бірақ оны өз қолыммен жасау өте қызықты болды (және бірдеңені бұзып тастау)) және машина сияқты нұсқауларды орындамаңыз).

Бұл менің алғашқы жобам және нұсқаулық болғандықтан, мен «Бірінші рет автор» мен басқа да бірнеше конкурстарға қатыстым, сондықтан сізге ұнаса, дауыс беріңіз:)

1 -қадам: ЖОБАЛАУ ЖӘНЕ ЖИНАУ:

Алдымен маған құрылым қажет болды: бұл, сөзсіз, ең ұзын бөлігі болды, мен жобаны басқа біреуден көшіріп, қойғым келмегендіктен, мен жобаны сілтеме ретінде алдым және мен (және мені құтқарған бірнеше білікті сыныптастарым) оны біздің қажеттіліктерімізге қарай өзгерте бастады (айналу моменті, салмағы мен өлшемдері әр түрлі сервистер және т.б.). Мен оны бірнеше рет салуым керек болды, олардың әрқайсысында мен бірдеңе дұрыс емес деп таптым, ал кейбір бөліктерді қайта санап, қайталап көруге тура келді. Егер сіз оны қолданғыңыз келсе.dxf файлын тіркедім. Содан кейін электрониканы сатып алуға тура келді.: Бөлшектердің көпшілігі стандартты болды, қиын бөлігі - серводы таңдау. Мен қажетті моментті бармақ ережесімен есептедім, кейінірек дәлірек есептеуге тырыстым, мен оны шамадан тыс өлтіргенімді білдім. Шамасы 6 кг/см 2-ші серво үшін жеткілікті болар еді (базадан), ал менікі 9-11 кг/см құрайды. Бұл маған біраз қауіпсіздік пен 2 кг -ға дейін жүктеу мүмкіндігін береді (бұл мүмкін емес, бірақ мен оны техникалық түрде жасай алатынымды ұнатамын). Мен базадан алыстау кезінде айналу моментін төмендете отырып, әр түрлі серво сатып алар едім, бірақ бір сатушыдан бірдей серво сатып алу ең арзан нұсқа болды. 350mA және microservo 9g 100мА құрайды, барлығы 350*4 +100 = 1500мА. Мен зарядтағышты (6В 1.5А) құтқардым және оған екі өтпелі сымды дәнекерледім. (Егер кейбіреулеріңізге нақты нұсқаулар қажет болса, түсініктемелерде сұраңыз, мен біртіндеп жасау үшін бар күшімді саламын. нұсқаулық) Материалдар тізімі:- Құрылымы- M5x7 см бұранда x5, m5 болттар x15 (негіз)- M3x16mm бұранда x18*- M3x20mm бұранда x13*- M3 болттар x40*- M3x8cm бұранда x3- Қысқыш (әйтпесе ол құлап кетеді)- 3 дюбель- Arduino (немесе оны басқаратын тағы бір нәрсе, кемінде 5 PWM болуы керек)- 5-6В және кем дегенде 1,5А- 3х ps2 тәрізді джойстиктер- 4x TowerPro mg995 servos- 1x TowerPro 9g microservo (ұстау үшін)) - Көп секіргіш сымдар - Нан тақтасы*(мен болттар мен бұрандаларды тез жинау және бөлшектеу үшін қолдандым, әйтпесе олардың барлығын дерлік ағаштан жасалған бұрандалармен алмастыруға болады)

2 -қадам: КОД:

PS2 тәрізді джойстиктің екі осінің бірімен әр серводы басқару идеясы. Әр джойстик у мен х осі үшін әр түрлі «тыныштық мәндеріне» (0-1023 арасындағы мән) ие болып көрінді. бұл мәселе болды, өйткені айырмашылық шамалы болды (бірінде 623-те нөлге тең) және мен 0-1023-тен градусқа түрлендіру үшін карта функциясын қолданғым келді. Бірақ карта функциясы қалған мәнді 1023/2 деп санайды. Мен Arduino -ны қосқаннан кейін қозғалатын әрбір сервоға жақсы әсер етпедім. Мен оқу мәні мен әр түрлі тыныштық мәнінің арасындағы айырмашылықты қолмен табу арқылы оны жеңе алдым (мен оны әр джойстик үшін бөлек есептедім), содан кейін кодты қысқа және ақылды ету үшін, мен оны орнату функциясындағы қалған мәндерді оқуға және оларды кейбір айнымалыларда сақтауға мәжбүрледім. Жаңа алгоритм өсімдікті градусқа түрлендіруге негізделген, бірақ мен өз деңгейімнің өте төмен мөлшерін алғым келді. Мен оны тұрақтыға бөлуім керек болды: мен соңғы 200 -ге дейін көптеген мәндерді сынап көрдім (бұл мәнді қалаған мәнге қолмен өзгерту үшін потенциометрді қосуға болады). Қалған код өте стандартты, менің ойымша, өсімді есептеуді бөлек функцияның ішіне кіргізу әдемірек болса да.

3 -қадам: ЭЛЕКТРОНИКА:

ЭЛЕКТРОНИКА
ЭЛЕКТРОНИКА

Сымдар суретте немесе фритинг файлында көрсетілгендей: түйреуіштерге серво сигналы: 5-6-9-10-11 және аналогты түйреуіштерге джойстик осі: A0-A1-A2-A3-A4 джойстиктерді мен серво үшін қолданатын зарядтағыш емес, Arduino жеткізуі керек еді. Әйтпесе, серво кездейсоқ алға -артқа қозғалатын болады, менің ойымша, егер мен оларды зарядтағышпен жабдықтасам, Arduino мен оларды жылжытқанда әлеуетті айырмашылықты дәл айта алмайды, бірақ содан кейін: Мен электроникаға өте жаңашылмын, бұл жай ғана болжам. Ардуиноны зарядтағыш пен жерге қосу тақтасы арқылы кездейсоқ және күтпеген қозғалыстарды болдырмауға көмектесті.

4 -қадам: АҒЫМДА ЖАҚСАРТУ ЖҮРДІ:

Қазіргі уақытта жетілдіру жүріп жатыр
Қазіргі уақытта жетілдіру жүріп жатыр

Әр джойстик 2 сервоны (осіне 1) басқара алатындықтан, маған бүкіл қолды басқару үшін 3 серво қажет, бірақ бақытсыздықпен менде тек 2 саусақ бар, сондықтан мен әр серводы басқарудың орнына тек xyz позициясын басқара аламын деп ойладым. 4 ось, 2 джойстик және 2 бас бармақ үшін тұтқаны ұстаңыз және ашыңыз! Мен бұл мәселенің кері кинематика деп аталатынын білдім, мен мұның бәрі оңай екенін білдім. Сызықтық емес) теңдеулер әр эффектордың күйін табу үшін (серво үшін бұрыштар) соңғы позицияда. Мен теңдеулері бар қолмен жазылған қағазды жүктедім, мен қазір оларды пайдалану үшін жаңа кодпен жұмыс жасаймын. Бұл өте қиын болмауы керек, маған джойстиктерді оқу керек, олардың оқуын xyz координаттарын өзгерту үшін қолдану керек, содан кейін оларды менің теңдеулеріме беру, серво бұрыштарын есептеу және жазу керек.

5 -қадам: БОЛАШАҚ ЖАҚСАРТУЛАР:

Сонымен, мен оның нәтижесіне қанағаттандым және мен электроникада мүлдем жаңашыл екенімді немесе өзімді жарып жібермеудің өзі үлкен жеңіс екенін айттым. Басында айтқанымдай, бағдарламалық қамтамасыз етуді де, болашақты жақсартуға арналған кез келген идея. Аппараттық құрал - бұл жақсы! Мен әзірше ойландым: 1. Джойстиктердің «сезімталдығын» өзгертуге арналған потенциометр.2. Жаңа код оны кейбір қозғалыстарды «жазуға» және оларды қайталауға мәжбүр етеді (мүмкін, бұл адам енгізгеннен тезірек және қысқа) 3. Қандай да бір визуалды/қашықтықты/дауысты енгізу және джойстиктерді пайдаланбай объектілерді алу мүмкіндігі4. Геометриялық фигураларды сала білу Кез келген басқа идея? Кез келген ұсыныстармен пікірлеріңізді білдірулеріңізді өтінемін. Рақмет

Ұсынылған: