Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Príbeh
Urobil som tento projekt, aby som sa naučil spracovanie obrazu pomocou Raspberry PI a otvoreného CV. Aby bol tento projekt zaujímavejší, použil som dva servomotory SG90 a pripevnil naň kameru. Jeden motor slúžil na pohyb horizontálne a druhý motor na pohyb vertikálne.
Zásoby
Úplný zápis
Sledovanie objektov na základe detekcie farieb
1. Nainštalujte Raspbian Strech na Raspberry 3B+
a. Pozrite si moje video na YouTube od: - do 15:10 do 16:42 - >>
b. Použite prevodník HDMI-VGA na prepojenie RPI s monitorom a klávesnicou USB a myšou.
c. Spustite pracovnú plochu RPI a postupujte podľa ďalšieho kroku.
d. Ak ste začiatočník, odporúčame použiť monitor, pretože priamy prístup k PI je pre nováčikov ľahký.
2. Nainštalujte Open CV na RPI3B+
a.
b. Trvaný čas:- Približne 8 a viac hodín
c. Strávim dva dni na dokončenie tohto procesu (20 hodín), takže buďte zanietení a pokojní.
3. Nainštalujte knižnicu PCM9685 na Raspberry PI.
a. Referenčná dokumentácia:-https://learn.adafruit.com/adafruit-16-channel-servo-driver-with-raspberry-pi?view=all
b. Skontrolujte konektivitu PCM9685 i2c s RPI
i. Spustite:-sudo apt-get install python-smbus
ii. Spustite:-sudo apt-get install i2c-tools
iii. Spustite: - sudo i2cdetect -y 1
1. Obrázok úspešnej komunikácie s PCM9685
c. Otvorte terminál a spustite: - zdroj ~/.profile #, aby ste vstúpili do virtuálneho prostredia.
d. Otvorte terminál a spustite:-pip3 install adafruit-circuitpython-servokit
e. Nikdy nepoužívajte „sudo“, inak sa stretnete s problémom, pretože pomocou „sudo“sa nenainštaluje knižnica vo vašom virtuálnom prostredí.
f. Kontroluje sa servo
i. Otvorte python3 a zadajte nižšie uvedené príkazy.
ii. z adafruit_servokit importujte ServoKit
iii. sada = ServoKit (kanály = 16)
iv. kit.servo [0].angle = 90
v. kit.servo [0].angle = 180
vi. kit.servo [0].angle = 0
4. Detail pripojenia:-
a. Pripojte 5VDC k PCM9685 (pre servo prevádzku je potrebné externé 5V)
b. / Pripojte kolíky napájania PC9685 I2C a logiku k pinom RPI.
c. Pripojte dve servá k PCM9685
5. Kontrola serva
a. Na kontrolu servo som pripravil 4 súbory (180.py, 90.py, 0.py).
i. Na 0 stupňov. (Oba servo na 0 stupňoch).
ii. Na 90 stupňov. (Oba servo na 90 stupňoch).
iii. Na 180 stupňov. (Oba servo na 180 stupňoch).
iv. Zdrojový kód ()
6. Nainštalujte PI kameru na konektor kamery a namontujte servo podľa popisu v návode.
a. URL výukového programu:-
7. Spustite kód sledovania objektov (sťahujte z:-)
8. Otvorte terminál
a. Spustiť: - zdroj ~/.profile.
b. Spustiť: - workon cv.
c. Pred príkazom terminálu skontrolujte „(CV)“.
d. Spustite kód sledovania objektov:- „cesta k umiestneniu vášho súboru“/python3. ‘názov súboru’
e. Na ukončenie stlačte:- Esc
Krok 1: Práca na projekte:-
- Obrázok zachytený kamerou RPI a spracovaný v pythone pomocou openCV.
- Nasnímaný obrázok sa prevedie z RGB na HSV.
- Použiť masku pre konkrétnu farbu (v mojom konečnom kóde som použil ČERVENÚ farbu a na nájdenie presnej hodnoty maskovania sa používa špeciálny kód, ktorý je tiež pripojený).
- Hľadanie obrysov pre všetky červené objekty v ráme.
- Nakoniec zoradením a výberom prvých vrstevníc získate najvhodnejší červený objekt v rámci.
- Nakreslite obdĺžnik na objekt a nájdite vodorovný a zvislý stred obdĺžnika.
- Skontrolujte rozdiel medzi horizontálnym stredom rámu a horizontálnym stredom objektu.
- Ak je rozdiel väčší ako nastavená hodnota, začnite pohybovať horizontálnym servom, aby ste minimalizovali rozdiel.
- Rovnakým spôsobom môžeme pohybovať vertikálnou osou a nakoniec sledovanie objektu funguje na 180 stupňov.
Krok 2: Príprava RPI:- Čas sprievodcu nastavením je:- 15:10 až 16:42 vo videu YouTube
Stiahnite si Raspbian Streach a vytvorte ho na 32 GB pamäťovej karte. URL: -https://downloads.raspberrypi.org/raspbian_full_latest.
Po stiahnutí obrázku Raspbian ho rozbaľte a uložte na plochu (alebo vhodné miesto).
Ak chcete napísať obrázok na kartu SD, stiahnite si Eatcher.
URL:
Pripojte kábel HDMI k VGA k RPI a LCD monitoru.
Pripojte klávesnicu a myš USB a zapnite PI pomocou napájacieho adaptéra (2,5 amp.)