Orodha ya maudhui:

Jukwaa Rahisi la Roboti la Arduino !: Hatua 5
Jukwaa Rahisi la Roboti la Arduino !: Hatua 5

Video: Jukwaa Rahisi la Roboti la Arduino !: Hatua 5

Video: Jukwaa Rahisi la Roboti la Arduino !: Hatua 5
Video: 28 панфиловцев. Самая полная версия. Panfilov's 28 Men (English subtitles) 2024, Julai
Anonim
Jukwaa Rahisi la Roboti la Arduino!
Jukwaa Rahisi la Roboti la Arduino!
Jukwaa Rahisi la Roboti la Arduino!
Jukwaa Rahisi la Roboti la Arduino!

Nimepata Arduino baada ya kucheza karibu na wadhibiti wengine wa AVR wakati wa mikutano ya timu ya Roboti. Nilipenda wazo la chip rahisi inayoweza kusanifiwa ambayo inaweza kukimbia karibu kila kitu kutoka kwa kiolesura rahisi cha kompyuta kwa hivyo nilipata Arduino kwa sababu tayari ina bodi nzuri na kiolesura cha USB. Kwa mradi wangu wa kwanza wa Arduino, nilichimba kitanda cha Vex Robotic ambacho nilikuwa nimeweka kutoka kwa mashindano kadhaa niliyofanya shule ya upili. Siku zote nilikuwa nikitaka kutengeneza jukwaa la roboti linaloendeshwa na kompyuta lakini Vex microcontroller inahitaji kebo ya programu ambayo sikuwa nayo. Niliamua kutumia Arduino yangu mpya (na labda baadaye tupu ya AVR ikiwa nitafanya kazi) kuendesha jukwaa. Hatimaye ninataka kupata netbook na kisha ninaweza kuendesha roboti kwa kutumia WiFi na kuona kamera yake ya wavuti kwa mbali.

Niliweza kupata itifaki ya serial inayofaa na mfano rahisi ambao huendesha roboti kwa kutumia kidhibiti cha Xbox 360 kilichounganishwa na PC ya Linux.

Hatua ya 1: Inachoweza Kufanya…

Inachoweza Kufanya…
Inachoweza Kufanya…
Inachoweza Kufanya…
Inachoweza Kufanya…

Arduino ni jukwaa linalofaa sana. Lengo langu la kimsingi lilikuwa tu kupata Arduino ili kusanisha motors mbili za Vex kwa PC, lakini nilikuwa na pini nyingi za kuingiza / kutoa na niliamua kuongeza vitu vingine vya ziada. Hivi sasa nina RGB ya LED kwa hali ya bandari ya serial (kijani ikiwa pakiti ni nzuri, nyekundu ikiwa ni mbaya) na shabiki wa PC anayeendeshwa na transistor. Ninaweza pia kuongeza swichi na sensorer lakini sikuweka yoyote ya hizo bado. Jambo bora zaidi juu yake ni kwamba unaweza kuongeza chochote unachotaka kwenye roboti ya Arduino. Inachukua tu msimbo wa kiolesura kudhibiti vitu vya ziada na kupata pembejeo kwa kompyuta.

Hatua ya 2: Sehemu

Sehemu
Sehemu
Sehemu
Sehemu
Sehemu
Sehemu

Kwa roboti yangu, nilitumia sehemu kadhaa tofauti. Sehemu nyingi zilitokana na vitu vya zamani ambavyo nilikuwa nimeweka karibu na basement yangu. 1) Arduino Duemilanove w / ATMega328Hii ndio Arduino mpya zaidi, na kwa kuwa nimeipata siku chache zilizopita nina mpya zaidi. Walakini, nambari ni ndogo ya kutosha kwamba inapaswa kutoshea kwa urahisi kwa Arduino yoyote. Labda inaweza kutoshea ATTiny (ikiwa nitaunda mtawala wa roboti mbali na Arduino, ATTiny 2313 inaonekana kama chaguo nzuri, ni ndogo na ya bei rahisi lakini bado ina matokeo mengi na kiolesura cha UART cha serial) 2) Jukwaa la Roboti ya Vex alipata kitanda cha Vex miaka michache iliyopita ili kujenga roboti inayodhibitiwa na redio kuchukua vitu kwa mashindano ya shule ya upili. Niliunda msingi wa msingi wa "mraba bot" ambao una magurudumu 4 yanayoendeshwa na motors mbili. Unaweza kubadilisha vituo vingine vya roboti ikiwa una jukwaa lingine ambalo unataka kuendesha. Jambo muhimu kukumbuka ni kwamba motors za Vex kimsingi ni servos zinazozunguka zinazoendelea, hutumia mpangilio wa upana wa kunde kuashiria jinsi ya haraka na kwa mwelekeo gani wa kugeuza. Motors za Vex ni nzuri kwa sababu zina anuwai kubwa ya uendeshaji, mahali fulani kati ya volts 5 hadi 15. Ninatumia 12V kwa sababu nilikuwa na betri ya 12V. Kwa servos nyingi za kupendeza, utahitaji voltage ya chini (mara nyingi volts 6). 3) Battery Roboti haina maana bila usambazaji wa umeme. Kwa kupima ninatumia adapta ya kawaida ya ukuta wa 9V kutoka kwa RadioShack, lakini kwa operesheni isiyo na waya nilipata kifurushi cha betri cha 12V NiMH kwenye kompyuta ndogo ya zamani. Ingawa haina malipo ya kutosha kuendesha kompyuta ndogo inaendesha roboti yangu ya Vex vizuri. Inaweza pia kuwezesha Arduino kutumia pini ya kuingiza Vin kwenye kiunganishi cha nguvu, Arduino itasimamia 12V chini hadi 5 na hata itatoa pini ya pato la 5V kwenye kiunganishi cha umeme. waya kila kitu juu. Mwishowe nitapata bodi nzuri ya kuiga na solder kwenye unganisho la kudumu zaidi lakini kwa sasa ubao wa mkate hufanya iwe rahisi kubadilisha vitu. Bodi yangu ya mkate ni "mkate msingi wa SparkFun", tu ubao wa mkate kwenye bamba la chuma na vituo 3. 5) MAX232-msingi wa RS232-TTL converter Ikiwa unataka kuendesha roboti yako kwa kutumia unganisho la bandari la RS-232 (tofauti na Arduino iliyojengwa unaweza kutumia kibadilishaji cha RS232-TTL. Ninatumia MAX232 kwa sababu nilikuwa na wachache wao wamelala karibu na niliiuza kwenye kipande kidogo cha bodi ya prototyping na capacitors zinazohitajika. Ninahitaji RS-232 kwa sababu kompyuta yangu ya zamani ina bandari moja tu ya USB na ninatumia hiyo kwa mtawala wa mchezo kuendesha roboti. 6) Sehemu za ziada kama inavyotakiwa Kwa utatuzi rahisi wa itifaki ya serial, niliweka RGB LED juu yake (walipata moja na agizo langu la Arduino sababu walisikika poa). Taa hiyo inaangaza nyekundu, kijani kibichi, hudhurungi kwa mfuatano wakati Arduino itakapowaka kuonyesha roboti imeanza upya na kisha inawasha Kijani wakati pakiti ya gari imepokelewa, Bluu wakati pakiti ya shabiki imepokelewa, na Nyekundu wakati mbaya au haijulikani pakiti imepokelewa. Kuendesha shabiki nilitumia transistor ya kawaida ya NPN (zile zile nilizoonyesha katika Agizo langu la mwisho) na kipinga katikati ya transistor na Arduino (transistor ilikuwa ikichora sasa sana na inapokanzwa Arduino, kwa hivyo niliweka kizuizi resistor ili kuizuia).

Hatua ya 3: Programu ya Arduino na PC

Programu ya Arduino na PC
Programu ya Arduino na PC

Ili kupanga Arduino, bila shaka utahitaji programu ya Arduino na kebo ya USB. Unaweza pia kupanga Arduino ukitumia bandari ya serial na kibadilishaji cha kiwango cha TTL ikiwa PC yako ina bandari ya serial. Kumbuka kuwa interface ya serial ya USB haitawasiliana na processor ya Arduino ya ATMega ikiwa kuna kibadilishaji cha kiwango kilichounganishwa na pini za serial za Arduino (pini 0 na 1) ili uikate kabla ya kutumia USB. PC kudhibiti motors. Tutahitaji pia mfumo wa kuendesha gari wa PWM ili kutuma ishara sahihi kwa motors za Vex na kuhakikisha kuwa zinaenda katika mwelekeo sahihi wakati zinapewa maadili sahihi. Niliongeza pia taa rahisi ya LED, haswa kwa dalili ya hali lakini pia kwa sababu inaonekana ni nzuri. Katika PC tutahitaji kufungua bandari ya serial na kutuma fremu za data ambazo programu ya Arduino itaelewa. PC pia inahitaji kuja na maadili ya gari. Njia rahisi ya kufanya hivyo ni kutumia pedi ya mchezo wa USB au fimbo ya kufurahisha, ninatumia kidhibiti cha Xbox 360. Chaguo jingine ni kutumia kompyuta iliyotumwa (iwe netbook au bodi ndogo ya ITX) kwenye robot yenyewe kuendesha bila waya. Ukiwa na kitabu cha wavu, unaweza hata kutumia kamera ya wavuti iliyoko ndani kutiririsha nyuma kulisha video na kuendesha roboti yako kwa mbali. Nilitumia mfumo wa soketi za Linux kufanya programu ya mtandao kwa usanidi wangu. Programu moja ("seva ya fimbo") inaendeshwa kwenye PC tofauti ambayo ina mtawala iliyochomekwa ndani yake, na programu nyingine ("mteja") inaendeshwa kwenye netbook iliyounganishwa na Arduino. Hii inaunganisha kompyuta mbili na kutuma habari ya starehe kwenye netbook, ambayo hutuma pakiti za serial kwa Arduino ambayo inaendesha robot. Ili kuungana na Arduino ukitumia Linux PC (katika C ++) lazima kwanza ufungue bandari ya serial kwa sahihi kiwango cha baud na kisha tuma maadili ukitumia itifaki ambayo umetumia pia kwenye nambari ya Arduino. Fomati yangu ya serial ni rahisi na yenye ufanisi. Ninatumia ka 4 kwa "fremu" kutuma kasi mbili za gari (kila moja ni baiti moja). Baiti za kwanza na za mwisho ni nambari zenye nambari ngumu ambazo hutumiwa kuweka Arduino kutoka kwa kutuma nambari isiyo sahihi kwa nambari ya PWM na kusababisha motors kwenda wazimu. Hili ndilo kusudi la msingi la RGB LED, inaangaza nyekundu wakati fremu ya serial ilikuwa haijakamilika. Baiti 4 ni kama ifuatavyo: 255 ("coded hard" start "byte),,, 200 (hard coded" end "byte) Ili kuhakikisha upokeaji wa data kwa uhakika, hakikisha unaweka ucheleweshaji wa kutosha kati ya vitanzi vya programu. Ikiwa utatumia nambari yako ya PC haraka sana, itafurika bandari na Arduino inaweza kuanza kudondosha au hata kusoma ka vibaya. Hata ikiwa haitoi habari inaweza pia kufurika bafa ya bandari ya Arduino. Kwa motors za Vex, nilitumia maktaba ya Arduino Servo. Kwa kuwa motors za Vex ni motors tu za mzunguko zinazoendelea, hutumia ishara sawa sawa ambayo servos hutumia. Walakini, badala ya digrii 90 kuwa kituo cha katikati, ni kituo cha kusimama ambapo motor haizunguki. Kupunguza "pembe" husababisha motor kuanza kuzunguka katika mwelekeo mmoja, wakati kuinua pembe kunafanya kuzunguka katika mwelekeo mwingine. Mbali zaidi kutoka kwa kituo cha katikati, kasi ya gari itazunguka. Wakati haitavunja chochote ikiwa utatuma maadili zaidi ya digrii 180 kwa motors, ningeshauri kupunguza viwango kutoka digrii 0 hadi 180 (ambazo katika kesi hii ni nyongeza ya kasi). Kwa sababu nilitaka kudhibiti zaidi na chini ya kudhibiti kuendesha gari kwa roboti, niliongeza programu "kikomo cha kasi" kwenye programu yangu ambayo hairuhusu kasi kuongezeka juu ya "digrii" 30 kwa mwelekeo wowote (masafa ni 90 +/- 30). Nina mpango wa kuongeza amri ya bandari ya serial ambayo inabadilisha kikomo cha kasi, ili kompyuta iweze kuondoa kikomo cha kuruka ikiwa unataka kwenda haraka (nimekuwa nikijaribu kwenye vyumba vidogo kwa hivyo sitaki kuharakisha na kugonga ukuta, haswa ukiwa na netbook juu yake) Kwa habari zaidi, pakua nambari iliyoambatanishwa mwishoni mwa hii inayoweza kufundishwa.

Hatua ya 4: Ongeza Kitabu cha Kitabu ili Kuchunguza Ulimwengu Usiofahamika Kutoka Umbali

Ongeza Kitabu cha Mtandao Kugundua Ulimwengu Wasiojulikana Kutoka Umbali
Ongeza Kitabu cha Mtandao Kugundua Ulimwengu Wasiojulikana Kutoka Umbali
Ongeza Kitabu cha Mtandao ili Kuchunguza Ulimwengu Usiofahamika Kutoka Umbali
Ongeza Kitabu cha Mtandao ili Kuchunguza Ulimwengu Usiofahamika Kutoka Umbali

Ukiwa na PC kamili kwenye roboti yako ya Arduino, una uwezo wa kuendesha roboti yako kutoka kwa WiFi yako inaweza kufikia bila kamba zozote za kuweka robot kwenye eneo moja. Mgombea mzuri wa kazi hii ni kitabu cha wavu, kwa sababu netbook ni ndogo, nyepesi, zina betri iliyojengwa, ina WiFi, na hata nyingi zimejenga katika kamera za wavuti ambazo zinaweza kutumiwa kutiririsha maoni ya roboti kurudi mahali salama ambapo inaweza kuidhibiti. Pia, ikiwa netbook yako ina vifaa vya huduma ya runinga ya rununu, anuwai yako haina ukomo. Ukiwa na betri za kutosha unaweza kuendesha roboti yako hadi mahali pa pizza ya mahali hapo na uweke agizo juu ya kamera ya wavuti (haifai, maroboti hayaruhusiwi mahali pa pizza, hata ikiwa walikuwa watu watajaribu kuiba roboti na labda hata pizza). Inaweza pia kuwa njia nzuri ya kuchunguza kina cha giza la basement yako kutoka kwa faraja ya mwenyekiti wako wa ofisi, ingawa kuongeza taa za kichwa zinaweza kusaidia sana katika kesi hii.

Kuna njia nyingi za kufanya kazi hii, nyingi labda ni rahisi zaidi kuliko yangu, ingawa sijui lugha ya Usindikaji au lugha-msingi kwa hivyo nilichagua kutumia Linux na C ++ kuunda kiunga cha kudhibiti waya kati ya kituo changu cha msingi (aka ThinkPad ya zamani) na netbook yangu mpya ya Lenovo IdeaPad ambayo imeunganishwa na kituo cha gari cha Arduino. PC zote zinaendesha Ubuntu. ThinkPad yangu imechomekwa kwenye LAN ya shule yangu na IdeaPad yangu imeunganishwa na kituo changu cha kufikia WiFi ambacho pia kimeunganishwa na LAN ya shule (sikuweza kupata mkondo wa video wa kuaminika kutoka kwa Wifi ya shule kwani kila mtu anaitumia, kwa hivyo niliweka tengeneza router yangu mwenyewe ili kutoa unganisho mzuri). Uunganisho mzuri ni muhimu sana kwa kesi yangu kwani sijatekeleza ukaguzi wowote wa makosa au muda wa kumaliza kazi. Uunganisho wa mtandao ukiteremka ghafla, roboti inaendelea kwenda hadi inapoanguka kwa kitu au nikikimbia na kuizuia. Hili ndilo jambo kuu nyuma ya uamuzi wangu wa kupunguza mwendo wa gari kwa kutia motors chini na kutekeleza kikomo cha kasi ya programu.

Hatua ya 5: Pata Mlisho wa Video

Baada ya mchunguzi wako wa roboti kuweza kuendesha bila waya, labda utataka kuwa na lishe ya video kutoka kwa netbook ili uweze kujua wapi robot yako iko. Ikiwa unatumia Ubuntu (au hata kama huna!) Ninapendekeza utumie VLC Media Player kutiririsha. Ikiwa haujasakinisha, unakosa sana, kwa hivyo isakinishe kwa kutumia amri "sudo apt-get install vlc", vinjari VLC katika Kituo cha Programu ya Ubuntu (9.10 tu), au pakua kisakinishi kwenye videolan. org ikiwa uko kwenye Windows. Utahitaji VLC inayoendesha PC zote mbili. VLC ina uwezo wa kutiririka na pia kucheza mito kwenye mtandao. Kwenye netbook (robot PC) kwanza hakikisha kamera yako ya wavuti (imejengwa au imeunganishwa USB) inafanya kazi kwa kubofya Fungua Kifaa cha Kukamata na kujaribu Video ya Linux 2 (vifaa vingine vya zamani vinaweza kuhitaji Video ya Linux badala ya toleo jipya la 2). Unapaswa kuona maoni ya kamera kwenye skrini ya netbook. Kuihamisha, chagua Kutiririsha kutoka kwenye menyu ya Faili na uchague kichupo cha Kamata kifaa juu ya dirisha inayoonekana. Kumbuka kwamba Ubuntu (na nyingine nyingi za Linux distros) hukuruhusu kushikilia Alt kubonyeza na kuburuta windows ambazo ni kubwa sana kwa skrini yako (haswa muhimu kwenye wavu za zamani, ingawa hata IdeaPad yangu ina azimio la kawaida la 1024x576 bila sababu dhahiri). Ili kupunguza kuchelewesha, bonyeza "Onyesha Chaguzi Zaidi" na upunguze thamani ya akiba. Kiasi ambacho unaweza kuipunguza wakati mwingine inategemea kifaa, inakuwa dhaifu ikiwa utapunguza sana. Saa 300ms unaweza kupata ucheleweshaji kidogo lakini sio mbaya sana.

Ifuatayo, bonyeza Mkondo kwenda kwenye menyu inayofuata. Bonyeza Ijayo, kisha chagua na uongeze HTTP kama marudio mapya. Sasa weka Transcoding ili kufanya mkondo uwe mdogo. Nilitengeneza wasifu wa kawaida ambao unatumia M-JPEG kwa 60kb / s na 8fps. Hii ni kwa sababu kutumia kodeki ya hali ya juu kama MPEG au Theora itakula wakati mwingi wa CPU kwenye processor ya Atom ya netbook na hii inaweza kusababisha kusitisha malisho yako ya video bila sababu yoyote dhahiri. MJPEG ni kodeki rahisi ambayo ni rahisi kutumia kwa batiti za chini. Baada ya kuanza mkondo wako, fungua VLC kwenye PC yako nyingine, fungua mkondo wa mtandao, chagua HTTP, na kisha andika anwani ya IP ya netbook yako (iwe ya ndani au ya mtandao kulingana na jinsi unaunganisha) ikifuatiwa na ": 8080". Unahitaji kutaja bandari kwa sababu isiyo ya kawaida, vinginevyo inakupa makosa. Ikiwa una muunganisho mzuri, unapaswa kuona malisho ya kamera yako ya wavuti kwenye PC yako nyingine, lakini itakuwa na ucheleweshaji kidogo (kama sekunde). Sijui ni kwanini ucheleweshaji huu unatokea, lakini siwezi kujua jinsi ya kuiondoa. Sasa fungua programu ya kudhibiti na uanze kuendesha robot yako ya netbook. Jisikie jinsi ucheleweshaji unavyofanya kazi wakati wa kuendesha gari ili usiingie chochote. Ikiwa inafanya kazi, robot yako ya netbook imekamilika.

Ilipendekeza: