Orodha ya maudhui:

Robot ya Siagi: Roboti ya Arduino iliyo na Mgogoro uliopo: Hatua 6 (na Picha)
Robot ya Siagi: Roboti ya Arduino iliyo na Mgogoro uliopo: Hatua 6 (na Picha)

Video: Robot ya Siagi: Roboti ya Arduino iliyo na Mgogoro uliopo: Hatua 6 (na Picha)

Video: Robot ya Siagi: Roboti ya Arduino iliyo na Mgogoro uliopo: Hatua 6 (na Picha)
Video: Большие Боссы | полный фильм 2024, Julai
Anonim
Image
Image

Mradi huu unategemea safu ya uhuishaji "Rick na Morty". Katika moja ya vipindi, Rick hufanya roboti ambaye kusudi lake kuu ni kuleta siagi. Kama wanafunzi kutoka Bruface (Kitivo cha Uhandisi cha Brussels) tuna jukumu la mradi wa mechatronics ambao ni kujenga roboti kulingana na mada iliyopendekezwa. Kazi kwa mradi huu ni: Tengeneza roboti ambayo hutumikia siagi tu. Inaweza kuwa na mgogoro uliopo. Kwa kweli roboti katika kipindi cha Rick na Morty ni roboti ngumu sana na baadhi ya kurahisisha inahitaji kufanywa:

Kwa kuwa ni kusudi la pekee ni kuleta siagi, kuna njia mbadala zaidi. Badala ya kumfanya roboti aangalie na kunyakua siagi, kabla ya kumleta kwa mtu anayefaa, roboti inaweza kubeba siagi wakati wote. Wazo kuu ni kwa hivyo kutengeneza mkokoteni unaosafirisha siagi kwenda mahali inapohitaji kuwa.

Mbali na kusafirisha siagi, roboti inahitaji kujua ni wapi anahitaji kuleta siagi. Katika kipindi hicho, Rick anatumia sauti yake kuita na kuamuru roboti. Hii inahitaji mfumo ghali wa utambuzi wa sauti na itakuwa ngumu. Badala yake, kila mtu mezani anapata kitufe: mara tu kitufe hiki kitakapoamilishwa, roboti inaweza kupata kitufe hiki na kuelekea.

Ili kurudia, roboti inahitaji kutimiza mahitaji yafuatayo:

  • Inahitaji kuwa salama: lazima iepuke vizuizi na ijizuie kuanguka kwa meza;
  • Roboti inahitaji kuwa ndogo: nafasi kwenye meza ni ndogo na hakuna mtu atakayetaka roboti ambayo hutumikia siagi lakini ni nusu ya ukubwa wa meza yenyewe;
  • Kufanya kazi kwa roboti hakuwezi kutegemea saizi au umbo la meza, kwa njia hiyo inaweza kutumika kwenye meza tofauti;
  • Inahitaji kuleta siagi kwa mtu anayefaa kwenye meza.

Hatua ya 1: Dhana kuu

Mahitaji yaliyotajwa hapo awali yanaweza kutekelezwa kwa kutumia mbinu tofauti. Uamuzi juu ya muundo kuu ambao ulifanywa umeelezewa katika hatua hii. Maelezo kuhusu jinsi maoni haya yanatekelezwa yanaweza kupatikana katika hatua zifuatazo.

Ili kutimiza jukumu lake, roboti inahitaji kusonga hadi marudio yafikiwe. Kuzingatia matumizi ya roboti ni moja kwa moja kwamba kutumia magurudumu badala ya mwendo wa "kutembea" ni bora kuifanya isonge. Kwa kuwa meza ni uso gorofa na roboti haitafikia kasi kubwa sana, magurudumu mawili yaliyotekelezwa na mpira mmoja wa caster ndio suluhisho rahisi na rahisi kudhibiti. Magurudumu yaliyotekelezwa yanahitaji kuwezeshwa na motors mbili. Motors zinahitaji kuwa na torque kubwa lakini haziitaji kufikia mwendo wa kasi, ndiyo sababu motors zinazoendelea za servo zitatumika. Faida nyingine ya motors za servo ni unyenyekevu wa matumizi na Arduino.

Kugundua vizuizi kunaweza kufanywa kwa kutumia sensor ya ultrasonic ambayo hupima umbali, iliyounganishwa na motor ya servo kuchagua mwelekeo wa kipimo. Kingo zinaweza kugunduliwa kwa kutumia sensorer LDR. Kutumia sensorer za LDR itahitaji ujenzi wa kifaa ambacho kina taa iliyoongozwa na sensa ya LDR. Sensor ya LDR hupima taa iliyoonyeshwa na inaweza kuonekana kama aina fulani ya sensa ya umbali. Kanuni hiyo hiyo ipo na nuru ya infrared. Kuna sensorer za ukaribu wa infrared ambazo zina pato la dijiti: funga au usifunge. Hii ndio haswa roboti inahitaji kugundua kingo. Kwa kuchanganya sensorer mbili za kingo zilizowekwa kama antena mbili za wadudu na sensor moja ya ultrasonic iliyosababishwa, roboti inapaswa kuweza kuzuia vizuizi na kingo.

Kugundua kifungo pia kunaweza kutekelezwa kwa kutumia sensorer za IR na vichwa. Faida ya IR ni kwamba haionekani ambayo inafanya matumizi yake kutosumbua watu walio mezani. Lasers inaweza kutumika pia, lakini basi taa itaonekana na pia ni hatari wakati mtu anaelekeza laser kwa jicho la watu wengine. Pia, mtumiaji angehitaji kulenga sensorer kwenye roboti na boriti nyembamba tu ya laser, ambayo itakuwa ya kukasirisha kabisa. Kwa kuandaa roboti na sensorer mbili za IR na kutengeneza kitufe kwa kuongozwa na IR, roboti anajua ni mwelekeo gani anahitaji kwenda kwa kufuata nguvu ya taa ya IR. Wakati hakuna kitufe roboti inaweza kugeuka mpaka moja ya vichwa vinakamata ishara kutoka kwa moja ya vifungo.

Siagi huwekwa kwenye sehemu juu ya roboti. Sehemu hii inaweza kuwa na sanduku na kifuniko kilichowekwa ili kufungua sanduku. Kufungua kifuniko na kuhamisha sensorer ya ultrasonic ili kuchanganua na kugundua vizuizi tunahitaji motors mbili na kwa kusudi hili, motors zisizoendelea za servo hubadilishwa zaidi kwa sababu motors zinahitaji kwenda kwa nafasi fulani na kudumisha ujumbe huo.

Kipengele cha ziada cha mradi huo ilikuwa kuingiliana na mazingira ya nje na sauti ya roboti. Buzzer ni rahisi na ilichukuliwa kwa kusudi hili lakini haiwezi kutumika wakati wowote kwa sababu sare ya kutibu ni ya juu.

Shida kuu za mradi hutegemea usimbuaji, kwani sehemu ya mitambo iko sawa. Kesi nyingi zinahitaji kuzingatiwa ili kuzuia roboti kukwama au kufanya kitu kisichohitajika. Shida kuu tunazohitaji kutatua ni kupoteza ishara ya IR kwa sababu ya kikwazo na kusimama inapofika kwenye kitufe!

Hatua ya 2: Vifaa

Sehemu za mitambo

  • Printa ya 3D na mashine ya kukata Laser

    • PLA itatumika kwa uchapishaji wa 3D lakini unaweza pia kutumia ABS
    • Sahani ya plywood ya birch 3 mm itatumika kwa kukata laser kwani inatoa uwezekano wa kufanya marekebisho baadaye kwa urahisi, Plexiglas pia inaweza kutumika lakini ni ngumu zaidi kuibadilisha mara tu ikiwa imekatwa na laser bila kuiharibu
  • Bolts, karanga, washers

    Sehemu nyingi hushikiliwa pamoja kwa kutumia bolt za kichwa cha M3, washer na karanga, lakini zingine zinahitaji seti za M2 au M4. Urefu wa bolts uko katika anuwai ya 8-12 mm

  • Spacers za PCB, 25 mm na 15 mm
  • 2 Servo motors na magurudumu yanayolingana
  • Baadhi ya waya mnene wa chuma karibu kipenyo cha 1-2 mm

Sehemu za elektroniki

  • Mdhibiti mdogo

    Bodi 1 ya arduino UNO

  • Motors za Servo

    • 2 Motors kubwa za servo: Nyosha kuendelea digrii 6Kg 360
    • Motors 2 ndogo za servo: Feetech FS90
  • Sensorer

    • 1 Ultrasonic sensor
    • Sensorer za ukaribu wa IR
    • Picha 2 za IR
  • Betri

    • Mmiliki wa betri 1 9V + betri
    • 1 4AA betri mmiliki + betri
    • 1 9V sanduku la betri + betri
  • Vipengele vya ziada
    • Baadhi ya waya zinazoruka, waya na sahani za kutengenezea
    • Vipinga vingine
    • 1 IR LED
    • 3 swichi
    • 1 buzzer
    • Kitufe 1
    • 1 Arduino kwa kontakt 9V ya betri

Hatua ya 3: Kupima Elektroniki

Kupima Elektroniki
Kupima Elektroniki
Kupima Elektroniki
Kupima Elektroniki

Uundaji wa kitufe:

Kitufe kimetengenezwa tu na swichi, taa ya infrared, na kontena la 220 Ohm kwa safu, inayotumiwa na betri ya 9V. Hii imewekwa kwenye kifurushi cha betri cha 9V kwa muundo thabiti na safi.

Uundaji wa moduli za mpokeaji wa infrared:

Moduli hizi hufanywa na kupitia bodi za kutengenezea shimo, ambazo baadaye zitaambatanishwa na visu kwenye roboti. Mizunguko ya moduli hizi zinaonyeshwa katika skimu za jumla. Kanuni ni kupima ukubwa wa taa ya infrared. Ili kuboresha vipimo, collimators (iliyotengenezwa na zilizopo za kupungua) zinaweza kutumiwa kuzingatia mwelekeo fulani wa riba.

Mahitaji tofauti ya mradi yanahitajika kutekelezwa kwa kutumia vifaa vya elektroniki. Idadi ya vifaa inapaswa kupunguzwa ili kuweka utata mdogo. Hatua hii ina skimu za wiring na kila nambari ya kujaribu sehemu zote kando:

  • Motors zinazoendelea za Servo;
  • Sensor ya Ultrasonic;
  • Motors zisizoendelea za Servo;
  • Buzzer;
  • Kugundua mwelekeo wa kitufe cha IR;
  • Kugundua makali na sensorer za ukaribu;

Nambari hizi zinaweza kusaidia kuelewa vifaa mwanzoni, lakini pia ni muhimu sana kwa utatuzi katika hatua za baadaye. Ikiwa shida fulani inatokea, mdudu anaweza kugunduliwa kwa urahisi zaidi kwa kujaribu vifaa vyote kando.

Hatua ya 4: Ubunifu wa Vipande vya 3D vilivyochapishwa na Laser

Uchapishaji wa 3D na Vipande vya Kata vya Laser
Uchapishaji wa 3D na Vipande vya Kata vya Laser
Uchapishaji wa 3D na Vipande vya Kata vya Laser
Uchapishaji wa 3D na Vipande vya Kata vya Laser
Uchapishaji wa 3D na Vipande vya Kata vya Laser
Uchapishaji wa 3D na Vipande vya Kata vya Laser

Vipande vya Laser

Mkutano huo umetengenezwa na sahani kuu tatu za usawa zilizoshikiliwa pamoja na spacers za PCB kupata muundo wazi kutoa ufikiaji rahisi wa umeme ikiwa inahitajika.

Sahani hizo zinahitaji kukatwa mashimo muhimu ili kuzungusha spacers na vifaa vingine kwa mkutano wa mwisho. Hasa, sahani zote tatu zina mashimo katika eneo moja kwa spacers, na mashimo maalum ya umeme yaliyowekwa sawa kwa kila sahani. Angalia kuwa bamba la katikati lina shimo la kupitisha waya katikati.

Vipande vidogo hukatwa kwa vipimo vya servo kubwa ili kuiweka kwenye mkutano.

Vipande vilivyochapishwa vya 3D

Mbali na kukata laser, vipande vingine vitahitaji kuchapishwa 3D:

  • Msaada wa sensorer ya ultrasonic, ambayo inaunganisha kwa mkono mmoja mdogo wa servo motor
  • Msaada wa gurudumu la castor na sensorer mbili za kingo za IR. Ubunifu fulani wa aina ya ncha zilizo na umbo la sanduku kwa sensorer za IR hufanya kama skrini ili kuzuia kuingiliana kati ya kitufe kinachotoa ishara ya IR na sensorer za IR ambazo zinahitaji kuzingatia kile kinachotokea ardhini tu
  • Msaada wa motor ndogo ya servo kufungua kifuniko
  • Na mwishowe kifuniko chenyewe, kilichotengenezwa kwa vipande viwili kuwa na pembe kubwa ya kufanya kazi kwa kuepusha kugongana na motor ndogo ya servo kufungua kifuniko:

    • Ya chini ambayo itawekwa kwenye sahani ya juu
    • Na juu ambayo imeunganishwa na chini na bawaba, na iliyosukumwa na servo ikitumia waya mzito wa chuma. Tuliamua kuongeza utu kidogo kwa roboti hiyo kwa kuipatia kichwa.

Mara vipande vyote vimebuniwa na faili kusafirishwa kwa muundo sahihi wa mashine zinazotumiwa, vipande vinaweza kutengenezwa. Jihadharini kuwa uchapishaji wa 3D unachukua muda mwingi, haswa na vipimo vya kipande cha juu cha kifuniko. Unaweza kuhitaji siku moja au mbili kuchapisha vipande vyote. Kukata laser hata hivyo ni suala la dakika.

Faili zote za SOLIDWORKS zinaweza kupatikana kwenye folda iliyofungwa.

Hatua ya 5: Mkutano na Wiring

Image
Image
Mkutano na Wiring
Mkutano na Wiring
Mkutano na Wiring
Mkutano na Wiring
Mkutano na Wiring
Mkutano na Wiring

Mkutano utakuwa mchanganyiko wa wiring na screwing vifaa pamoja, kuanzia chini hadi juu.

Sahani ya chini

Sahani ya chini imekusanywa na kifurushi cha betri cha 4AA, motors za servo, sehemu iliyochapishwa (ikiambatanisha mpira chini ya bamba), sensorer mbili za pembeni, na spacers 6 za kiume na za kike.

Sahani ya kati

Ifuatayo, sahani ya kati inaweza kuwekwa, ikikandamiza motors kati ya sahani mbili. Sahani hii inaweza kurekebishwa kwa kuweka seti nyingine ya spacers juu yake. Kamba zingine zinaweza kupitishwa kupitia shimo la katikati.

Moduli ya ultrasonic inaweza kushikamana na servo isiyoendelea, ambayo imewekwa kwenye sahani ya kati na Arduino, kifurushi cha betri cha 9V (kuwezesha arduino), na moduli mbili za mpokeaji wa infrared mbele ya roboti. Moduli hizi hufanywa na kupitia bodi za kutengenezea shimo na kushikamana na visu kwenye sahani. Mizunguko ya moduli hizi zinaonyeshwa katika skimu za jumla.

Sahani ya juu

Katika sehemu hii ya mkutano, swichi hazijarekebishwa lakini roboti tayari inaweza kufanya kila kitu isipokuwa vitendo vinavyohitaji kifuniko, kwa hivyo inatuwezesha kufanya jaribio fulani kurekebisha kizingiti, kurekebisha kanuni ya harakati na kuwa na urahisi upatikanaji wa bandari za arduino.

Wakati hii yote inafanikiwa, sahani ya juu inaweza kutengenezwa na spacers. Vipengele vya mwisho ambavyo ni swichi mbili, kitufe, servo, buzzer na mfumo wa kifuniko zinaweza kusanikishwa kwa sahani ya juu kumaliza mkutano.

Jambo la mwisho kujaribu na kusahihisha ni pembe ya servo kufungua kifuniko kwa usahihi.

Kizingiti cha sensorer za kando kinapaswa kubadilishwa na potentiometer iliyojumuishwa (kwa kutumia bisibisi gorofa) kwa nyuso tofauti za meza. Jedwali nyeupe inapaswa kuwa na kizingiti cha chini kuliko meza ya hudhurungi kwa mfano. Pia urefu wa sensorer utaathiri kizingiti kinachohitajika.

Mwisho wa hatua hii, mkutano umemalizika na sehemu ya mwisho iliyobaki ni nambari zilizokosekana.

Hatua ya 6: Kuweka Coding: Kuweka Kila kitu Pamoja

Nambari zote muhimu za kufanya kazi ya roboti ziko kwenye faili iliyofungwa ambayo inaweza kupakuliwa. Ya muhimu zaidi ni nambari "kuu" ambayo ni pamoja na usanidi na kitanzi cha kazi cha roboti. Kazi zingine nyingi zimeandikwa katika faili ndogo (pia kwenye folda iliyofungwa). Faili hizi ndogo zinapaswa kuhifadhiwa kwenye folda moja (ambayo inaitwa "kuu") kama hati kuu kabla ya kuipakia kwenye Arduino

Kwanza kasi ya jumla ya roboti inafafanuliwa pamoja na "kumbusha" inayobadilika. Hii "kumbusha" ni dhamana inayokumbuka ni wapi roboti ilikuwa ikigeuka. Ikiwa "kumbusha = 1", roboti ilikuwa / inageuka kushoto, ikiwa "ukumbushe = 2", roboti ilikuwa / inageuka kulia.

kasi ya int = 9; // Kasi ya jumla ya roboti

kumbusha = 1; // Mwelekeo wa awali

Katika usanidi wa roboti, faili ndogo ndogo za programu zimeanzishwa. Katika faili hizi ndogo, kazi za msingi juu ya udhibiti wa motors, sensorer,… zimeandikwa. Kwa kuzizindua katika usanidi, kazi ambazo zinaelezewa katika kila faili hizi zinaweza kutumika kwenye kitanzi kuu. Kwa kuamsha kazi r2D2 (), roboti itatoa kelele kama roboti ya R2D2 kutoka kwa franchise ya sinema ya Star Wars wakati inaanza. Hapa kazi ya r2D2 () imezimwa ili kuzuia buzzer kutoka kuchora sasa nyingi.

// Usanidi @ upya // ----------------

usanidi batili () {anzisha_IR_sensors (); anzisha vizuizi_na_mipenyo (); anzisha_kuhamisha (); Anzisha_lid (); anzisha_buzzer (); // r2D2 (); kumbusha = 1; // mwongozo wa mwanzo Starter (kumbusha); }

Kazi ya Starter (kumbusha) inaitwa kwanza katika usanidi. Kazi hii hufanya roboti igeuke na kutafuta ishara ya IR ya moja ya vifungo. Mara tu ikiwa imepata kitufe, programu hiyo itaondoa kazi ya Starter kwa kubadilisha 'cond' inayobadilika kuwa uwongo. Wakati wa kuzunguka kwa roboti inahitaji kujua mazingira yake: inapaswa kugundua kando na vizuizi. Hii inakaguliwa kila wakati kabla ya kuendelea kugeuka. Mara tu roboti inapogundua kikwazo au makali, itifaki ya kuzuia vizuizi hivi au kingo zitatekelezwa. Itifaki hizi zitaelezwa baadaye katika hatua hii. Kazi ya Starter ina ubadilishaji mmoja ambayo ni kutofautisha kukumbusha ambayo ilijadiliwa hapo awali. Kwa kutoa thamani ya kukumbusha kwa kazi ya Starter, roboti inajua ni mwelekeo gani inahitaji kugeuza ili kutafuta kitufe.

// Kitanzi cha Kuanza: Geuka na utafute kitufe // ------------------------------------ ----------------

Starter batili (int kumbusha) {if (isedgeleft () || isedgeright ()) {// Gundua kingo za kandoKugunduliwa (kumbusha); } kingine {bool cond = true; wakati (cond == kweli) {if (buttonleft () == false && buttonright () == false && isButtonDetected () == true) {cond = false; } vingine {if (kukumbusha == 1) {// Tulikuwa tukigeukia kushoto ikiwa (isobstacleleft ()) {stopspeed (); epuka_kikwazo (kumbusha); } vingine ikiwa (isedgeleft () || isedgeright ()) {// Gundua kingo za kandoKugunduliwa (kumbusha); } mwingine {upande wa kushoto (kasi); }} mwingine ikiwa (kumbusha == 2) {ikiwa (isobstacleright ()) {stopspeed (); epuka_kikwazo (kumbusha); } vingine ikiwa (isedgeleft () || isedgeright ()) {// Gundua kingo za kandoKugunduliwa (kumbusha); } mwingine {upande wa kulia (kasi); }}}}}}

Ikiwa roboti itapata kitufe, basi kitanzi cha kwanza cha Starter hutoka na kitanzi kikuu cha kazi cha roboti huanza. Kitanzi hiki kikuu ni ngumu sana kwani kila wakati, roboti inahitaji kugundua ikiwa kuna kikwazo au makali mbele yake. Wazo kuu ni kwamba roboti inafuata kitufe kwa kuipata na kuipoteza kila wakati. Kwa kutumia sensorer mbili za IR, tunaweza kutofautisha hali tatu:

  • tofauti kati ya taa ya IR iliyogunduliwa na sensor ya kushoto na kulia ni kubwa kuliko kizingiti fulani, na kuna kitufe.
  • tofauti katika nuru ya IR ni ndogo kuliko kizingiti, na kuna kitufe mbele ya roboti.
  • tofauti katika nuru ya IR ni ndogo kuliko kizingiti, na hakuna kitufe cha mbele ya roboti.

Njia ambayo utaratibu wa kufuatilia unafanya kazi ni kama ifuatavyo: kitufe kinapogunduliwa, roboti inasogea kwenye kitufe kwa kugeuza mwelekeo ule ule uliokuwa ukigeuka (kwa kutumia kutofautisha kwa ukumbusho) na wakati huo huo songa mbele kidogo. Ikiwa roboti inageuka sana, kitufe kitapotea tena, na wakati huu roboti anakumbuka anahitaji kugeukia upande mwingine. Hii pia hufanyika wakati unasonga mbele kidogo. Kwa kufanya hivyo roboti inazunguka kushoto kila upande na kulia, lakini kwa wakati huo bado inaendelea kuelekea kitufe. Kila wakati roboti inapopata kitufe, inaendelea kugeuka hadi inapopoteza na ikiwa inaanza kusonga upande mwingine. Angalia tofauti katika kazi ambazo hutumiwa katika kitanzi cha Starter na kitanzi kuu: kitanzi cha Starter kinatumia "turnleft ()" au "turnright ()", wakati kitanzi kikuu kinatumia "moveleft ()" na "moveright ()". Kazi za kusonga mbele / kulia hazifanyi tu roboti igeuke lakini pia humfanya asonge mbele kwa wakati mmoja.

/ * Kitanzi cha kazi ---------------------------- Hapa, kuna tu utaratibu wa wimbo * /

int waliopotea = 0; // Ikiwa imepotea = 0 kifungo kinapatikana, ikiwa imepotea = 1 kifungo kinapotea kitanzi batili () {if (isedgeleft () || isedgeright ()) {

ikiwa (! isobstacle ()) {

kusonga mbele (kasi); kuchelewesha (5); } vingine {epuka_ kikwazo (kumbusha); } vingine {if (kukumbusha == 1 && waliopotea == 1) {// Tulikuwa tunageuza kushoto kushoto (); ikiwa (! isobstacleright ()) {moveright (kasi); // Geuka upate kitufe} kingine {epuka_kikwazo (kumbusha); } kumbusha = 2; } mwingine ikiwa (kumbusha == 2 && waliopotea == 1) {stopspeed (); ikiwa (! isobstacleleft ()) {moveleft (kasi); // Tulikuwa tukigeukia kulia} kingine {epuka_ kikwazo (kumbusha); } kumbusha = 1; } vingine ikiwa (imepotea == 0) {ikiwa (kumbusha == 1) {// Tulikuwa tukigeukia kushoto ikiwa (! isobstacleleft ()) {moveleft (kasi); // Tulikuwa tukigeuka kulia} mwingine {stopspeed (); epuka_kikwazo (kumbusha); } //} mwingine ikiwa (kumbusha == 2) {ikiwa (! isobstacleright ()) {moveright (kasi); // Geuka upate kitufe} kingine {stopspeed (); epuka_kikwazo (kumbusha); }}} kuchelewa (10); kupotea = 0; }} //}}

Sasa, maelezo machache ya njia mbili ngumu zaidi hutolewa:

Epuka kingo

Itifaki ya kuzuia kingo imeainishwa katika kazi inayoitwa "edgeDetection ()" ambayo imeandikwa kwenye faili ndogo ya "harakati". Itifaki hii inategemea ukweli kwamba roboti inapaswa tu kukutana na makali wakati imefikia marudio yake: kitufe. Mara tu roboti inapogundua ukingo, jambo la kwanza inafanya ni kurudi nyuma kidogo ili kuwa kwenye mtaro salama kutoka pembeni. Mara hii ikimaliza, roboti inasubiri kwa sekunde 2. Ikiwa mtu anabonyeza kitufe kilicho mbele ya roboti katika sekunde hizo mbili, roboti anajua imefikia mtu ambaye anataka siagi na kufungua chumba cha siagi na kutoa siagi. Kwa wakati huu, mtu anaweza kuchukua siagi kutoka kwa roboti. Baada ya sekunde chache roboti atachoka kusubiri na atafunga tu kifuniko cha siagi. Mara kifuniko kikiwa imefungwa roboti itafanya kitanzi cha Starter kutafuta kitufe kingine. Ikiwa ikitokea kwamba roboti hukutana na ukingo kabla ya kufikia marudio yake na kitufe kilicho mbele ya roboti hakijashinikizwa, roboti haitafungua kifuniko cha siagi na itafanya kitanzi cha Starter mara moja.

Epuka vizuizi

Kuzuia_bstacle () kazi pia iko katika faili ndogo ya "harakati". Sehemu ngumu juu ya kuzuia vizuizi ni ukweli kwamba roboti ina eneo kubwa la kipofu. Sensorer ya ultrasonic imewekwa mbele ya roboti, ambayo inamaanisha inaweza kugundua vizuizi, lakini haijui wakati anaipitisha. Ili kutatua hili, kanuni ifuatayo inatumiwa: Mara tu roboti inapokutana na kikwazo, hutumia utaftaji wa urekebishaji kuelekea upande mwingine. Kwa njia hii roboti huepuka kugonga kikwazo. Roboti inaendelea kugeuka mpaka sensor ya ultrasonic haigundwi kikwazo tena. Wakati roboti inapogeuka, kaunta inaongezwa hadi kikwazo kisigundulike tena. Kaunta hii inatoa basi takriban urefu wa kikwazo. Kwa kusonga mbele kisha mbele na wakati huo huo kupunguza kaunta kikwazo kinaweza kuepukwa. Mara tu kaunta ikifika 0, kazi ya Starter inaweza kutumika tena kuhamisha kitufe. Kwa kweli roboti inafanya Starter kufanya kazi kwa kugeukia mwelekeo ambayo ilikumbuka ilikuwa ikienda kabla ya kukutana na kikwazo (tena ikitumia kutofautisha kwa ukumbusho).

Sasa kwa kuwa umeelewa kabisa nambari hiyo, unaweza kuanza kuitumia!

Hakikisha kurekebisha vizingiti kwa mazingira yako (tafakari ya IR iko juu kwenye meza nyeupe kwa mfano) na kurekebisha vigezo tofauti na mahitaji yako. Pia, tahadhari kubwa inapaswa kutolewa kwa kuwezeshwa kwa moduli tofauti. Ni muhimu sana kwamba motors za servo haziendeshwi na bandari ya Arduino 5V, kwani inachukua mengi ya sasa (hii inaweza kuharibu mdhibiti mdogo). Ikiwa chanzo hicho cha nguvu kinatumika kwa sensorer kama ile ya kuwezesha servos, shida zingine za kipimo zinaweza kupatikana.

Ilipendekeza: