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.
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.
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).
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.
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.
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.
For å kunne lukke boksen etter endt operasjon måtte vi bytte ut potentiometeret med ett nytt for å få plass.
Den mekaniske sperren borres vekk:
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.
- 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
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.