Monthly Archives: December 2015

Watering The Flowers – Not so watered…

I de siste par dagene har vi jobbet på spreng med å få bilen til å fungere som det skal og at alt skal være 0perfekt. En stor utfordring vi fikk var da vi skulle sende signalene fra Raspberry-Pi’en til Arduinoen. Seriebufferet fylte seg opp da det var delay i koden, dette ble løst med å finne en mer elegant løsning for clearing av bufferet og signalbehandlingen.

12364170_10153619007100783_1668999177_o

Vi har fått bilen til å fungere en hel gang med standardfunksjoner: Finne blomster, kjøre til dem og vanne de. Her er et lite eksempel på det.

Etter den første vellykkede testen gikk dessverre alt rett vest. Vi slet en stund med at forskjellige komponenter ikke fungere pga ikke nok strøm, og vi trengte etter hvert et nytt batteri. Det ble koblet om i hytt og pine, men det ble fortsatt ingen endring. Ikke før det begynte å ryke noen ganger fant vi ut at det var dårlige kabler som var synderen til problemene. Vi brukte mesteparten av gårsdagen på å prøve å fikse dette med kablene, til ingen nytte. Dette satte en stopper for resten av testingen av systemet. Det er funksjoner som enda ikke har blitt implementert i systemet pga dette. Hvis alt hadde gått bra i testingen hadde vi lagt til funksjoner som husker hvor hver enkelt plante er slik at den ikke bare vanner hvor som helst. Den skal også huske når den sist ble vannet slik at plantene ikke får for mye vann.

mindre

Da vi skulle teste systemet i morges, etter byttning av én kabel, fungerte alt! Det har vært veldig av og på om ting fungerer eller ikke med tanke på disse kablene, så forhåpningene er fortsatt ikke store om bilen kommer til å vanne slik vi vil. Etter mer testing viser det seg at kablene er fortsatt et problem. Etter én testkjøring brenner kablene gjennom plastiken, og de må byttes. Det er semi-funksjon på bilen, men den fungerer ikke helt som den skal. Koblingen og kablene har skyld i dette.

At bilen ikke kom til å fungere på presentasjonen syntes vi er kjempetrist. Vi har brukt mye tid på dette, og ville veldig gjerne vise at den fungerer og gjør det den skal.

Her er link til source koden vår.

Bilen har som oppdrag å finne og vanne blomster. Dette gjør den ved å bruke bildegjenkjenning til å detektere grønne planter. Hvis bilen finner noe grønt, kjører den dit til den er nærme nok til å sjekke om planten trenger vann og så vanner hvis den trenger vann. Den husker også denne posisjonen slik at den ikke vanner planten flere ganger. Bilen skal så rygge og fortsette å lete etter planter.

 

Takk for oss!

ShotBot. SISTE DAG FØR EKSAMEN!

Hei!

I dag er den siste dagen vi jobber med dette faget! Det har vært veldig spennende og lærerikt og det håper vi det har vært for alle de andre gruppene også. Vi vil bruke den siste anledningen til å fortelle dere om hvordan dette faget har vært for oss.

 Fortell litt om hvordan dette faget har vært for deg:

Vegard Smedsvik: “Faget har vært fullt av utfordringer og lærerike dager.  Gruppen har stått sammen i tykt og tynt, noe som har gjort at vi har hatt det mye gøy sammen. “.

Alexander Schinnes: “Det har vært et interessant fag  hvor vi har fått muligheten til å sette teorien vi har lært ut i praksis. Vi har møtt på flere utfordringer og bugs ettersom koden vokser, men har fått fikset opp i det meste. Det har vært morro å jobbe sammen om å skape et produkt!”.

Vegard Lia: “Jeg syns faget har vært bra. Veldig mye jobb, spesielt mot slutten, men veldig gøy. Bilen fungerer bra, og vi håper den gjør det også i morgen:) Den gjøre mye av det vi håpet den skulle gjøre når vi først satt oss ned en gang i august. Det var veldig mange rare problemer som var mye jobb og styr å finne ut av, og løsningen ga ikke alltid mening. Men, vi fikk til en bra løsning tilslutt.”

Henrik Bekkhus Solberg: “Smart Systems har vært et morsomt og utfordrende fag. Gruppa har fungert veldig bra og vært enig om stort sett det meste. Jeg føler at vi har et bra og morsomt prosjekt som svarer på oppgaven.   “.

Erik Hagen Nymoen: “Det har vært et veldig spennede og lærerikt fag. Gruppa jeg har vært med i har gjort prosjektet veldig interessant. Vi fant tidlig ut hva vi ville lage og vi har nådd dett målet. Mye arbeid i et godt arbeidsmiljø har gitt oss et bra resultat og jeg gleder meg til å vise fram hva vi har lagd. Det var mye press underveis i og med at en annen gruppa har et ganske likt konsept, men vi har gjort vår greie og håper det vil skille seg ut”.

0191bb3fbd4bf612c4cb97227bbc6bd6ff022ac5a0

Koblingskjema

Schematic

 

Her er arduino koden: (ShotBot – Code final) og QT koden: (link).

Lykke til alle sammen!

Hilsen ShotBot.

“There are no secrets to success. It is the result of preparation, hard work learning from failure.” – General Colin Powell

Uke 50-51

Grunnet andre eksamener skjedde det lite på starten av uke 50. En positiv ting som har skjedd er at vi endelig fikk en pakke vi hadde ventet på! Fordi USB dongelen vi fikk var litt vanskelig å jobbe med, bestilte vi en ny en som var simplere å programmere med. USB Host Shieldet er derimot litt vanskelig å ha med å gjøre, så vi fikk ikke brukt det.

Klikk her for koden til Arduinoen (Link).

ArduinoFinpuss
Finpussing av arduino koden/styringa

I forhold til ansiktsdeteksjonskoden, finpusses det som fungerer og vi ser om det er mulig å forbedre noe/legge til andre funksjoner. Vi fant også ut at det var mulig å få programmet til å finne ansikter raskere via en annen “tag”/”modus” enn den vi brukte, så vi bestemte oss for å bruke den istedenfor. Programmet starter nå også samtidig som raspberrien bootes, slik at programmet ikke trenger noen annen input enn at vi starter raspberrien.

Vi har også laget en tutorial for ansiktsdeteksjon, for å vise hva slags steg vi har gjort for å få koden vår til å fungere, som ligger som et eget innlegg. Koden ligger både der og på denne linken (Klikk her).

Bilen ble ferdig, og endte opp med å se slik ut, og spiller av lyd når den ser et ansikt:

FerdigProdukt
“Robofriend”

ShotBot. Oppdatering – 15.12.2015

Hei!

Nå har vi fikset delay på bluetooth’en. Når vi bruker paden nå så akselererer den uten delay og det er nice! Vi har lagd en kode som registrerer og lagrer fargekodene til hvert enkelt glass. I tilleg lagrer den hvor mange ganger de forskjellige glassene har blitt brukt og hva de er blitt fylt med. Denne statistikken skal være tilgjengelig på applikajsonen.

Gjennom appen skal vi kunne styre bilen, velge hvilken farge på glasset vi har og så hvilken shot som glasset skal fylles med. ShotBotten skal gi feedback til et chatvindu med commands. I tilleg skal den ha den nevnte statistikkfunskjonen. Så kan vi faktisk se om Smedsvik tok 10 eller 15 shot den kvelden.

Når man har valgt farge og shot vil platen med glassene rotere. Ved hjelp av en fargesensor vet den hvilket glass den skal stoppe på. Da vil pumpene fylle glasset og rotere 180 grader slik at man kan ta glasset opp.

IMG_0246– Flere av komponentene er enda ikke festet fordi de skal kun bruker midlertidig.

Hilsen ShotBot.

If you can dream it, you can do it” – Walt Disney

Veiledning for ansiktsdeteksjon vha Python og OpenCV

Step 1
Installere Raspian på minnekortet
https://www.raspberrypi.org/help/noobs-setup/
følg denne guiden.

Step 2

Oppdatere RPIen, OS og legge inn Open CV

Åpne terminal og skriv inn:
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update

Installere pi kamera:
sudo apt-get install python-picamera

Installere OpenCV:
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv

Step 3

Opprett en fil med filending .py f.eks. Video.py og kopier inn denne koden

Trykk her for kode(link)

Step 4

Åpne en terminal og naviger til mappen der du opprettet Video.py fila.

Skriv så i terminal : sudo python Video.py

Programmet vil starte og finne ansikter i video feeden den mottar fra Pi kameraet!

Hvis det kommer opp at det er indentation error så les om det her : http://www.diveintopython.net/getting_to_know_python/indenting_code.html

RoomFinder: Lille Trille ble full og gikk på en smell…

Dagen blei brukt til til litt testing og forbedring  av kode, litt kobling og oppsummering av arbeidet. Det begynte bra, men med et  tilbakesteg, eller skal vi si tilbakesmell; ballongen vår sprakk.. Det var den den vi hadde. Og det skulle vise seg at de “gigantiske” ballongene butikker flest selger, ikke er så store som de skal ha det til. (En viss butikk som utgir seg for å være best på dingser, er ikke best på produktbeskrivelser… diameter er IKKE det samme som omkrets.)

Men, det finnes store ballonger der ute, men vi hadde ikke tid til å vente på postgang i disse juletider, så en tur til Sandefjord for å hente ny ballong er neste  punkt på planen.

 

Firewater – Uke 50-51

Her kommer en oppdatering fra hva vi har gjort de siste dagene i innspurten av prosjektet:

Fredag uke 50: 
Denne dagen jobbet vi fra etter eksamen og utover ettermiddagen. Det viste seg da et vi hadde noen uforutsette problemer, og at roboten ikke virket helt som ønsket lenger med software serial kommunikasjon. Vi begynte å få problemer med wifi-kommunikasjonen mellom drinkmikseren og appen. Roboten kjørte slik den skulle, men signalene kom ikke frem via wifi, og det virket som denne koden hang seg. Vi brukte mye tid på å prøve å feilsøke dette, og fant ut at noe av det mest sannsynlig skytes støy. Vi hadde ikke tilgang til utstyr vi trengte, og avsluttet derfor økten.

Mandag uke 51:
Vi fortsatte feilsøkingen, og satte inn flyback dioder på pumpene for å hindre støy.  Da dette ikke løste problemet helt, byttet vi ut arduinoen med wifi-shieldet, og dette løste problemet. Grunnen er mest sannsynlig en sliten arduino. Etter gjentatt testing, så da dette ut til å virke optimalt.

I løpet av eksamensperioden dukket endelig radiosenderne våre opp, og vi bestemte oss da for på ny å prøve å bytte over til å bruke disse. Det inkluderte på ny omskriving av robot- og drinkmixer koden, samt omkobling og innsetting av spenningsdelere. Når vi håpet dette skulle virke mandag kveld, fikk vi  ikke til noen kommunikasjon med roboten. Etter gjentatte sjekker av at koblingene var rett, bestemte vi oss for å bytte ut motstandene i spennigsdlerene til lavere verdier. Vi hadde ikke tilgang til andre motstander, og avsluttet dagen med det.

Vi la i tillegg til en liten “partyfaktor” når drinken er ferdig, en buzzer med et lite musikkstykke.

Tirsdag uke 51:
Vi begynte dagen med å få tak i nye motstander og koblet spenningsdelerene på nytt. Da virket endelig radiokommunikasjonen. Etter en del testing og småjusteringer på detaljer anser vi nå prosjektet som ferdig, og vi har nådd den funksjonaliteten som var målet vårt. Dette til tross for flere uforutsette problemer og komplikasjoner som vi har måtte løse på ulike måter, og vi har derfor løst prosjektet på en litt annen måte enn først planlagt.

Videre denne dagen planla vi presentasjon, ryddet opp i koder og prosjektet.

Nedenfor kan du se våre endelige koder, kretsskjemaer, systemoversikt  og noen bilder av det endelige resultatet:

2015-12-15 10.02.06 2015-12-15 10.24.04

 

Systemoversikt over sluttresultatet:
Vi ser at denne systemoversikten er nesten identisk med den vi begynte med, den eneste forskjellen er at solenoidventilene er byttet ut med pumper og solenoidkontrollen ble en pumpekontroll med releer, samt at vi tidlig i prosessen byttet over til wifi i stedet for bluetooth.

Systemoversikt sluttresultat

Kretsskjemaer:

Kretsskjema for arduinoene på drinkmixeren:

Drink Mixer

 

Kretsskjema for rele-og pumpekretsen:

 

Pumper

Kretsskjema for roboten:
Robot


Link til endelige koder

 

 

 

 

RoboGuard Uke 51

GOD JUL

Vi i Robo Guard jobber nå med å koble sammen de forskjellige funksjonene for vi deretter skriver presentasjonen, vi kommer til å jobbe resten av uken med å koble sammen de forskjellige funksjonene, og det ser nå ut til at alt fungrer som det skal foreløpig.

 

Watering the Flowers – Python + Linux = <3

Det har vært en stund siden vi har blogget, men her er en oppdatering!

Vi har fått til en videogjenkjennelseskode som ser etter grønne ting og gir tilbake posisjonen slik at bilen kan forflytte seg dit. Her er noen bildeeksempler på hvordan det blir gjort.

camera position black'n'white contour

Videre har vi fått til at bilen detekterer om det er noe forann seg og den vanner ting.

Så nå i den siste tiden har vi jobbet mye med koding. Blien har blitt korrekt kalibrert  og vi har fått en løsning på å gi strøm til Pi’en. Vi har også jobbet en del med raspberry pi’en og OpenCV på den. Det var en del problemer med å få ting til å kjøre. For eksempel var det en del problemer med å få OpenGL til å fungere med Jessie sin siste oppdatering. Med en nyere Pi som Pi 2 B+ hadde det ikke vært noe problem og veldig mange operasjoner hadde gått fortere, siden den nye har 4 cores. I tillegg har vi fått til å kjøre scripts på startup på Pi’en og også fått en kommunikasjon mellom Pi og Audorino

12364170_10153619007100783_1668999177_o

.

2015-12-01 10.56.08

Se lille trille bli full

 

Se video!

I dag har vi hatt dronesonen helt for oss selv, og gjort store fremskritt med kontruksjonen vår! Vi har for eksempel fått helium i ballongen! Vi har også lagd et festesystem for thrustere, avstandsmålere og kurven. De ødelagte motorene er blitt bytta ut med nye og freshe, og vi har gjort endringer i koden som tillater oss å bruke et 7.7V batteri med mindre vekt og mer kapasitet. Vi har koblet opp hele systemet på nytt, med ekstra sjekk på alle koblinger mot koblingskjemaet.

Se hvor konsentrert Bård er i den kritiske fyllefasen!2015-12-01 10.55.01

Og jammen så flyr ballongen vår!
2015-12-01 11.07.50

 

2015-12-01 13.34.27