Orodha ya maudhui:

Ufuatiliaji wa mpira Robot: Hatua 8
Ufuatiliaji wa mpira Robot: Hatua 8

Video: Ufuatiliaji wa mpira Robot: Hatua 8

Video: Ufuatiliaji wa mpira Robot: Hatua 8
Video: KUKA presents "TIMO BOLL – The Spin of Life", Часть 8: Олимпийский герой 2024, Novemba
Anonim
Roboti ya Kufuatilia Mpira
Roboti ya Kufuatilia Mpira
Roboti ya Kufuatilia Mpira
Roboti ya Kufuatilia Mpira
Roboti ya Kufuatilia Mpira
Roboti ya Kufuatilia Mpira

Kwa hivyo katika hii, nitaambia jinsi ya kutengeneza roboti inayofuatilia mpira ambayo ni roboti itatambua mpira na kuifuata. Kimsingi ni mbinu ya ufuatiliaji wa kiotomatiki ambayo inaweza kutumika katika ulimwengu wa kisasa. Kwa hivyo, wacha tu tuingie na tuanze kujenga…

KUMBUKA: Hii ni sehemu ya kazi iliyowasilishwa kwa Chuo Kikuu cha Deakin, Shule ya IT, SIT-210 Maendeleo ya Mifumo Iliyopachikwa

Vifaa

www.hackster.io/junejarohan/ball-tracking-robot-7a9865

Hatua ya 1: Utangulizi

Utangulizi
Utangulizi

Ufuatiliaji wa leo unatoa kikwazo kikubwa ambacho ni juu ya ushiriki wa wanadamu ambao kama sisi sote tunajua inaweza kuvurugwa kwa urahisi, kwa hivyo ilikuwa kwa umuhimu wetu mkubwa kugundua mfumo ambao unaweza kufuatilia mikoa kwa uhuru na mfululizo. Na pia tunataka kutambua vitu vya kuchukiza au visivyohitajika na hatari wakati huo huo tunafanya maamuzi na kujibu ipasavyo. Kwa hivyo ufuatiliaji wa vitu na matumizi ya mifumo na kompyuta zenye akili ni muhimu na muhimu kufanikisha ufuatiliaji wa kiotomatiki.

Mfumo wowote wa ufuatiliaji wa nje lazima uweze kufuatilia vitu vinavyohamia katika uwanja wake wa maoni, kuainisha vitu hivi na kugundua shughuli zao zingine. Nimeunda njia ya kufuatilia na kuainisha vitu hivi katika hali halisi. Ufuatiliaji wa kitu katika kamera moja hufanywa kwa kutumia uondoaji wa nyuma, ikifuatiwa na mawasiliano ya mkoa. Hii inazingatia vidokezo kadhaa pamoja na kasi, saizi na umbali wa masanduku yanayopakana.

Hatua ya 2: Vifaa na bidhaa laini zinazotumiwa katika Mradi huu

Vifaa na bidhaa laini zilizotumiwa katika Mradi huu
Vifaa na bidhaa laini zilizotumiwa katika Mradi huu
Vifaa na bidhaa laini zilizotumiwa katika Mradi huu
Vifaa na bidhaa laini zilizotumiwa katika Mradi huu
Vifaa na bidhaa laini zilizotumiwa katika Mradi huu
Vifaa na bidhaa laini zilizotumiwa katika Mradi huu

Vipengele vya vifaa vilivyotumika:

  • Raspberry Pi (x1)
  • Moduli ya Kamera ya Raspberry Pi (x1)
  • Sensorer ya Ultrasonic (x3)
  • SparkFun Dual H-Bridge madereva L298 (x1)
  • DC Motor (x1)
  • Bodi ya mkate (x1)
  • Kuunganisha waya

Programu Iliyotumiwa:

OpenCV

Zana za mkono:

Chatu

Hatua ya 3: Nini cha kufanya?

Mfumo wowote wa ufuatiliaji wa nje lazima uweze kufuatilia vitu vinavyohamia katika uwanja wake wa maoni, kuainisha vitu hivi na kugundua shughuli zingine. Nimeunda njia ya kufuatilia na kuainisha vitu hivi katika hali halisi. Ufuatiliaji wa kitu katika kamera moja hufanywa kwa kutumia uondoaji wa nyuma, ikifuatiwa na mawasiliano ya mkoa. Hii inazingatia vidokezo kadhaa pamoja na kasi, ukubwa na umbali wa masanduku yanayopakana.

Jambo muhimu wakati wa kugundua sura ya picha na fremu ilikuwa kuzuia matone yoyote ya sura kwani basi bot inaweza kwenda katika hali ya limbo ikiwa bot inashindwa kugundua mwelekeo wa harakati za mpira kwa sababu ya matone ya fremu. Ikiwa mpira hutoka nje ya anuwai ya kamera, itaenda katika kile tunachokiita hali ya limbo, katika kesi hiyo, bot hufanya digrii ya 360 kutazama nafasi inayoizunguka mpaka mpira utakaporudi katika fremu ya kamera na kisha anza kusonga upande wake.

Kwa uchambuzi wa picha, ninachukua kila fremu kisha kuifunika na rangi inayohitajika. Kisha mimi hupata mtaro wote na kupata kubwa zaidi kati yao na kuifunga kwa mstatili. Na onyesha mstatili kwenye picha kuu na upate kuratibu za kituo cha mstatili.

Mwishowe, bot inajaribu kuleta kuratibu za mpira katikati ya mhimili wake wa kuratibu. Hivi ndivyo roboti inavyofanya kazi. Hii inaweza kuboreshwa zaidi kwa kutumia kifaa cha IoT kama chembe ya picha ambayo inaweza kukujulisha wakati jambo linagunduliwa na kwamba roboti inalifuata au wakati roboti imepoteza wimbo wake na sasa inarudi kwenye msingi.

Kwa kusudi la usindikaji wa picha, unahitaji kusanikisha programu ya OpenCV kwenye pi yako ya rasipberry ambayo ilikuwa ngumu kwangu.

Unaweza kupata habari yoyote inayofaa kufunga OpenCV kupitia kiunga hiki: bonyeza hapa

Hatua ya 4: Skematiki

Image
Image
Skimatiki
Skimatiki
Skimatiki
Skimatiki

Hapo juu nimetoa skimu kwa mradi wangu na pamoja na hiyo ni Bodi ya Mzunguko Iliyochapishwa (PCB).

Na hapa kuna miunganisho mikuu ambayo unahitaji kufanya:

• Kwanza kabisa moduli ya Kamera ya Raspberry Pi imeunganishwa moja kwa moja na Raspberry Pi.

• Sensorer za Ultrasonic VCC zimeunganishwa na kituo cha kawaida sawa na GND (ardhi) na bandari mbili zilizobaki za sensor ya ultrasonic imeunganishwa na pini za GPIO kwenye Raspberry Pi.

• Motors zimeunganishwa kwa kutumia H-Bridge.

• Nguvu hutolewa kwa kutumia Betri.

Nimeongeza pia video ambayo inaweza kusaidia na uelewa wa kufanya kazi kwa sensor ya ultrasonic na jinsi inavyofanya kazi.

na pia unaweza kufuata kiunga hiki ikiwa huwezi kupata video hapo juu.

Hatua ya 5: Jinsi ya Kufanya?

Nilifanya mradi huu kuonyesha roboti ya msingi ambayo inaweza kufuatilia mpira. Roboti hutumia kamera kufanya usindikaji wa picha kwa kuchukua muafaka na kufuatilia mpira. Kufuatilia mpira sifa anuwai kama rangi yake, saizi, umbo hutumiwa.

Roboti hupata rangi iliyo na maandishi na kisha utafute mpira wa rangi hiyo na uifuate. Nimechagua Raspberry Pi kama mdhibiti mdogo katika mradi huu kwa sababu inaturuhusu kutumia moduli yake ya kamera na inatoa kubadilika kwa nambari kwani hutumia lugha ya chatu ambayo ni rahisi kutumia na pia inatuwezesha kutumia maktaba ya OpenCV kwa kuchambua picha.

Daraja la H limetumika kubadili mwelekeo wa kuzunguka kwa motors au kuzizuia.

Kwa uchambuzi wa picha, ninachukua kila fremu kisha kuifunika na rangi inayohitajika. Kisha mimi hupata mtaro wote na kupata kubwa zaidi kati yao na kuifunga kwa mstatili. Na onyesha mstatili kwenye picha kuu na upate kuratibu za kituo cha mstatili.

Mwishowe, bot inajaribu kuleta kuratibu za mpira katikati ya mhimili wake wa kuratibu. Hivi ndivyo roboti inavyofanya kazi. Hii inaweza kuboreshwa zaidi kwa kutumia kifaa cha IoT kama chembe ya picha ambayo inaweza kukujulisha wakati jambo linagunduliwa na kwamba roboti inalifuata au wakati roboti imepoteza wimbo wake na sasa inarudi kwenye msingi. Na kufanya hivyo tutatumia jukwaa la programu mkondoni linalounganisha vifaa na kuwaruhusu kufanya vitendo kadhaa kwa vichocheo maalum ambavyo ni vichocheo vya IFTTT.

Hatua ya 6: Msimbo wa bandia

Msimbo wa bandia
Msimbo wa bandia

Hapa kuna nambari ya uwongo ya sehemu ya kugundua kutumia OpenCV ambapo tunagundua mpira.

Hatua ya 7: Kanuni

Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni
Kanuni

Hapo juu kuna vijikaratasi vya nambari hiyo na chini ni maelezo ya kina ya nambari hiyo.

# kuagiza vifurushi muhimu

TUNAINGIZA VIFARASI VYOTE VINAVYOHITAJIKA

kutoka picamera.array kuagiza PiRGBArray #Kama kuna shida ya utatuzi katika rasipberry pi, haitaweza kunasa muafaka na VideoCapture

kutoka kwa kuingiza picha ya kuingiza picha ya PiCamera RPi. GPIO kama wakati wa kuagiza muda wa kuagiza wa NPY kama np

SASA TUNAWANISHA UWANJA WA NYUMBANI NA KUSAIDISHA PINI Zilizounganishwa kwenye RASPBERRY PI

GPIO.setmode (GPIO. BOARD)

GPIO_TRIGGER1 = 29 #Sehemu ya kushoto ya ultrasonic

GPIO_ECHO1 = 31

GPIO_TRIGGER2 = 36 #Sensa ya mbele ya ultrasonic

GPIO_ECHO2 = 37

GPIO_TRIGGER3 = 33 #Sehemu ya kulia ya ultrasonic

GPIO_ECHO3 = 35

MOTOR1B = 18 # Motor ya kushoto

MOTOR1E = 22

MOTOR2B = 21 #Haki ya Magari

MOTOR2E = 19

LED_PIN = 13 #Ikipata mpira, basi itawasha iliyoongozwa

# Weka pini kama pato na pembejeo

GPIO.setup (GPIO_TRIGGER1, GPIO. OUT) # Kichocheo cha GPIO.setup (GPIO_ECHO1, GPIO. IN) # Echo GPIO.setup (GPIO_TRIGGER2, GPIO. OUT) # Trigger GPIO.setup (GPIO_ECHO2, GPIO. GPIO) GPIO_TRIGGER3, GPIO. OUT) # Trigger GPIO.setup (GPIO_ECHO3, GPIO. IN) GPIO.setup (LED_PIN, GPIO. OUT)

# Weka kichocheo kwa Uongo (Chini)

Pato la GPIO (GPIO_TRIGGER1, Uwongo) GPIO.pato (GPIO_TRIGGER2, Uwongo)

KAZI HII INATUMIA SISI ZA SIKU ZOTE ZA KIUSTRIA KUSANYA UMBALI KUTOKA KWA VITUO VINAVYOZunguka BOT YETU

# Ruhusu moduli kutulia

def sonar (GPIO_TRIGGER, GPIO_ECHO): start = 0 stop = 0 # Weka pini kama pato na pembejeo GPIO.setup (GPIO_TRIGGER, GPIO. OUT) # Trigger GPIO.setup (GPIO_ECHO, GPIO. IN) # Echo # Set trigger to False (Chini) GPIO.output (GPIO_TRIGGER, False) # Ruhusu moduli kutuliza muda. Lala (0.01) # umbali umbali> 5: #Tuma 10us pulse ili kuchochea GPIO.output (GPIO_TRIGGER, Kweli) wakati. Kulala (0.00001) GPIO. pato (GPIO_TRIGGER, False) kuanza = time.time () wakati GPIO.input (GPIO_ECHO) == 0 na time.time ()

KUPATA MAGARI YA DC KUFANYA KAZI NA PI RASPBERRY

Kuanzisha GPIO (MOTOR1B, GPIO. OUT)

Kuanzisha GPIO (MOTOR1E, GPIO. OUT)

Kuanzisha GPIO (MOTOR2B, GPIO. OUT) GPIO.setup (MOTOR2E, GPIO. OUT)

KUFafanua KAZI ZA KUFANYA KAZI YA ROBOTI NA KUIFANYA ILIYOENDELEA KATIKA MIONGOZO TOFAUTI

def mbele ():

Pato la GPIO (MOTOR1B, GPIO. HIGH) GPIO.pato (MOTOR1E, GPIO. LOW) GPIO.pato (MOTOR2B, GPIO. HIGH), GPIO. LOW) GPIO.pato (MOTOR1E, GPIO. HIGH) GPIO.pato (MOTOR2B, GPIO. LOW) Pato la GPIO (MOTOR1E, GPIO. HIGH) GPIO.pato (MOTOR2B, GPIO. HIGH) GPIO., GPIO. LOW) Pato la GPIO (MOTOR2B, GPIO. LOW) GPIO.pato (MOTOR2E, GPIO. HIGH)

def stop ():

Pato la GPIO (MOTOR1E, GPIO. LOW) GPIO.pato (MOTOR1B, GPIO. LOW) GPIO.pato (MOTOR2E, GPIO. LOW) GPIO.

KUFANYA KAZI YA KAMERA KUFANYA KAZI NA KUBadilisha MIPANGO

#KAMATI YA KAMERA

# anzisha kamera na ushikilie kumbukumbu ya kamera mbichi ya kukamata kamera = PiCamera () kamera. azimio = (160, 120) kamera.framerate = 16 raw Capture = PiRGBArray (camera, size = (160, 120)) # ruhusu kamera kwa wakati wa joto. kulala (0.001)

SASA KUTIMIZA KITU KIKUU AMBAPO BOTI INAFUATA MPIRA NA KUEPUKA KIZAZI KILA KWA NJIA

wakati (1 <10): {#distance from from front ultrasonic sensor distanceC = sonar (GPIO_TRIGGER2, GPIO_ECHO2) #distance coming from right ultrasonic sensor umbaliR = sonar (GPIO_TRIGGER3, GPIO_ECHO3) #distance coming from left ultrasonic sensor umbaliL = sonar (GPIO_TRIGGTR, GPIO_ECHO1) ikiwa (umbaliC = 8: saa ya kulia () saa. Kulala (0.00625) kuacha () wakati.kulala (0.0125) mbele () wakati. Kulala (0.00625) kuacha () muda. 0: kushoto () wakati. Kulala (0.00625) elif umbaliL> = 8: kushoto () wakati.kulala (0.00625) kuacha () muda. Kulala (0.0125) mbele () muda. Kulala (0.00625) kuacha () muda. Kulala (0.0125) kulia () saa. Kulala (0.00625) kuacha () wakati.kulala (0.0125) mwingine: acha () wakati. Kulala (0.01) mwingine: # vinginevyo songa mbele () wakati. Lala (0.00625) ikiwa (umbaliC> 10): # inaleta uratibu wa mpira katikati ya mhimili wa kufikiria wa kamera ikiwa (centre_x = 20): ikiwa (centre_x0): bendera = 1 kushoto (saa). kulala (0.025) mbele () wakati. kulala (0.00003125) muda wa kuacha () kulala (0.00625) mwingine: kuacha () wakati. kulala (0.01)

mwingine:

#ukipata mpira na uko karibu sana inawasha mwongozo. Muda wa GPIO.putput (LED_PIN, GPIO. HIGH) muda wa kulala (0.1) simama () muda.lala (0.1) # cv2.imshow ("chora", fremu) rawCapture.truncate (0) # futa mkondo kwa maandalizi ya fremu inayofuata}

FANYA USAFI WA MUHIMU

GPIO.cleanup () # huru pini zote za GPIO

Hatua ya 8: Viungo vya nje

Unganisha na video ya maonyesho: bonyeza hapa (Youtube)

Unganisha kwa Kanuni kwenye Git-hub: bonyeza hapa (Git-Hub)

Ilipendekeza: