Category Archives: iGrow

IGrow App og kommunikajson

Med produsering av app medfølger problemet med kommunikasjon mellom app og produkt. Appen kommuniserer med en raspberry pi som ligger i IGrow. Ett kriteria for appen er å kunne kontrollere IGrow samtidig vise tilstanden til planten. Etter mye om og men ble den beste løsningen å lage ett HTML/FLASK script som ligger på pi-en og som kan kontrollere IGrow systemet samtidig vise tilstanden til planten. Dette scriptet fungerer som en nettside men blir vist i appen gjennom webview. Dette var rett og slett beste løsning for å kunne kommunisere mellom appen og pi-en.code

Prosess- og Operasjonsbeskrivelse

Prosessbeskrivelse

En prosessbeskrivelse beskriver hvordan tilvirkningen av egenproduserte deler gjennomføres.

Vinkeljern

Vinkeljernene skal stive av konstruksjonen i alle fire hjørner og pleksiglass-rutene skal limes på disse.

Vinkeljern fremre 2 stk

Del nr 1:

  1. Benytt 2 mm aluminiumsplate.
  2. Klipp aluminiumsplaten til dimensjonene 504 mm x 50 mm.
  3. Spenn opp platen på et bord.
  4. Skjær bort gods iht tegning #1 med stikksag ( bruk blad for stål/aluminum)
  5. Knekk hjørner/kanter med gradeverktøy/ håndfil.
  6. Bruk plateknekke til knekke platen til 90 grader langs anvist knekkelinje på tegning #1.
  7. Drill to hull med dimensjon 4mm iht tegning #1.
  8. Fjern spon på baksiden av hull med gradeverktøy/ håndfil.

Del nr 2:

Prosessen gjentas frem til steg 5 på del nr to, deretter knekk platen i motsatt retning av del nr 1. Dette fordi de skal være speilvendte av hverandre.

vinkeljern

Vinkeljern bakre 2 stk

Del nr 1:

  1. Benytt 2 mm aluminiumsplate.
  2. klipp aluminiumsplate til dimensjonene 504 mm x 50 mm.
  3. Knekk hjørner/ kanter med gradeverktøy/ håndfil.
  4. Bruk plateknekke til å knekke platen til 90 grader langs anvist knekkelinje på tegning #1.
  5. Drill to hull med dimensjon 4mm iht tegning #2.

Del nr 2:

Prosessen gjentas frem til steg 4 på del nr to, deretter knekk platen i motsatt retning av del nr 1. Dette fordi de skal være speilvendte av hverandre.

vinkeljern-bakre

Hovedplate

Denne platen skal være “gulvet” inni veksthuset, og skal ha to hull til vifter, en åpning til robotarm og en åpning på siden til vanntank.

Plateknekking:

  1. Benytt 2mm aluminiumsplate.
  2. klipp aluminiumsplate til dimensjonene 500 mm x 300 mm.
  3. Knekk hjørner/ kanter med gradeverktøy/ håndfil.
  4. Bruk plateknekke til å knekke platen til 90 grader langs anvist knekkelinje på tegning #3.

hovedplate

CNC Maskinering

Operasjonsbeskrivelse av CNC program beskriver i detalj hva som skjer i programmet.

Bruk av HSWorks:

Jobb 1:

  1. Del festes vha klemmer iht oppspenningskisse 1. Obs husk 2”x4” trekloss under delen.
  2. Nullpunkt av delen tas på toppen, i senter av delen.
  3. Fresing av 2 stk hull Ø87,4mm vha  5mm pinnefres
  4. Borring av 8 stk hull Ø5mm vha 5mm borr.
  5. Fjern klemmer og blås del ren for spon.
  6. Kontroller dimensjoner med skyvelær.

Jobb 2:

  1. Del festes vha klemmer iht oppspenningskisse 2. Obs husk 2”x4” trekloss under delen.
  2. Benytte samme nullpunkt som for jobb 1.
  3. Fresing av lomme til robotarm vha 5mm pinnefres
  4. Fjern klemmer og blås del ren for spon.
  5. Kontroller dimensjoner med skyvelær.
  6. Ta ut delen og fjern grader med gradeverktøy/ håndfil.

Oppspenningsskisser:

oppspenningsskisse-1-og-2

nullpunkt-verktoy-maskinert-plate

Verktøyliste:

Pinnefres 2-skjærs HSS D=6mm L=57mm
Borr HSS D=6mm L=93mm
Analog 3D taster
0-punkt verktøy-måler

Åpning for vannreservoar

  1. Spennes opp på bord med klemmer
  2. Skjær ut åpning iht tegning #4 med egnet verktøy (stikksag eller dremel)
  3. Fjern grader med gradeverktøy/ håndfil.

hull-vanntank

2D tegninger

2d-tegning

tegning-1

tegning-2

Kretser, sensorer og driverkretser.

ELEKTRONIKKEN I PROSJEKTET

Her kommer en sårt etterlengtet oppdatering fra den mystiske elektronikkgjengen i prosjektet iGrow. Siden vi har egen lab hjemme med det vi trenger av utstyr har vi de fleste tirsdager prioriotert å styre på der. Denne posten skal forsøke å vise arbeidet som ligger bak den ferdige prototypen.

aktiv-kobling2

Målet med prosjektet er å gi kunden et produkt som gjør at plantestell er en saga blott. Det å kunne løsrive seg fra vannesykluser, reise bort på ferie uten bekymring for plantenes ve og vel eller om man rett og slett er litt distrè er ikke lenger et problem for en planteeier. Systemet skal ivareta planten og gi den det klimaet den trenger. For å oppnå dette trenger vi noen sensorer.

  • Sensorer

FSR – Force sensitiv resistor

Dette er en variabel motstand som øker eller minsker motstanden relativt til kreftene den opplever å bli utsatt for. Den er fin til for eksempel si noe om vekten til en gjenstand.

fetch-php

Sensoren fungerer ved at to lage er adskilt og ved å presse dem sammen minsker motstanden i komponenten. Denne egenskapen utnytter vi til å si noe om vekten til en gjenstand, i dette tilfellet en potteplante. Siden den er en variabel motstand så lager vi en spenningsdeler med en 10k motstand og FSR. Vi kobler oss da på mellom dem og måler spenningen som endres pver 10k motstanden.

Bruken av denne ga oss muligheten til å forbedre våre algoritmer for vanning. Proben vi måler jordfuktighet med er ikke veldig nøyaktig og ved å la den fungere mer eller mindre som en bryter. Om proben sier at det er tørt OG FSR sier at vekten er liten er det tid for vanning. Om vekten er høy og proben sier den er tørr så får den ikke vanne da vekten skyldes vannet.

Soilhumidity probe

Dette er også en variabel motstands sensor som endrer motstanden basert på ledevnen mellom to ledere som ikke har kontakt. Ved å putte sensoren i et medium som har ledeevne kan vi si noe om EC(electricity conductivity).

moisture_sensor

Det vi måler er rett og slett hvor mye motstand som befinner seg mellom de to lederne. Ved å bruke denne egenskapen kan vi si noe om fuktigheten i jord. Tørr jord leder vann dårlig, men vår jord leder vesentlig bedre. Dette gjør at vi kan differensiere mellom tørt og vått medium. Denne er også satt opp i en spenningsdeler for å måle spenningendringen i spenningsdeleren. Spenningsdeleren er satt sammen av senoren og en 650k motstand. Det er dette vi bruker for å si noe om tilstanden i mediumet.

Da vi forsket på denne sensoren fikk vi svært ustabile verdier ut. Dette var hovedgrunnen til at vi valgte å implementere FSR sensoren. Ved å software smoothe verdiene til jordproben kan vi få litt bedre resultater ut. Dette ble løst med en for-løkke som regner ut snittverdien av et gitt antall målinger istedet for å stole på tallet fra en avlesning. Om man i tillegg avveier for vekt vil resultatet resultatet bli bra.

Temperature/RH-sensor

Temperatur sensoren vår er en DHT sensor vi hadde liggende som har både temperatur og relativ luftfuktighetsmåler. Den måler fuktighet ved hjelp av en kondensator og temperatur ved bruk av en thermistor, en temperaturavhengig motstand.

humidity-temperature-sensor-dht22-500x500

Når temperaturen i omgivelsene til thermistoren endrer seg vil motstanden også endre seg proporsjonalt til denne endringen tilnærmet linjært. Dette blir omformet til et digitalt signal vi mottar som ferdig temperatur.

Underveis i prosjektet oppdaget vi at vi ikke kom til å kunne påvirke relativ luftfuktighet i boksen og tok da avgjørelsen å sløyfe denne sensoren helt.

Vi hadde mye erfaring med temperatursensorer fra før, både gjennom fag på skolen og ved hobbyprosjekter, som førte til en enkel og ukomplisert implementering av sensoren. Vi har valgt å plassere denne sensoren ved utgangen til utsugsviften slik at vi får en tempearturavlesning som er optimal for å si noe om tilstanden til iGrow.

PIR-sensor

PIR står for passive infrared-detector. Den fungerer ved at et pyroelement “ser” gjennom en segmentert optisk linse. Pyroelementet kan se infrarødt lys, eller med andre ord varme. Når en person beveger seg innenfor det segmenterte området vil pyroelementet se varmen fra denne personen og undersøker om det er bevegelse ved å sjekke om flere segmenter blir “påvirket” av hendelsen.

400px-pir_motion_sensor_module

Vi bruker PIR sensoren til å regulere lyset i boksen. En plante “ser” ikke grønt lys. Dette gjør at vi kan spare energi ved å ikke bruke dette lysspekteret i det hele tatt når vi ikke har glede av det. Lyset blir da lilla, noe som ikke alltid er så ønskelig i et hjem. Derfor dimmer lyset fra lilla til hvitt når det er mennesker i rommet hvor planten står, eller skrur på det grønne spekteret også.

  • Aktuatorer

Servo-motor

En konstant magnet børste DC-motor er benyttet i kretsen som aktuator. Denne ble nødvendig da vi ønsket å skjule vannearmen mest mulig når den ikke var i bruk. Løsningen ble å løfte den frem ved bruk ved hjelp av en servomotor. Denne armen var i utgangspunktet ment drevet med tre servomotorer. Men stadig forenkling av oppgaven og redusert kompleksitet førte til at vi kune benyttet oss av en. Dette gjør også at driverkretsen til motoren er litt overkill, men da vi brukte mye tid på å forske frem en stabil DC til DC omformer så valgte vi å bruke den likevel. Servo-motoren har innebygget logikk slik at det bare er å sette 12V,  jord og signal på pinnene, virkelig “plug and play”.

Vi forsket også på hvordan man skulle kunne få en servo-motor til ikke være begrenset til 180 grader, men kunne rotere rundt fritt så mange ganger den vil. Jakob kastet seg på oppgaven med iver. Forsøket var vellykket, men ble dessverre ikke implementert. Se bilder fra forsøket.

servomotorpot2

For å kunne lukke boksen etter endt operasjon måtte vi bytte ut potentiometeret med ett nytt for å få plass.

nypotservo2

Den mekaniske sperren borres vekk:

servomod2

Kabinettvifter

For å regulere varmen inne i boksen er en effektiv måte å gjøre det på å skifte ut luften i boksen. Denne temperatureguleringen er proporsjonal med temperaturavviket fra ønsket verdi. Vi har plassert en vifte til innsug og en til utsug. Disse vil vekselvis bli aktivert og PWM styrt til ønsket hastighet ved behov. Viftene var allerede utstyrt med en egen pinne og logikk for PWM styring. Dette gjorde at vi slapp å leke med slitsom problematikk med å telle RPM på viften ved egen software. Dette er vanskelig siden man PWM`er motoren. Dette gjør at et eventuelt tachometer, som teller rising eller falling edge, vil telle langt flere omdreininger enn de som har funnet sted.

Pumpe

Dette er mer eller mindre en servo-motor som er koblet opp som pumpe. Denne pumpen bringer vannet fra vanntanken i kabinettet, til robotarmen som igjen vanner planten. Denne er drevet av en H-bro som vi fant ferdig produsert for formålet. Til forskjell fra servp-motoren har ikke denne innebygget logikk og denne ekstra driver kretsen er nødvendig for at det skal fungere.

RGB LED-strips

Til belysning av planten ønsket vi å benytte oss av forskjellige lysspekter til froskjellige formål for å optimalisere plantens forhold. Som tidligere forklart så “ser” ikke planten grønt lysspekter, dette sammen med at vi vil ha et system som lar seg tilpasse nesten enhver plante, gjør at vi valgte RGB lys. Remser med RGB lys er tilgjengelig i forkjellige oppløsninger, altså antall LED per meter, og med forskjellige egenskaper. Den kan være vanntett, komme med ferdig dobbelsidig teip og mange andre mer eller mindre vesentlige forskjeller.

LED stripsene som ble handlet inn var av den rimelige typen siden man skal lage en prototyp og “proof of concept” er tilstrekkelig. LED stripsene trekker også vesentlig mer strøm enn det en Arduino Mega kan levere så derfor må disse også ha en egen driver krets. Denne driverkretsen består av en effekt-MOSFET koblet inn på hver enkelt farge og den er igjen PWM styrt av Arduinoen. Slik kan man dimme lyset og bestemme farge.

Under test undersøkte vi om ønsket lysspekter fremgikk slik vi ønsket, se bilder.

Lilla vekstlys

hvittlys2

  • Driver kretser

Effekt-MOSFET

Da en RGB strip kan trekke ganske mye mer strøm enn det som tillates gjennom en Arduino må man legge til en driverkrets. Driverkretsen til LED-stripsene består som nevnt av tre effekt  MOSFETs som styrer mengden strøm og spenning ut til hvert enkelt fargesegment i RGB stripsen.

Disse effekt MOSFETs ble handlet inn i siste liten og sparte oss masse ufornuftig tull.

Buck-converter

For å omforme et DC nivå til et annet kan man ikke som ved AC  bare bruke en trafo så er det løst. Grunne til dette er at AC signaler kan passere relativt uhindret gjennom kondensatorer av en gitt størrelse basert på når jeg brukte sist,

Spenningsdelere

Dette er den enkleste driverkretsen jeg vet om. Man måler rett og slett spenningen ut ved å ølegge til  noe.

  • kretskortutlegg

Kretsen starter ved at vi fører strøm inn fra ett veggadapter som transformerer spenningen fra veggstøpsel til 12V. Denne 12V blir da fordelt fra en koblingsboks til Arduinoen, buck-converteren, H-broa og LED-stripsene. Buck-convertern omformer spenningsnivået fra 12V til stabile 5V og leverer det til servo-motoren.

Alt av tillegskretser, med unntak av H-broa og buck-convertern er implementert ved å lage et eget prototype kretskort.

Kretskort

Kretsutlegg

Vi bestemte oss for å forsøke samle mest mulig av dillekretsene på et prototypekretskort. Dette er planlagt, koblet og loddet av oss, se tegning for mer info.

 

 

Monteringsinstruksjon

Generelt:

Skruer skal festes slik at de sitter. Ingen ytterligere forspenning kreves. Ved liming skal kontaktflatene rengjøres og pusses før lim påføres.

Fuktmåler

Montering av fuktmåleren og tilhørende fikstur:

montering-fuktmaler

  1. Hull 1 (gjenget) på glidebrakett festes i hull 1 på vinkelprofil m. spor ved en justeringsskrue. En ekstra M3 skrue med mutter festes i hull 1b (ugjenget) i sporet.
  2. Hull 2 på glidebrakett festes i hengselet ved forsenket M3 umbrakoskrue og mutter. (Begge hull)
  3. Hengsel (hull 3) festes i fuktmålerbrakett (hull 4) ved forsenket M3 umbrakoskrue og mutter (Begge hull)
  4. Fuktmåler festes til fuktmålerbrakett med M2 umbrakoskruer og mutter. Her må gummiskive anvendes mot kontakten. Kontakten må vende vekk fra fuktmålerbraketten slik tegningen viser.

Vannreservoar med tilhørende fikstur

vannskuff

Montering av vannreservoar og fikstur

  1. Aluminiumsdeksel med håndtak sentreres på vanntank. Påfør lim og spenn fast til dette herdes.
  2. Vanntank skyves inn i fikstur gjennom egnede spor som vist på tegningen.

Vanningsmekanisme med servo og braketter

vanningsarm

Montering av vanningsmekanismen

  1. Hjul til servomotor festes til servomotor med tilhørende skrue igjennom hull 1 og 2 (gjenget).
  2. Servomotor monteres til festebrakettene med M3 skruer og muttere. Henholdsvis festes hull 3a til 4a og 3b til 4b slik tegningen viser. Metoden gjentas for festebrakett 2.
  3. Servohjulet festes til vinkelprofil ved 2 stk. M3 skruer og muttere gjennom hullparene 5a og 5b. For korrekt nivellering skal medfølgende gummipakninger anvendes mot servohjulet.
  4. Vinkelprofil 1 monteres til L-platen med M3 skruer og muttere gjennom hull 7a-6a og 7b-6b slik tegningen viser. Her skal mutterene på nedsiden av 6a og 6b.
  5. Vinkelprofil 2 monteres på samme måte som beskrevet i punkt 4, i.h.v. i hull 9a-8a og 9b-8b.

Bunnplate montasje 1 av 3

Montering av vifte og sidevegg til bunnplate

montering-vifte

  1. Vifte monteres med viftegrill til bunnplate ved egne forsenkede skruer gjennom hull 1a-2a, 1b-2b, 1c-2c og 1d-2d slik tegningen viser (gjengede hull). Skruehodet skal være flush med bunnplaten. Unngå forspenning av skruene.
  2. Viftegrill 3 påføres lim og spennes fast på innsiden av sideplaten, konsentrisk med hull 4. Videre montering foregår når limet har oppnådd tilfredsstillende vedheft.
  3. Sideplaten monteres til bunnplaten gjennom hull i flensene med M4 skrue og mutter. Mutteren skal på innsiden av bunnplaten, henholdsvis hull 5a-6a, 5b-6b, 5c-6c og 5d-6d.
  4. Vifte nummer 2 skal monteres med egen viftegrill som beskrevet i punkt 1.

Bunnplate montasje 2 av 3; Vannreservoar og viftecasing

Montering av vanntank m. fikstur og viftecasing

montering-vannskuff

  1. Fiksturet til vannreservoaret monteres til brakett 2 med M3 skruer og muttere, uten skiver, gjennom hull 1a-2a og 1b-2b.
  2. Brakett 2 monteres videre til viftecasing med M3 skruer og muttere gjennom hull på bakside av brakett 2 og hull 3a og 3b. Om nødvendig benyttes spennskiver for nivellering av reservoar.
  3. Viftecasingen monteres til bunnplaten ved popnagler gjennom hull 4a-5a, 4b-5b, 4c-5c og 4d-5d. Benytt 3mm nagler uten ekstra skiver. Naglene settes fra undersiden på figuren.

Bunnplate montasje 3 av 3; vanningsmekanisme og skillevegg

Montering av vanningsmekanismen og skilleveggen for kretskort.

montering-sideplate-arm

 

  1. Servomotorbraketter festes i bunnplate ved M3 skruer og muttere gjennom hull 1a-2a og 1b-2b. Mutter skal være på oversiden av hull 1a og 1b.
  2. Skilleveggen monteres ved M3 skruer og muttere til sidekanten av bunnplaten gjennom hull 3a-4a og 3b-4b.Skilleveggen festes til bunnplaten gjennom hull i begge flenser. Ved avvik i dimensjoner kan skiver eller en mellomleggsplate anvendes.
  3. Den siste sideveggen monteres til bunnplaten på samme vis som beskrevet i avsnittet Bunnplate montasje 1 av 3 punkt 3.

Glassbur montasje

Montering av glassbur m. dør til vinkelprofiler og hengsler

glass-explode

  1. Vinduer og tak spennes fast til vinkelprofiler og limes fast. Alle kontaktflater skal rengjøres og pusses før lim påføres. Videre montasje foregår etter limet har oppnådd tilstrekkelig vedheft.
  2. Hengsler monteres til dør i sine respektive forsenkede hull. Hengselene skal være på innsiden av dør-glasset og utenpå aluminiumsprofilene på kantene.
  3. Hengsler monteres til profilene på kantene i sine respektive hull med M3 skruer og muttere. Hele kontaktflaten mellom dør og vegger/tak skal kles i gummilist. Listen må beskjæres til passe tykkelse og limes på.
  4. Ved behov skal fuger tettes med silikon.

Montering av vekstrom og bunnkasse

Montering av hovedkomponentene

montering-glass

  1. Vinkelprofiler i alle hjørner monteres til bunnplate ved M4 med tilhørende muttere og skiver gjennom henholdsvis hull 1a-2a, 1b-2b, 3a-4a, 3b-4b etc.
  2. Fuging ved behov med silikon.
  3. Alle synlige overflater skal pusses, poleres og vaskes ved behov.

Generelt om produktet

Abstrakt

Et smart veksthus for potteplanter.

Produktet beskrevet i dette dokumentet er et smart veksthus for diverse potteplanter. Målet med prosjektet var å lage et produkt som gjør vedlikehold av husholdningsplanter til en vedlikeholdsfri hobby for privatpersoner. Samtidig skal produktet bære preg av estetikk og design slik at det utgjør en stilren addisjon til hjemmet. Produktet skal kunne åpne for dyrking av mer eksotiske planter som vanligvis ikke ville overlevd utenfor sitt naturlige habitat. Eieren av veksthuset skal ha mulighet til å forlate planten sin over en lengre periode uten at den dør, ved hjelp av automatisk vanning og fjernovervåkning.

Produktet skal være så selvgående som mulig og kreve minimalt med ettersyn.

Materialvalg

 

  • Aluminium

 

Hoveddelen av veksthuset er tilvirket i aluminium. Under er en oversikt av aluminiumskomponentene av produktet:

  • Platene som utgjør bunnkassen
  • Vinkelprofilene og rammeverket av glassburet
  • Skillevegger, støtteprofiler og diverse braketter

Grunnen til valg av aluminium som materiale for disse komponentene er blant annet metallets egnede egenskaper for tilvirkning. Relativt mykt å kappe, knekke, skjære, frese, bore etc. Et annet aspekt er aluminium sin evne til å motstå korrosjon. Luftfuktighet og noe spillvann er forventet ved vekst av potteplanter. Av dette kreves det at konstruksjonen ikke skjemmes eller degenereres av korrosjon. Aluminium har også et gunstig utseende m.t.p estetikk, i tillegg til relativt lav egenvekt. Ved bruk av et annet materiale, f.eks. stål, ville veksthuset vært mer omstendelig å flytte i tillegg til at demping for skåning av treflater (stuebord, parkett, etc.) måtte implementeres. Aluminium var også det materialet som var mest tilgjengelig i verkstedet.

 

  • Pleksiglass (styren-akrylnitril)

 

Glassburet består av pleksiglassplater som er beskåret og limt på plass. Styren-akrylnitril i stedet for glass, gitt materialets egenskaper for tilvirkning. Pleksiglass er formbart og relativt duktilt for produksjon.

 

  • ABS plast

 

Vanntank med tilhørende fikstur, hjørnepillarer og vilftegriller er av ABS-plast grunnet vårt behov for å få disse 3D-printet. Annen produksjonsmetode for disse komponentene hadde vært unødig tidkrevende og derav ikke prioritert.

 

  • Diverse

 

Noe silikon ble brukt som fugemasse etter behov. Transparent lim, multibond og 2-komponent epoxy har vært anvendt. Generelt stålskruer (hovedsaklig umbrako, M3 og M4 med tilhørende muttere og skiver) hvorav noen er galvanisert.

Løsninger

Produktet er et eksempel på et smart system hvor systemer fra data, elektro og maskin er satt sammen. Oppgaven for maskin-studentene har hovedsakelig vært å fasilitere konstruksjonen slik at systemet klarer å utføre oppgavene i.h.t. kravene som ble fastsatt av prosjektgruppa, samtidig med at det er praktiske og funksjonelle løsninger. Estetikk har vært en rød tråd gjennom hele konstruksjonsprosessen.

Konstruksjonen bærer likevel et preg av enkelhet på visse områder. Dette er grunnet prosjektets tids-perspektiv, tilgang på verktøy/maskiner og studentenes evne til tilvirkning. Ved flere anledninger møtte ikke resultatet med ambisjonen.

forkastet-losning

Robotarm design som ikke ble realisert pga kompleksitet, plass og tid.

Under er noen punkter angående generelle løsninger som ble valgt og alternativer som ble forkastet.

  • Pleksiglass-rutene skulle ideelt sett vært skåret med laserkutter. Dette ville gitt svært mye bedre toleranser og bedre kutt. En del problematikk oppstod som følge av at rutene ble skåret ved stikksag. Ujevn finish, igjensmelting av skjærefugen (varmegang i skjæret/bladet) og vridning av skjæret er noen av ulempene. Dette resulterte i vanskeligheter senere ved assembly, da dimensjonene hadde avvik i størrelsesorden 1-5mm.
  • Kapping av aluminiumsplater ble gjort med platesaks. Meget tidseffektiv og relativt presis, generelt avvik var på +/- 1mm. Noe problemer ved korte plater, og ved forsøk på å anvende platesaksen til pleksiglass oppstod store sprekker.
  • Plateknekking på stort sett samtlige av aluminiumsbraketter og plater. Enkel bruk, tidseffektiv, men svært upresis. Ingen innstilling for variabel bøyeradius og ingen indikasjon på bøyevinkel. Alle plater ble tatt på øyemål. Store avvik fra design, opp mot 5mm i lengde og +/- 10 grader i vinkel. Denne produksjonsmetoden presenterte de største problemene for assembly. Ekstra skiver, mellomlegg og avstivere måtte anvendes for å motvirke buling på konstruksjonen. Dette ble i større grad forutsett og produsert på et tidlig stadie ettersom de ville da ha drivende dimensjoner.
  • CNC fresing og boring av bunnplate etter behov for strengere toleranser. Bunnplaten er den tydeligste komponenten og måtte ha finish deretter. To viftehull med 4 tilhørende skruehull ble frest/boret, i tillegg til en L-slot for vanningsmekanismen. En annen grunn for valg av CNC-maskin som produksjonsmetode var behovet for å beholde godset som ble frest bort (kun ved tilfellet av L-slot). Dette krevde opplæring av HSM-works og generell kunnskap om bruk av CNC maskiner. Skjæreprogrammet for CNC-maskinen (Haas) ble i stor grad skrevet for hånd. Resultatet ble tilfredsstillende, sett bort i fra et feilskjær i L-slot (1 skjærkommando ble oversett ved inngrepet og resulterte i en feil i komponenten). CNC ble også anvendt etter ønske om læringsutbytte og erfaring. Bunnplaten ville konvensjonelt blitt stanset ut direkte ved en eventuell masseproduksjon.
  • Hullboring, skrueforbindelser og forsenking av hull. Generelt gjort med bormaskin der det var strengere toleranser for hullplassering, ellers gjort mye ved frihånd ved bruk av dor og elektrisk drill senere i assembly. Hullplassering ble nøye oppmålt ved bruk av skyvelær. Ved skruehull gjennom hengsel/pleksiglass og andre steder i bunnplaten ble hullene forsenket ved bruk av forsenkningsverktøy. Skruehull i braketter som skal fiksere kretskort ble gjenget ved bruk av gjengetapp. Dette grunnet behov for enkelhet ved gjentatt montering/demontering i testfase. Ellers er de fleste skrueforbindelser gjort med gjennomgående skrue og mutter. For deler som ikke skal demonteres i umiddelbar fremtid ble nagler brukt ettersom de har et mindre sjenerende utseende.
  • Liming og fuging. Gjort med sanitærsilikon, universallim og 2-komponent epoxy. Anvendt for å feste rutene og tak til vinkelprofilene og rammeverk. Denne festemetoden valgtes her ettersom ytterligere skruer/nagler ville ha en mindre estetisk effekt da plasseringen av disse er svært tydelige. Noe problematikk med avvik på dimensjoner mellom glass og vinkelprofiler i tillegg til uheldig valg av lim. Limet hadde en uakseptabelt lang herdetid og svært dårlige hefteegenskaper. Senere i produksjonen ble limet byttet ut med 2-komponent epoxy. Silikon ble brukt ved fuging av sprekker som oppstod fra avvik i dimensjoner. Spesielt ved tak/vegg høyre side. Silikon ble også brukt som fyll ved innvendig hjørnepillar, hovedsaklig for støtte.
  • Knekking av kanter. Alle metallplater som potensielt kan berøres av bruker har blitt nedfaset ved håndfil. Platesaksa gir svært skarpe kanter og må knekkes ned for å unngå personskade.

Spesifikke løsninger m.t.p design:

Vanningsmekanismen var i opprinnelig design kombinert med fuktmålerfunksjonen. (ref. figur) Målet var å designe veksthuset uten noen andre komponenter inne i selve vekstrommet annet enn planten. Dette måtte forkastes grunnet for høy kompleksitet og plass. Denne kombinasjonen krevde en ekstra servomotor i tillegg til en lineær aktuator og ble avgjort urimelig i.h.t tidsplanen. Resultatet ble en egen mekanisme kun for vanning og en separat permanent fikstur for fuktmåling. Fiksturet ble designet slik at det kan støtte for varierende størrelse på blomsterpotta. Dette gjøres enkelt ved å skru på justeringsskruen for høyde. Vannforsyningen er en 2 dl vanntank montert i eget fikstur på undersiden av bunnplaten som også holder pumpa. Tanken kan enkelt dras ut av veksthuset for etterfylling av vann. På utsiden ble det limt på et aluminiumsdeksel og et håndtak for elegant funksjon og estetikk.

Elektronikk/kretskort har blitt separert fysisk fra vanntanken og pumpa ved en skillevegg. Dette for å unngå eventuell sprut fra pumpen eller vannslangen. Grunnet estetikk er all elektronikk plassert slik at det ikke synes utenfra. Unntaket er strømforsyning og wifi-antenne. Systemet har behov for å kunne kommunisere trådløst og for å oppnå dette må antennen monteres på utsiden av boksen. Ettersom boksen er av aluminium vil det produsere en effekt som kalles Faradays-bur, d.v.s. at signaler ikke vil kunne sendes fra utsiden og inn. Antennen ble plassert på baksiden av veksthuset for å minske synlighet ved bruk. En annen elektronisk komponent som er synlig er bevegelses-sensoren. Av åpenbare grunner er den plassert synlig i forkant av veksthuset. Angående belysning anvender systemet seg av LED-strips som er limt langs de vertikale hjørnepillarene.

Dør for enkel tilgang til vekstrommet. Enkle hengsler og låsekroker, foret med tetningslist langs kantene. Dette for å dempe og redusere slag-lyder. Ingen ekstra dørklinke ble montert for å unngå sikt. Selve glassburet med rammeverk ble gjort så minimalt som mulig for denne hensikt.

Hjørnepillarer er implementert for å vinkle belysningen mot senter av vekstrommet. Ideelt sett skulle kameraet også vært festet på en av disse pillarene, men grunnet svært kort kabel ble en egen brakett tilvirket for dette. Hjørnepillarene har også den effekt at det skjuler fugene mellom glassveggene og innsiden av vinkelprofilene. De er planlagt malt i en annen farge.

Viftegriller er lagt over samtlige ventilasjonshull. I tillegg til at dette har en estetisk effekt vil det også bidra til å beskytte bruker mot å komme i kontakt med viftebladene.

3D print

Vi har 3D-printet en vanntank, vannpumpe innfestning og hjørne pilarer. Til dette projektet valgte vi å printe så få deler som mulig, dette førte til flere egenproduserte deler.

Deler fra print avviker som regel alltid fra 3D modellen så bearbeiding vil ofte være nødvendig. Dette kommer av at printeren ikke greier å printe perfekt runde hull bl.a. En toleranse på +/-0.15mm ble tatt hensyn til under design.

Prosessbeskrivelse deler fra 3D printer

vanntank-pumpefeste

Vannpumpe innfestning:

  1. Fjern støttestruktur laget av printer med kniv eller skarp gjenstand.
  2. Borr opp 4 stk Ø3 mm hull på undersiden av del med Ø3mm borr.
  3. Fjern plast inne i sylinderen hvor motoren skal sitte med pussepapir.
  4. Sjekk at vannpumpen får plass.
  5. Sjekk at vanntanken kan monteres mellom skinnene og kan beveges fritt.

Vanntank:

  1. Fjern støttestruktur laget av printer med kniv eller skarp gjenstand.
  2. Sjekk av vanntank kan monteres mellom skinnene og kan beveges fritt.
  3. Påfør silikon innvendig for vanntetthet.

 

Hvordan holde planten i live?

Hei

Litt informasjon om hvordan vi i iGrow prøver å holde planten i live.

For å ta avgjørelser på hva vi bør gjøre med blomsten må vi vite litt om hvordan den har det. Det finnes en måte å se på hvor aktiv den er ved bruk av et IR kamera og ett blått filter. Vi gjøre deretter en NDVI  kalkulasjon.

Teorien bak dette er at vegetasjon som er frisk vil absorbere det meste av det synlige lyset, men vil reflektere mer av det nesten infrarødt lyset.  Formelen bak dette er:

NDVI = (NIR-VIS) / (NIR + VIS)

ndvi_example

Dette bør generere bilder som dette:

Good NDVI

Med No IR pi kameraet fikk vi etter mye trøbbel ut dette:

Ikke så god NDVI

Som dere ser er ikke bildene i nærheten av hva vi bør ha for å differensiere en frisk plante fra en ikke så frisk plante. Dette gjør at denne løsningen ikke vil være noe sikker måte å finne ut om planten har det bra. Vi har derfor bestemt at vi isteden detektere fargene planten har. Det er ikke optimalt, men det å få til deteksjon via IR kamera har vist seg å være mye vanskeligere enn vi trodde fra starten av.

Hvordan skal vi holde planten i live?

For å samle inn sensor data har vi en Arduino. Der samler gutta fra elektro inn sensor data som de sender til Pi’en. Når vi mottar data fra Arduinoen lagrer vi det i ett objekt som holder på alt av sensor data. Vi har også et objekt som holder på verdiene vi prøver å oppnå.  Dette gjør det enkelt å holde styr på om vi bør sende ny informasjon til Arduinoen.  Vi har ett kamera som vi regelmessig bruker til å undersøke hvordan det står til med planten. Her ser vi etter tegn som kan tyde at den ikke er frisk. Det hjelper oss når vi skal bestemme om vi vil endre forholdene til planten og se om det hjelper. Vi lagrer alle sensor data i en database slik at det er mulig å finne ut litt om hvordan planten pleier å være. Dette er viktig når vi detekterer  avvik.  Når vi merker ett avvik er det flere ting vi kan prøve å endre på. Hvilket valg vi tar avhenger av hvordan informasjonen fra sensorene ser ut. Feks om vi merker at planten ikke ser så frisk ut og vi merker at det er lite fuktighet i jorden. Er det mest sannsynlig at planten vil trenge kortere intervall mellom vanninger. Er det derimot motsatt at planten har veldig mye fukt kan det være vi bør prøve med ett kortere intervall mellom vanningene.

For å få til alt dette har vi brukt endel eksterne biblioteker. Vi bruker OpenCV for å behandle bilder vi tar av blomsten. SQlite for database. Serial for kommunikasjon  og Flask for å integrere Python koden med web serveren.  Vi kjører en tråd for hoved løkken som kjører rekursivt med jevne mellomrom slik at vi får oppdateringer for planten.

Det er også mulig å koble seg opp mot Pi’en for å sjekke hvordan det står til med planten. Her bruker vi en web framework som heter  Flask. Den muliggjør kjøring av en web server som trigger funksjoner når brukeren kommer inn på siden eller trykker på knapper. I vårt tilfelle har vi laget mulighet for å endre parametere til blomsten manuelt om man skulle ønske det. Brukeren vil også ha mulighet til å se informasjon vi har samlet fra sensorene der. Vi har også implementert en webview i en Android applikasjon slik at det er mulig å få mobil vennlig visning