Përmbajtje:
- Furnizimet
- Hapi 1: Hyrje
- Hapi 2: Materialet dhe produktet e buta të përdorura në këtë projekt
- Hapi 3: Çfarë duhet të bëni?
- Hapi 4: Skemat
- Hapi 5: Si të veproni?
- Hapi 6: Pseudo-Kodi
- Hapi 7: Kodi
- Hapi 8: Lidhjet e jashtme
Video: Roboti i Ndjekjes së Topit: 8 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
Pra, në këtë, unë do të tregoj se si të krijoj një robot për përcjelljen e topit që është një robot që identifikon një top dhe e ndjek atë. Në thelb është një teknikë mbikëqyrjeje e automatizuar që mund të përdoret në botën moderne. Pra, thjesht le të hyjmë dhe të fillojmë të ndërtojmë…
SHENIM: Kjo është detyra e pjesës e dorëzuar në Deakin University, School of IT, SIT-210 Embedded Systems Development
Furnizimet
www.hackster.io/junejarohan/ball-tracking-robot-7a9865
Hapi 1: Hyrje
Mbikëqyrja e sotme siguron një pengesë të madhe, e cila është se mbështetet në përfshirjen e njerëzve, e cila siç e dimë të gjithë mund të shpërqendrohet lehtë, kështu që ishte me rëndësi të madhe për të zbuluar një sistem i cili mund të monitorojë rajonet në mënyrë autonome dhe të vazhdueshme. Dhe gjithashtu ne duam të identifikojmë gjëra dhe rreziqe të pakëndshme ose të padëshiruara ndërsa marrim vendime njëkohësisht dhe përgjigjemi në përputhje me rrethanat. Pra, përcjellja e objekteve me përdorimin e sistemeve inteligjente dhe kompjuterëve është thelbësore dhe vendimtare për të arritur mbikëqyrje të automatizuar.
Çdo sistem mbikqyrjeje në natyrë duhet të jetë në gjendje të gjurmojë objektet që lëvizin në fushën e tij të shikimit, të klasifikojë këto objekte dhe të zbulojë disa nga aktivitetet e tyre. Unë kam zhvilluar një metodë për të gjurmuar dhe klasifikuar këto objekte në skenarë realistë. Ndjekja e objekteve në një aparat fotografik të vetëm kryhet duke përdorur zbritjen e sfondit, e ndjekur nga korrespondenca e rajonit. Kjo merr parasysh sugjerime të shumta duke përfshirë shpejtësitë, madhësitë dhe distancat e kutive kufizuese.
Hapi 2: Materialet dhe produktet e buta të përdorura në këtë projekt
Komponentët e harduerit të përdorur:
- Raspberry Pi (x1)
- Moduli i kamerës Raspberry Pi (x1)
- Sensor tejzanor (x3)
- Drejtuesit e motorëve SparkFun Dual H-Bridge L298 (x1)
- Motor DC (x1)
- Breadboard (x1)
- Lidhja e telave
Softueri i përdorur:
OpenCV
Mjetet e dorës:
Python
Hapi 3: Çfarë duhet të bëni?
Çdo sistem mbikqyrjeje në natyrë duhet të jetë në gjendje të gjurmojë objektet që lëvizin në fushën e tij të shikimit, të klasifikojë këto objekte dhe të zbulojë disa nga aktivitetet e tyre. Unë kam zhvilluar një metodë për të gjurmuar dhe klasifikuar këto objekte në skenarë realistë. Ndjekja e objekteve në një aparat fotografik të vetëm kryhet duke përdorur zbritjen e sfondit, e ndjekur nga korrespondenca e rajonit. Kjo merr parasysh sugjerime të shumta duke përfshirë shpejtësitë, madhësitë dhe distancat e kutive kufizuese.
Gjëja kryesore gjatë zbulimit të imazheve kuadër për kuadër ishte shmangia e çdo rënie të kornizës pasi boti mund të kalojë në gjendje limbo nëse boti nuk vëren drejtimin e lëvizjes së topit për shkak të rënies së kornizës. Nëse topi del jashtë rrezes së kamerës, do të hyjë në atë që ne e quajmë gjendje limbo, në atë rast, boti bën një kthesë 360 gradë për të parë hapësirën rreth tij derisa topi të kthehet në kuadrin e kamerën dhe pastaj filloni të lëvizni në drejtimin e saj.
Për analizën e imazhit, unë jam duke marrë çdo kornizë dhe më pas e maskoj me ngjyrën e nevojshme. Pastaj gjej të gjitha konturet dhe gjej më të madhen në mesin e tyre dhe e lidh atë në një drejtkëndësh. Dhe tregoni drejtkëndëshin në imazhin kryesor dhe gjeni koordinatat e qendrës së drejtkëndëshit.
Së fundi, boti përpiqet të sjellë koordinatat e topit në qendër të boshtit të tij koordinativ. Kështu funksionon roboti. Kjo mund të përmirësohet më tej duke përdorur një pajisje IoT si një grimcë fotoni e cila mund t'ju informojë kur zbulohet një gjë dhe se roboti po e ndjek atë ose kur roboti ka humbur gjurmët e tij dhe tani po kthehet në bazë Me
Me qëllim të përpunimit të imazhit, ju duhet të instaloni softuer OpenCV në pi tuaj të mjedrës, i cili ishte mjaft i ndërlikuar për mua.
Ju mund të merrni çdo informacion të kërkuar për të instaluar OpenCV përmes kësaj lidhjeje: klikoni këtu
Hapi 4: Skemat
Më sipër kam siguruar skemat për projektin tim dhe së bashku me të është Bordi i Qarkut të Shtypur (PCB).
Dhe këtu janë disa nga lidhjet kryesore që duhet të bëni:
• Para së gjithash moduli Kamera Raspberry Pi lidhet drejtpërdrejt me Raspberry Pi.
• Sensorët tejzanor VCC janë të lidhur me terminalin e përbashkët njëjtë me GND (tokë) dhe dy portet e mbetura të sensorit tejzanor janë të lidhura me kunjat GPIO në Raspberry Pi.
• Motorët janë të lidhur duke përdorur H-Bridge.
• Energjia furnizohet duke përdorur Baterinë.
Unë gjithashtu kam shtuar videon që mund të ndihmojë në kuptimin e punës së sensorit tejzanor dhe si funksionon.
dhe gjithashtu mund të ndiqni këtë lidhje nëse nuk mund ta gjeni videon e mësipërme.
Hapi 5: Si të veproni?
Unë e bëra këtë projekt që përshkruan një robot bazë i cili mund të gjurmojë një top. Roboti përdor një aparat fotografik për të bërë përpunimin e imazhit duke marrë korniza dhe gjurmuar topin. Për të gjurmuar topin përdoren karakteristika të ndryshme si ngjyra, madhësia, forma e tij.
Roboti gjen një ngjyrë të koduar dhe pastaj kërkon topin e asaj ngjyre dhe e ndjek atë. Unë kam zgjedhur Raspberry Pi si mikrokontrollues në këtë projekt sepse na lejon të përdorim modulin e tij të kamerës dhe jep fleksibilitet të madh në kod pasi përdor gjuhën python e cila është shumë miqësore për përdoruesit dhe gjithashtu na lejon të përdorim bibliotekën OpenCV për analizimin e imazheve.
Një urë H është përdorur për të ndërruar drejtimin e rrotullimit të motorëve ose për t'i ndaluar ato.
Për analizën e imazhit, unë jam duke marrë çdo kornizë dhe më pas e maskoj me ngjyrën e nevojshme. Pastaj gjej të gjitha konturet dhe gjej më të madhen në mesin e tyre dhe e lidh atë në një drejtkëndësh. Dhe tregoni drejtkëndëshin në imazhin kryesor dhe gjeni koordinatat e qendrës së drejtkëndëshit.
Së fundi, boti përpiqet të sjellë koordinatat e topit në qendër të boshtit të tij koordinativ. Kështu funksionon roboti. Kjo mund të përmirësohet më tej duke përdorur një pajisje IoT si një grimcë fotoni e cila mund t'ju informojë kur zbulohet një gjë dhe se roboti po e ndjek atë ose kur roboti ka humbur gjurmët e tij dhe tani po kthehet në bazë Me Dhe për ta bërë këtë ne do të përdorim një platformë softuerike në internet që lidh pajisjet dhe u lejon atyre të kryejnë veprime të caktuara në shkaktarë të veçantë që janë shkaktarët IFTTT.
Hapi 6: Pseudo-Kodi
Këtu është pseudokodi për pjesën e zbulimit duke përdorur OpenCV ku zbulojmë një top.
Hapi 7: Kodi
Më sipër janë copëzat e kodit dhe më poshtë është përshkrimi i detajuar i kodit.
# importoni paketat e nevojshme
Ne IMPORTOJM ALL T ALL GJITHA PAKETAT E NEVOJSHME
nga picamera.array import PiRGBArray #Pasi ka një problem zgjidhjeje në mjedër pi, nuk do të jetë në gjendje të kapë korniza nga VideoCapture
nga picamera import PiCamera import RPi. GPIO si GPIO import import time numpy si np
TANI ND SRMBLEJM HARDWARE DHE CAKTOJM KINJET E LIDHURA ME PI MJEDRS
GPIO.setmode (GPIO. BOARD)
GPIO_TRIGGER1 = 29 #Sensori tejzanor i majtë
GPIO_ECHO1 = 31
GPIO_TRIGGER2 = 36 #Sensori tejzanor para
GPIO_ECHO2 = 37
GPIO_TRIGGER3 = 33 #Sensor tejzanor i drejtë
GPIO_ECHO3 = 35
MOTOR1B = 18 #Motor i majtë
MOTOR1E = 22
MOTOR2B = 21 #Motor i drejtë
MOTOR2E = 19
LED_PIN = 13 #Nëse e gjen topin, atëherë do të ndriçojë led -in
# Vendosni kunjat si dalje dhe hyrje
GPIO.setup (GPIO_TRIGGER1, GPIO. OUT) # Shkaktoj GPIO.setup (GPIO_ECHO1, GPIO. IN) # Echo GPIO.setup (GPIO_TRIGGER2, GPIO. OUT) # Trigger GPIO.setup (GPIO_ECHOIN (GPIO_ECHO2) GPIO_TRIGGER3, GPIO. OUT) # Shkaktoni GPIO.setup (GPIO_ECHO3, GPIO. IN) GPIO.setup (LED_PIN, GPIO. OUT)
# Vendosni shkasin në False (E ulët)
GPIO.putput (GPIO_TRIGGER1, False) GPIO.output (GPIO_TRIGGER2, False) GPIO.output (GPIO_TRIGGER3, False)
KY FUNKSION P USRDOR T ALL GJITH SENSORT ULTRASONIK CO Mbledhni distancën nga objektet rreth bots sonë
# Lejo që moduli të vendoset
def sonar (GPIO_TRIGGER, GPIO_ECHO): fillimi = 0 ndalim = 0 # Vendosni kunjat si dalje dhe hyrje GPIO.setup (GPIO_TRIGGER, GPIO. OUT) # Shkaktoni GPIO.setup (GPIO_ECHO, GPIO. IN) # Echo # Vendosni shkas në False (E ulët) GPIO.output (GPIO_TRIGGER, False) #Lejo që moduli të rregullojë kohën. Gjumë (0.01) #ndërkohë distancë> 5: #Dërgo pulsin 10us për të shkaktuar GPIO. Dalje (GPIO_TRIGGER, E vërtetë) kohë. Fjetje (0.00001) GPIO. dalja (GPIO_TRIGGER, False) filloj = koha.kohë () ndërsa GPIO.input (GPIO_ECHO) == 0 dhe koha.kohë ()
P GRFSHITJA E MOTORSVE DC P TOR T W PUN ME PI MJEDRS
GPIO.setup (MOTOR1B, GPIO. OUT)
GPIO.setup (MOTOR1E, GPIO. OUT)
GPIO.setup (MOTOR2B, GPIO. OUT) GPIO.setup (MOTOR2E, GPIO. OUT)
P DRCAKTIMI I FUNKSIONEVE P TOR T VEPRUAR ROBOTIN DHE LAKVIZJEN E TIJ N IN DREJTIMET E NDRYSHME
def përpara ():
GPIO.putput (MOTOR1B, GPIO. HIGH) GPIO.output (MOTOR1E, GPIO. LOW) GPIO.output (MOTOR2B, GPIO. HIGH) GPIO.output (MOTOR2E, GPIO. LOW) def reverse (): GPIO.putput (MOTOR1, GPIO. LOW) GPIO.output (MOTOR1E, GPIO. HIGH) GPIO.output (MOTOR2B, GPIO. LOW) GPIO.output (MOTOR2E, GPIO. HIGH) def rightturn (): GPIO.output (MOTOR1B, GPIO. LOW) GPIO.output (MOTOR1E, GPIO. HIGH) GPIO.output (MOTOR2B, GPIO. HIGH) GPIO.output (MOTOR2E, GPIO. LOW) def leftturn (): GPIO.putput (MOTOR1B, GPIO. HIGH) GPIO.output (MOTOR1), GPIO. LOW) GPIO.putput (MOTOR2B, GPIO. LOW) GPIO.putput (MOTOR2E, GPIO. HIGHT)
def stop ():
GPIO.putput (MOTOR1E, GPIO. LOW) GPIO.output (MOTOR1B, GPIO. LOW) GPIO.output (MOTOR2E, GPIO. LOW) GPIO.output (MOTOR2B, GPIO. LOW)
B MRJA E PUNKS S MODULIT TAM KAMERAS DHE RREGULLIMI I PETRGJITHSHME
#KAPTURA E KAMERS
# inicializoni kamerën dhe merrni një referencë për kamerën e parë të kapjes së kamerës = PiCamera () camera.resolution = (160, 120) camera.framerate = 16 rawCapture = PiRGBArray (kamera, madhësia = (160, 120)) # lejoni kamerën për kohën e ngrohjes. gjumi (0.001)
TANI ZBATIMI I GJITH GJERS KU BOT P FRSHKRON topin dhe shmangni çdo pengesë në rrugën
ndërsa (1 <10): { #distanca që vjen nga distanca e sensorit tejzanor para C = sonar (GPIO_TRIGGER2, GPIO_ECHO2) #distanca që vjen nga distanca e djathtë e sensorit tejzanor, GPIO_ECHO1) nëse (distancaC = 8: kthimi djathtas () koha. Gjumi (0.00625) ndale () koha. Gjumi (0.0125) përpara () koha. Gjumi (0.00625) ndalesa () koha. Gjumi (0.0125) #ndërkohë që gjenden == 0: leftturn () time.sleep (0.00625) elif distance L> = 8: leftturn () time.sleep (0.00625) stop () time. Sleep (0.0125) përpara () time.sleep (0.00625) stop () time.sleep. distanceC> 10): #sjell koordinatat e topit në qendër të boshtit imagjinar të kamerës. nëse (centre_x = 20): if (centre_x0): flag = 1 majtas () kohë. fle (0.025) përpara () kohë. fle (0.00003125) ndale () koha. gjumi (0.00625) tjetër: ndale () koha. gjumi (0.01)
tjeter:
#nëse e gjen topin dhe është shumë afër ndriçon led -in. GPIO.output (LED_PIN, GPIO. HIGH) time.sleep (0.1) stop () time.sleep (0.1) # cv2.imshow ("barazim", kornizë) rawCapture.truncate (0) # pastroni rrjedhën në përgatitje për kuadri tjetër}
BONI PASTRIMET E NEVOJSHME
GPIO.cleanup () #pa pagesë të gjitha kunjat e GPIO
Hapi 8: Lidhjet e jashtme
Lidhje me videon demonstruese: kliko këtu (Youtube)
Lidhja me Kodin në Git-hub: klikoni këtu (Git-Hub)
Recommended:
Sistemi i Ndjekjes së Lëvizjes së Kokës për VR: 8 hapa
Sistemi i Ndjekjes së Lëvizjes Head për VR: Emri im është Sam KODO, Në këtë tuto, unë do t'ju mësoj hap pas hapi se si të përdorni sensorët Arduino IMU për të ndërtuar sistemin e përcjelljes së kokës për VR. Në këtë projekt do t'ju duhet: - Një ekran HDMI HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac…- Një
Fobi i Ndjekjes Mandaloriane të MVRK: 8 hapa (me fotografi)
Fobi i Ndjekjes Mandaloriane të MVRK: It’sshtë 4 Maji, i njohur ndryshe si Dita e Luftërave të Yjeve, një festë shumë e afërt dhe e dashur për zemrat tona. Këtë vit vendosëm ta festonim pak më ndryshe se vitet e kaluara. Me një teknologji eksperimentale dhe projekt-krijues, ne morëm një qasje komplekse dhe turne
Vëzhgimi dhe Programimi i Ndjekjes së Veprimtarisë Vibruese të Veshur me ATtiny85 ATtiny85 Me Arduino Uno: 4 Hapa (me Fotografi)
Vëzhgimi dhe Programimi i Aktiviteteve Vibruese të Veshshme të Veshshme ATtiny85 & Programimi ATtiny85 Me Arduino Uno: Si ta bëni orën e ndjekjes së aktivitetit të veshur? Kjo është një vegël e veshur e krijuar për të dridhur kur zbulon stanjacion. A e kaloni shumicën e kohës tuaj në kompjuter si unë? A jeni ulur për orë të tëra pa e kuptuar? Atëherë kjo pajisje është f
Roboti i ndjekjes së zjarrit: 6 hapa (me fotografi)
Roboti i Ndjekjes së Zjarrit: Në këtë projekt, ne do të krijojmë një robot zjarrfikës që ndjek flakën dhe e shuan atë duke i fryrë ajrit nga një tifoz. Pasi të keni mbaruar me këtë projekt, do të dini se si të përdorni sensorët e flakës me PICO, si të lexoni vlerën e tyre të prodhimit
Roboti i balancimit / Roboti me 3 rrota / Roboti STEM: 8 hapa
Roboti i Balancimit / Roboti me 3 Rrota / Robot STEM: Ne kemi ndërtuar një robot të balancuar të kombinuar dhe 3 rrota për përdorim arsimor në shkolla dhe programe arsimore pas shkollës. Roboti bazohet në një Arduino Uno, një mburojë me porosi (të gjitha detajet e ndërtimit të dhëna), një paketë baterie Li Jon (të gjitha të ndërtuara