Orodha ya maudhui:

Uwepo wa Roboti: Hatua 15
Uwepo wa Roboti: Hatua 15

Video: Uwepo wa Roboti: Hatua 15

Video: Uwepo wa Roboti: Hatua 15
Video: Только правда имеет значение | 3 сезон 25 серия 2024, Novemba
Anonim
Image
Image
Gari ya Robot ya rununu
Gari ya Robot ya rununu

Roboti hii ya rununu inaingiliana na mazingira yake ya mwili, kwa kuwakilisha "uwepo halisi" wa mtu anayeidhibiti kwa mbali. Inaweza kupatikana na mtu yeyote, mahali popote ulimwenguni, ili kupeana chipsi na kucheza na wewe.

Kazi hapa imeendelezwa na watu wawili (mmoja huko Ujerumani na mmoja huko Merika) kama jaribio la kuhamia zaidi ya njia za jadi za mawasiliano ya mtandao kwa kuunda muundo wa mwili wa mwingiliano wa mbali. Kama COVID-19 inavyoendelea kuathiri ulimwengu, na kila mtu ana jukumu la kupunguza mfiduo wetu wa mwili kwa watu, tunajaribu kurudisha unganisho dhahiri ambao ni sehemu ya mwingiliano wa mwili.

Inategemea ESP32-Camera-Robot-FPV-Teacher-Entry Inayoweza kufundishwa na kurekebishwa kujumuisha sensorer ya umbali, kutibu dispenser na "kudhibiti kutoka mahali popote ulimwenguni", ikiwa una unganisho la mtandao thabiti.

Vifaa

Mradi una sehemu kuu 4 - Gari ya Roboti ya Rununu, Dispenser ya Chip, Joystick, na Usanidi wa Mawasiliano ya Mtandao.

Gari ya Robot ya rununu

  • Bodi ya mkate
  • 2 Wheel Drive Motor na Chassis Robot Kit (inajumuisha magurudumu, motors DC, bodi inayopandisha na screws)
  • Arduino Mega 2560 (ikiwa utaunda bila sensa ya umbali au Dispenser ya Chip Uno itakuwa na pini za kutosha)
  • (3) 9V Betri (kuwa na chache zaidi karibu na utawamaliza utatuaji)
  • Moduli ya Usambazaji wa Nguvu ya LM2596 DC / DC Buck 3A Mdhibiti (au sawa)
  • Moduli ya Wifi ya ESP32-CAM
  • FT232RL FTDI USB kwa TTL Serial Converter (kwa programu ya ESP32-CAM)
  • HC-SR04 Sensor ya Umbali wa Ultrasonic
  • L298N Dereva wa Pikipiki
  • (3) LEDS (rangi yoyote)
  • (3) 220 Ohm Resistors

Mtoaji wa Chip

  • (2) SG90 Servos
  • Kadibodi / Karatasi

Fimbo ya furaha

  • Arduino Uno
  • Moduli ya Joystick
  • Bodi ya mkate ndogo, (1) LED, (1) 220 Ohm Resistor (hiari)

Nyingine

Kura nyingi za Jumapili za Bodi ya Mkate Kadibodi ya ziada / Karatasi ya TepeMisuliMtawala / Tepu ya KupimaBisibodi ndogo ya PhilipsScrewdriver ndogo

Uvumilivu =)

Hatua ya 1: Gari ya Robot ya rununu

Chassis ya Gari ya Robot hutumika kama jukwaa la rununu, na Arduino MEGA kama mdhibiti mkuu anayeendesha motors, kusoma maadili ya sensa na kushawishi servos. Vitendo vingi hufanywa kwa kufanya Arduino MEGA ipokee amri kupitia mawasiliano ya serial, iliyotumwa kutoka ESP32-CAM. Wakati ESP32 inatoa mkondo wa moja kwa moja wa kamera kudhibiti roboti, kazi yake nyingine ni kusimamia unganisho la waya kati ya roboti na seva, kwa hivyo kuruhusu watumiaji kuidhibiti kutoka mahali popote ulimwenguni. ESP32 inapokea amri kutoka kwa wavuti kupitia keypress na kuzituma kwa Arduino MEGA kama maadili ya char. Kulingana na thamani iliyopokelewa gari itaenda mbele, nyuma n.k. Kwa sababu udhibiti wa kijijini kupitia mtandao unategemea mambo mengi ya nje ikiwa ni pamoja na latency ya hali ya juu, ubora duni wa mkondo, na hata kukatika, sensa ya umbali imejumuishwa kuzuia roboti isigonge. Kwa vitu. * Kwa sababu ya mahitaji ya juu na yanayobadilika ya nguvu ya Chip ya ESP32 Udhibiti wa Usambazaji wa Nguvu unapendekezwa kutumiwa na nguvu ya betri (angalia mchoro wa wiring).

Hatua ya 2: Gari ya Robot ya rununu - Mchoro wa Mzunguko

Gari ya Robot ya rununu - Mchoro wa Mzunguko
Gari ya Robot ya rununu - Mchoro wa Mzunguko

Tutakutembea kupitia kukusanya hatua kwa hatua.

Hatua ya 3: Gari ya Roboti ya Mkononi - Mkutano (Motors)

Gari la Roboti ya Mkononi - Mkutano (Motors)
Gari la Roboti ya Mkononi - Mkutano (Motors)

Baada ya kukusanya chasisi ya 2WD, tunaanza kwa kuunganisha motors na betri kwa Arduino MEGA kupitia dereva wa L298N.

Hatua ya 4: Gari ya Robot ya rununu - Mkutano (Sensor ya Umbali)

Gari ya Robot ya rununu - Mkutano (Sensorer ya Umbali)
Gari ya Robot ya rununu - Mkutano (Sensorer ya Umbali)

Kwa kuwa kuna vifaa vichache vya kuunganisha, wacha tuongeze ubao wa mkate, ili tuweze kuunganisha nguvu na ardhi iliyoshirikiwa kwa urahisi zaidi. Baada ya kuandaa waya tena, unganisha sensa ya umbali na urekebishe mbele ya roboti.

Hatua ya 5: Gari ya Roboti ya Mkononi - Mkutano (ESP32 CAM)

Gari la Roboti ya Mkononi - Mkutano (ESP32 CAM)
Gari la Roboti ya Mkononi - Mkutano (ESP32 CAM)

Ifuatayo, unganisha moduli ya ESP32-CAM, na uirekebishe karibu na sensa ya umbali karibu na mbele ya roboti. Kumbuka sehemu hii yenye nguvu ya nguvu inahitaji betri yake mwenyewe na mdhibiti wa DC.

Hatua ya 6: Gari ya Roboti ya rununu - Mkutano (Chip Dispenser)

Gari la Roboti ya Mkononi - Mkutano (Chip Dispenser)
Gari la Roboti ya Mkononi - Mkutano (Chip Dispenser)

Sasa, wacha tuongeze chip-dispenser (zaidi juu ya hii katika sehemu ya "Chip Dispenser"). Funga waya hizo mbili kulingana na mchoro wa Fritzing, na urekebishe kontena kwenye mkia wa roboti.

Hatua ya 7: Gari ya Robot ya rununu - Mkutano (Vidakuzi!)

Gari ya Robot ya rununu - Mkutano (Vidakuzi!)
Gari ya Robot ya rununu - Mkutano (Vidakuzi!)

Mwishowe, tunaongeza chipsi kwa mtoaji!

Hatua ya 8: Gari ya Robot ya rununu - Msimbo wa Arduino

RobotCar_Code ni nambari ambayo utahitaji kupakia kwenye Arduino Mega.

Hivi ndivyo inavyofanya kazi: Arduino husikiliza baiti ambazo zinatumwa kutoka ESP32 kupitia mawasiliano ya serial kwenye bendi ya 115200. Kulingana na baiti iliyopokelewa, gari itasonga mbele, nyuma, kushoto, kulia nk kwa kutuma voltage ya juu au ya chini kwa motors kudhibiti mwelekeo, na pia kutofautisha kwa PWM kati ya 0-255 kudhibiti kasi. Ili kuzuia mgongano nambari hii pia inasoma maadili yanayokuja kutoka kwa sensor ya umbali na ikiwa umbali ni chini ya kizingiti maalum, roboti haitasonga mbele. Mwishowe, ikiwa Arduino itapokea amri ya kupeana matibabu, itaamsha servos kwenye Chip Dispenser.

Hatua ya 9: Gari ya Robot ya rununu - Msimbo wa ESP32

ESP32 inaruhusu mawasiliano kati ya seva na Arduino kupitia Wifi. Imepangwa kando na Arduino, na ina nambari yake mwenyewe:

  • ESP32_Code.ino ni nambari ya ESP32 kutuma habari kwa Arduino
  • app_httpd.cpp ni nambari inayohitajika kwa seva ya msingi ya ESP32 na weka kazi ili usikilize kwa vitufe. Nzuri kwa utatuzi na upimaji kwenye wifi ya ndani. Haitumiwi kwa mawasiliano nje ya mtandao wa karibu.
  • camera_index.h ni nambari ya html ya programu-msingi ya wavuti
  • camera_pins.h hufafanua pini kulingana na mfano wa ESP32

Nambari ya ESP32 hutumia maktaba ya Wifi na programu-jalizi ya ESP32, ambayo inaweza kusanikishwa katika Arduino IDE kwa kufuata hatua hizi:

  1. Katika IDE ya Arduino nenda kwenye Faili> Mapendeleo
  2. Halafu kwenye kichupo cha Mipangilio chini ya URL ya Meneja wa Bodi za Ziada ingiza zifuatazo "https://dl.espressif.com/dl/package_esp32_index.json"
  3. Sasa fungua Meneja wa Bodi na nenda kwenye Zana> Bodi> Meneja wa Bodi na utafute ESP32 kwa kuandika "ESP32"
  4. Unapaswa kuona "esp32 na Mifumo ya Espressif". Bonyeza Sakinisha.
  5. Sasa programu-jalizi ya ESP32 inapaswa kuwekwa. Kuangalia kurudi Arduino IDE na nenda kwenye Zana> Bodi na uchague "ESP32 Wrover Module".
  6. Tena nenda kwenye Zana> Pakia Kasi na uweke "115200".
  7. Mwishowe, nenda kwenye Zana> Mpango wa kizigeu na uweke "Programu Kubwa (3MB Hakuna OTA / 1MB SPIFFS)
  8. Mara tu ukimaliza hii, ninapendekeza kufuata mafunzo haya na RandomNerdTutorials ambayo inaelezea kwa kina jinsi ya kukamilisha kuanzisha ESP32 na kupakia nambari na Programu ya FTDI Kupanga ESP32

Hatua ya 10: Dispenser ya Chip

Mtoaji wa Chip
Mtoaji wa Chip

Dispenser ya Chip ni nyongeza ya bei rahisi kwa roboti ya rununu inayoruhusu kuathiri mazingira ya karibu na kushirikiana na watu / wanyama kwa kuacha kitamu kitamu. Inayo sanduku la nje la karatasi na 2 servos zilizowekwa ndani, pamoja na katoni ya ndani ya karatasi ambayo inashikilia vitu (kama pipi au chipsi za mbwa) kutoa. Servo moja hufanya kama lango wakati nyingine inasukuma kitu nje.

* Vipimo vyote viko katika milimita

Hatua ya 11: Joystick

Fimbo ya furaha
Fimbo ya furaha

Ingawa inaweza kuwa ya kufurahisha kudhibiti roboti na kibodi, ni ya kufurahisha zaidi na ya angavu kutumia fimbo ya kufurahisha, ambapo roboti humenyuka moja kwa moja kulingana na mwelekeo unaosukuma. Kwa kuwa roboti hii imesisitizwa kupitia vitufe viliyorekodiwa kwenye ukurasa wa wavuti tulihitaji kiboreshaji chetu cha kuiga kibodi. Kwa njia hii watumiaji bila fimbo ya kufurahisha bado wanaweza kudhibiti robot moja kwa moja kutoka kwa kibodi, lakini wengine wanaweza kutumia fimbo ya kufurahisha.

Kwa hili tulikuwa tu na Arduino Uno ambayo haina uwezo wa kutumia maktaba kwa hivyo tuliipanga moja kwa moja kwa kutumia itifaki ya USB inayojulikana kama Sasisho la Firmware ya Kifaa (DFU) ambayo inaruhusu arduino kuangazwa na firmware ya kawaida ya kibodi ya USB HID.. Kwa maneno mengine, wakati arduino imechomekwa kwenye usb haitambuliki tena kama arduino lakini kama kibodi!

Hatua ya 12: Joystick - Mchoro wa Mzunguko

Joystick - Mchoro wa Mzunguko
Joystick - Mchoro wa Mzunguko

Hivi ndivyo tulivyounganisha fimbo ya furaha.

Hatua ya 13: Joystick - Emulator ya Kinanda

Ili Arduino Uno yako kuiga kibodi, unahitaji kusanikisha moja kwa moja chip ya Atmega16u2 kwenye Arduino kupitia Sasisho la Firmware ya Kifaa cha Mwongozo (DFU). Hatua zifuatazo zitaelezea mchakato wa mashine ya Windows, na tunatumai kukusaidia kuepuka maswala kadhaa ambayo tuliingia.

Hatua ya kwanza ni kuandika mwongozo dereva wa Atmel usb kwa Arduino kwa hivyo inatambulika kama USB na sio Arduino ambayo inaiwezesha kuangaza na programu ya FLIP.

  1. Pakua programu ya Atmel ya Flip kutoka hapa
  2. Chomeka Arduino Uno yako
  3. Nenda kwa Meneja wa Kifaa na upate Arduino. Itakuwa chini ya KOM au Kifaa kisichojulikana. Chomeka ndani na nje ili kuhakikisha kuwa hiki ni kifaa sahihi.
  4. Mara tu unapopata Arduino Uno katika Meneja wa Kifaa, bofya kulia na uchague mali> Dereva> Sasisha Dereva> Vinjari Kompyuta yangu kwa Programu ya Dereva> Acha nichague kutoka kwenye orodha ya madereva yanayopatikana kwenye kompyuta yangu> Have Disk> Vinjari kwa faili "atmel_usb_dfu.inf" na uchague. Hii inapaswa kuwa kwenye folda ambapo Programu yako ya Atmel FLIP iliwekwa. Kwenye kompyuta yangu iko hapa: C: / Program Files (x86) Atmel / Flip 3.4.7 / usb / atmel_usb_dfu.inf
  5. Sakinisha dereva
  6. Sasa rudi kwa Meneja wa Kifaa unapaswa kuona "Vifaa vya USB vya Atmel" na Arduino Uno sasa inayoitwa ATmega16u2!

Sasa kwa kuwa kompyuta inatambua Arduino Uno kama Kifaa cha USB tunaweza kutumia Programu ya FLIP kuiwasha na faili 3 tofauti na kuibadilisha kuwa kibodi.

Ikiwa umeondoa Arduino Uno yako baada ya sehemu ya kwanza, ingiza tena.

  1. Fungua FLIP
  2. Weka upya Arduino Uno kwa kuunganisha umeme kwa muda mfupi.
  3. Bonyeza Uteuzi wa Kifaa (ikoni kama microchip) na uchague ATmega16U2
  4. Bonyeza Chagua Kati ya Mawasiliano (ikoni kama kamba ya usb) na uchague USB. Ikiwa umekamilisha sehemu ya kwanza kwa usahihi vifungo vingine vya rangi ya kijivu vinapaswa kutumika.
  5. Nenda kwenye Faili> Pakia Faili ya Hex> na upakie faili Arduino-usbserial-uno.hex
  6. Katika dirisha la FLIP unapaswa kuona sehemu tatu: Uendeshaji wa Mtiririko, Habari ya Bafa ya FLASH, na ATmega16U2. Katika Utiririshaji wa Uendeshaji angalia masanduku ya Futa, Programu, na Thibitisha, kisha bonyeza Run.
  7. Mara tu mchakato huu utakapokamilika, bonyeza Anzisha Maombi katika sehemu ya ATmega16U2.
  8. Chomeka arduino kwa kuichomoa kutoka kwa kompyuta na kuiunganisha tena.
  9. Weka upya Arduino Uno kwa kuunganisha umeme kwa muda mfupi.
  10. Fungua Arduino IDE na upakie faili JoyStickControl_Code.ino kwenye ubao.
  11. Chomeka arduino kwa kuichomoa kutoka kwa kompyuta na kuiunganisha tena.
  12. Weka upya arduino kwa kuunganisha umeme kwa muda mfupi.
  13. Rudi kwenye FLIP, hakikisha Uteuzi wa Kifaa unasema Atmega16U2
  14. Bonyeza Chagua Kati ya Mawasiliano na uchague USB.
  15. Nenda kwenye Faili> Pakia Faili ya Hex> na upakie faili Arduino-keyboard-0.3.hex
  16. Katika dirisha la FLIP unapaswa kuona sehemu tatu: Uendeshaji wa Mtiririko, Habari ya Bafa ya FLASH, na ATmega16U2. Katika Utiririshaji wa Uendeshaji angalia masanduku ya Futa, Programu, na Thibitisha, kisha bonyeza Run.
  17. Mara tu mchakato huu utakapokamilika, bofya Anzisha Maombi katika sehemu ya ATmega16U2.
  18. Chomeka arduino kwa kuichomoa kutoka kwa kompyuta na kuiunganisha tena.
  19. Sasa unapoenda kwa Meneja wa Kifaa kunapaswa kuwa na Kifaa kipya cha Kinanda cha KUFICHA chini ya Kinanda.
  20. Fungua daftari au kihariri chochote cha maandishi na anza kusonga fimbo ya furaha. Unapaswa kuona nambari zikiandikwa!

Ikiwa unataka kubadilisha nambari kwenye mchoro wa Arduino, kwa mfano kuandika amri mpya kwenye fimbo ya kufurahisha, utahitaji kuangaza na faili zote 3 kila wakati.

Viungo muhimu: Arduino DFUAtLibUsbDfu.dll haipatikani

Emulator ya kibodi hii inategemea mafunzo haya na Michael mnamo Juni 24, 2012.

Hatua ya 14: Mawasiliano ya Mtandao

Mawasiliano ya Mtandao
Mawasiliano ya Mtandao

Ili kupokea mkondo wa video na kutuma amri kwa roboti kutoka mahali popote ulimwenguni, tunahitaji njia ya kupata data kwenda na kutoka ESP32-CAM. Hii imefanywa katika sehemu mbili, kiunga cha unganisho kwenye mtandao wako wa karibu, na seva ya umma. Pakua faili tatu ili kufanikisha hili:

  • Handlers.py: hutoa habari kutoka ESP32-CAM na seva ya umma (iliyojaribiwa kwenye Python 3.8)
  • Flask_app.py: inafafanua jinsi programu yako inavyojibu maombi yanayokuja.
  • Robot_stream.html: hutoa video kwenye kivinjari chako na husikiliza maagizo kupitia kibodi / fimbo ya furaha (iliyojaribiwa kwenye Chrome)

Kushughulikia HandlerUnaweza kuweka nambari hii moja kwa moja kwenye app_httpd.cpp, lakini kwa utatuzi rahisi tunatumia hati ya Python inayofanya kazi kwenye PC iliyounganishwa na mtandao huo. Fungua handlers.py na usasishe anwani ya IP na jina la mtumiaji mwenyewe, na uko tayari kwenda. Mtiririko utaanza utakapoendesha faili hii.

Seva ya Umma Ili kupata kila kitu kwenye wavuti, unaweza kuanza seva na Paa ya chaguo lako. Kwenye pythonanywhere (PA) kuweka hii inachukua chini ya dakika 5:

  1. Jisajili kwa akaunti na uingie
  2. Nenda kwenye kichupo cha "Wavuti" na ugonge "Ongeza Programu mpya ya Wavuti", chagua Flask na Python 3.6
  3. Nakili flask_app.py kwenye saraka ya / mysite
  4. Nakili robot_stream.html kwenye saraka ya / mysite / templates
  5. Bonyeza "Pakia Upya"

Na… mko tayari!

Kanusho: Utiririshaji wa mtandao huu ni wa haraka na rahisi lakini mbali sana na bora. RTMP au soketi zitakuwa sahihi zaidi kwa utiririshaji, lakini hazihimiliwi kwenye PA na inahitaji uzoefu fulani na mitandao na usanidi wa seva. Inashauriwa pia kuongeza utaratibu wa usalama kudhibiti ufikiaji.

Hatua ya 15: Kuiweka Pamoja

Sasa washa roboti yako, tumia handlers.py kwenye kompyuta (iliyounganishwa na mtandao sawa na roboti), na unaweza kudhibiti robot kutoka kwa kivinjari kulingana na url uliyoweka kutoka mahali popote unataka. (kwa mfano

Ilipendekeza: