Heisann! Da er prosjektet ved veis ende og vi har lært veldig mye!
Speilet vårt fungerte tildels som vi ønsket, selv om vi har møtt på en del problemer på veien. Blant annet var det faktisk et stort problem med klokken på raspberryen, heldigvis lot dette seg fikse med en modul som sjekket klokken mot internett.
I tillegg ble vi nødt til å kjøre Python-scriptet vårt i flere prosesser eller tråder. Dette var fordi vi ønsket å kunne kontrollere skuffene utenom interfacet til speilet. Dette bøy også på litt problemer i starte, men etter grundig research kom det i orden! (:D)
Vårt kanskje aller største problem er nøyaktigheten til OpenCV og ansiktsgjenkjenning-programmet. Dette virker veldig unøyaktig, dessverre. Vi har fått den til å skille mellom Stian og John Morgan, og det virker som den klarer det i mange av tilfellene. Dersom vi bruker et annet rom, eller bare forandrer litt på lyset (i forhold til bildene i “databasen”) blir den usikker og feilmarginen blir vesentlig høyere! Dette er nok datas største forbedringspotensiale.
Programmet starter selvsagt ved boot, så dersom noe skulle skje, er der bare å dra ut – og plugge inn igjen strømkontakten. Dette er gjort for at vi ikke har mulighet til å koble til tastatur eller mus, og fordi systemet blir smartere, fordi det kjører av seg selv.
Vi fikk også litt arduino-erfaring av prosjektet. Dette fordi det også krevde litt arduino-kode og forståelse for at raspberry pien skulle kunne operere arduinoen rett fra et python-script.
I ettertid vil jeg påstå at det var litt dumt at vi ikke koblet i et trådløst tastatur + mus til Raspberrien. Skulle det oppstå problemer eller behov for å endre koden er vi pr. tid avhengige av å skru opp hele speilet – fjerne skjermen – jobbe på arduino + rpi. I alt: 14 skruer. Mange småting kunne enkelt blitt fikset ved å bruke skjermen gjennom speilet.
Kort om koden.
Som nevnt er hovedscriptene som kjører ved boot, starter programmer, styrer arduino – laget i Python. Selve interfacet til speilet er laget i Javascript i sammarbeid med CSS. Electron er brukt for å sikre miljøet programmet kjører i. Under følger en link til gitHub hvor koden ligger tilgjengelig.
(Link til kode finner du her)
Elektro
Hovedansvaret til oss i elektro var først og fremst steppermotorene. Dette krevde sin tid, da ingen av oss hadde rørt en Arduino på noen år, og vi holdt på en stund men en mindre motor for å finne ut at den ikke ville rikke på skapdørene. Heldigvis, med små modifikasjoner av koden kunne de større og krafitgere motorene brukes akurat som de gamle.
Koden bruker et publisert bibliotek for akselerasjon av steppermotorer som finnes her , og har handlinger som utføres etter spesielle krav. Vi skulle også finne en måte å tilføre strøm til alle komponentene på. Her kunne vi selvfølgelig gjort det avansert, som å lage egne spenningsomformere, men for enkelthetens skyld valge vi å bruke det mest kompakte som allerede finnes på markedet: ladere. Med dette kunne vi benytte oss av en 3 veis forgreningskontakt, å bruke 230V spenningskilde som finnes i alle hus. Dette var fint fordi skjermen som brukes krever 230V inn, laderen får 230V inn og 5V/2,4A ut, noe som kreves for å drifte rasberryen, og til slutt omforming av 230V til 12V/1.5A for å gi motorene det de trengte.
Vi har fått et godt innblikk i hvordan det er å jobbe som ingeniører. Spesielt utfordringer man møter på. Prosessen handlet ikke bare om å drive motorene eller hvordan vi skulle tilføre strøm til systemet, men det hele var et tett samarbeid med maskin for å løse designutfordringer som tilfredsstilte både elektronikken og funksjonen til skapet. Vi måtte også samarbeide med data for å flette funksjoner sammen, og at det hele ble kontrollert av én master.
Maskin
Mye morsom maskin-jobb i dette prosjektet. Ekstra moro er det at slutt-produktet vårt er slik vi tegnet det i SolidWorks helt i starten. Vi har bygget det etter våre egne tegninger, og det viste seg å fungere veldig greit.
Vi har selvfølgelig også støtt på noen problemer. For eksempel hadde vi litt trøbbel med skinnene og skuffene. Vi var nødt til å slipe litt mer på kanten så skuffene fikk gå uforhindret inn igjen.
Vi har lært mye om at ting svært ofte kan se enkelt og pent ut i 3D, men når det skal maskineres og produseres er både metodene og utstyret som benyttes helt avgjørende for sluttresultatet
Motorene er plassert nederst i skapet med hjul som dytter på undersiden av skuffen (som er belagt med anti-skli tape) dette har skjedd i samarbeid med elektrostudentene som sikret at motorer satt rett, gjorde jobben sin og fungerte som de skulle.
Vi hadde et tett samarbeid med data slik at designet på det brukeren ser skulle gå i ett fra både fysisk design og UI. Dette var selvsagt utfordrende, men veldig spennende og lærerikt for begge retninger.
Utvikling og planer videre:
I starten hadde vi selvsagt mange andre ideer også. For eksempel ønsket vi å ha en nettradio koblet til interfacet. Her følger en liste over ideer vi hadde, og som er mulig som utvidelse av produktet:
- Musikk
- Radio
- Interaktive widgets
- Været
- 9gag
- Nettaviser
- Justerbart speil (justerer seg opp og ned etter personens høyde *
- Interaktive skuffer
- Høytallere
- Kamera
- Mikrofon
- Integrert Spotify
- Bluetooth
- Nett-tilgang
- Påminnelse om å pusse tenner/ta medisiner
- Speilet skal ikke kunne åpnes/brukes hvis det kommer uvedkommende personer inn på badet
- Youtube
- Lys som skifter farge (LED)
- Siri-integret/Google Now
- Svare på meldinger ved hjelp av tale
- Hvis noen banker på badedøra så får du opp bilde av hvem som står der
Konklusjon:
Vi har som nevnt lært utrolig mye fra prosjektet. Vi fikk ekstremt frie tøyler, noe som i seg selv er ganske uvant i en studentsituasjon. Grunnen til vi har lært så mye, er fordi vi har vært veldig flinke på å inkludere alle fagretninger i alle prosesser. Elektro har bistått veldig med montering og bygging av skapet, data-studentene har fått litt elektro-erfaring samtidig som vi også har fått være med å bygge konstruksjonen og maskingutta har lært en del programmering og fylt på kunnskapen sin på arduino. Alle har interessert seg for de andre fagretningene og jeg tror virkelig at læringsutbytte har vært større på grunn av dette.
Til slutt noen bilder:
~Team magicMirror