Orodha ya maudhui:

Reli ya 4WD inayoendeshwa kupitia Njia ya mbali ya Mchezo wa USB: Hatua 6
Reli ya 4WD inayoendeshwa kupitia Njia ya mbali ya Mchezo wa USB: Hatua 6

Video: Reli ya 4WD inayoendeshwa kupitia Njia ya mbali ya Mchezo wa USB: Hatua 6

Video: Reli ya 4WD inayoendeshwa kupitia Njia ya mbali ya Mchezo wa USB: Hatua 6
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Juni
Anonim
Image
Image

Kwa mradi wangu unaofuata wa roboti, nililazimishwa kubuni / kubuni jukwaa langu la roboti kwa sababu ya hali zisizotarajiwa.

Lengo ni kuwa na uhuru, lakini kwanza, nilihitaji kujaribu uwezo wake wa msingi wa kuendesha, kwa hivyo nilidhani itakuwa mradi wa kufurahisha kuwa na tabia na kudhibitiwa kama ni gari la RC (inayodhibitiwa na redio), lakini badala yake tumia Gamepad ya USB.

Matokeo yamekuwa mazuri au bora kuliko vile nilivyotarajia.

Faida ya kwenda njia ya Gamepad ya USB, na programu nyingi, ni kwamba ninaweza kuiboresha na kuongeza kwenye yale ambayo tayari nimefanya. Sina uzoefu wowote halisi wa kujenga gari la RC, lakini nadhani kuwa mtu amekwama sana na chochote kinachosambaza RC (vijiti / vifungo, nk) na mpokeaji wa RC anakuja.

Kwa mfano, nimeongeza utambuzi kuwa roboti imegonga ukuta, kwa kuwa tu programu hugundua mikondo ya juu na viwango vya chini vya kasi ya usimbuaji.

Kwa hiari, mtu anaweza kuongeza kamera za wavuti za USB kwenye roboti, kulingana na ni ngapi na kuwekwa kwake, mtu anaweza kuendesha roboti kuzunguka eneo la kuishi na kuingia kwenye chumba kingine, akiwa amekaa mahali pengine mbele ya kompyuta ambayo USB Gamepad imeunganishwa kwenye ni.

Maagizo haya hayatakuwa ya kweli, ya kina, ya kujumuisha yote, hatua kwa hatua jinsi ya kufanya lakini nitajaribu kutoa maelezo mengi kadiri niwezavyo.

Vifaa

Sehemu zilizopendekezwa: Zaidi ya haya nilipata kutoka Servo City (Actobotic).

2 - 13.5 U-chaneli, kwa pande za fremu ya msingi. Motors zimewekwa kwenye hii. Nilikwenda na kitu kifupi na motors zangu zimewekwa kwenye pembe sana, na ilifanya iwe ngumu kuziweka.

2 - 12 U-chaneli za mbele na nyuma ya fremu ya msingi.

2 - 15 U-chaneli za bumpers, mbele na nyuma

2 - 7 (au ilikuwa 7.5 ?) Vituo vya U vya safu wima za mbele. Hii sio muhimu sana, urefu unaweza kutofautiana. Inategemea urefu wa nguzo za nyuma, na ni urefu gani unaochagua kuweka angled U-channel inayounganisha kati yao.

2 - (urefu?) Njia za U kwa mwanachama aliye na angled, mbele-nyuma, akiunganisha safu wima. Hii ni muhimu, kwa sababu Servo City / Actobotic inauza paneli au mabano ya digrii za digrii 45 kwa kusudi hili, lakini itabidi ufanye math / trig ili kuhakikisha unapata urefu sahihi.

2 - (urefu?) U-chaneli kutumika kama bumpers wa kiwango cha juu, tena hizi zinategemea kile unachofanya na msingi

2 - (urefu?) U-chaneli kutumika kama bumpers ya kiwango cha juu mbele na nyuma, suala la ditto hadi hapo juu.

1 - (urefu?) U-channel kutumika kama mshiriki wa kwanza kabisa, inapita kwenye nguzo za nyuma. Hii inaweza kuwa mbaya sana, kwani unaweza kupanda juu, au mbele ya / nyuma ya safu wima.

12 (aprox) L-chaneli au mabano. Hizi hutumika kwa madhumuni anuwai lakini kimsingi hutoa uadilifu / nguvu ya kimuundo kwa pembe za fremu ya msingi NA safu wima.

4 (+?) Shimo 3 hadi shimo-gorofa-shimo 5. Hizi pia hutoa nguvu ya kimuundo kwa roboti.

ServoCity inauza aina kuu mbili za paneli zenye gorofa zenye eneo kubwa, muhimu kwa kutumia kama sufuria ya chini ya skid, au juu ambapo betri yako na au watawala wataenda, au hata kwa uso wa juu wa sensorer.

Kuna paneli 4 (4.5?) "X 12", na nadhani nyingine ni jopo 9 (9.5?) "X 12.

Sasa hapa ndipo vitu vinapendeza, na vinaweza kuchanganya na bei kubwa (sehemu ndogo zinajumlisha). Njia zote, nk, zinaweza kushikamana kwa kila mmoja kupitia vipande hivi vya unganisho, ambavyo kuna KIWANGO. Hapa ndipo ninasikitika sina orodha kamili, ya kina, maalum ya sehemu.

Na jambo ni.. haujui ni zipi ambazo unaweza kuhitaji, au ni ngapi.. kwa sababu kuna njia nyingi ambazo unaweza kutoshea vipande hivi.

Ninaweza kuorodhesha kile nilichotumia:

www.servocity.com/90-quad-hub-mount-c

www.servocity.com/side-tapped-pattern-moun…

www.servocity.com/90-quad-hub-mount-d

Zifuatazo mbili ni rahisi sana, na ningeweka tu juu ya hizi:

www.servocity.com/single-screw-plate

www.servocity.com/dual-screw-plate

Ifuatayo ni screws zote (bolts). Nilianza na kifurushi cha ukubwa KILA, na nimepitia mengi yao. Nilitumia screws ndefu zaidi ambapo saizi haikujali, na kuzihifadhi zile fupi kwa mahali zilipohitajika kwa sababu hakuna urefu mwingine utakaofanya kazi.

Mwishowe, unapaswa kupata begi 1 ya hizi:

www.servocity.com/6-32-nylock-nuts-pack

Sikutumia hizo nyingi, lakini (nadhani) ni muhimu kuhakikisha kuwa motors zako hazitetemeshi kutoka kwa fremu kwa muda. Ni wawili tu ambao watafanya kazi kwa kila motor, kwa sababu ya kituo cha U

Utahitaji angalau 4 ya hizi, unaweza kupata nyongeza au hivyo ikiwa utasababisha uharibifu kwa moja (niamini, unaweza kuwa unaweka / kuzima motors mara kadhaa):

www.servocity.com/heavy-duty-clamping-shaf…

Kawaida, shafts za motors ni 6mm, na axles ni 1/4 (0.25in).

Ningepata screws nyeusi, inayodhaniwa kuwa na nguvu, na kuitumia kwa clamp zilizo hapo juu, na SI utumie screws ambazo zinakuja na clamps:

(Nadhani hizi ndio hizo):

4 - 1/4 "(0.25") fani za kipenyo

1 - begi ya spacers nyeusi 1/4"

4 - Kufunga D-Hubs

www.servocity.com/0-770-clamping-d-hubs

4 - D-Shafts (# 6340621.375 "(1-3 / 8")

4 - 6 magurudumu ya wajibu mzito

www.servocity.com/6-heavy-duty-wheel

Kumbuka kuwa napenda magurudumu haya lakini yana makali ya mpira ngumu. Wanaonekana kufanya vizuri kwenye sakafu ngumu, na zulia, na labda matembezi magumu ya zege. Haitafanya vizuri kwenye nyasi, mchanga, nk.

PIA, watakuwa na tabia ya kusumbua zulia lako !!!

4 - motors:

www.servocity.com/motors-actuators/gear-mo…

Nilikwenda na RPM 223, kasi nzuri ya juu ya ndani, pia inaweza kusonga roboti yangu (nzito na betri 2 SLA 12V) kwa urahisi katika mwendo wa polepole.

2 - encoders za magari kwa motors. (Roboclaw ya Jiji la Servo hushughulikia viambatisho 2 tu)

1 - Roboclaw 2X45A mtawala wa magari, hakikisha unapata ile iliyo na vizuizi vya kijani kibichi, sio pini…. welll… kila mmoja ana faida zake. Kuona nyuma.. huenda nilikuwa nimepata pini.

Nadhani hiyo ni kutoka Servo City.

SparkFun inauza Arduino Uno (ndivyo nilivyotumia), na pia Artemis ya Redboard kama msimamizi wako wa gari.

Utahitaji Raspberry Pi 3 (au 4?) Kama "akili" za kiwango cha juu na kiolesura kwako.

Utahitaji wiring, swichi, fuses, na diode ya "flyback" yenye nguvu sana.

Nilitumia betri ya SLA ya Duracell 12V 14AH, lakini unaweza kutumia chochote.

ONYO! Ubunifu wa roboti hii (TALL, na WIDE, lakini FUPI), inachukua aina ya kituo kizito cha mvuto, kama vile betri ya SLA itatoa. Inaweza isifanye vizuri na aina hizo zingine za vifurushi vya teknolojia mpya. LiPo, Simba, n.k Inaweza kukunja kwa urahisi.

Kutoka Pololu nilipata adapta chache za kuziba pipa, ili niweze kujitegemea Arduino na / au Redboard, ingawa wangeunganishwa na Raspberry kupitia USB, kwa sababu sikutaka kutegemea nguvu ya Raspberry. (Kamera zinazoongeza haswa, sensorer, nk.)

Utahitaji mdhibiti wa voltage kutoka 12 hadi 5V, kiwango cha chini cha 5A (?) Kwa Raspberry. Wengine wanaweza kushughulikia chochote kati ya 7 hadi 15V moja kwa moja kwa betri ya SLA.

Hiyo ni juu yake kwa sehemu.

Kile nisingefanya - digrii 90 iliyopigwa.

Tena, kuna video nyingi katika orodha yangu ya kucheza ya Robotiki ya youtube inayoelezea mengi ya hapo juu.

Hatua ya 1: Ujenzi

Kusema ukweli, hatua zangu zote za ujenzi tayari ziko katika mfumo wa youtubes. Unaweza kuona wale walio kwenye orodha yangu ya kucheza ya Roboti, kuanzia "Wallace Robot 4". Zilizopita (Wallace II, Wallace III) pia zina nyenzo nzuri

www.youtube.com/playlist?list=PLNKa8O7lX-w…

Hatua ya 2: Jaribu Roboclaw, Motors, na Encoders

Watengenezaji wa Roboclaw (BasicMicro) wana programu tumizi ya Windows ambayo unaweza kutumia kuhakikisha umetengeneza waya na encoders kwa usahihi kwa Roboclaw. Utakuwa ukiunganisha motors za upande mmoja sambamba na Roboclaw. Unaweza kuchagua kutumia waya za usimbuaji, kwenye gari za nyuma tu, au motors za mbele, au labda bora zaidi - KISUKARI.

Sababu ya maoni yangu inahusiana na (baadaye) kuangalia roboti iliyokwama. Kuwa na hadhi diagonally ya ikiwa magurudumu ya mbele / nyuma hayako / hayageuki inaweza kuwa bora kuliko mbele tu, au nyuma tu.

KUMBUKA: KIYO SIKUFANYA ni kutumia Arduino kuungana pia (kupitia pini za GPIO) kwa visimbuzi - ikiwa ungefanya hivyo, unaweza kuwa na Roboclaw itashughulikia encoders 2, halafu Arduino ishughulikie zingine mbili, na tu swala Roboclaw kwa maadili yake mawili ya usimbuaji (na kasi).

KUMBUKA: Nilitumia ombi la BasicMicro kusanidi mapema Roboclaw ya Ramping Up / Ramping Down. Hii ni nzuri kwa kulinda vifaa na vifaa vya elektroniki. Kuna video kuhusu hiyo katika orodha yangu ya kucheza ya Roboti.

Karibu nilisahau: nilinunua pia nyaya za kiunganishi cha risasi ambazo huenda kati ya nyaya za magari, na Roboclaw. KUMBUKA: ukifanya hivyo, utagundua kuwa urefu wa kebo jumla ni KWA MUDA MREFU. Lakini sikutaka kukata yoyote ikiwa sikuwa na haja. Nilifanya (kwa hatua za baadaye) nikutana na maswala ya mawasiliano na USB kati ya Raspberry na Arduino, labda kwa sababu ya kelele ya EMI.. lakini nimefanya kazi kuzunguka hiyo na programu.

Ikiwa inakuwa shida, unaweza kukata waya mfupi - unaweza pia kununua kinga ya chuma (kutoka Amazon, 1 kipenyo).

Jambo la mwisho: Hii bado sijafanya --- kuwa na usanidi wa kiotomatiki wa Roboclaw au tune kiotomatiki (kwa kutumia encoders) ili motors za kushoto na kulia zisonge kwa kasi moja na roboti iende moja kwa moja.

Yangu yanapindika kidogo juu ya futi 12 lakini haitoshi kwamba nilihisi hitaji la kufanya chochote juu yake.

Hatua ya 3: Kuongeza na kupanga programu ya Arduino

Utahitaji kuziba pipa na wiring, pia kebo ya USB. Hakikisha unapata sahihi kwa kiunganishi cha Arduino.

Utahitaji kupakua IDE ya Arduino.

Hapa Github kuna mchoro mpya unaoshughulikia kuendesha roboti:

github.com/elicorrales/wallace.robot.ardui…

Utaunganisha Arduino na kompyuta yako inayoendesha IDE, na kulingana na jinsi mchoro umeandikwa, ungetumia pini 10 na 11 kwenye Arduino kwa mawasiliano ya serial (Software Serial) na Roboclaw.

Nilitengeneza itifaki rahisi ya mawasiliano kati ya Raspberry Pi na Arduino.

Ni msingi wa tabia ya ASCII, ambayo inafanya iwe rahisi kutatua na kujaribu tu kutumia dirisha la "kufuatilia serial" ya Arduino IDE.

Amri zinaanzia nambari "0" (sifuri) na nenda juu kama inahitajika

Amri zinazoanza katika "20" ni amri za moja kwa moja za Roboclaw, na zile zilizo chini ya nambari hiyo ni amri zinazohusiana na Arduino.

Kwa sababu ya kelele ya EMI, niliboresha kamba ya amri ikiwa ni pamoja na checksum.

Kwa hivyo, kamba yoyote itajumuisha:

# idadi ya ishara katika kamba ikiwa ni pamoja na hii

hundi

Kwa mfano, sema unataka Arduino ajibu na orodha ya amri:

4 0 12 16

"4" ni ishara nne kwa kamba.

"0" ni amri ya MENU.

"12" ni nambari ya nasibu niliyochagua.

"16" ni jumla ya 4 + 0 + 12.

Amri hiyo hiyo ya MENU inaweza kuwa tofauti:

4 0 20 24

Kwa sababu nilichagua nambari tofauti ya nasibu, checksum pia ni tofauti.

Mfano, sema unataka kusonga mbele kwa kasi ya 100%:

5 29 0 134 100

"5" ishara tano

"29" amri ya MBELE

"0" nambari ya nasibu

"134" hundi

"100" kigezo 1 (kasi katika kesi hii)

Ikiwa Arduino haiwezi kuthibitisha kamba hiyo inayoingia, inaiacha tu / inapuuza, hakuna jibu.

Ikiwa Arduino haipokei amri inayofuata ya harakati na X milliseconds, hutuma motors STOP kwa Roboclaw.

Arduino inaanza na kuanza kutuma hali ya kiotomatiki kwenye bandari ya USB… isipokuwa ikiambiwa uache kufanya hivyo.

Kwa wakati huu unapaswa kuwa tayari kujaribu kudhibiti Roboclaw na kutazama motors zikigeuka, tu kwa kutumia "Serial Monitor" kwenye IDE.

Hatua ya 4: Kuongeza na kupanga programu ya Raspberry Pi (node.js)

Tena, ukiangalia orodha yangu ya kucheza ya Robotiki, hata tangu mwanzo, nilikwenda kila hatua ili kupata Raspberry juu na kukimbia.

Jambo moja ambalo ningeweza kupuuza ni kwamba utahitaji mdhibiti wa 5V, na kwa njia fulani jenga, kata / rekebisha kebo ya USB kwa hiyo, au weka nguvu Raspberry kwa njia nyingine.

Hapa Github ni kila kitu unachohitaji katika Raspberry kuwasiliana na Arduino kupitia USB.

github.com/elicorrales/wallace.robot.raspb…

Kuna hata hati za mtihani.

Unaweza kuangalia nambari ya seva ya node.js na utaona jinsi Raspberry inavyogeuza maagizo ya nambari, kuwa aina ya REST-aina ya url. Unaweza kutumia "curl" kutuma amri za mtihani.

Mfano:

anwani yako ya IP ya RP3: 8084 / arduino / api / mbele / 50

itasababisha motors kuzungusha magurudumu mbele kwa muda.

Ikiwa utaweka hiyo kwenye kitanzi cha maandishi ya ganda, utaona magurudumu yanaendelea kugeuka.

Nambari ya node. Unaweza kujaribu hii kwa kuondoa tu Arduino kutoka kwa Raspberry, na kuiunganisha tena.

Hakikisha unalingana na kiwango cha baud kati ya hizo mbili.

Kwa sababu ya Arduino kuacha pakiti mbaya za data, na kwa sababu kwa kiwango cha node.js, na kwa kiwango cha kivinjari cha kivinjari, kila kitu kimewekwa alama kutuma amri nyingi za "gari", nimeweza kukimbia hadi baud 2 000 000 (2Mbps).

Ikiwa unapata hati za majaribio kukimbia na unaona magurudumu yakigeuka, basi uko tayari kwa hatua inayofuata.

Hatua ya 5: Hatua ya Mwisho - Kupanga / Kutumia Mteja wa Ukurasa wa Wavuti

Imejumuishwa kwenye kiunga cha Github kwa sehemu ya Raspberry ya haya yote, ni faili za mteja.

index.html. index.js. p5.min.js.

Wanashughulikia Gamepad ya USB kupitia Gamepad API (msingi wa kivinjari) na unapaswa kuona vifungo na vigae anuwai pia vinavyopatikana kwenye ukurasa wa wavuti.

Maswali ya msimbo wa javascript (kura za maoni) X- na Y-axis maadili kwa moja ya vijiti vya kufurahisha.. (kulingana na vijiti vya kupendeza / pedi ya mchezo uliyonayo, itabidi ubadilishe msimbo). Inachagua haraka sana, na inaondoa maadili hayo yote kwa seva ya node.js inayosikiliza saa 8084.

Thamani mbichi za X na Y-axis za viunga vya furaha ni kati ya 0 na 1.

Lakini kazi ya maktaba ya mtawala wa Roboclaw inayotumika katika Arduino kuendesha motors, inatarajia thamani kati ya -100 hadi 0 (nyuma) au (0 hadi 100) mbele.

Soo…. hiyo ndio kusudi la kujumuisha p5.min.js. Inatokea tu kuwa na kazi nzuri sana, rahisi ya ramani () ambapo unaipa thamani mbichi, ni mbichi (ya sasa), na anuwai mpya inayotakiwa. Na inabadilisha dhamana mbichi kuwa dhamana katika anuwai mpya, iliyopangwa.

Jambo lingine: Kwa kasi 100, roboti inaweza kuwa ngumu sana. Nilikuwa nikikabiliana na kitu kila wakati. Lakini hata unapoendelea kuwa bora wakati huo, bado ni ya kugusa wakati unapozunguka kushoto au kulia.

Kitu cha kuongeza ni sawa na kitelezi cha sasa cha Max Speed kwenye ukurasa wa wavuti. Kitelezi hicho huamua ni bei gani ya juu au ya juu ambayo utakuwa unapanga ramani za viunga vya X na Y kwa.

Mfano:

Sema unapanga ramani 0 -> 1 hadi 0 -> 100. Unaposukuma starehe kamili ya starehe, uko 100. Kugusa. Inaweza kuwa haraka sana.

Lakini, ikiwa utateleza kitelezeshi cha Max Speed nyuma kidogo, sasa unapanga ramani 0 -> 1 hadi 0 -> 80 au 70.

Hiyo inamaanisha kuwa unayo njia zaidi ya kusonga fimbo yako ya kufurahisha bila mabadiliko makubwa kwa kasi inayopelekwa kwa node.js (na kwa Arduino).

Na nyongeza ambayo unaweza kufanya ni kutenganisha Xs (zunguka kushoto au kulia) kutoka kwa Ys (mbele au nyuma) kwa kasi yao wenyewe inayopatikana.

Kwa hivyo, unaweza kuacha Ys kwa 0 hadi 100, 0 hadi -100 kwa mwendo wa haraka, lakini punguza kasi ya Xs kwa mwendo wa mzunguko unaodhibitiwa zaidi. Bora zaidi ya walimwengu wote.

Hatua ya 6: Hiari: Endesha Robot na Buruta Panya na / au Matukio ya Kugusa

Ikiwa umefika hapa, unajua kwamba tabaka za programu zinazoanza kutoka kivinjari na kuchimba chini kupitia Javascript na kuendelea na seva ya Raspberry node.js, mwishowe kwa arduino, inabadilisha fimbo ya kupendeza ya Gamepad X- na Y-kuratibu kuwa " mbele "(au" nyuma ", nk) amri (na kasi yao).

Kwa kuongezea, unajua basi kuwa wakati Xs na Ys ni hasi 1, kupitia sifuri, hadi 1, hizo zinapaswa kubadilishwa kati ya sifuri na 100. Kweli, max inategemea mipangilio ya kasi ya kasi kwenye ukurasa wa wavuti.

Soo… kitu pekee cha kufanya kutumia panya, au kugusa hafla (kama kwenye smartphone), ni kukamata hafla hizo, kunyakua Xs na Ys.

LAKINI - hizo X na Y sio SI kati ya hasi 1 na 1. Huanza 0 na kuongezeka vyema, kwa sababu ni saizi au uratibu wa skrini ya jamaa ya kipengee fulani cha HTML (kama jopo la bootstrap) au turubai.

Kwa hivyo huko tena, kazi ya "ramani ()" ya maktaba ya J5 ya P5 ni rahisi sana kuweka ramani kwa kile tunachohitaji.

Nilirudisha nambari kuwa na kurasa mbili tofauti za wavuti, moja kwa desktop inayotumia Gamepad, nyingine kwa simu ya rununu, nikitumia hafla za kugusa.

Pia, mara tu X na Ys zitakapowekwa tena ramani, hulishwa kwenye mlolongo huo huo wa nambari, nk, kama vile X na Y kutoka Gamepad.

Ilipendekeza: