All posts by MagicMirror

Oppsummering fra team magicMirror


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
  • Facebook
  • 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:

20161207_181226-min
Raspberry Pi og Arduino pent plassert
20161207_181649-min
Motor til skuff
20161207_181949-min
Teamwork: siste finish
20161207_182510-min
Ferdig! Mangler bare speil-plate
20161207_183140-min
Pålegging av speil-platen! Ser virkelig bra ut

 

15320371_1426634200710636_2099870867_n
Bilde av produkt i monteringsanvisning
15354111_10209763838671562_1074923521_o
magicMirror

 

~Team magicMirror

Magic Mirror – hva skjuler seg bak speilet?

Et magisk speil er et speil som er så mye mer enn et speil. Det er et speil som kan kommunisere med deg. Vi vil vise dere hva som skjuler seg bak speilet.

2016-12-07-21-29-43

Som dere ser så er det supert til å ta selfier med, men det kan så mye mer.

2016-12-08-04-39-37

Øverst er det en skjerm som kan vise viktig informasjon valgt spesifikk for deg. Det er to skuffer som er motorisert. Nederst er drivverket.

2016-12-07-18-12-35-1

Bak skjermen ser hjernen til speilet, en Raspberry Pi. Under seg har den slave, en Arduino. Strømforsyningen er plassert for seg selv.

2016-12-07-18-12-45-1

Motoroppsettet består av en driver for steppermotor og steppermotoren. Ønsker du å lese mer om dette, ser vår tidligere post her

Følg med – snart kommer det store nyheter.

3D Modell og 2D tegninger

Her ligger 3D modellen som vi har laget av skapet. Denne viser hvordan selve skapet er bygget og satt sammen slik at man får en annen mening av hvordan skapet vil være når det er ferdig satt sammen fysisk. vi har under lagt ved alle 2D tegninger som brukes til å forstå hvordan hver enkel del er laget og hvordan disse må maskineres

Mappen med 3D modell og 2D tegninger ligger her:

https://drive.google.com/open?id=0B5HMzs9Q88IVa0NtR3l5REIyTHM

 

 

Interface begynner å ta form!

Heisann!

Datastudentene har jobbet en del med selve interfacet til speilstrukturen. Nå begynner det endelige produktet å ta form og det begynner virkelig å ligne noe! 🙂

Programmet er laget i Python, javascript og CSS. Det er brukt Electron for å skape et desktop-miljø og får å kjøre programmet fra start.

Her er et bilde fra speil-programvaren.

 

2016-12-06-122054_1680x1050_scrot
Screenshot av hovedprogrammet på speilet.

 

Test av to steppermotorer (med video)

Sist uke fikk tak i to nye steppermotorer og drivere fra skolen. Les mer her . I dag har vi testet motorene sammen med en Aurduino. Bildet under er hentet fra en utfyllende tutorial med kode. Link til den.

example4_bb

Vi koblet opp steppermotorene etter dette skjemaet – vær obs på å koble kretsene på steppermotor riktig – se forrige post.  Som strømforsyning til steppermotoren bruker vi en 12v batterieliminator som gir 1500mA. Den er kraftig nok til å drive begge motorene samtidig. Vi bruker Arduino biblioteket AccelStepper – det har støtte for både flere motorer og akselerasjon.

På videoen over kjører vi øvre motoren på 1/8 step og den nedre på 1/2 step. Koden er lik. Den øvre motoren beveger seg 4 ganger så langt på samme tid. Eneste forskjellen i oppsettet er at vi på driveren har valgt 1/8 step og 1/2 step. Motorene kan kjøres fram eller tilbake. De blir styrt av kommandoer fra Serial Monitor.

Nå er det bare å få montert motorene i speilskapet og få vår MagicMirror til å styre skuffene på en smart måte.

Skyveskap montert!

Det er motiverende å se at produktet begynner å ta form. Enda mer motiverende er det at målene stemmer så godt overens med slik vi har designet det i 3D. Det er ikke alltid dette er tilfelle, da spesielt når en kutter og skjærer materialene for hånd.  4Helse, miljø og sikkerhet er et svært aspekt av arbeidslivet. Derfor følte vi det også er viktig å ta hensyn til dette mens vi jobber med vårt produkt. 6Nedenfor ser dere et bilde av hvordan vi har tenkt at skyveskapet skal fungere. Det ledige rommet nederst benyttes til plassering av motor, mens de nødvendige kablene trekkes mellom skinnene. 1

Dere lurer muligens på hva det store tomrommet øverst skal benyttes til, og det finnes det et enkelt svar på:

De elektroniske komponentene samt kablene til Raspberry Pi, skjermen(e), kameraet og steppermotorene samles her og ledes videre til strømkilden.

3

 

 

Monteringen er i gang!

I dag har vi fått tak i materialene som skal brukes for å lage kassen og hyllene til MagicMirror.

Etter en del timer med oppmåling, tegning og saging fikk vi kuttet ut passende størrelser etter målene fra 3D-modell og satt disse sammen.

14937286_10209447326038944_1969589569776235521_n 14900412_10209447325678935_4425618241344357777_n

Da gjenstår det å sette sammen hyllene som tilhører kassen og montere skinner.

01.11.16

Hei alle sammen!

John Morgan og Stian fortsetter arbeidet med grensesnittet til speilet.

I dag har dagen gått med til å prøve å tilpasse grensesnittet slik vi ønsker at det skal fremstå på speilet. Vi sliter fremdeles litt med klokken på Raspberrien, men håper å ha en løsning på dette om ikke lenge.

Det begynner å ta form. Nå begynner snart arbeidet med å implementere systemet i skapet som maskinstudentene lager.

— Data