Мазмуну:

Өзүңүз башкарган автоунааңызды куруңуз - (Бул Инструкция иштөөдө): 7 кадам
Өзүңүз башкарган автоунааңызды куруңуз - (Бул Инструкция иштөөдө): 7 кадам

Video: Өзүңүз башкарган автоунааңызды куруңуз - (Бул Инструкция иштөөдө): 7 кадам

Video: Өзүңүз башкарган автоунааңызды куруңуз - (Бул Инструкция иштөөдө): 7 кадам
Video: Акш европа НАТО корккон Азияны башкарган эң күчтүү саясатчы ПУТИН. Мухаммад Бекмин. 2024, Июль
Anonim
Image
Image

Салам, Эгерде сиз менин башка USB Instructable on Remote USB Gamepad менен роботту карасаңыз, бул долбоор окшош, бирок кичине масштабда. Сиз ошондой эле Youtube'дагы Robotics, Home-Grown Voice-Recognition же Self-Driving Car ойнотмо тизмелеринен жардам же илхам ала аласыз.

Мен чоң робот менен иштей баштадым (Wallace 4), бирок мен жергиликтүү Meetup тобун баштагандан бери кичине масштабдагы бир нерсеге муктаж болчумун жана топ компьютерди көрүүгө абдан кызыкчу.

Ошентип, мен бул Udemy курсуна туш келдим: Мага бул долбоордун идеясын берген Автомобилди өзүң башкар.

Эгерде сизди Udemy курсу кызыктырса, анда кайра текшерип турсаңыз болот; ал мезгил -мезгили менен чоң арзандатуу менен сатыкка чыгат. Эскертүү: 1 -бөлүк жана 2 -бөлүк бар - эки курсту пакет катары кантип алуу керектиги боюнча бир аз териштирүү керек (арзандатылган).

Бул көрсөтмөнүн максаты эки эсе. Биринчиден, курстун айрым бөлүктөрүнө (мисалы, тетиктер жана жабдыктар) кээ бир көрсөткүчтөрдү жана альтернативаларды берүү. Экинчиден, курсту кеңейтүү.

Udemy курсунун негизги максаты:

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

Ал тилкенин тилкелерин жана жолдун аягына жеткенде таанышы керек.

Ал токтоочу белгини (жана токтотууну) таанышы керек.

Ошондой эле, КЫЗЫЛ жана Жашыл жол белгиси.

Ал ошондой эле тоскоолдукту (башка машинаны) таанып, айланып өтүшү керек.

Бул Нускаманын курска эмне кошот:

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

Курс берген нерсеге альтернатива бер.

Курсту сатып алуунун кажети жок болушу мүмкүн:

Бул Instructable баштоо үчүн керек болушу мүмкүн.

Жабдуулар

Негизги (сунушталган) бөлүктөр:

Робот шасси

Төрт мотор

Arduino

Raspberry Pi (3, 3B+, 4)

Камера (USB веб -камерасы же Picamera модулу)

Батарея кубаты

Күйгүзүү/Өчүрүү

секирүүчү зымдар

стенд-офф (пластмассадан жана балким металлдан да)

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

Бул долбоорду аткаргандан кийин, так бөлүктөр анча маанилүү эмес экенин түшүнөм.

1 -кадам: Бөлүктөр жөнүндө көбүрөөк маалымат …

Image
Image
Бөлүктөр жөнүндө көбүрөөк маалымат…
Бөлүктөр жөнүндө көбүрөөк маалымат…
Бөлүктөр жөнүндө көбүрөөк маалымат…
Бөлүктөр жөнүндө көбүрөөк маалымат…

Байланышкан видео бөлүктөрү жана мен тапкан кээ бир маселелер жөнүндө майда -чүйдөсүнө чейин айтылат.

  • Ар кандай шасси / моторлорду карап көрүңүз
  • Кыймылдаткычтарда буга чейин зымдары болушу керек
  • Сиз бургулоочу жана бургулоочу бөлүктөргө ээ болууну кааласаңыз болот, ЖЕ көбүрөөк тешиктери бар шасси
  • Салмагы көйгөй экенин унутпаңыз. Баары мүмкүн болушунча жеңил болушу керек.
  • L298 H-Bridge мотор айдоочусу сонун иштейт. ЭСКЕРТҮҮ: бурамалуу терминалдык блоктор менен алыңыз (сүрөттү караңыз)
  • Сиз, балким, пластикалык жана металлдык тирешүүлөрдү каалайсыз, M3 өлчөмү, балким, эң жакшы тандоо.

Пластикалык тирөөчтөр тактайларды шассиге орнотуу үчүн жакшы (мотор драйвери, Arduino, Raspberry, кубаттуу компьютер, күйгүзүү/өчүрүү ж.б.).

Металлдык тирешүүлөр шассини (күчүн) чогултуу үчүн, ошондой эле өзгөчө сиз иштеп жатканда (программалоо, тестирлөө) жакшы. Өнүгүү үчүн металлдын тирөөчтөрү таяк катары кызмат кыла алат. Чыныгы машинанын үстүндө иштеп жаткандай эле, дөңгөлөктөр абада болуп, ээн -эркин кыймылдай тургандай кылып машинаны көтөргүңүз келет. Бул абдан маанилүү! Сиз ката кетиресиз жана машинанын жөн эле учуп кетишин каалабайсыз.

Бургулоо + бургулоо биттери

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

Бургулоо колдонуу менен позицияны оңой эле өзгөртө аласыз (өзгөчө шасси пластик болсо) жана ал профессионалдуу көрүнөт.

2 -кадам: Өнүктүрүү учурунда машинаны иштетүү

Өнүктүрүү учурунда машинаны иштетүү
Өнүктүрүү учурунда машинаны иштетүү
Машинаны иштеп чыгуу учурунда иштетүү
Машинаны иштеп чыгуу учурунда иштетүү

Менимче, бул долбоорду баштоонун эң ылдам жана оңой жолу бул:

  • программалык камсыздоо Arduino эскизин иштеп чыгуу үчүн, жөн гана USB аркылуу компьютериңизге Arduino туташтырыңыз
  • Raspberry Pi программалык камсыздоосу үчүн сизде жок дегенде 3 амперди камсыздай турган 5В USB кубаты болушу керек. Жана анын күйгүзүү/өчүрүү которгучу болушу керек. Эгерде сизде компьютериңизге жакшы, кубаттуу USB хабы кошулбаса, анда, балким, Малинаны түздөн -түз компьютериңизден иштете албайсыз.
  • Моторлорду/дөңгөлөктөрдү сыноого даяр болгондо, эң оңой (сүрөттү караңыз) - жакшы электр менен камсыздоо. Бирок, алар арзан эмес.

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

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

3 -кадам: Чыныгы колдонуу учурунда машинаны иштетүү

Чыныгы колдонуу учурунда машинаны иштетүү
Чыныгы колдонуу учурунда машинаны иштетүү
Чыныгы колдонуу учурунда машинаны иштетүү
Чыныгы колдонуу учурунда машинаны иштетүү

Эгерде сиз логикага ылайык 5В кубаттуулуктагы курсту (же мен эмне кылганымды) карманууну чечсеңиз, анда 5В USB кубаттуулугунун баары бул долбоор үчүн жакшы эмес экенин билиңиз.

Бул жерде эң башкы нерсе, сизге 5В керек, бирок сизге кеминде 3 ампер керек! Муну ойлонуп көрүңүз - сиз ноутбукту иштете турган кубат банкын каалайсыз (балким).

Эгерде сиз АКШда жашасаңыз, анда муну эң жакшы жолдордун бири - Best Buy сатып алуу. Неге? Анткени алардын 14 күндүк акчаны кайтаруу саясаты.

Иштей турган бирин тапканга чейин мен үч башка powerbankти сынап көрүшүм керек болчу. Калгандары Raspberry Piнин чыңалуусу төмөн экенине нааразы болушат.

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

Arduino кантип кубатталсын

Udemy курсунда автор Arduino -ны Powerbankтен түздөн -түз иштетүүнү тандаган (ал жасаган жеке компьютери аркылуу) жана Arduino GPIO туташтыргычында электр казыктарын колдонгон.

Бирок, мен Arduino -ны Raspberry Piден USB кабели аркылуу гана иштетүүнү чечтим.

Сиз кайсынысы жакшы экенин чечишиңиз керек.

Моторлорду/мотор айдоочусун кантип иштетүү керек

Udemy курсунда автор моторлорду/драйверлерди 5В кубат банкынан түз иштетүүнү тандады. Эгерде сиз бул ыкманы колдонсоңуз, эки нерсе бар.

  1. Моторлор биринчи жолу бурула баштаганда, алар эң токту тартат. Бул кубаттуулуктун чыңалуусу 5Вдан төмөн түшүп кетишине алып келет (Raspberry).
  2. Моторлорду иштетүү үчүн 5В гана колдонуу моторлорго мүмкүн болушунча көп энергия бербей жатканыңызды билдирет жана унаа жайыраак кыймылдайт (жайыраак). Мен моторлорду сынап көрдүм (ошол энергия менен) (сүрөттү караңыз) жок дегенде 9В. Алар 9Вда жакшы иштешет.

9V (же андан көп) жөнүндө байкоолор

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

Азыр мен моторлорду иштетүү үчүн бир нече (3) 9V батарея клеткаларын параллель колдонуп жатам. Мен щелочтуу жана NiMH кайра заряддалуучу батареяларды колдондум.

Окуу тажрыйбасы #1: NiMH 9V батареяларын туура заряддоо үчүн көп убакыт талап кылынат (көп саат).

Мүмкүн болгон чечим: көп батареялуу NiMH заряддагычка инвестиция салыңыз. Бул "акылдуу" кубаттагыч болушу керек.

Кемчилиги: Алар арзан эмес.

Окуу тажрыйбасы #2: 9V батареялары чындыгында бир нече кичинекей ички клеткалардан турат. Эгерде ал клеткалардын бири өлүп калса, анда батарейканын баары жараксыз болуп калат. Менде мындай көйгөй болгон эмес, бирок мен бул тууралуу окудум.

Окуу тажрыйбасы #3: Бардык 9В батареялары бирдей чыңалууда эмес. Бул маанилүү. Анткени чыңалуу канчалык жогору болсо, ылдамдык ошончолук көп болот. Кээ бир батарея клеткалары (жана заряддагычтар) болгону 8.4В. Кээ бирлери андан да аз. Кээ бирлери 9.6V.

Окуу тажрыйбасы #4: 9V батареялары, өзгөчө NiMH батарейкалары, салмагы жеңил. Жакшы нерсе. Бирок, алардын көбү чыгуучу токтун мАны гана камсыз кылат. Ошон үчүн мен аларды параллель жайгаштырууга туура келди. Сизге дээрлик 2 амперлик жалпы кубаттуулук керек, ал тургай кыска мөөнөткө.

Үйрөнүү тажрыйбасы #5: Радио көзөмөлдөгөн унаалар сыяктуу нерселер үчүн колдонулган 9.6В батарейкалар бар. Мен азырынча бирөөнү колдоно элекмин, бирок алар мен сыяктуу 9В параллелдүү батареяларды жасоого караганда көбүрөөк ток берет деп ишенем. Ошондой эле, сиз жалгыз блокту кубаттай аласыз. Пакеттер ар кандай өлчөмдө келет. Жана салмагын эске алуу керек. Анан пакетти бүт машинаны же жөн эле моторлорду иштетүү үчүн колдоносузбу? Эгерде бүтүндөй машине үчүн, анда Raspberry Pi үчүн 5В басаңдатуучу жөнгө салуучу керек болот.

L298 H-Bridge ушул максатта 5В чыгаруу мүмкүнчүлүгүнө ээ, бирок мен аны Raspberry Pi үчүн канчалык көп ток өндүрө алаары жана L298 тактасында өтө көп штамм боло тургандыгы тынчсыздандырат.

Эгер сиз эки башка энергия булагын алууну чечсеңиз, анда сизде салмак маселеси болушу мүмкүн (өтө оор).

4 -кадам: Gamepad айдоо үчүн программалык камсыздоо

Мен бул бөлүмдүн көп бөлүгүн робот аркылуу башкарылган Remote USB Gamepad Instructable аркылуу камтыдым деп ойлойм, ошондуктан мен бул жерде кайталабайм.

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

5 -кадам: Камера кошуу

Камера кошуу
Камера кошуу
Камера кошуу
Камера кошуу
Камера кошуу
Камера кошуу

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

Сиз камераны эки тилкелүү жолго карагандай кылып көтөргүңүз келет, ошондо ал тилкелерди оңой тааныйт.

Мен АКШда жашаган жерде жыгач дубалдар абдан арзан болчу. Сиз аларды Lowe же Home Depotтон сатып алсаңыз болот. Мен тегерек дубелдердин ордуна төрт бурчтуу дубелдерди тандап алдым.

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

Ошондой эле, мен мунараны USB веб -камерасы менен баштайм, бирок кийинчерээк Picamera модулун колдонууга өтөм деген ойдо жасадым.

Сиз балык көздүү камерага инвестиция салгыңыз келиши мүмкүн.

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

Анан базаны машинанын шассисине бекиттим.

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

Мен баарын текшерүү үчүн чоң роботтон (Wallace Robot 4) Python жана Node.js коддорун "ээрчи" деп алып келдим. Сураныч, "ээрчүүм" жөнүндө көбүрөөк маалымат берген youtubes тизмеси үчүн бул бөлүмдөгү сүрөттөрдү караңыз.

Мен айтып өткөндөй, адегенде USB веб -камерасын орнотуу оңой болгон. Кийинчерээк мен Picamera модулун орното алам.

6 -кадам: Жүздү таануу - Позицияны аныктоо

Image
Image

Бул бөлүк Udemy курсунун фокусу эмес, бирок бул кызыктуу көнүгүү болду.

Эгер сиз "python opencv жүзүн таануу" үчүн веб издесеңиз, муну кантип жасоо керектиги жөнүндө көптөгөн жакшы мисалдарды таба аласыз жана алардын баары бир эле кадамдарды жасашат.

  1. "haar" бет файлын жүктөө
  2. камераны инициализациялоо
  3. кадрды кармап турган циклди баштаңыз
  4. түстүү сүрөттү боз масштабга айландыруу
  5. жүзүн табуу үчүн аны opencvге бер
  6. ички укурукту баштаңыз (табылган ар бир бет үчүн) (менин учурда, эгерде 1ден көп болсо, алдыруу үчүн код кошом)

Бул үчүн бул жерде, биз бир жүздү тапкандан кийин, жүздү сүрөттөгөн кыялданган квадраттын X, Y, W жана H -лерин билебиз.

Эгерде сиз роботтун алдыга же артка жылышын кааласаңыз, анда Wди эске алышыңыз керек. Эгерде W өтө чоң болсо (өтө жакын), роботту артка жылдырыңыз. Эгерде W өтө кичине болсо (өтө алыс), роботту алдыга жылдырыңыз.

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

ЭСКЕРТҮҮ:

Эгерде сиз OpenCV вебинин мисалдарынын бирин иштетсеңиз, анда алардын баары жүзү чарчыда көрсөтүлгөн opencv "көрүп жаткан" нерселердин чыныгы көрүнүшүн көрсөтөт. Эгер байкай турган болсоңуз, анда сиз кыймылдабасаңыз дагы, бул квадрат туруктуу эмес (туруктуу).

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

Ошентип, сиз алдыга/артка жана солго/оңго үчүн кандайдыр бир дельтага ээ болушуңуз керек болот.

Келгиле, солго жана оңго карай:

Оңго жана солго эсептеп чыккандан кийин, айырманы (дельта) алыңыз:

дельта = абс (сол - оң)

Сиз абсолюттук көрсөткүчтү алышыңыз керек, анткени кайсынысы чоңураак болорун билбейсиз.

Андан кийин сиз дельта кандайдыр бир минималдуудан чоңураак болсо гана жылууга аракет кылуу үчүн кээ бир шарттуу кодду кошосуз.

Сиз алдыга жана артка дагы ушундай кыласыз.

7 -кадам: Беттин позициясы - Кыймылдуу робот

Роботтун солго же оңго, алдыга же артка жылышына муктаж экениңизди билгенден кийин, муну кантип кыласыз?

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

Кыскача айтканда, менде катмар кат бар.

Python жүзүн таануу скрипти Node.js серверине http сурамдарын берет

Node.js сервери көчүү багыттары боюнча http сурамдарын угат, аларды ыңгайлаштырылган сериялык протоколго айлантат

Node.js сервери менен Arduino ортосундагы ыңгайлаштырылган сериялык протокол

Роботту жылдыруу боюнча чыныгы буйруктарды аткарган Arduino эскизи

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

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