Talaan ng mga Nilalaman:

SnappyXO Precise Mover Robot: 6 Hakbang
SnappyXO Precise Mover Robot: 6 Hakbang

Video: SnappyXO Precise Mover Robot: 6 Hakbang

Video: SnappyXO Precise Mover Robot: 6 Hakbang
Video: Tricycle Drive SnappyXO Robot 2024, Nobyembre
Anonim
SnappyXO Tiyak na Mover Robot
SnappyXO Tiyak na Mover Robot

Gawing diretso ang iyong Arduino robot para sa isang tinukoy na distansya o i-twist sa isang tinukoy na anggulo gamit ang library ng PreciseMovement Arduino.

Kailangan ng robot ang isang rolling ball caster o katumbas upang mabawasan ang alitan habang umiikot.

www.pololu.com/product/954

Maaari mong sabihin sa robot na magpatuloy sa isang tinukoy na distansya o i-twist sa isang tinukoy na anggulo. Tinutukoy ng programa ang posisyon nito gamit ang patay na pagtutuos. Dahil ang mga pagtatantya ng posisyon ay umaasa lamang sa bilis ng gulong, ang pagdulas ay magdudulot ng malaking error. Ang taga-disenyo ng robot ay dapat maging maingat na mabawasan ang peligro ng pagdulas.

Nasubukan ito upang gumana sa SnappyXO robot.

Hakbang 1: Nabago ang Lokasyon ng Tutorial

Ang tutorial ay inilipat sa pahina sa ibaba. Ang tutorial na ito ay hindi na napanatili.

site.google.com/stonybrook.edu/premo

Hakbang 2: Buuin ang SnappyXO Differential Drive Robot

Ang library ng PreciseMovement na gagamitin namin ay katugma lamang sa mga robot ng kaugalian sa pagmamaneho. Maaari kang pumili upang gumamit ng iba pang mga robot ng 2 wheel drive.

Hakbang 3: Ikonekta ang Electronics

Ikonekta ang Electronics
Ikonekta ang Electronics

Para sa karaniwang SnappyXO Optical Encoder:

D0 (output ng encoder) -> Arduino Digital Pin

VCC -> Arduino 5V

GND -> GND

Lakas ng Motor at Arduino:

Ang mapagkukunan ng kuryente ng motor ay dapat na sapat para sa mga motor na iyong ginagamit. Para sa kit ng SnappyXO, ang 4AA na baterya ay ginagamit para sa lakas ng motor at 9V na baterya para sa lakas ng Arduino. Tiyaking lahat sila ay may isang karaniwang GND.

Hakbang 4: I-install ang PreciseMovement Arduino Library

I-download:

github.com/jaean123/PreciseMovement-library/releases

Paano i-install ang Arduino Library:

wiki.seeedstudio.com/How_to_install_Arduino_Library/

Hakbang 5: Code

Arduino Code:

create.arduino.cc/editor/whileloop/7a35299d-4e73-409d-9f39-2c517b3000d5/preview

Ang mga parameter na ito ay nangangailangan ng pagsasaayos. Ang iba pang mga parameter na may label na inirerekumenda sa code ay maaaring ayusin para sa mas mahusay na pagganap.

  • Suriin at itakda ang mga pin ng motor sa ilalim ng ARDUINO PINS.
  • Itakda ang LENGTH at RADIUS.

    • Ang haba ay ang distansya mula sa kaliwang gulong hanggang sa kanang gulong.
    • Ang RADIUS ay ang radius ng gulong.
  • Itakda ang PULSES_PER_REV, na kung saan ay ang bilang ng mga pulso na output ng encoder para sa isang rebolusyon sa gulong.

    • Tandaan na ito ay naiiba mula sa bilang ng mga pulso na output ng encoder para sa isang rebolusyon ng shaft ng motor maliban kung ang mga encoder ay konektado upang mabasa nang direkta mula sa wheel shaft.
    • PULSES_PER_REV = (pulso bawat isang rebolusyon ng motor shaft) x (gear ratio)
  • Itakda ang STOP_LENGTH kung nakita mo na ang robot ay nag-o-overshooting pagkatapos ng isulong na paggalaw.

    Hihinto ang robot sa sandaling ang tinatayang posisyon ay STOP_LENGTH ang layo sa target. Sa gayon, ang STOP_LENGTH, ay ang tinatayang distansya na kinakailangan para tumigil ang robot

  • Mga parameter ng PID

    KP_FW: Ito ang proporsyonal na bahagi ng pasulong na paggalaw. Taasan ito hanggang sa dumiretso ang robot. Kung hindi mo makuha ito upang dumiretso sa pamamagitan ng pag-tune nito, malamang na may kasalanan ang hardware. (hal. misalignment ng gulong, atbp)

    KP_TW: Ito ang proporsyonal na bahagi ng pag-ikot ng PID na paggalaw. Magsimula lamang mula sa isang mababang halaga at dagdagan ito hanggang sa bilis ng pag-ikot, o ang angular na tulin ng robot habang umiikot, ay sapat na mabilis, ngunit hindi maging sanhi ng sobrang pag-overhoot. Upang magsagawa ng mga obserbasyon, maaari kang magkaroon ng robot na kahalili mula 0 hanggang 90 at pabalik sa pamamagitan ng pagpasok ng sumusunod sa pagpapaandar ng loop

Ilagay ito sa loop upang ibagay ang KP_FW:

mover.forward (99999);

Ilagay ito sa loop upang kahalili mula 0 hanggang 90 upang ibagay ang KP_TW:

mover.twist (90); // Twist 90 CW

pagkaantala (2000);

mover.twist (-90) // Twist 90 CCW

pagkaantala (2000);

Tandaan na upang tunay na maiikot ang anggular na tulin sa TARGET_TWIST_OMEGA, ang KI_TW ay kailangang i-tuned din dahil ang isang proporsyonal na magsusupil ay hindi makakaayos sa eksaktong target. Gayunpaman, hindi kinakailangan na paikutin sa eksaktong anggulo na tulin. Ang bilis ng anggulo ay kailangang maging sapat na mabagal.

Hakbang 6: Paano Ito Gumagana

Kung gusto mong malaman kung paano ito gumagana basahin ito.

Ang kilusang pasulong ay pinananatiling tuwid gamit ang dalisay na algorithm ng pagtugis sa isang tuwid na landas ng linya. Higit pa sa Purong Pursuit:

Sinusubukan ng tagapagbantay ng PID na panatilihin ang bilis ng angular na bilis sa TARGET_TWIST_OMEGA. Tandaan na ang angular velocity na ito ay angular na tulin ng buong robot hindi ang mga gulong. Isa lamang sa PID controller ang ginagamit at ang output ay ang bilis ng pagsulat ng PWM ng parehong kaliwa at kanang mga motor. Ginagawa ang patay na pagtutuos upang makalkula ang anggulo. Kapag naabot na ng anggulo ang threshold ng error, humihinto ang robot.

Inirerekumendang: