Мазмуну:

DIY билим берүүчү микро: бит робот: 8 кадам (сүрөттөр менен)
DIY билим берүүчү микро: бит робот: 8 кадам (сүрөттөр менен)

Video: DIY билим берүүчү микро: бит робот: 8 кадам (сүрөттөр менен)

Video: DIY билим берүүчү микро: бит робот: 8 кадам (сүрөттөр менен)
Video: L4D2 КАНТИП ОРНАТУ 2024, Июль
Anonim
DIY билим берүүчү микро: бит робот
DIY билим берүүчү микро: бит робот
DIY билим берүүчү микро: бит робот
DIY билим берүүчү микро: бит робот

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

Бул роботту кургандан кийин, сиз курган версияңызга жараша негизги, бирок өтө өнүккөн нерселерди жасоо үчүн анын түрдүү сенсорлорунан жана кыймылдаткычтарынан ырахат ала аласыз (мен эки версияны сунуштайм). Бул робот менен сиз микро: битке көздөрдү (180 ° кароо!) Жана буттарды (так кыймыл менен!) Берип жатасыз, ал эми микро: бит сизге LED матрицасы, радио байланышы, Bluetooth байланышы, акселерометр сыяктуу сонун мүмкүнчүлүктөрдү берет., компастар, бирок MicroPython менен же нөлгө окшош визуалдык программалоо тили менен баарына жетүү (чындыгында C ++ жана javascriptте, бирок мен билимге анча ылайыктуу эмес деп эсептейм).

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

1 -кадам: Бөлүктөрдү чогултуу

Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу

Бул долбоор үчүн аюу минимуму сизге керек:

  • 5 мм коюу MDF жыгач жана скелет үчүн лазер кескич
  • 1x18650 литий батареясы, энергия үчүн 1x батарея калканы жана үзгүлтүккө учуратуучу
  • 1xMicro: Bit card жана 1xMicro: мээ үчүн бит кеңейтүү тактасы (экөөнү тең Arduino оңой алмаштырса болот)
  • 2x28BYJ-5V тепкичтүү моторлор, 2xA4988 тепкичтүү мотор драйверлери жана 2x өнүктүрүү тактасы драйверлерди буттарга орнотуу үчүн
  • 1x TOF10120 жана 1x Mini 9g Servo мотору Кээ бир кабелдер жана бурамалар
  • 1х универсалдуу дөңгөлөк, бийиктиги = 15мм

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

Идеалында сизде дагы болот:

  • Мультиметр
  • Нан тактасы
  • Бир ширетүүчү темир

Лазердик кескич сыяктуу эле, сиздин жериңизде кандайдыр бир фаблаб бар -жогун текшериңиз! Бул кээ бир шыктандыруучу жаратуучулар менен таанышуу үчүн сонун жерлер!

2 -кадам: Буттарды даярдоо

Буттарды даярдап алуу
Буттарды даярдап алуу
Буттарды даярдап алуу
Буттарды даярдап алуу
Буттарды даярдап алуу
Буттарды даярдап алуу
Буттарды даярдап алуу
Буттарды даярдап алуу

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

Эми, 4988 драйверин колдонуп 28BYJ моторун кантип башкарса болот? Жооп… бир аз узун. Мен муну инструкцияга тыкан ылайыкташтыра алган жокмун, ошондуктан бул жерден таба турган башка бирөөнү ушул максатта жасадым. Мен сизди жогорудагы сүрөттө көрсөтүлгөндөй капталдарына орнотуу үчүн 2х2мм тешиктери бар 17мм кичинекей 26x22мм кичинекей прототипдөө тактасын түзүү менен ушул кадамдарды аягына чейин аткарууга чакырам (Эскертүү макалада айтылгандай, сары зым сол жакта SLP менен RSTти бирге ширетүүнү эскертүү үчүн ошол жерде турат).

Прототип тактасы менен бир мотор менен иштөөнү алгандан кийин, мен дагы нерселерди бир аз иретке келтирүү үчүн өзүмдүн ПХБны иштеп чыктым. Мен тиешелүү easyEDA файлын тиркедим. Бул txt файлы, бирок аны дагы эле easyEDA акысыз онлайн түзөтүү платформасы менен ача аласыз.

3 -кадам: Мен Жарыкты көрөм !! (Милдеттүү эмес)

Мен Жарыкты көрөм !! (Милдеттүү эмес)
Мен Жарыкты көрөм !! (Милдеттүү эмес)
Мен Жарыкты көрөм !! (Милдеттүү эмес)
Мен Жарыкты көрөм !! (Милдеттүү эмес)
Мен Жарыкты көрөм !! (Милдеттүү эмес)
Мен Жарыкты көрөм !! (Милдеттүү эмес)

Эгерде сиз жөн гана курууну кааласаңыз жана башка эч нерсе кылбасаңыз, TOF10120ду micro: bitке кантип туташтыруу үчүн бул кадамдын акыркы абзацынын алдындагы пунктка өтүңүз. Эгерде аткарбасаңыз.

Биздин микро: бит эч кандай камера же жакындык сенсору менен келбегендиктен, аны кандайдыр бир мобилдик робототехника үчүн сокур кылып коёт. Бул радио эмитенти жана рецептору менен келет, бирок бул скелетти мурунтан бар нерсеге курууга жана алыстан башкарылуучу роботту алууга мүмкүндүк берет. Бирок биздин роботту автономдуу кылуу эң сонун болмок эмеспи? Ооба болмок! Андыктан ал жакка кантип жетүү керек экенин карап көрөлү.

Азыр бизди кызыктырган нерсе - роботубузду сенсорлор менен жабдуу, роботубуздун айлана -чөйрөсү жөнүндө кээ бир маалыматка ээ болушу. Сенсорлордун көптөгөн түрлөрү бар, бирок бул жерде биз жакындык сенсоруна токтолобуз. Мен бул роботту иштеп жатканда, менин максатым негизинен робот эч нерсеге урунбашы болчу, ошондуктан мен анын тоскоолдуктарды сезишин кааладым. Бул үчүн дагы бир нече варианттар бар. Биринчиси, абдан жөнөкөй, бамперлерди колдонуу болушу мүмкүн, бирок мен айлана -чөйрө жөнүндө маалыматты бир аз чектелген деп эсептейм. Башка жагынан алып караганда, сиз камера (же лидар же кинект!) Кошууну ойлонсоңуз болот. Мен камераларды, компьютердин көрүүсүн жана ушул нерселердин баарын жакшы көрөм, бирок тилекке каршы Micro: bit буларды колдобойт (биз микро: бит же Arduino эмес, мындай түзмөктөрдү колдоо үчүн малина Pi колдонушубуз керек болчу).

Ошентип, камера менен бампердин ортосундагы микро: бит колдоосу эмне кылат? Чакан активдүү сенсорлор бар, алар айлана -чөйрөгө жарык жиберет жана дүйнө жөнүндө кээ бир маалыматты алуу үчүн кабыл алынганды текшерет. Мен билген нерсе GP2Y0A41SK0F болчу, ал тоскоолдуктарга чейинки аралыкты баалоо үчүн триангуляция ыкмасын колдонот. Бирок мен жакшыраак нерсени таба аламбы деп ойлонуп, бир аз изилдөө жүргүзүп, TOF10120 (жана GY-VL53L0XV2, бирок мен али ала элекмин:() менен тааныштым. Бул жерде сиз таба турган сонун макала. Негизинен бул сенсор тоскоолдуктарды чагылдырган инфракызыл сигналды чыгарат, андан кийин ал чагылган жарыкты алат. Жарык алдыга жана артка кеткен убакытка жараша, сенсор тоскоолдуктун алыстыгын баалай алат (демек TOF = учуу убактысы Анын кичине өлчөмү, аралыктын диапазону жана кубаттуулугу үчүн TOF10120 колдонууну чечтим.

Менин биринчи идеям-роботко үчөөнү коюу (бирөө алдыда, экөө капталда), ал эми кытай жаңы жылы жана COVID-19 пандемиясы муну каалабады, анткени бул жүктөрдү жеткирүүдө көйгөйлөрдү жаратат. Мен бир TOF10120 менен чектелгендиктен, мен тараптарды да көргүм келди жана менин айланамда сервопривод бар экенин сезип, сенсорумду сервого орнотууну чечтим. Ошентип, азыр эки нерсе жетишпейт: TOF10120ны micro: bit менен кантип колдоном? Ошол эле суроо серво менен.

Бактыга жараша, микро: бит I2C байланыш протоколу менен жабдылган жана бул жашообузду чындап жеңилдетет: кызыл зымды 3.3Вка, жерге кара, жашылга SCLге жана көккө SDAга туташтырыңыз жана бул аппараттын бөлүгү үчүн. Программалык камсыздоо үчүн I2C байланышы жөнүндө бир аз окуп, микро: битке тиркелген питон кодун сынап көрүүнү сунуштайм. Бул программа сизге REPLдеги сенсор менен өлчөнгөн аралыкты басып чыгарышы керек (Окууну баалоо Print Loop). Дал ушул. Биз жөн гана микро: битибизди көрдүк.

Эми мага анатомияны жаныбарлардын анатомиясы менен улантууга уруксат берсеңиз, моюнуңузду буруп алалы. Бизге бир гана нерсе керек: микро: бит менен серво моторун айдоо. Бул бөлүк узарып баратат, ошондуктан мен сизге керектүү бардык маалыматты камтыган шилтемени берем жана аны текшерүү үчүн колдонгон кодум. Кааласаңыз, мен pin0 аркылуу сервону көзөмөлдөө үчүн жөнөкөй кодду коштум. Сервону 3.3V эмес, 5V менен иштетүүнү унутпаңыз.

4 -кадам: Батарея Калканын бузуу

Battery Shield Hacking
Battery Shield Hacking
Battery Shield Hacking
Battery Shield Hacking
Battery Shield Hacking
Battery Shield Hacking

Эми биз өзүбүздүн кыймылдаткычтарыбызды жана сенсорлорубузду даярдадык, батареяны башкаруу системасын карап чыгууга убакыт келди. Мен тандаган батарейка калканы жөнүндө көбүрөөк билүү үчүн, мен сизге бул макаланы окуп чыгууну сунуштайт элем. Мен муну абдан түшүнүктүү жана жеткиликтүү деп эсептейм. Бул макаладан биз бул батарея калканынын көптөгөн артыкчылыктарын көрө алабыз, бирок мен кабыл алгым келбеген бир маанилүү кемчилик бар: КҮЙГҮЗҮҮ/ӨЧҮРҮҮ которгуч USB чыгарылышына гана таасир этет. Бул өчүргүчтү өчүрсөңүз, башка 3.3V жана 5V казыктары иштей турганын билдирет. Натыйжада, биз роботубуз үчүн ошол казыктарды колдонуп жатканыбызда, которгуч эч нерсе кылбайт …

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

Ооба, бирок мен бул пластикти алып салуу үчүн батарея калканына кирүү үчүн роботту ачкым келбейт! Оңой: которгучту алыңыз жана которгучка туташкан зымдардын ар бирине алюминийдин эки кичинекей квадратын скотч менен жабыңыз. Эми алюминийдин эки бөлүгүн бири -биринен изоляциялоо жана алюминийди тутумуңуздун сыртына чыгарыш үчүн пластикке алюминийдин эки бөлүгүн чаптаңыз. Адатта ушундай кылыш керек. Жаңы чыгармаңызды уячанын жанындагы батарея калканчына салыңыз жана которгуч клеткага туташкан схеманы ачууга же жабууга мүмкүнчүлүк бериши керек.

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

5 -кадам: 3D Дизайн жана Кесүү

3D Дизайн жана Кесүү
3D Дизайн жана Кесүү
3D Дизайн жана Кесүү
3D Дизайн жана Кесүү

Азыр бир гана нерсе - биздин бардык компоненттерибизди бириктире турган структураны куруу. Бул үчүн мен tinkercad онлайн платформасын колдондум. Бул лазер кескич үчүн нерселерди долбоорлоо үчүн жетиштүү болгон кээ бир негизги CADны жасоо үчүн чындап жагымдуу чөйрө.

Бир аз ойлонгондон кийин, ойлонууга убакыт келди. Бул үчүн менде болгон ар кандай бөлүктөрдүн 3D моделдерин чогулта баштадым (адегенде сервону жана TOFты теңдемеден алыс кармоо). Бул батареяны жана калканы, тепкичтүү моторлорду жана мотор драйверлерин жана албетте микро: битти кеңейтүү тактасы менен камтыйт. Мен тиешелүү 3D моделдердин бардыгын stl файлдары катары тиркеп койдум. Бул процессти жеңилдетүү үчүн мен роботумду симметриялуу кылууну чечтим. Жыйынтыгында мен роботтун жарымын гана колго алып, жогорудагы сүрөттө көрсөтүлгөн дизайнга жеттим.

Ушул жерден бир нече версиялар пайда болуп, мен экөөнү тандап алдым:

  • Зымдардын пайда болушуна жол бербеген жакындык сенсору жок, абдан тыкан. Автономдуу болбосо дагы, бул версияны, мисалы, iPad аркылуу bluetooth аркылуу программаласа болот, же, мисалы, башка микро: бит менен жөнөтүлүүчү радио сигналдарды колдонуу менен башкарууга программаласа болот, жогоруда видеодо көрсөтүлгөндөй.
  • Мобилдик робототехникага дагы көбүрөөк кирүүгө мүмкүндүк берген бир аз тыкан, бул servo моторго курулган жакындык сенсорунун жардамы менен тоскоолдуктун аралыкын 180 ° кароо менен басып өтүүгө мүмкүндүк берет.

Муну куруу үчүн сүйүктүү Fablabка өтүңүз жана өзүңүз каалаган моделди кесүү үчүн тапкан лазер кескичти колдонуңуз: биринчиси 5мм MDFде кесиле турган бөлүктөргө туура келген design1_5mmMDF.svg жана design1_3mmMDF файлдарына туура келет. жыгач жана 3мм биринен кесүү; экинчиси design2_5mmMDF.svg файлына туура келет. Кара контурларды кесип, кызылдарын оюп коюңуз.

Кошумча эскертүү: Мен кызыл өрнөктү суктаныш үчүн кошуп койгом. Бул тиркелген питон кодун колдонуу менен жараткан Гильберт толтуруу функциясы.

6 -кадам: Жырткычты орнотуу

Жырткычты орнотуу
Жырткычты орнотуу
Жырткычты орнотуу
Жырткычты орнотуу
Жырткычты орнотуу
Жырткычты орнотуу

Мен роботтун биринчи версиясын орнотуу үчүн жасаган кадамдарым төмөндөгүдөй (сүрөттөр адатта туура тартипте болушу керек):

  1. Кыймылдаткычтын көк капкагын алып, мотордун арт жагынан кабель чыгып кетиши үчүн бир аз кесип алыңыз.
  2. М2 бурамалар менен болтторду колдонуу менен моторлорду ар бир жагына орнотуңуз.
  3. Прототип тактасын 2х2 мм тешиктерди жана кээ бир бурамалар менен болтторду колдонуп, капталдарына орнотуңуз.
  4. A4988 драйверлерин коюп, мотор кабелдерин иретке келтирүү үчүн скотч менен жабыңыз.
  5. Универсалдуу дөңгөлөктү астынкы бөлүгүнүн астына орнотуп, капталдарын кошуңуз.
  6. Micro: bitтин кеңейтүү тактасын үстүңкү бөлүгүнө орнотуңуз.
  7. Ийкемдүү алдыңкы капкактын түбүн орнотуңуз.
  8. Батарея калканчын коюп, бардыгын туташтырыңыз (муну кылуу үчүн, мен дагы эле каалагандай узартуу тактасын жеткирүүнү күтүп жаткам жана менде бир гана аялдын баш аттары чыгып турган, мен эски компьютерден IDE кабелин кайра иштеттим. Мунун баарын бүктөлүүчү алдыңкы капкак менен жабуу үчүн менин кабелдерим тактага жабышып калган жок). Мен берген кодду ыңгайлаштыруу өтө оңой болгону менен, аны түз колдонуу үчүн, сиз сол КАДАМДЫ 2 -пинке, оң КАДАМЫҢЫЗДЫ 8 -ге, сол ДИРДИ 12 -ПИНГЕ, оң ДИРДИ 1 -ПИНГЕ туташтырышыңыз керек.
  9. Micro: bitти кеңейтүүгө коюңуз.
  10. Келечекке чейин баары MoveTest.py менен иштеп жатканын текшериңиз.
  11. Которгучту үстүңкү бөлүгүнө орнотуп, пластикалык битти литий клеткасынын жанына коюңуз.
  12. Алдыңкы капкактын үстүнкү бөлүгүн бурап алыңыз.
  13. Артка орнотуңуз, сиз бүттүңүз! Пф! Мен мындай кадамдарды күткөн эмесмин! Муну сөз менен түшүндүргөнгө караганда, аны ойлонуу жана жасоо ушунчалык оңой! (Жана дагы маалымат жок болот деп ишенем!)

Эгерде сиз экинчи версияны жакындык сенсору менен куруп жатсаңыз, анда:

  1. Жогорудагы көрсөтмөнү аткарыңыз. Бир гана айырмачылык, сиз 7 -кадамда бир нече M2 аралыкты кошушуңуз керек болот (бирок мен ушундай кылдым, бирок бул талап кылынбайт), 8 -кадамга жана 13 -кадамга көңүл бурбаңыз (алдыңкы капкагы жок болгондуктан)
  2. Серво моторун M2 бурамалар менен орнотуп, VCC менен GND серводун батарея калканынын 5В түз туташуусуна жана башкаруучу кирүүнү микро: биттин 0 пинине туташтырыңыз.
  3. Сервонун үстүнө чыга турган эки жыгачты бурама менен орнотуңуз, TOF сенсорун, ошондой эле серво менен келген ак пластик бөлүктү бурап коюңуз.
  4. Бул акыркы бирдикти сервого орнотуп, сенсорду I2C micro: bit менен 3 -кадамда сүрөттөлгөндөй туташтырыңыз.

7 -кадам: Программа

Дал ушул ! Сизде робот бар, аны сиз микро: python же makecode менен программалай аласыз. Мен бул жерге жогоруда видеолорду жасоо үчүн колдонулган кээ бир үлгү кодду тиркедим:

  • Мисал 1: роботтун микро: битине radioControl.py, башка micro: bitке ReadAccelero.py коюп, роботту экинчи микро: битти ийилүү менен башкарыңыз.
  • Мисал 2: Роботтун 2 -версиясына Autonom.py кой, ал айлана -чөйрөнү изилдейт.

Бул жөн эле негизги мисалдар, алар сиз көп нерсеге барышыңыз мүмкүн. Мисалы, мен бир эле учурда локализацияны жана картаны жакшы көрөм, адатта, бул роботтун 2 -версиясында сизге керектүү нерселердин баары бар! Мен үчүн мындай долбоорду жасоонун бир чоң кемчилиги микро: бит PWM драйвери - бул бардык каналдар үчүн бирдей таймерди колдонгон программалык камсыздоонун драйвери, башкача айтканда биз койгон бардык PWMлердин жыштыгы бирдей болушу керек (бул мен кылган нерсе) Мен Autonom.py жазганымда кызыктай нерсени байкаганым менен, үлгүлүү коддорду качан жазганымды билбейм).

8 -кадам: Мындан ары

Дизайнды өркүндөтүүдөн тартынбаңыз, мен көрө элек кээ бир көйгөйлөрдү чечиңиз. Мисалы, мен акыры келет:

  • Жер кара же ак экенин же ал менин үстөлүмдүн аягына жетип жатканын аныктоо үчүн роботтун түбүнө IR сенсорун кошуңуз.
  • Батареяны башкаруу системасын өзгөртүңүз, анткени мен ага канааттанган жокмун. Чынында эле, учурда, батарейканы кайра толтуруу үчүн, роботту ажыратуу керек, уячаны же батарейканын калканчын алып салуу үчүн … Мен пландап жатам: 1. роботтун арт жагына мини-USB туташтыргычын кошуу. Мен батарейканын калканчына туташам, ошондо аны кайра толтурам; 2. Төмөндөгү тешикти кесип, заряддоо бүткөндө батарея калканынан чыккан LEDдерди көрүңүз.
  • Ар кандай жыштыктагы PWMлерди чыгаруунун алгылыктуу жолу бар -жогун текшериңиз.
  • TOF10120 алмаштыруу үчүн VL53L0XV2ди колдонуп көрүңүз, анткени бул арзаныраак вариант болушу мүмкүн, бул дагы көптөгөн адамдар үчүн жеткиликтүү болот. Мен бул сенсор жөнүндө кененирээк окуганым менен, муну арзан кылган компания муну атайылап жасашкан окшойт …
  • Дөңгөлөктөрдүн бышык болушу үчүн ар кандай конструкцияларды сынап көрүңүз (Дөңгөлөктөрдү көп жолу алып чыгып койсом, жыгач бара -бара бузулат деп күтүп жатам. Эгерде мен жыгачты ийкемдүү кылып дизайнымды өзгөртсөм узагыраак кыла алам)

Мага электроника жана механика боюнча билимимди кеңейтүүгө жардам берген EPFLдин Мобилдик робототехника командасынын (азыр Biorobotics лабораториясынын бир бөлүгү) адамдарына чоң рахмат!

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