Mažos sąnaudos ir tikslus inkubatorius, skirtas „pasidaryk pats“ biologijai: 8 žingsniai

Mažos sąnaudos ir tikslus inkubatorius, skirtas „pasidaryk pats“ biologijai: 8 žingsniai

Turinys:

Anonim

DIYbio, (Do It Yourself) biologija yra augantis judėjimas, kuriuo siekiama, kad biologija būtų prieinama ne profesinėje aplinkoje. Per pastaruosius kelerius metus platformos, tokios kaip „OpenPCR“ ir „Pearl Biotech“ transiluminatorius, buvo sukurtos tam, kad paremtų biologijos darbą mokyklose ir kūrėjų patalpose už profesionalios laboratorijos įrangos dalį. Šie įdomūs įvykiai sudaro sąlygas moksleivių, mėgėjų ir ne ekspertų biologijos tyrimams. Mūsų projektas prisideda prie didėjančio atviro kodo biologijos priemonių skaičiaus, sukuriant nebrangią, tačiau gana tiksliai ir lengvai naudojamą inkubatorių.

Inkubatorius yra svarbi priemonė daugeliui biologinių eksperimentų ir dažnai naudojama bakterijų ląstelių kultūros eksperimentuose. Atsižvelgiant į didesnį komercinių rinkoje esančių inkubatorių kainų intervalą (daugiau nei tūkstančius dolerių), neprofesionalūs biologijos entuziastai gali neleisti įtraukti inkubatoriaus į savo DIYbio įrankių atsargas. Šiame nepaaiškinamame aprašyme aprašoma, kaip sukurti mažą kainą (mažiau nei 70 $), tačiau tiksliai (+/- 0.25C) DIY inkubatorių, naudojant paprastas medžiagas ir kai kuriuos pagrindinius elektronikos komponentus.

Ne per daug techninė mūsų inkubatoriaus darbo apžvalga.

Inkubatoriaus tikslas yra išlaikyti pastovią temperatūrą viduje. Pagrindiniu lygmeniu, kaip šildymo elementą, naudojame temperatūros jutiklį ir lemputę. Temperatūros pokytis inkubatoriaus viduje yra proporcingas volframo lemputės išskiriamo šilumos kiekiui, atėmus šilumos nuostolius per inkubatoriaus sienas. Kitaip tariant, norint padidinti temperatūrą, lemputė turi išleisti daugiau šilumos nei šilumos nuostoliai per sienas. Pasiekus pageidaujamą temperatūrą, lemputė turi išskirti tą patį šilumos kiekį, kaip ir prarastas.

Volframo lemputės spinduliuojamos šilumos kiekis yra proporcingas lemputės galingumui. Todėl mes galime kontroliuoti temperatūrą inkubatoriaus viduje, valdydami į lemputę tiekiamą AC įvestį.

Šį projektą rengia Piyum Fernando, Matthew Pandelakis ir Stacey Kuznetsov Arizonos valstybinio universiteto Socialinių ir skaitmeninių sistemų (SANDS) grupėje.

Prekės:

1 žingsnis. Techninė inkubatoriaus darbo apžvalga

Šiame etape aptariame, kaip valdyti kintamosios srovės tiekimą naudojant AC fazės valdymo mechanizmą. Šis žingsnis turi keletą techninių detalių, prieš pradedant praktinius inkubatoriaus surinkimo veiksmus.

Kintamosios srovės fazės valdyme kontroliuojame įkrovos tiekiamą galią (mūsų atveju - volframo lemputę), leidžiant tik dalį kiekvieno kintamosios srovės signalo pusės ciklo. Tai šiek tiek panaši į impulsinio pločio moduliavimą (PWM) DC. Skirtingai nuo DC maitinimo šaltinių, kai įtampa yra pastovi bet kuriuo metu, kintamosios srovės maitinimo įtampa atitinka sinusinės bangos formą. Todėl būtinai reikia žinoti dabartinę kintamosios srovės ciklo padėtį prieš tai, kad ji galėtų eiti per apkrovą, kad būtų pasiekta norima išėjimo galia.

Paprastai galios valdymo mechanizmas turėtų būti sinchronizuotas su įvesties kintamosios srovės signalu. Tam mes naudojame Zero Crossing detektorių. Kaip rodo pavadinimas, nulinio perėjimo taškas yra tas, kur kintamosios srovės signalas kerta 0V lygį arba tašką, kuriuo keičiasi jo kryptis. Tai atsitinka kiekvieno pusės ciklo pradžioje (ir pabaigoje), o nulio kryžminis detektorius kiekviename iš šių taškų išeina kvadratinį impulsą. Kai aptiksime šį tašką, mes galime laukti T1 laiko, kol įjungsime kintamosios srovės signalą, kad galėtume eiti per apkrovą. Valdydami T1, galime valdyti apkrovos išėjimo galią.

Jei esate naujokas darbui su maitinimo šaltiniu (~ 110V / ~ 220V), gali būti naudinga pasikonsultuoti su asmeniu, turinčiu gerą patirtį, kad padėtų jums. Gerai mokytis iš savo klaidų, bet ne su maitinimo šaltiniu !!!

2 žingsnis: mums reikalingos medžiagos

Šiame projekte naudojome:

  • 75W kaitinamoji lemputė kaip šildymo elementas
  • Lemputės laikiklis
  • Styrofoam dėžutė kaip izoliacinė medžiaga
  • Temperatūros jutiklis yra „Adafruit Max31855“ termoporos stiprintuvas ir K tipo termoporas
  • Arduino Uno plėtros taryba
  • Jumper laidai
  • Pasirinktinai sukurta kintamosios srovės fazės valdymo grandinė (kintamosios srovės reguliatorius) (jei jums reikia iš anksto lituoto kintamosios srovės fazės valdymo modulio, atsiųskite man žinutę per „Instructables“. Mes galime pabandyti išsiųsti jums vieną. Prieš tai mes jums atsiųsime kelias nuotraukas apie tai, ką pastatėte ir šiek tiek parašėte apie savo pastato patirtį. Jūsų atsiliepimai bus tikrai naudingi formuojant mūsų būsimus tyrimus!)

    • H11AA1 optinis jungiklis
    • MOC3052-M optinis jungiklis
    • Q6015l5 triac
    • 2 X 15k rezistoriai (didelės galios, mažiausiai 2W)
    • 10 k rezistorius
    • 220 rezistorius
    • 180 rezistorius
    • 4 kontaktų varžtų gnybtų jungtys
    • Protoboard su plastikiniu gaubtu
    • Lituoklis ir švinas
    • Maža duona
  • „Olimex“ LCD ekranas (16x2 LCD su 4 mygtukais) kaip vartotojo sąsaja
  • pagrindinė fanera (1/4 colių)
  • akrilas (1/8 colių)
  • Veržlės ir varžtai
  • Magnetas
  • Du nedideli metaliniai vyriai

3 žingsnis: Sumontuokite grandinę

AC fazės valdymo grandinės statyba

Kontūro diagramoje parodyta kintamosios srovės fazės valdymo grandinė, naudojama mūsų inkubatoriaus projekte. Šią grandinę sudaro dvi pagrindinės dalys; a) Nulinės sankryžos aptikimo grandinė b) Kintamosios srovės suveikimo grandinė. Abiejose grandinėse žemos įtampos nuolatinės srovės komponentai yra izoliuoti nuo aukštos įtampos kintamosios srovės komponentų. Mes naudojome H11AA1 opto-jungiklį su 10k ištrauktu rezistoriumi, kad aptiktų nulinio perėjimo taškus. Atkreipkite dėmesį, kad čia sujungėme maitinimo šaltinį su H11AA1 per du 15k rezistorius. Naudojant žingsninį transformatorių (~ 110V iki ~ 12V), tai būtų gražesnis būdas tai padaryti. Bet jei norite naudoti rezistorius, turėkite omenyje, kad turite naudoti didelės galios rezistorius (ne mažesnius ketvirčio vatus). Mes naudojome 5W rezistorius, bet 2W yra daugiau nei pakankamai 110V tiekimui. Bet kokiu atveju atlikite matematiką (V kvadratas virš R), ypač jei esate 220V arba naudojate kitas rezistorių reikšmes. Naudojome Q6015L5 triac, kad suaktyvintume (įjungtume) AC grandinę. Triac funkcija yra panaši į relės funkciją, kur galime įjungti ir išjungti aukšto įtampos signalą naudojant mažą įtampos signalą iš „Arduino“.

PASTABA: Kai statote šią grandinę, turite būti labai atsargūs, nes susiduriate su aukštesne įtampa. Aukštos galios komponentų prijungimui negalite naudoti vidinių juostų ar mažų grandinių laidų laidų. Jūs turite naudoti storas laidus ir gerą švino kiekį, kol juos lituojate. AC įvesties ir išvesties prijungimui naudojome varžtų gnybtų jungtis. Prieš prijungdami prie elektros tinklo, kelis kartus patikrinkite jungtis, kad išvengtumėte trumpųjų jungimų.

Kai baigsite lydmetalį, prijunkite kintamosios srovės maitinimo kabelį prie įvesties varžtų jungčių, kad galėtumėte lengvai prijungti jį prie maitinimo lizdo. Tada prijunkite lemputės laikiklį prie išėjimo varžtų jungčių. Tada grandinės DC galą galite prijungti prie Arduino 5V, GND, 9 ir 2 kaiščių, kaip parodyta schemoje. Čia nulinės sankryžos išėjimas yra prijungtas prie „Arduino“ įvesties (2), kai mes naudojame „Arduino“ pertraukimo funkcijas kode, o PIN 9 - triacui paleisti (galite naudoti bet kurią kitą prieinamą PIN)

Temperatūros jutiklio prijungimas

Jūs galite sekti šį gražų „Adafruit“ straipsnį. Tai paaiškina viską, ką norite žinoti. Mūsų schemoje parodyta, kaip prijungti termoporos stiprintuvą prie „Arduino“.

LCD vartotojo sąsajos prijungimas

Naudodami „inkubatoriaus“ vartotojo sąsają, naudojome „Olimex Arduino“ suderinamą LCD ekraną, kuriame yra 4 integruoti mygtukai. Šis skydas gali bendrauti su „Arduino“ per I2C ir UART. Šiame projekte naudojome I2C komunikaciją. Todėl reikia tik prijungti 5V, 3V3, SDA, SCL, AREF ir GND kaiščius prie atitinkamų „Arduino“ kaiščių.

4 žingsnis: „Arduino“ kodas

Kitame etape aptariame, kaip valdyti šią grandinę su „Arduino“ kodu. Jūs galite tiesiog atsisiųsti ir paleisti mūsų kodą. Likusios šio žingsnio dalys eina į informaciją apie kodo veikimą. Atkreipkite dėmesį, kad kai kurios mūsų kodo dalys yra paremtos „Arduino“ AC fazės valdymo pamoka ir mes pakartotinai panaudojome dalį tos kodo dalies, kaip ji yra.

„Arduino“ UNO plokštėje yra „ATmega328P“ 16MHz mikroprocesorius. Norint suaktyvinti AC fazės valdymo grandinę tiksliai nustatytais intervalais, naudojome ATmega328 aparatūros laikmačio pertraukimo funkcijas. Taigi, jei nesate susipažinę su sąvokomis, tokiomis kaip laikmačiai, registro perpildymai ir išankstinis nustatymas, šiame straipsnyje jie paaiškinami geriau.

Prieš pradėdami koduoti, turime atlikti keletą pagrindinių skaičiavimų. AC signalas yra 60 Hz. (Nesijaudinkite, jei jūsų šalyje yra 50 Hz, galite jį lengvai apskaičiuoti) Tai reiškia, kad kintamosios srovės signalas kerta nulį, pasiekia didžiausią teigiamą įtampą, vėl kerta nulį, pasiekia didžiausią neigiamą įtampą ir grįžta į nulį 60 kartų antra. Laikotarpis (laikas trunka) yra 1/60 arba 0,01677 sekundės (16,67 milisekundės). Taigi, pusinis ciklas arba laikas tarp dviejų nulinio perėjimo impulsų įvyksta 8,33 milisekundėse.

Nuo šiol mes nustatysime laiko intervalus nuo laikrodžio skaičiaus, o ne sekundėmis. „Arduino“ laikrodis veikia 16 MHz, ty 16 000 000 ciklų per sekundę: vienas laikrodžio ciklas trunka 0,0625 mikrosekundes. Viename 60 Hz kintamosios srovės signalo cikle yra 133,333 laikrodžio ciklai. „Arduino Uno“ 16 bitų laikmatis (laikmatis1) gali būti skaičiuojamas tik iki 65535. Todėl turime ją konfigūruoti su prescaler. Šiame kode naudojome 256 prescaler. Su 256 prescaler, pusė ciklo reiškia apie 520 laikmačio žingsnių. Dėl praktinių priežasčių (nedideli tiekimo dažnio pokyčiai ir triaciniai veikimo vėlavimai) laikėme tai 450. Tai užtikrina, kad triacinis vairuotojas turi laiko išjungti prieš kitą pusę. Taigi, mes valdėme laukimo laiką prieš įjungdami triacą diapazone 1-450 kiekviename pusiniame cikle, kad galėtume valdyti išėjimo galią. Tam naudojome palyginamųjų atitikmenų pertraukas. Mes naudojome laikmačio perpildymą, kad valdytume signalą į triac vartus ir nustatytume 4 laikmačio impulsų plotį. Čia, kai impulsas siunčiamas į triac GATE, jis įjungs kintamosios srovės maitinimą įjungtas ir išliks įjungtas netgi po to, kai pulsas bus pašalintas, kol kitą kartą AC banga pasiekia nulį. (Jei nesate susipažinę su „Triac“ operacija, tai yra geras straipsnis.) Dėl šios priežasties nereikia nerimauti dėl triako išjungimo.

Toliau pateikiamas kodo fragmentas rodo AC fazės valdymo logiką.

#define DETECT 2 // nulis kryžiaus aptikimas

#define GATE 9 // triac vartai

#define PULSE 4 // paleidimo impulso plotis (skaičius)

// nustatyti Timer1 (16 bitų)

OCR1A = 100; // inicijuoti lyginamąjį

TIMSK1 = 0x03; // leisti lyginti A ir perpildymo pertraukas

TCCR1A = 0x00; // nustatyti laikmačio kontrolės registrai

TCCR1B = 0x00; // normalus veikimas, laikmatis išjungtas

// nustatyti nulinio perėjimo pertrauką

attachInterrupt (0, zeroCrossingInterrupt, RISING);

// nustatytas nulinis kryžius

void zeroCrossingInterrupt () {

TCCR1B = 0x04; // paleiskite laikmatį su padalijimu 256 įėjimu

TCNT1 = 0; // atstatyti laikmačio skaičiavimą iš nulio - skaičiuokite tol, kol jis atitinka lyginamojo vertę

}

// palyginimo atitikmuo - pasiekė numatomą vėlavimą

ISR (TIMER1_COMPA_vect) {

„DigitalWrite“ (GATE, HIGH); // nustatykite triac vartus, kad įjungtumėte aukštą - įjunkite maitinimą

TCNT1 = 65536-PULSE; // impulsų impulsų plotis

}

// timer1 overflow - impulsas pasiekė savo plotį

ISR (TIMER1_OVF_vect) {

„DigitalWrite“ (GATE, LOW); // išjunkite triac vartus

TCCR1B = 0x00; // išjungti laikmatį, kad sustabdytumėte nenumatytus paleidiklius

}

Temperatūros kontrolė

Dabar mes darome su sudėtingiausia mūsų kodo dalimi.Toliau valdoma galia (arba vėlavimo laikas) pagal esamą temperatūros vertę ir norimą tikslinę temperatūrą. Norėdami perskaityti temperatūros vertę, naudojome „Adafruit_MAX31855“ biblioteką. Siekiant įgyvendinti kontrolės mechanizmą, naudojome PID valdymo logiką. Nesijaudinkite, jei tai skamba šiek tiek sudėtinga. Laimei, tam turime Arduino biblioteką. Toliau pateiktas fragmentas parodo kodą.

#define DO 3

#define CS 4

#define CLK 5

Adafruit_MAX31855 termopora (CLK, CS, DO);

dvigubas setPoint, įvestis, išėjimas; // Apibrėžkite kintamuosius, prie kurių prisijungsime

dvigubas Kp = 2, Ki = 6, Kd = 1; // Nurodykite nuorodas ir pradinius derinimo parametrus

PID myPID (& Input, & Output, & setPoint, Kp, Ki, Kd, ​​DIRECT);

myPID.SetMode (AUTOMATIC);

myPID.SetOutputLimits (0, 449); // nustatyti diapazoną

// kontūro metodo viduje

dvigubas c = termoelementas.readCelsius ();

jei (isnan (c)) {

i = 450; // Eikite į minimalią galią, jei kažkas negerai

}

Kitas {

Įėjimas = c; myPID.Compute ();

i = 450 išvestis; // sumažinkite vėlavimą, didesnę galią

}

OCR1A = i; // nustatyti lyginamąją vertę i

vėlavimas (400); // palaukite, kol bus skaitoma kita temperatūra

Vartotojo sąsaja

Norėdami programuoti vartotojo sąsają, kartu su Arduino vielos biblioteka naudojome olimex lcd ekraną. Olimex biblioteką galite atsisiųsti iš „Olimex“ svetainės.

5 veiksmas: patikrinkite sistemą

Kai atliksite litavimą, surinkimą, laidus ir programavimą, turite beveik viską, kad galėtumėte sukurti funkcinį inkubatorių ir jį išbandyti. Dar du paprasti dalykai! Jūs turite išgręžti vieną skylę polistirolo dėžutės viršuje, kad įdėtumėte lemputės laikiklį ir kitą mažą skylę galinės dalies apačioje, kad įdėtumėte termoporos laidą. Prašome perskaityti pirmąjį vaizdą. Įdėkite laikiklį per viršutinę angą ir pritvirtinkite volframo lemputę.

Laisvą termoporos vielos galą perkiškite per apatinę skylę ir lipniu ant styrofoamo dėžutės galinės sienos. Prašome peržiūrėti antrąjį vaizdą. Norėdami uždaryti, naudokite styrofoam dėžutės dangtelį (nuo šiol mes padarysime skaidrią duris). Įjunkite arduino, naudodami nuolatinį maitinimą. Prijunkite kintamosios srovės kabelį prie maitinimo lizdo ir įjunkite. Šiuo metu nelieskite nieko, kas vykdo kintamosios srovės srovę. Pagal numatytąją temperatūrą temperatūra yra 35 C. Jei viskas gerai veikia, temperatūros rodmuo turi pasiekti ir nusistoti 35 ° C po 4-5 minučių. Jei ne, išjunkite kintamosios srovės maitinimą ir patikrinkite savo laidus.

Norėdami pakeisti tikslinę temperatūrą, atlikite šiuos veiksmus.

  • Ilgai paspauskite ketvirtąjį mygtuką iš kairės, kol ekranas pasikeis į nustatytą tikslinį režimą.
  • Naudokite du kairiuosius mygtukus, kad padidintumėte ir sumažintumėte temperatūrą.
  • Norėdami nustatyti naują vertę, naudokite trečiąjį mygtuką iš kairės.

Prireiks šiek tiek laiko, kol pasieksite naują tikslą.

Dabar jūs turite funkcinę sistemą. Padarykime jį gražiau, saugiau ir lengviau naudoti pastatant gaubtą.

6 žingsnis: „Laser Cut“ korpusas

Kitas žingsnis - lazeriu supjaustyti korpuso dalis naudojant fanerą ir akrilą. Jūs galite tiesiog atsisiųsti ir naudoti naudojamus failus, jei naudojate tuos pačius komponentus (specialiai styrofoam box) kaip mūsų. Jei ne, galite lengvai pakeisti mūsų failus. Visos dalys, išskyrus duris (⅛ colių akrilas) ir priekinė UI plokštė (⅛ colio akrilas) yra pagamintos iš 1/4 colių faneros.

7 žingsnis: surinkite elektroniką į grandinių plokštes

Geriausias dalykas yra mūsų korpusas, kuriame yra vietos visoms mūsų elektronikos dalims. Jūs galite tiesiog pridėti juos prie grandinės plokštės, kaip parodyta paveikslėlyje. Tikriausiai turėsite pašalinti laidus, kuriuos įdėjote į testavimo etapą. Vėliau galite juos vėl prijungti. Jei negalite rasti labai mažų varžtų, kad galėtumėte ištaisyti termoporos stiprintuvą, naudokite tam tikrą karštą klijai. (Tai mes darėme.;)) Prieš prijungdami jį prie grandinės plokštės, įsitikinkite, kad įdėjote kintamosios srovės fazės valdymo grandinę į plastikinį gaubtą. Tokiu būdu galite užtikrinti naudotojų saugumą. Tada prijunkite LCD ekraną prie priekinio skydelio.

8 žingsnis. Viskas kartu

Pradėkime pastato statybą iš apačios.

  1. Pritvirtinkite dvi puses, nugaros ir apatinę dalį kartu su veržlėmis ir varžtais, kaip parodyta paveikslėlyje.
  2. Tada įstumkite grandinės plokštę į šonines ir galines sieneles.
  3. Pritvirtinkite termoporos laidą prie termoporos stiprintuvo.
  4. Dabar įkiškite laisvą termoporos vielos galą per skylę, esančią šalia termoporos stiprintuvo grandinėje. Tada įdėkite jį į polistirolo dėžutę, kaip mes atlikome bandymo etape, ir klijuoti jį prie dėžutės sienos naudojant juostą.
  5. Dabar galite įstumti polistirolo dėžutę į korpusą.
  6. Įdėkite lemputės laikiklį per grandinės plokštę ir viršutinę polistirolo dėžutės angą. Jei jis yra laisvas, naudokite tam tikrą klijais, kad jis būtų stabilus.
  7. Tada prie priekinio skydelio pritvirtinkite veržles ir varžtus.
  8. Dabar dar kartą veskite viską, kaip mes atlikome bandymo etape.
  9. Po to galite uždėti viršutinę gaubto dalį ir pritvirtinti jį veržlėmis ir varžtais.
  10. Paskutinis dalykas yra durų fiksavimas. Vienoje pusėje naudojome du metalinius vyrius ir kitoje pusėje - mažą magnetą. Jums reikės pritaikyti durų dizainą pagal turimus išteklius.

Viskas draugužiai! Tikiuosi, kad jums patiko šis neįvykdomas. Mes sveikiname jūsų pasiūlymus. Sėkmės ir pasirūpinkite!