Satura rādītājs:
- Piegādes
- 1. darbība. Ievads
- 2. darbība. Šajā projektā izmantotie materiāli un izstrādājumi
- 3. darbība. Ko darīt?
- 4. solis: shēmas
- 5. darbība. Kā rīkoties?
- 6. darbība: pseidokods
- 7. solis: kods
- 8. darbība. Ārējās saites
Video: Lodes izsekošanas robots: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:53
Tāpēc es pastāstīšu, kā izveidot bumbas izsekošanas robotu, kas ir robots, identificēs bumbu un sekos tai. Būtībā tā ir automatizēta novērošanas tehnika, ko var izmantot mūsdienu pasaulē. Tātad, ļaujiet mums vienkārši iekāpt un sākt būvēt…
PIEZĪME: Šis daļas uzdevums tika iesniegts Deakin universitātē, IT skolā, SIT-210 iegulto sistēmu izstrāde
Piegādes
www.hackster.io/junejarohan/ball-tracking-robot-7a9865
1. darbība. Ievads
Mūsdienu uzraudzība rada būtisku trūkumu, proti, tā balstās uz tādu cilvēku iesaistīšanos, kurus, kā mēs visi zinām, var viegli novērst, tāpēc mums bija ārkārtīgi svarīgi atklāt sistēmu, kas var autonomi un nepārtraukti uzraudzīt reģionus. Mēs arī vēlamies identificēt nepatīkamas vai nevēlamas lietas un briesmas, vienlaikus pieņemot lēmumus un attiecīgi reaģēt. Tātad objektu izsekošana, izmantojot inteliģentas sistēmas un datorus, ir būtiska un izšķiroša, lai panāktu automatizētu uzraudzību.
Jebkurai āra novērošanas sistēmai jāspēj izsekot objektiem, kas pārvietojas tās redzes laukā, klasificēt šos objektus un atklāt dažas to darbības. Esmu izstrādājis metodi šo objektu izsekošanai un klasificēšanai reālos scenārijos. Objektu izsekošana vienā kamerā tiek veikta, izmantojot fona atņemšanu, kam seko reģiona atbilstība. Tas ņem vērā vairākas norādes, tostarp ierobežojošo kārbu ātrumu, izmēru un attālumu.
2. darbība. Šajā projektā izmantotie materiāli un izstrādājumi
Izmantotie aparatūras komponenti:
- Raspberry Pi (x1)
- Raspberry Pi kameras modulis (x1)
- Ultraskaņas sensors (x3)
- SparkFun Dual H-Bridge motoru draiveri L298 (x1)
- Līdzstrāvas motors (x1)
- Maizes dēlis (x1)
- Savienojumu vadi
Izmantotā programmatūra:
OpenCV
Darbarīki:
Python
3. darbība. Ko darīt?
Jebkurai āra novērošanas sistēmai jāspēj izsekot objektiem, kas pārvietojas tās redzes laukā, klasificēt šos objektus un atklāt dažas to darbības. Esmu izstrādājis metodi šo objektu izsekošanai un klasificēšanai reālos scenārijos. Objektu izsekošana vienā kamerā tiek veikta, izmantojot fona atņemšanu, kam seko reģiona atbilstība. Tas ņem vērā vairākas norādes, tostarp ierobežojošo kārbu ātrumu, izmēru un attālumu.
Izšķiroša lieta, atklājot attēlus pa kadriem, bija izvairīties no jebkādiem kadru kritieniem, jo tad robots var nonākt neizdevīgā stāvoklī, ja robots nepamana bumbas kustības virzienu kadru kritumu dēļ. Ja bumba iziet no kameras diapazona, tā nonāks tā dēvētajā limbo stāvoklī, tādā gadījumā bots pagriežas par 360 grādiem, lai apskatītu apkārtējo telpu, līdz bumba atgriežas kadrā. kameru un tad sāciet kustēties tās virzienā.
Attēlu analīzei es ņemu katru kadru un pēc tam maskēju to ar nepieciešamo krāsu. Tad es atrodu visas kontūras un atrodu lielāko no tām un sasēju to taisnstūrī. Un parādiet taisnstūri galvenajā attēlā un atrodiet taisnstūra centra koordinātas.
Visbeidzot, bots mēģina novietot bumbiņas koordinātas tās koordinātu ass centrā. Šādi darbojas robots. To var vēl vairāk uzlabot, izmantojot IoT ierīci, piemēram, fotonu daļiņu, kas var ļaut jums tikt informētam, kad lieta tiek atklāta un ka robots tai seko vai kad robots ir zaudējis pēdas un tagad atgriežas bāzē.
Attēlu apstrādes nolūkos jūsu aveņu pi ir jāinstalē OpenCV programmatūra, kas man bija diezgan sarežģīta.
Jūs varat iegūt visu nepieciešamo informāciju, lai instalētu OpenCV, izmantojot šo saiti: noklikšķiniet šeit
4. solis: shēmas
Iepriekš es esmu iesniedzis sava projekta shēmas, un kopā ar to ir iespiedshēmas plate (PCB).
Un šeit ir daži galvenie savienojumi, kas jums jādara:
• Pirmkārt, Raspberry Pi kameras modulis ir tieši savienots ar Raspberry Pi.
• Ultraskaņas sensori VCC ir savienoti ar kopējo termināli, tāpat kā GND (zemējums), un atlikušie divi ultraskaņas sensora porti ir pievienoti Raspberry Pi GPIO tapām.
• Motori ir savienoti, izmantojot H-tiltu.
• Barošana tiek nodrošināta, izmantojot akumulatoru.
Esmu pievienojis arī videoklipu, kas varētu palīdzēt izprast ultraskaņas sensora darbību un tā darbību.
un arī jūs varat sekot šai saitei, ja nevarat atrast iepriekš minēto videoklipu.
5. darbība. Kā rīkoties?
Es izveidoju šo projektu, attēlojot pamata robotu, kas var izsekot bumbiņai. Robots izmanto kameru attēlu apstrādei, uzņemot rāmjus un izsekojot bumbiņai. Lai izsekotu bumbu, tiek izmantotas dažādas funkcijas, piemēram, tās krāsa, izmērs, forma.
Robots atrod grūti iekodētu krāsu un pēc tam meklē šīs krāsas bumbiņu un seko tai. Šajā projektā esmu izvēlējies Raspberry Pi kā mikrokontrolleri, jo tas ļauj mums izmantot tā kameras moduli un nodrošina lielu elastību kodā, jo tas izmanto ļoti lietotājam draudzīgu python valodu, kā arī ļauj mums izmantot OpenCV bibliotēku attēlu analīzei.
H-tilts ir izmantots, lai pārslēgtu motoru griešanās virzienu vai apturētu tos.
Attēlu analīzei es ņemu katru kadru un pēc tam maskēju to ar nepieciešamo krāsu. Tad es atrodu visas kontūras un atrodu lielāko no tām un sasēju to taisnstūrī. Un parādiet taisnstūri galvenajā attēlā un atrodiet taisnstūra centra koordinātas.
Visbeidzot, bots mēģina novietot bumbiņas koordinātas tās koordinātu ass centrā. Šādi darbojas robots. To var vēl vairāk uzlabot, izmantojot IoT ierīci, piemēram, fotonu daļiņu, kas var ļaut jums tikt informētam, kad lieta tiek atklāta un ka robots tai seko vai kad robots ir zaudējis pēdas un tagad atgriežas bāzē. Un, lai to izdarītu, mēs izmantosim tiešsaistes programmatūras platformu, kas savieno ierīces un ļauj tām veikt noteiktas darbības ar konkrētiem aktivizētājiem, kas ir IFTTT aktivizētāji.
6. darbība: pseidokods
Šeit ir atklāšanas daļas pseidokods, izmantojot OpenCV, kur mēs atklājam bumbu.
7. solis: kods
Iepriekš ir koda fragmenti, un zemāk ir detalizēts koda apraksts.
# importējiet nepieciešamos iepakojumus
MĒS IMPORTĒJAM VISAS VAJADZĪGĀS IEPAKOJUMS
no picamera.array importēt PiRGBArray #Tā kā aveņu pi ir izšķirtspējas problēma, nevarēs uzņemt kadrus ar VideoCapture
no picamera importa PiCamera importa RPi. GPIO kā GPIO importa laika importa numpy kā np
TAGAD MĒS UZSTĀDĀJAM Aparatūru un PIEVIENOJAM APSTIPRINĀTOS PINS
GPIO.setmode (GPIO. BOARD)
GPIO_TRIGGER1 = 29 #Kreisais ultraskaņas sensors
GPIO_ECHO1 = 31
GPIO_TRIGGER2 = 36 #Priekšējais ultraskaņas sensors
GPIO_ECHO2 = 37
GPIO_TRIGGER3 = 33 #Pareizais ultraskaņas sensors
GPIO_ECHO3 = 35
MOTOR1B = 18 #Kreisais motors
MOTOR1E = 22
MOTOR2B = 21 #Pareizais motors
MOTOR2E = 19
LED_PIN = 13 #Ja tā atrod bumbu, tā iedegas
# Iestatiet tapas kā izeju un ievadi
GPIO.setup (GPIO_TRIGGER1, GPIO. OUT) # Aktivizēt GPIO.setup (GPIO_ECHO1, GPIO. IN) # Echo GPIO.setup (GPIO_TRIGGER2, GPIO. OUT) # Aktivizēt GPIO.setup (GPIO_ECHO2, GPIO. IN) GPIO.setup (GPIO_TRIGGER3, GPIO. OUT) # Aktivizēt GPIO.setup (GPIO_ECHO3, GPIO. IN) GPIO.setup (LED_PIN, GPIO. OUT)
# Iestatiet aktivizētāju uz False (zems)
GPIO.izvade (GPIO_TRIGGER1, nepatiesa) GPIO.izvade (GPIO_TRIGGER2, nepatiesa) GPIO.izvade (GPIO_TRIGGER3, nepatiesa)
Šī funkcija izmanto visus ultraskaņas sensorus, lai savāktu attālumu no objektiem, kas atrodas ap mūsu botu
# Ļaujiet modulim nokārtoties
def sonārs (GPIO_TRIGGER, GPIO_ECHO): start = 0 stop = 0 # Iestatīt tapas kā izeju un ievadi GPIO.setup (GPIO_TRIGGER, GPIO. OUT) # Aktivizēt GPIO.setup (GPIO_ECHO, GPIO. IN) # Echo # Iestatīt aktivizētāju uz False (Zems) GPIO.izvade (GPIO_TRIGGER, False) #Ļaujiet modulim nokārtot laiku. Miega (0.01) #kamēr attālums> 5: #Nosūtiet 10us impulsu, lai aktivizētu GPIO.output (GPIO_TRIGGER, True) time.sleep (0.00001) GPIO. izvade (GPIO_TRIGGER, False) begin = time.time (), savukārt GPIO.input (GPIO_ECHO) == 0 un time.time ()
SASNIEGT DC MOTORUS DARBĀ AR AITRU PI
GPIO iestatīšana (MOTOR1B, GPIO. OUT)
GPIO iestatīšana (MOTOR1E, GPIO. OUT)
GPIO.setup (MOTOR2B, GPIO. OUT) GPIO.setup (MOTOR2E, GPIO. OUT)
FUNKCIJU DEFINĒŠANA ROBOTA DARBĪBAI UN PĀRVIETOŠANAI DAŽĀDOS NORĀDĪJUMOS
def uz priekšu ():
GPIO izeja (MOTOR1B, GPIO. HIGH) GPIO izeja (MOTOR1E, GPIO. LOW) GPIO izeja (MOTOR2B, GPIO. HIGH) GPIO izvade (MOTOR2E, GPIO. LOW) def revers (): GPIO izeja (MOTOR1B, GPIO. LOW) GPIO.izvade (MOTOR1E, GPIO. HIGH) GPIO.izvade (MOTOR2B, GPIO. LOW) GPIO.izvade (MOTOR2E, GPIO. HIGH) def rightturn (): GPIO.output (MOTOR1B, GPIO. LOW) GPIO izeja (MOTOR1E, GPIO. HIGH) GPIO izeja (MOTOR2B, GPIO. HIGH) GPIO izeja (MOTOR2E, GPIO. LOW) def leftturn (): GPIO.output (MOTOR1B, GPIO. HIGH) GPIO. output (MOTOR1E, GPIO. LOW) GPIO izeja (MOTOR2B, GPIO. LOW) GPIO izeja (MOTOR2E, GPIO. HIGH)
def stop ():
GPIO izeja (MOTOR1E, GPIO. LOW) GPIO izeja (MOTOR1B, GPIO. LOW) GPIO izeja (MOTOR2E, GPIO. LOW) GPIO izeja (MOTOR2B, GPIO. LOW)
KAMERAS MODULES DARBOŠANA UN IESTATĪJUMU PIELĀGOŠANA
#KAMERAS UZŅEMŠANA
#inicializējiet kameru un paņemiet atsauci uz neapstrādāto kameras uztveršanas kameru = PiCamera () camera.resolution = (160, 120) camera.framerate = 16 rawCapture = PiRGBArray (kamera, izmērs = (160, 120)) # atļaut kamerai līdz iesildīšanās laikam. gulēt (0,001)
TAGAD ĪSTENOJOT GALVENO LĪDZEKLI, KURĀ BOTS SEKO BALLEI UN NEVĒRTA KĀDUS ŠĶĪRUMUS
kamēr (1 <10): { #attālums, kas nāk no priekšējā ultraskaņas sensora attālumaC = sonārs (GPIO_TRIGGER2, GPIO_ECHO2) #attālums no labās ultraskaņas sensora attāluma, GPIO_ECHO1) ja (attālumsC = 8: pagrieziens pa labi 0: leftturn () laiks. Miega (0.00625) elif distance (0.0125) rightturn () time.sleep (0.00625) stop () time.sleep (0.0125) else: stop () time.sleep (0.01) else: #pretējā gadījumā tas virzās uz priekšu () time.sleep (0.00625), ja (attālumsC> 10): #tas nes bumbiņas koordinātas kameras iedomātās ass centrā. ja (centrs_x = 20): ja (centrs_x0): karogs = 1 leftturn () laiks. miega (0,025) uz priekšu () laiks. miegs (0,00003125) stop () time.sleep (0.00625) else: stop () time.sleep (0.01)
cits:
#ja tā atrod bumbu un ir pārāk tuvu, tā iedegas. GPIO.output (LED_PIN, GPIO. HIGH) time.sleep (0.1) stop () time.sleep (0.1) # cv2.imshow ("draw", frame) rawCapture.truncate (0) # notīriet straumi, gatavojoties nākamais kadrs}
DARĪT VAJADZĪGO TĪRĪŠANU
GPIO.cleanup () #atbrīvo visas GPIO tapas
8. darbība. Ārējās saites
Saite uz demonstrācijas video: noklikšķiniet šeit (Youtube)
Saite uz Git-hub kodu: noklikšķiniet šeit (Git-Hub)
Ieteicams:
Arduino - Labirinta risināšanas robots (MicroMouse) Sienas robots: 6 soļi (ar attēliem)
Arduino | Labirinta risināšanas robots (MicroMouse) Sienas sekojošais robots: Laipni lūdzam, es esmu Īzāks, un šis ir mans pirmais robots "Striker v1.0". Šis robots tika izstrādāts, lai atrisinātu vienkāršu labirintu. Sacensībās mums bija divi labirinti un robots spēja tos identificēt. Jebkuras citas izmaiņas labirintā var prasīt izmaiņas
RC kontrolēts robots XLR8! Izglītības robots: 5 soļi
RC kontrolēts robots XLR8! Izglītības robots: Sveiki, šajā rakstā tiks parādīts, kā izveidot pamata robotu. Vārds "robots" burtiski nozīmē "vergs" vai "strādnieks". Pateicoties mākslīgā intelekta sasniegumiem, roboti vairs nav tikai daļa no Isaka Asimova zinātniskās fantastikas
Krāsu izsekošanas robots, kas balstīts uz daudzvirzienu riteni un OpenCV: 6 soļi
Krāsu izsekošanas robots, kas balstīts uz daudzvirzienu riteni un OpenCV: krāsu izsekošanas īstenošanai izmantoju daudzvirzienu riteņu šasiju, kā arī izmantoju mobilo programmatūru ar nosaukumu OpenCVBot. Pateicoties šeit esošajiem programmatūras izstrādātājiem, paldies. OpenCV Bot faktiski nosaka vai izseko jebkuru reāllaika objektu, izmantojot attēlu apstrādi
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst
Lodes balansētājs un PID vijolnieks: 7 soļi (ar attēliem)
Bumbas līdzsvarotājs un PID vijolnieks: Šis projekts ir paredzēts cilvēkiem, kuriem ir pieredze ar Arduino lietošanu. Priekšzināšanas par servo, OLED displeju, podu, pogu, lodēšanas izmantošanu būs noderīgas. Šajā projektā tiek izmantotas 3D drukātas detaļas. Bumbu balansētājs ir PID testa iekārta