Orodha ya maudhui:
- Vifaa
- Hatua ya 1: Utangulizi
- Hatua ya 2: Vifaa na bidhaa laini zinazotumiwa katika Mradi huu
- Hatua ya 3: Nini cha kufanya?
- Hatua ya 4: Skematiki
- Hatua ya 5: Jinsi ya Kufanya?
- Hatua ya 6: Msimbo wa bandia
- Hatua ya 7: Kanuni
- Hatua ya 8: Viungo vya nje
Video: Ufuatiliaji wa mpira Robot: Hatua 8
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:50
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
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
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
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
Hapa kuna nambari ya uwongo ya sehemu ya kugundua kutumia OpenCV ambapo tunagundua mpira.
Hatua ya 7: 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:
Ufuatiliaji wa Nguo / Ufuatiliaji wa Kavu na ESP8266 & Sensor ya Kuongeza kasi: Hatua 6
Ufuatiliaji wa Nguo / Kavu ya Ufuatiliaji na ESP8266 & Sensor ya Kuongeza kasi: Washa nguo / dryer iko kwenye basement, na wewe, kama sheria, weka lundo la nguo ndani yake na baada ya hapo, unashiriki katika kazi yako nyingine ya nyumba. Unapuuza mavazi ambayo yalibaki yamejaa na kufyonza kwenye basement kwenye mashine yako
Uchawi wa Elektroniki 8 Mpira na Mpira wa Jicho: Hatua 11 (na Picha)
Uchawi wa Elektroniki 8 Mpira na Mpira wa Jicho: Nilitaka kuunda toleo la dijiti la Mpira wa Uchawi wa 8 … Mwili wa hii ni 3D iliyochapishwa na onyesho limebadilishwa kutoka polyhedron katika rangi ya samawati hadi OLED ndogo inayodhibitiwa na nambari isiyo na mpangilio. jenereta iliyowekewa Arduino NANO. Halafu mimi
Ufuatiliaji wa faragha umechukuliwa kutoka kwa Ufuatiliaji wa zamani wa LCD: Hatua 7 (na Picha)
Ufuatiliaji wa faragha umedukuliwa Kutoka kwa Ufuatiliaji wa Zamani wa LCD: Mwishowe unaweza kufanya kitu na mfuatiliaji huyo wa zamani wa LCD ulio na karakana. Unaweza kuibadilisha kuwa mfuatiliaji wa faragha! Inaonekana kuwa nyeupe kwa kila mtu isipokuwa wewe, kwa sababu umevaa " uchawi " glasi! Unachotakiwa kuwa nacho ni pa
Ufuatiliaji wa Mpira 180 ° Kamera: Hatua 5 (na Picha)
Ufuatiliaji wa Mpira 180 ° Kamera: Karibu kwenye mradi wangu wa kwanza! Ninafurahi kushiriki kile nilichotengeneza na kukuonyesha hatua za kujenga kamera yako ya ufuatiliaji. Mradi huu uliwezekana kwa kutumia maktaba ya OpenCV kwa kushirikiana na Python
Ufuatiliaji wa Chassis ya Ufuatiliaji wa Kijijini cha Rugged: Hatua 7 (na Picha)
Ufuatiliaji wa Chassis Remote Tracked Bot: Utangulizi: Kwa hivyo huu ulikuwa mradi ambao mwanzoni nilitaka kuanza na kukamilisha nyuma mnamo 2016, hata hivyo kwa sababu ya kazi na wingi wa vitu vingine nimeweza tu kuanza na kukamilisha mradi huu katika mwaka mpya 2018! Ilichukua kama wee 3