Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

Wapendwa

Katika nakala hii nataka kuelezea mchakato wa kukusanya roboti yangu ya kwanza kwa kutumia Arduino. Nyenzo hiyo itakuwa muhimu kwa wanaoanza kama mimi ambao wanataka kutengeneza aina fulani ya "gari la kujiendesha." Nakala hiyo ni maelezo ya hatua za kufanya kazi na nyongeza zangu kwenye nuances anuwai. Kiungo cha msimbo wa mwisho (uwezekano mkubwa zaidi sio bora zaidi) hutolewa mwishoni mwa makala.

Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

Kila ilipowezekana, nilimhusisha mwanangu (umri wa miaka 8) katika kushiriki. Ni nini hasa kilifanya kazi nayo na ambayo haikufanya - nimejitolea sehemu ya kifungu kwa hili, labda itakuwa muhimu kwa mtu.

Maelezo ya jumla ya roboti

Kwanza, maneno machache kuhusu roboti yenyewe (wazo) Sikutaka kabisa kukusanyika kitu cha kawaida mwanzoni. Wakati huo huo, seti ya vipengele ilikuwa ya kawaida kabisa - chasi, injini, sensor ya ultrasonic, sensor ya mstari, LEDs, tweeter. Hapo awali, roboti iligunduliwa kutoka kwa "seti ya supu" hii ambayo inalinda eneo lake. Anaendesha gari kuelekea mkosaji ambaye amevuka mstari wa mzunguko, na kisha anarudi katikati. Hata hivyo, toleo hili lilihitaji mstari uliochorwa, pamoja na hesabu ya ziada ili kukaa kwenye mduara kila wakati.

Kwa hiyo, baada ya mawazo fulani, nilibadilisha wazo fulani na niliamua kufanya robot "wawindaji". Mwanzoni, inageuka karibu na mhimili wake, ikichagua lengo la karibu (mtu). Ikiwa "mawindo" hugunduliwa, "wawindaji" huwasha taa zinazowaka na siren na huanza kuendesha gari kuelekea hilo. Wakati mtu anasogea/kukimbia, roboti huchagua lengo jipya na kulifuata, na kadhalika. Roboti kama hiyo haitaji mduara mdogo, na inaweza kufanya kazi katika maeneo wazi.

Kama unaweza kuona, hii ni kama mchezo wa kukamata. Ingawa mwishowe roboti haikugeuka kuwa haraka vya kutosha, inaingiliana kwa uaminifu na watu walio karibu nayo. Watoto hasa wanaipenda (wakati mwingine, hata hivyo, inaonekana kwamba wanakaribia kuikanyaga, mioyo yao inaruka ...). Nadhani hii ni suluhisho nzuri kwa kutangaza muundo wa kiufundi.

Muundo wa roboti

Kwa hivyo, tumeamua juu ya wazo hilo, wacha tuendelee mpangilio. Orodha ya vipengele imeundwa kutokana na kile ambacho roboti inapaswa kuwa na uwezo wa kufanya. Kila kitu hapa ni dhahiri kabisa, kwa hivyo hebu tuangalie mara moja kuhesabu:

Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

"Akili" za roboti ni bodi ya arduino uno (1); ilikuwa katika seti iliyoagizwa kutoka China. Kwa madhumuni yetu, ni ya kutosha kabisa (tunazingatia idadi ya pini zilizotumiwa). Kutoka kwenye kit sawa tulichukua chasi iliyopangwa tayari (2), ambayo magurudumu mawili ya gari (3) na moja ya nyuma (yanayozunguka kwa uhuru) (4) yanaunganishwa. Kiti pia kilijumuisha chumba cha betri kilichotengenezwa tayari (5). Mbele ya roboti kuna sensor ya ultrasonic (HC-SR04) (6), nyuma kuna dereva wa gari (L298N) (7), katikati kuna taa ya LED (8), na kidogo kwa pembeni kuna tweeter (9).

Katika hatua ya mpangilio tunaangalia:

- hivyo kwamba kila kitu kinafaa
- kuwa na usawa
- kuwekwa kwa busara

Wenzetu wa China tayari wametufanyia hii kwa sehemu. Kwa hivyo, compartment nzito ya betri imewekwa katikati, na magurudumu ya gari iko takriban chini yake. Bodi nyingine zote ni nyepesi na zinaweza kuwekwa kwenye pembezoni.

Nuances:

  1. Chasi kutoka kwa kit ina mashimo mengi ya kiwanda, lakini bado sijafikiri ni mantiki gani ndani yao. Injini na pakiti ya betri zilihifadhiwa bila matatizo, basi "marekebisho" ilianza na kuchimba mashimo mapya ili kupata hii au bodi hiyo.
  2. Racks za shaba na vifungo vingine kutoka kwa maeneo ya kuhifadhi vilikuwa msaada mkubwa (wakati mwingine tulipaswa kuwaondoa).
  3. Nilipitisha mabasi kutoka kwa kila ubao kupitia vifungo (tena, nilipata kwenye hifadhi). Urahisi sana, waya zote hulala vizuri na hazipunguki.

Vitalu vya mtu binafsi

Sasa nitapitia vitalu na nitakuambia kibinafsi kuhusu kila mmoja.

sehemu ya betri

Ni wazi kwamba roboti lazima iwe na chanzo kizuri cha nishati. Chaguzi zinaweza kutofautiana, nilichagua chaguo na betri 4 za AA. Kwa jumla wao hutoa takriban 5 V, na voltage hii inaweza kutumika moja kwa moja kwa pini 5V ya bodi ya arduino (bypassing stabilizer).

Kwa kweli, nilikuwa na tahadhari, lakini suluhisho hili linafanya kazi kabisa.

Kwa kuwa nguvu inahitajika kila mahali, kwa urahisi nilifanya viunganishi viwili katikati ya roboti: moja "inasambaza" ardhi (upande wa kulia), na ya pili - 5 V (upande wa kushoto).

Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

Magari na madereva

Kwanza, juu ya kuweka injini. Mlima umefanywa kiwanda, lakini umefanywa kwa uvumilivu mkubwa. Kwa maneno mengine, injini zinaweza kutikisika milimita kadhaa kushoto na kulia. Kwa kazi yetu hii sio muhimu, lakini katika maeneo mengine inaweza kuwa na athari (roboti itaanza kuhamia upande). Ikiwezekana, niliweka injini sambamba na kuziweka na gundi.

Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

Ili kudhibiti motors, kama nilivyoandika hapo juu, dereva wa L298N hutumiwa. Kwa mujibu wa nyaraka, ina pini tatu kwa kila motor: moja kwa ajili ya kubadilisha kasi na jozi ya pini kwa mwelekeo wa mzunguko. Kuna jambo moja muhimu hapa. Inabadilika kuwa ikiwa voltage ya usambazaji ni 5 V, basi udhibiti wa kasi haufanyi kazi! Hiyo ni, ama haina kugeuka kabisa, au inageuka kwa kiwango cha juu. Hiki ndicho kipengele kilichonisababisha "kuua" jioni kadhaa. Mwishowe, nilipata kutajwa mahali fulani kwenye moja ya vikao.

Kwa ujumla, nilihitaji kasi ya chini ya kuzunguka wakati wa kugeuza roboti - ili iwe na wakati wa kuchanganua nafasi. Lakini, kwa kuwa hakuna kitu kilichokuja kwa wazo hili, nilipaswa kufanya hivyo tofauti: zamu ndogo - kuacha - kugeuka - kuacha, nk Tena, sio kifahari sana, lakini inafanya kazi.

Pia nitaongeza hapa kwamba baada ya kila harakati roboti huchagua mwelekeo wa nasibu kwa zamu mpya (saa moja au kinyume chake).

sensor ya ultrasonic

Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

Sehemu nyingine ya vifaa ambapo tulilazimika kutafuta suluhisho la maelewano. Sensor ya ultrasonic hutoa nambari zisizo imara kwenye vikwazo halisi. Kwa kweli, hii ilitarajiwa. Kwa hakika, inafanya kazi mahali fulani katika mashindano ambapo kuna nyuso za laini, hata na za perpendicular, lakini ikiwa miguu ya mtu "flash" mbele yake, usindikaji wa ziada unahitajika kuletwa.

Kama usindikaji kama huo niliweka kichujio cha wastani kwa hesabu tatu. Kulingana na vipimo vya watoto halisi (hakuna watoto waliojeruhiwa wakati wa majaribio!), Ilibadilika kuwa ya kutosha kurekebisha data. Fizikia hapa ni rahisi: tuna ishara zilizoonyeshwa kutoka muhimu vitu (kutoa umbali unaohitajika) na kuonyeshwa kutoka kwa mbali zaidi, kwa mfano, kuta. Mwisho ni uzalishaji wa nasibu katika vipimo vya fomu 45, 46, 230, 46, 46, 45, 45, 310, 46... Ni hizi ambazo kichujio cha wastani hukata.

Baada ya usindikaji wote, tunapata umbali wa kitu cha karibu. Ikiwa ni chini ya thamani fulani ya kizingiti, basi tunawasha kengele na kuendesha gari moja kwa moja kuelekea "mwingilia".

Flasher na siren

Labda mambo rahisi zaidi ya yote hapo juu. Wanaweza kuonekana kwenye picha hapo juu. Hakuna kitu cha kuandika kuhusu vifaa hapa, kwa hiyo sasa hebu tuendelee msimbo.

Mpango wa kudhibiti

Sioni umuhimu wa kuelezea nambari kwa undani, ni nani anayehitaji - kiunga kiko mwisho wa kifungu, kila kitu kinasomeka hapo. Lakini itakuwa nzuri kuelezea muundo wa jumla.

Jambo la kwanza tulipaswa kuelewa ni kwamba roboti ni kifaa cha wakati halisi. Kwa usahihi zaidi, kukumbuka, kwa sababu kabla na sasa bado ninafanya kazi katika umeme. Kwa hiyo, tunasahau mara moja kuhusu changamoto kuchelewesha (), ambayo wanapenda kutumia katika michoro ya mfano, na ambayo "hufungia" programu kwa muda maalum. Badala yake, kama watu wenye uzoefu wanavyoshauri, tunatanguliza vipima muda kwa kila kizuizi. Muda unaohitajika umepita - hatua imefanywa (kuongezeka kwa mwangaza wa LED, kugeuka injini, na kadhalika).

Vipima muda vinaweza kuunganishwa. Kwa mfano, tweeter inafanya kazi kwa usawa na flasher. Hii hurahisisha programu kidogo.

Kwa kawaida, tunavunja kila kitu katika kazi tofauti (taa zinazowaka, sauti, kugeuka, kusonga mbele, na kadhalika). Ikiwa hutafanya hivyo, basi hutaweza kujua nini kinatoka wapi na wapi.

Nuances ya ufundishaji

Nilifanya kila kitu kilichoelezwa hapo juu wakati wangu wa bure jioni. Kwa njia ya starehe, nilitumia takriban wiki tatu kwenye roboti. Hii inaweza kuishia hapa, lakini pia niliahidi kukuambia juu ya kufanya kazi na mtoto. Nini kinaweza kufanywa katika umri huu?

Fanya kazi kulingana na maagizo

Kwanza tuliangalia kila undani tofauti - LEDs, tweeter, motors, sensorer, nk Kuna idadi kubwa ya mifano iliyopangwa tayari - baadhi ya haki katika mazingira ya maendeleo, wengine wanaweza kupatikana kwenye mtandao. Hii hakika inanifurahisha. Tunachukua msimbo, kuunganisha sehemu, hakikisha kwamba inafanya kazi, kisha tunaanza kuibadilisha ili kuendana na kazi yetu. Mtoto hufanya miunganisho kulingana na mchoro na chini ya usimamizi wangu. Hii ni nzuri. Pia unahitaji kuwa na uwezo wa kufanya kazi madhubuti kulingana na maagizo.

Agizo la kazi ("kutoka maalum hadi jumla")

Hii ni hatua ngumu. Unahitaji kujifunza kuwa mradi mkubwa ("tengeneza roboti") una kazi ndogo ("unganisha sensor," "unganisha motors"...), na hizo, kwa upande wake, zinajumuisha hatua ndogo zaidi ("pata programu," "unganisha ubao." "," pakua firmware"...). Kwa kufanya kazi zinazoeleweka zaidi au chini ya kiwango cha chini, "tunafunga" kazi za kiwango cha kati, na kutoka kwao matokeo ya jumla huundwa. Nilielezea, lakini nadhani utambuzi hautakuja hivi karibuni. Mahali fulani, pengine, kwa ujana.

Ufungaji

Kuchimba visima, nyuzi, screws, karanga, soldering na harufu ya rosin - tungekuwa wapi bila hiyo? Mtoto alipokea ustadi wa kimsingi "Kufanya kazi na chuma cha kutengeneza" - aliweza kuuza viunganisho kadhaa (nilisaidia kidogo, sitaificha). Usisahau kuhusu maelezo ya usalama.

Kazi ya kompyuta

Niliandika programu ya roboti, lakini bado niliweza kufikia matokeo mazuri.

Kwanza: Kiingereza. Walikuwa wameianza shuleni, kwa hivyo tulikuwa tukijitahidi kufahamu pishalka, migalka, yarkost na tafsiri nyinginezo zilikuwa nini. Angalau tulielewa hili. Kwa makusudi sikutumia maneno asilia ya Kiingereza, kwani bado hatujafikia kiwango hiki.

Pili: kazi ya ufanisi. Tulifundisha mchanganyiko wa hotkey na jinsi ya kufanya haraka shughuli za kawaida. Mara kwa mara, tulipokuwa tukiandika programu, mimi na mwanangu tulibadilishana mahali, na nikasema kile kinachohitajika kufanywa (uingizwaji, utafutaji, nk). Ilinibidi kurudia tena na tena: "bonyeza mara mbili chagua", "shikilia Shift", "shikilia Ctrl" na kadhalika. Mchakato wa kujifunza hapa sio wa haraka, lakini nadhani ujuzi utawekwa hatua kwa hatua "kwenye subcortex."

Maandishi yaliyofichwaUnaweza kusema kwamba hapo juu ni karibu wazi. Lakini, kwa uaminifu, anguko hili nilipata fursa ya kufundisha sayansi ya kompyuta katika daraja la 9 katika shule moja. Hiyo ni mbaya. Wanafunzi hawajui mambo ya msingi kama vile Ctrl + Z, Ctrl + C na Ctrl + V, kuchagua maandishi huku umeshikilia Shift au kubofya mara mbili kwenye neno, na kadhalika. Hii ni pamoja na ukweli kwamba walikuwa katika mwaka wao wa tatu wa kusoma sayansi ya kompyuta ... Chora hitimisho lako mwenyewe.

Tatu: kuandika kwa mguso. Nilikabidhi maoni kwenye msimbo kwa mtoto kuandika (wacha afanye mazoezi). Mara moja tuliweka mikono yetu kwa usahihi ili vidole vyetu vikumbuke hatua kwa hatua eneo la funguo.

Kama unavyoona, bado tunaanza. Tutaendelea kuboresha ujuzi na ujuzi wetu; zitakuwa muhimu maishani.

Kwa njia, kuhusu siku zijazo ...

Maendeleo zaidi

Roboti imetengenezwa, inaendesha, kufumba na kufumbua. Nini sasa? Kwa kuhamasishwa na kile ambacho tumefanikiwa, tunapanga kukiboresha zaidi. Kuna wazo la kutengeneza kidhibiti cha mbali - kama rover ya mwezi. Itakuwa ya kuvutia, kukaa katika udhibiti wa kijijini, kudhibiti harakati ya robot ambayo inaendesha mahali tofauti kabisa. Lakini itakuwa hadithi tofauti ...

Na mwisho, kwa kweli, mashujaa wa nakala hii (video kwa kubonyeza):

Uzoefu wa kuunda roboti ya kwanza kwenye Arduino (roboti-"mwindaji").

Asante!

Kiungo cha kanuni

Chanzo: mapenzi.com

Kuongeza maoni