Innholdsfortegnelse:

Computer Vision Controlled Rullestol Med Mannequin: 6 trinn (med bilder)
Computer Vision Controlled Rullestol Med Mannequin: 6 trinn (med bilder)

Video: Computer Vision Controlled Rullestol Med Mannequin: 6 trinn (med bilder)

Video: Computer Vision Controlled Rullestol Med Mannequin: 6 trinn (med bilder)
Video: Собачий депутат ► 3 Прохождение Fatal Frame: Mask of the Lunar Eclipse 2024, Juli
Anonim
Image
Image
Datavisjonskontrollert rullestol med mannequin
Datavisjonskontrollert rullestol med mannequin
Datavisjonskontrollert rullestol med mannequin
Datavisjonskontrollert rullestol med mannequin

Prosjekt av AJ Sapala, Fanyun Peng, Kuldeep Gohel, Ray LC. Instruerbar av AJ Sapala, Fanyun Peng, Ray LC.

Vi laget en rullestol med hjul kontrollert av et Arduino -bord, som igjen styres av en bringebærpi som kjører openCV via Processing. Når vi oppdager ansikter i openCV, beveger vi motorene mot den, snur rullestolen slik at den vender mot personen, og mannekinen (gjennom munnen) vil ta et veldig skummelt bilde og dele det med verden. Dette er ondt.

Trinn 1: Design, prototype og skjema for rullestolen

Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen
Design, prototype og skjema for rullestolen

Det første konseptet var basert på ideen om at et flyttbart stykke vil kunne spionere på intetanende klassekamerater og ta stygge bilder av dem. Vi ønsket å kunne skremme folk ved å bevege oss mot dem, selv om vi ikke forventet at de motoriske mekaniske problemene skulle være så vanskelige. Vi vurderte funksjoner som ville gjøre stykket så engasjerende (på en ond måte) som mulig, og bestemte oss for å implementere en mannequin på en rullestol som kan bevege seg mot mennesker som bruker datasyn. En prototype av resultatet ble laget av AJ av tre og papir, mens Ray og Rebecca fikk OpenCV til å kjøre på en bringebærpi, og sørget for at ansikter kan påvises pålitelig.

Trinn 2: Materialer og oppsett

Materialer og oppsett
Materialer og oppsett
Materialer og oppsett
Materialer og oppsett
Materialer og oppsett
Materialer og oppsett

1x rullestol (https://www.amazon.com/Medline-Lightweight-Transpo…

2x scootermotorer

2x Cytron motorbrett

1x arduino UNO R3 (https://www.amazon.com/Arduino-Uno-R3-Microcontrol…

1x bringebær pi 3 (https://www.amazon.com/Raspberry-Pi-RASPBERRYPI3-M…

1x bringebær pi kamera v2 (https://www.amazon.com/Raspberry-Pi-Camera-Module-…

1x 12v oppladbart batteri

kryssfiner

L-braketter

gummigulv

Trinn 3: Fremstilling av motor til rullestolfeste og mannequinhode

Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode
Fremstilling av motor til rullestolfeste og mannequinhode

AJ produserte et apparat som fester scootermotorene (2) til bunnen av rullestolen og festet stigningsbraketten til et skreddersydd gummirem. Hver motor er installert separat og er festet til et tilsvarende hjul. To hjul, to motorer. Motorene blir deretter matet med strøm og jordet gjennom to Cytron -motorkort til Arduino (1) til Raspberry Pi (1), alle elementene drives av et 12 volt oppladbart batteri (1). Motorapparatene ble laget med kryssfiner, L-braketter, firkantede beslag og trefester. Ved å lage en trebøyle rundt selve motoren, var det mye enklere å installere motoren på bunnen av rullestolen og kunne flyttes for å stramme tannremmen. Motorenhetene ble installert ved å bore gjennom rullestolens metallramme og boltet treet til rammen med L-braketter.

Registerreimene var laget av gummigulv. Gummigulvet hadde en stigning som allerede hadde samme størrelse som motorens roterende brakett. Hvert stykke ble trimmet til den bredden som fungerer med motorens roterende brakett. Hvert stykke kuttgummi ble smeltet sammen og dannet et "belte" ved å slipe den ene enden og den motsatte enden og bruke en liten mengde Barge -lim for å koble til. Lekter er veldig farlig, og du må bruke maske mens du bruker den, også bruk ventilasjon. Jeg laget flere varianter av tannremstørrelsene: supertette, tette, moderate. Beltet måtte deretter kobles til hjulet. Selve hjulet har en liten overflate på basen som følger med et belte. Denne lille plassen ble økt med en pappsylinder med registerreimgummi som var varmt limt til overflaten. På denne måten kan tannremmen ta tak i hjulet for å hjelpe det å snurre synkronisert med den roterende scootermotoren.

AJ laget også et dummyhode som integrerer Raspberry Pi sin kameramodul. Ray brukte dummyhodet og installerte Pi -kameraet og -kortet i dummyens munnregion. Spor ble opprettet for USB- og HDMI -grensesnittene, og en trestang brukes til å stabilisere kameraet. Kameraet er montert på et tilpasset 3D-trykt stykke som har et vedlegg for 1/4-20 skruer. Fil er vedlagt (vedtatt for passform av Ray fra thingaverse). AJ laget hodet ved hjelp av papp, gaffatape og en blond parykk med markører. Alle elementene er fremdeles i prototypetrinn. Dummyhodet ble rigget til kroppen til en kvinnelig utstillingsdukke og plassert i setet til rullestolen. Hodet ble festet til utstillingsdukken med en pappstang.

Trinn 4: Skrive og kalibrere koden

Skrive og kalibrere koden
Skrive og kalibrere koden
Skrive og kalibrere koden
Skrive og kalibrere koden

Rebecca og Ray prøvde først å installere openCV direkte på raspi med python (https://pythonprogramming.net/raspberry-pi-camera-… men det ser ikke ut til å fungere live. Til slutt etter mange forsøk på å installere openCV ved hjelp av python og mislyktes, bestemte vi oss for å gå Processing på pi fordi openCV -biblioteket i Processing fungerer ganske bra. Se https://github.com/processing/processing/wiki/Rasp… Vær også oppmerksom på at det fungerer med GPIO -portene som vi deretter kan bruke til å kontrollere arduinoen ved hjelp av seriell kommunikasjon.

Ray skrev datavisjonskoden som er avhengig av xml -filen som er vedlagt for å oppdage ansikter. I utgangspunktet ser det om midten av ansiktets rektangel er til høyre eller venstre for midten, og beveger motorene i motsatte retninger for å rotere stolen til ansiktet. Hvis ansiktet er nært nok, stoppes motorene for å ta et bilde. Hvis ingen ansikter blir oppdaget, stopper vi også for ikke å forårsake unødvendig skade (du kan endre funksjonaliteten hvis du synes det ikke er ondt nok).

Rebecca skrev Arduino -koden til grensesnitt med motorkortet ved hjelp av seriell kommunikasjon med prosessering på pi. De viktige nøklene er å åpne usb seriell port ACM0 til Arduino og koble bringebær pi til Arduino via en usb -kabel. Koble Arduino med en DC -motordriver for å kontrollere hastigheten og retningen til en motor, sende retning og hastighetskommandoer fra bringebær pi til Arduino. I utgangspunktet forteller Rays prosesseringskode motoren hastigheten den skal gå på mens Arduino gjør en god gjetning på varigheten av kommandoen.

Trinn 5: Integrer rullestolen, mannequin og kode og test

Image
Image
Integrer rullestolen, mannequin og kode og test
Integrer rullestolen, mannequin og kode og test
Integrer rullestolen, mannequin og kode og test
Integrer rullestolen, mannequin og kode og test

Ved å sette alle delene sammen fant vi ut at hovedproblemet var motorens tilkobling til rullestolens hjul, for tannremmen ville ofte gli av. Begge motorene ble installert med

rullestol opp ned for enklere installasjon. Begge motorene fungerte bra mens de var koblet til 12-volts batterikilde. Da selve rullestolen ble vendt oppreist, hadde motorene problemer med å flytte stolen bakover og fremover på grunn av vekten av selve stolen. Vi prøvde ting som å endre tannrembredder, legge pinner på sidene av beltet og øke drivkraften, men ingen fungerte pålitelig. Imidlertid var vi i stand til å demonstrere tydelig når ansiktene er på hver side av stolen, motorer vil bevege seg i riktig motsatt retning på grunn av ansiktsgjenkjenning med bringebær pi, slik at Processing og Arduino -kodene fungerer etter hensikten, og motorene kan styres på riktig måte. De neste trinnene er å lage en mer robust måte å kjøre hjulene på stolen og gjøre mannekinen stabil.

Trinn 6: Nyt din nye onde mannekin-rullestol

Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol
Nyt din nye onde mannequin-rullestol

Vi lærte mye om å lage motorer og drivere. Vi klarte å kjøre ansiktsgjenkjenning på en liten maskin med bringebærgrop. Vi fant ut hvordan du styrer motorer med motorbrett og måten motoren fungerer på. Vi lagde noen kule mannequiner og figurer og prototyper, og til og med la et kamera i munnen. Vi hadde det gøy som et lag som gjorde narr av andre mennesker. Det var en givende opplevelse.

Anbefalt: