![KASVON SEURANTA ARDUINOA KÄYTTÄMÄLLÄ: 7 vaihetta KASVON SEURANTA ARDUINOA KÄYTTÄMÄLLÄ: 7 vaihetta](https://i.howwhatproduce.com/images/002/image-3516-39-j.webp)
Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-23 14:41
![KASVOJEN SEURANTA ARDUINOA KÄYTÄN !!! KASVOJEN SEURANTA ARDUINOA KÄYTÄN !!!](https://i.howwhatproduce.com/images/002/image-3516-40-j.webp)
Edellisessä ohjeessa kerroin, kuinka voit kommunikoida Arduinon ja Pythonin välillä käyttämällä pyserial -moduulia ja ohjata LEDiä. Jos et ole nähnyt sitä, katso se täältä: ARDUINON JA PYTHONIN VÄLITYS!
Ja kuinka voit tunnistaa esineen värin ja seurata sitä näytöllä, tarkista se täältä: VÄRITUNNISTUS OPENCV: N JA PYTHONIN KÄYTTÖÄ käyttäen.
Tässä opetusohjelmassa näytän sinulle, kuinka voit seurata kasvoja Arduino & Pythonin avulla ja saada kamera seuraamaan kasvoja. Tämä voi kuulostaa vaikealta, mutta usko minua, että se ei ole, tarvitset vain perustiedot Arduinosta ja Pythonista.
Aloitetaan siis…
Vaihe 1: Tarvitsemasi asiat:
![Tarvitsemasi asiat Tarvitsemasi asiat](https://i.howwhatproduce.com/images/002/image-3516-41-j.webp)
![Tarvitsemasi asiat Tarvitsemasi asiat](https://i.howwhatproduce.com/images/002/image-3516-42-j.webp)
![Tarvitsemasi asiat Tarvitsemasi asiat](https://i.howwhatproduce.com/images/002/image-3516-43-j.webp)
Vaatimukset ovat vähimmäisvaatimukset. Tässä olen antanut osaluettelon kaikesta mitä tarvitset:
Laitteistovaatimus:
- Arduino UNO (Amazon USA / Amazon EU)
- Verkkokamera (Amazon USA / Amazon EU)
- Servot x 2 (Amazon USA / Amazon EU)
- Leipälauta (Amazon USA / Amazon EU)
- Servo Pan Tilt Kit (Amazon USA / Amazon EU)
Ohjelmistovaatimus:
- Python 2.7 (pitäisi asentaa, Linux-käyttöjärjestelmässä se on yleensä esiasennettu)
- OpenCV (Voit ladata sen erikseen tai asentaa käyttämällä '' pip install '' - selitystä)
- pyserial (voidaan asentaa pipillä)
- numpy.
- Haarcascade.
Kun kaikki asiat on koottu, voimme siirtyä asennusvaiheeseen…
Vaihe 2: Python-ympäristön määrittäminen:
![Python-ympäristön määrittäminen Python-ympäristön määrittäminen](https://i.howwhatproduce.com/images/002/image-3516-44-j.webp)
![Python-ympäristön määrittäminen Python-ympäristön määrittäminen](https://i.howwhatproduce.com/images/002/image-3516-45-j.webp)
![Python-ympäristön määrittäminen Python-ympäristön määrittäminen](https://i.howwhatproduce.com/images/002/image-3516-46-j.webp)
Pythonin asentaminen:
Joten ensin tarvitsemme Python 2.7: n käyttöön. Voit tehdä tämän ensin lataamalla ja asentamalla python 2.7.14. Tarkistaaksesi, onko se asennettu oikein Siirry: Windows -haku >> Kirjoita "IDLE" >> Paina Enter. Python Shellin pitäisi avautua.
TAI
Kirjoita hakuun "CMD" ja avaa komentokehote painamalla Enter. CMD -tyypissä >> python ja paina Enter, Python -käyttöliittymän pitäisi näkyä.
Jos näet virheen CMD: ssä, älä paniikkia, sinun on todennäköisesti asetettava ympäristömuuttuja. Voit seurata tätä opetusohjelmaa täällä ympäristömuuttujan määrittämiseen.
'Pyserial', 'OpenCV' ja 'numpy' asentaminen pythoniin:
Näiden moduulien asentamiseen käytämme pip install, Avaa ensin CMD ja kirjoita seuraavat koodit:-
pip -asennussarja
pip install opencv-python> pip install numpy
nämä komennot asentavat tarvittavat moduulit. Nyt voimme siirtyä koodausosaan …
Vaihe 3: Python -skripti:
![Python -skripti Python -skripti](https://i.howwhatproduce.com/images/002/image-3516-47-j.webp)
Ennen kuin aloitat koodin kirjoittamisen, sinun on ensin tehtävä uusi kansio, koska kaikki koodit on tallennettava samaan kansioon. Luo siis uusi kansio, nimeä se mitä haluat. ja lataa "Haarcascade" alta ja liitä se kansioon.
Avaa nyt muistio ja kirjoita alla oleva komentosarja, Tallenna se nimellä face.py samaan kansioon kuin haarcascade. (Voit ladata antamani koodin alla olevasta tiedostosta):
#tuoda kaikki vaaditut moduulit
import numpy np tuonti sarjatuonti aika tuonti sys tuonti cv2 #Setup Tiedonsiirtopolku arduinoon (COM5: n sijasta aseta portti, johon arduino on kytketty) arduino = serial. Serial ('COM5', 9600) time.sleep (2) print ("Yhdistetty arduinoon…") #Haarcascaden tuominen kasvojentunnistukseen face_cascade = cv2. CascadeClassifier ('haarcascade_frontalface_default.xml') #Videovirran kaappaaminen verkkokamerasta. cap = cv2. VideoCapture (0) #Lue kaapattu kuva, muunna se harmaaksi kuvaksi ja etsi kasvot, kun 1: ret, img = cap.read () cv2.resizeWindow ('img', 500, 500) cv2.line (img, (500, 250), (0, 250), (0, 255, 0), 1) cv2.line (img, (250, 0), (250, 500), (0, 255, 0), 1) cv2.ympyrä (img, (250, 250), 5, (255, 255, 255), -1) harmaa = cv2.cvtColor (img, cv2. COLOR_BGR2GRAY) kasvot = face_cascade.detectMultiScale (harmaa, 1.3) # tunnista kasvot ja tee niiden ympärille suorakulmio. (x, y, w, h) kasvoille: cv2. suorakulmio (img, (x, y), (x+w, y+h), (0, 255, 0), 5) roi_gray = harmaa [y: y+h, x: x+w] roi_color = img [y: y+h, x: x+w] arr = {y: y+h, x: x+w} print (arr) print ('X: '+str (x)) print (' Y: '+str (y)) print (' x+w: '+str (x+w)) print (' y+h: '+str (y+h))) # Roin keskipiste (suorakulmio) xx = int (x+(x+h))/2 yy = int (y+(y+w))/2 print (xx) print (yy) center = (xx, yy) # tietojen lähettäminen arduino printille ("Suorakulmion keskipiste on:", keskellä) data = "X {0: d} Y {1: d} Z".muoto (xx, yy) print ("output = '" +data + "" ") arduino.write (data) #Näytä stream. cv2.imshow ('img', img) #Hit 'Esc' lopettaa suorituksen k = cv2.waitKey (30) & 0xff, jos k == 27: break
Kun tämä on tehty, kirjoita arduino -koodi…
Vaihe 4: Arduino -koodi:
![Arduino -koodi Arduino -koodi](https://i.howwhatproduce.com/images/002/image-3516-48-j.webp)
Kun python -skripti on valmis, tarvitsemme arduino -luonnoksen servon ohjaamiseksi. Katso alla oleva koodi, liitä se Arduino IDE: hen ja tallenna se nimellä "servo.ino" samaan kansioon kuin face.py ja haarcascade. lataa koodi ja siirry seuraavaan vaiheeseen yhteyden luomiseksi.
(Alla oleva ladattava tiedosto)
#sisältää
Servo servoVer; // Pystysuora servoservo servoHor; // Horisontaalinen servo int x; int y; int prevX; int edellinen; void setup () {Serial.begin (9600); servoVer.attach (5); // Kiinnitä pystysuora servo nastaan 5 servoHor.attach (6); // Kiinnitä vaakasuora servo nastaan 6 servoVer.write (90); servoHor.write (90); } void Pos () {if (prevX! = x || prevY! = y) {int servoX = kartta (x, 600, 0, 70, 179); int servoY = kartta (y, 450, 0, 179, 95); servoX = min (servoX, 179); servoX = max (servoX, 70); servoY = min (servoY, 179); servoY = max (servoY, 95); servoHor.write (servoX); servoVer.write (servoY); }} void loop () {if (Serial.available ()> 0) {if (Serial.read () == 'X') {x = Serial.parseInt (); if (Serial.read () == 'Y') {y = Serial.parseInt (); Pos (); }} while (Serial.available ()> 0) {Serial.read (); }}}
Vaihe 5: Pan-Tilt-mekanismi:-
![Kallistusmekanismi Kallistusmekanismi](https://i.howwhatproduce.com/images/002/image-3516-49-j.webp)
![Kallistusmekanismi Kallistusmekanismi](https://i.howwhatproduce.com/images/002/image-3516-50-j.webp)
Olen käyttänyt helposti saatavilla olevaa sarjaa Pan-Tiltille. Halutessasi voit tehdä sellaisen itse puu-/muovi- tai jopa 3D -tulostuksella.
Käyttämäni on melko halpa ja erittäin helppo koota. Jos kuitenkin haluat ohjeita sen tekemiseen, löydät sen täältä.
Vaihe 6: Yhteyksien luominen:
![Yhteyksien luominen Yhteyksien luominen](https://i.howwhatproduce.com/images/002/image-3516-51-j.webp)
![Yhteyksien luominen Yhteyksien luominen](https://i.howwhatproduce.com/images/002/image-3516-52-j.webp)
Circuit on melko yksinkertainen. Liitä vain kaksi servoa arduinoon.
- Pystysuora nastaan 5
- Vaakasuora nastaan 6
- Virta +5V
- Maasta GND: hen
Tarkista kytkentäkaaviosta.
Vaihe 7: TESTAUS:
- Kun kaikki on tehty, viimeinen asia on testata, toimiiko se. Testaa ensin varmistaaksesi, että servot on liitetty oikein arduinoon ja luonnos on ladattu.
- Kun luonnos on ladattu, sulje IDE, jotta portti voi muodostaa yhteyden pythoniin.
- Avaa nyt face.py Python IDLE: llä ja suorita koodi painamalla F5. Yhteyden muodostaminen arduinoon kestää muutaman sekunnin, ja sitten sinun pitäisi pystyä näkemään verkkokameran suoratoistoikkuna. Nyt koodi tunnistaa kasvosi ja servot seuraavat sitä seuratakseen sitä.
- Servon pitäisi liikkua, kun siirrät objektia. Kiinnitä nyt vain kamera servoihin, jotta se liikkuu servojen kanssa.
Kiitos.
Suositeltava:
Liikeanturin vesihana käyttämällä Arduinoa ja magneettiventtiiliä - DIY: 6 vaihetta
![Liikeanturin vesihana käyttämällä Arduinoa ja magneettiventtiiliä - DIY: 6 vaihetta Liikeanturin vesihana käyttämällä Arduinoa ja magneettiventtiiliä - DIY: 6 vaihetta](https://i.howwhatproduce.com/images/001/image-215-25-j.webp)
Liikeanturin vesihana käyttämällä Arduinoa ja magneettiventtiiliä - DIY: Tässä projektissa näytän sinulle, kuinka rakentaa liiketunnistimen vesihana magneettiventtiilin avulla. Tämä projekti voi auttaa sinua muuttamaan olemassa olevan manuaalisen vesihanan hanaksi, jota voidaan ohjata liiketunnistuksen perusteella. Käytetään IR -anturiliitäntää
GMail -ilmoitus käyttämällä ESP8266 Arduinoa ja OLEDia: 5 vaihetta
![GMail -ilmoitus käyttämällä ESP8266 Arduinoa ja OLEDia: 5 vaihetta GMail -ilmoitus käyttämällä ESP8266 Arduinoa ja OLEDia: 5 vaihetta](https://i.howwhatproduce.com/images/009/image-25916-j.webp)
GMail -ilmoitus ESP8266: n avulla Arduino ja OLED: Nykyään jokaisella koneella on joitain tietoja lähetettäväksi pilven yli ja tietojen on analysoitava ja tallennettava moniin tarkoituksiin. Samalla tietojen pitäisi olla myös analysaattorin saatavilla. Tämä voidaan tehdä käyttämällä IOT -konseptia. IOT on internet
ULTRASONINEN TUTKIJÄRJESTELMÄ ARDUINOA KÄYTTÄMÄLLÄ: 3 vaihetta
![ULTRASONINEN TUTKIJÄRJESTELMÄ ARDUINOA KÄYTTÄMÄLLÄ: 3 vaihetta ULTRASONINEN TUTKIJÄRJESTELMÄ ARDUINOA KÄYTTÄMÄLLÄ: 3 vaihetta](https://i.howwhatproduce.com/images/001/image-389-63-j.webp)
ULTRASONINEN TUTKIJÄRJESTELMÄ ARDUINOA KÄYTETTÄVÄ: Tässä kuvattu piiri osoittaa ultraäänipohjaisen tutkajärjestelmän toiminnan. Se käyttää ultraääni -anturia kohteen tunnistamiseen ja sen etäisyyden mittaamiseen ja pyörii servomoottorin mukaan. Kääntökulma näkyy 16x2 LCD -näytössä
Rakenna ensimmäinen IOT käyttämällä Arduinoa ilman lisämoduuleja: 5 vaihetta (kuvilla)
![Rakenna ensimmäinen IOT käyttämällä Arduinoa ilman lisämoduuleja: 5 vaihetta (kuvilla) Rakenna ensimmäinen IOT käyttämällä Arduinoa ilman lisämoduuleja: 5 vaihetta (kuvilla)](https://i.howwhatproduce.com/images/003/image-6606-69-j.webp)
Rakenna ensimmäinen IOT käyttämällä Arduinoa ilman lisämoduuleja: Maailma muuttuu älykkäämmäksi joka päivä, ja suurin syy tähän on älykkään tekniikan kehitys. Tekniikan harrastajana olet varmasti kuullut termistä IOT, joka tarkoittaa esineiden Internetiä. Esineiden internet tarkoittaa valvoa ja ruokkia
Roll ja Pitch Axis Gimbal GoProlle käyttämällä Arduinoa - Servo ja MPU6050 Gyro: 4 vaihetta
![Roll ja Pitch Axis Gimbal GoProlle käyttämällä Arduinoa - Servo ja MPU6050 Gyro: 4 vaihetta Roll ja Pitch Axis Gimbal GoProlle käyttämällä Arduinoa - Servo ja MPU6050 Gyro: 4 vaihetta](https://i.howwhatproduce.com/images/001/image-740-69-j.webp)
Roll and Pitch Axis Gimbal for GoPro käyttäen Arduino - Servoa ja MPU6050 Gyroa: Tämä ohje on luotu täyttämään Etelä -Floridan yliopiston Makecourse -projektin vaatimus (www.makecourse.com) Tämän projektin tavoitteena oli rakentaa 3-akselinen kippisarja GoProlle käyttämällä Arduino nano + 3 servomoottoria +