Përmbajtje:

Krah Robotik Me Module Zio Pjesa 2: 11 Hapa
Krah Robotik Me Module Zio Pjesa 2: 11 Hapa

Video: Krah Robotik Me Module Zio Pjesa 2: 11 Hapa

Video: Krah Robotik Me Module Zio Pjesa 2: 11 Hapa
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Korrik
Anonim
Krah Robotik Me Module Zio Pjesa 2
Krah Robotik Me Module Zio Pjesa 2

Në mësimin e sotëm, ne do të përdorim të 4 servos dhe një kontrollues pa tel PS2 për të kontrolluar krahun robotik.

Ky postim në blog është pjesë e Serisë Robotike Zio.

Prezantimi

Në blogun tonë të mëparshëm, ne postuam Pjesën 1 tutorial se si të kontrolloni një Krah Robotik duke përdorur modulet Zio. Pjesa 1 kryesisht u përqëndrua në kontrollin automatik të Kthetrës së Krahut Robotik për tu hapur dhe mbyllur.

Në mësimin e sotëm, ne do ta zbulojmë pak duke përfshirë një kontrollues PS2 Wireless për të kontrolluar krahun robotik. Për këtë projekt, ne do të përdorim 4 servos.

Hapi 1: Vështrim i përgjithshëm i projektit

Niveli i vështirësisë:

Zio Padawan

Burime ndihmuese:

Ju duhet të keni një kuptim bazë se si të instaloni bordet e zhvillimit Zio. Në këtë tutorial, ne supozojmë se bordi juaj i zhvillimit është konfiguruar tashmë dhe është gati për t'u konfiguruar. Nëse nuk e keni konfiguruar ende tabelën tuaj, shikoni udhëzuesin tonë Zio Qwiic Start Guide më poshtë për të filluar:

Udhëzuesi i fillimit Zio Zuino M UNO Qwiic

Hapi 2: Skemat

Skematike
Skematike

Këtu është Skema e Instalimeve të Projektit të Pjesës 2 të Krahut Robotik, si dhe diagramin e Kontrolluesit PS2 të nevojshëm për të kuptuar për pjesën tuaj të kodimit.

Hapi 3: Diagrami i kontrolluesit PS2

Diagrami i kontrolluesit PS2
Diagrami i kontrolluesit PS2

Hapi 4: Konfigurimi i lidhjes së moduleve Zio

Më poshtë është lidhja e moduleve tona Zio që do të vendosen me Krahun Robotik. Lidhja e të gjitha moduleve së bashku është mjaft e lehtë dhe nuk do të marrë më shumë se 10 minuta për tu vendosur.

Hapi 5: Lidhni Robotin Robotic Servo me Zio 16 Servo Controller

Lidhni Robot Arm Servo me Zio 16 Servo Controller
Lidhni Robot Arm Servo me Zio 16 Servo Controller

Hapi 6: Lidhni 16 Servo -në tuaj me DC/DC Booster dhe vendoseni në 6.0V

Lidhni 16 Servo tuaj me përforcues DC/DC dhe vendoseni në 6.0V
Lidhni 16 Servo tuaj me përforcues DC/DC dhe vendoseni në 6.0V

Ne përdorim një përforcues DC/DC për të rritur dhe rregulluar tensionin e furnizimit me baterinë në 6.0.

Përdorni potenciometrin në DC Booster për të rregulluar tensionin derisa të merrni 6.0. Shtypni butonin In/Out derisa ekrani të shfaqë 6.0. Ju duhet të furnizoni energjinë (bateri 3.7V) së pari në përforcuesin tuaj DC/DC në mënyrë që të rregulloni tensionin.

Hapi 7: Lidhni Zuino M Uno me kontrolluesin e shërbimit Zio 16

Lidhni Zuino M Uno me kontrolluesin e shërbimit Zio 16
Lidhni Zuino M Uno me kontrolluesin e shërbimit Zio 16

Qwiic lidh Zuino M Uno me kontrolluesin Zio Servo me kabllo qwiic.

Hapi 8: Lidhja e Uno me Marrësin PS2

Lidhja e Uno me Marrësin PS2
Lidhja e Uno me Marrësin PS2

Këtu është një Diagram Pin me lidhjet. Për këtë pjesë ju duhen 5 tela bluzë meshkuj në femra.

Hapi 9: Kodi për Krahun Robotik

Ne do të përdorim Bibliotekën PS2 Arduino për të koduar Kontrolluesin tonë Wireless PS2 për të punuar me Krahun Robotik. Ju mund të gjeni dhe shkarkoni kodin burimor për këtë projekt Robotic Arm Part 2 në faqen tonë në Github.

Shkarkoni dhe instaloni bibliotekat e mëposhtme dhe ruajini në dosjen tuaj bibliotekare Arduino IDE:

  • Biblioteka e Shoferit Adafruit PWM Servo
  • PS2 biblioteka Arduino

Për të instaluar bibliotekat, hapni ID -në tuaj Arduino, shkoni te skeda Sketch, zgjidhni Përfshini Bibliotekën -> Shto. Biblioteka Zip. Zgjidhni bibliotekat e mësipërme për t'u përfshirë në IDE tuaj.

Arduino ka një udhëzues të dobishëm se si të instaloni biblioteka në Arduino IDE tuaj. Shikoni ato këtu!

Hapi 10: Drejtoni kodin tuaj

Drejtoni Kodin tuaj
Drejtoni Kodin tuaj

Hapni Arduino IDE. Nën Skedarët> Shembujt> PS2_Arduino_Library, Zgjidhni PS2X_Servo

Shënim: Para se të kontrolloni krahun tuaj Robotik me Kontrolluesin PS2 kontrolloni hapat e mëposhtëm: Ndizni Kontrolluesin tuaj PS2. Kontrolloni që LED Mode të ndizet. Nëse jo, shtypni butonin Mode në kontrolluesin tuaj. Pasi të keni bërë sa më sipër, duhet të shtypni butonin e rivendosjes në Zuino M Uno tuaj që të lexojë cilësimet e kontrolluesit tuaj. Ju duhet të Shtypni L1 dhe Joystick për të lëvizur Krahun tuaj Robotik.

  • Xhojstiku i majtë kontrollon përkuljen e Krahut lart ose poshtë
  • Joystick i djathtë kontrollon Kthetrën për të hapur ose mbyllur dhe rrotulluar kthetrën në të majtë ose të djathtë.

Hapi 11: Shpjegimi i kodit

Përdorimi i bibliotekës PS2X Arduino është i thjeshtë, kërkon vetëm një inicim, konfigurim dhe më pas një komandë leximi.

Për të vendosur lidhjen për Kontrolluesin tuaj PS2 me Uno tuaj, më poshtë janë kunjat që duhet të përcaktoni në kodin tuaj:

/********************************************* ****************vendosni kunjat e lidhur me kontrolluesin PS2:* - kolona 1e: origjinale* - kolona 2e: Stef? *zëvendësoni numrat e kunjave me ata që përdorni ************************************** **********************##përcakto PS2_DAT 13 // 14 #përcakto PS2_CMD 11 // 15#përcakto PS2_SEL 10 // 16#përcakto PS2_CLK 12 // 17

Ne i kemi zëvendësuar kunjat me ato që përdorim për t'u lidhur me Uno -në tonë siç përshkruhet në Diagramin e Pin -it më sipër.

/********************************************* **************** përzgjidhni mënyrat e kontrolluesit PS2:* - presionet = leximi analog i shtytësve* - gjëmim = zhurma e motorit*mos komentimi i 1 rreshtave për secilën përzgjedhje të modalitetit ** ********************************************** ************ // //#përcakto presionet e vërteta#përcakto presionet false //#përcakto gjëmimin e vërtetë#përcakto gjëmimin e rremë

Këtu kemi përcaktuar modalitetin PS2 për presionet dhe gjëmimin si të rremë. Ne komentuam ato që nuk i përdorim.

Ne do të përdorim vetëm komandën Controller's Joystick dhe L1 për të kontrolluar lëvizjen e Krahut Robotik.

loop void () {/* Duhet të lexoni Gamepad për të marrë vlera të reja dhe për të vendosur vlerat e dridhjeve ps2x.read_gamepad (motor i vogël ndezur/fikur, motor më i madh nga 0-255) nëse nuk e aktivizoni zhurmën, përdorni ps2x.read_gamepad (); pa vlera Ju duhet ta thërrisni këtë të paktën një herë në sekondë*/if (gabim == 1) // kaloni lakun nëse asnjë kontrollues nuk gjeti kthim; else {// DualShock Controller ps2x.read_gamepad (false, dridhje); // lexoni kontrolluesin dhe vendosni motorin e madh të rrotullohet me shpejtësi 'dridhje' nëse (ps2x. Button (PSB_START)) // do të jetë e VRTET për aq kohë sa shtypet butoni Serial.println ("Fillimi po mbahet"); if (ps2x. Button (PSB_SELECT)) Serial.println ("Zgjedhja po mbahet"); dridhet = ps2x. Analog (PSAB_CROSS); // kjo do të caktojë shpejtësinë e dridhjes së motorit të madh në bazë të asaj se sa shumë shtypni butonin blu (X) nëse (ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// printoni vlerat e shkopit nëse secila prej tyre është TRY RY_Value = ps2x. Analog (PSS_RY); RX_Vlera = ps2x. Analog (PSS_RX); LY_Vlera = ps2x. Analog (PSS_LY); LX_Value = ps2x. Analog (PSS_LX); Serial.print ("Vlerat e Stick:"); Serial.print (RX_Vlera); Serial.print (""); Serial.print (RY_Value); Serial.print (""); Serial.print (LY_Vlera); Serial.print (""); Serial.println (LX_Vlera);

Kodi më poshtë është vendi ku ne kodojmë servot tanë që kontrollojnë krahun tonë robotik të cilin e përfshijmë në thirrjen e funksionit nën ps2x.button (PSB_L1) || ps2x.button (PSB_R1).

Ju duhet të shtypni butonin L1 ose R1 së bashku me Joystick për të kontrolluar Krahun tuaj Robotik.

Servuset e kontrollit Left Joystick 2 dhe 3 për Pjesën e Krahut - kontrolloni përkuljen përkatësisht Lart dhe Poshtë të krahut, ndërsa Joystick e Djathtë kontrollon servot 0 dhe 1 të Kthetrës së Krahut Robotik për tu hapur ose mbyllur dhe për të rrotulluar majtas ose djathtas.

SERVO 0, 1 - Kthetra SERVO 2, 3 - Krah

Ju mund të bëni ndryshime në vlerat në këtë seksion për të kontrolluar shkallën e këndit tuaj të krahut robotik:

pulselen0 = hartë (Vlera RY_, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1 = hartë (RX_Vlera, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2 = hartë (LY_Vlera, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3 = hartë (LX_Vlera, 0, 255, SERVOMIN3, SERVOMAX3);

Recommended: