Brauduino + DIN Arduino klonas = DINBrauduino

5 03 2014

Pradėsiu pasakojimą nuo pirmo neaiškaus kintamojo įrašo pavadinimo matematikoje. Su Brauduino esu susidūręs prieš pusmetį kuomet grupei vilniečių gaminau kelias jo PCB:

IMG_20131007_114651

IMG_20131007_114656

IMG_20131007_114731

Brauduino trumpai tariant yra alaus gaminimo kontroleris skirtas alui virti. Visas virimo procesas yra kiek galima daugiau automatizuotas ir supaprastinamas. Jis susideda iš originalaus Arduino Uno, ar analogiško arduino, kuris jungimas su savotišku ir gan keistu LCD priedėliu. Labai daug informacijos apie kontrolerio gamybos procesas aprašytas čia: http://www.homebrewtalk.com/f170/braumiser-my-braumeister-inspired-rig-299192/ ir http://aussiehomebrewer.com/topic/59563-mathos-controller/.

Visai nesenai užmačiau tų pačių, mano minėtų, vilniečių vargą gaminat puodus ir tą patį kontrolerį su mano darytom PCB: http://www.atvirasalus.lt/forum/topic.php?id=370 Šaunuoliai! Džiugu ir man prisidėjus prie šio projekto iš dalies 🙂

Dabar kai pasigaminau DIN Arduino kloną sugalvojau kitą sportinį interesą. Kodėl jame nepakurus Brauduino programos? Hardware skirtumai tik keli: LCD čia jungiamas per 4 bitų sąsaja, o mygtukai pajungti tiesiogiai prie A0, A1, A3 ir A4. Nieko tokio, greitai viska pakeisime.. Skaityti pilną įrašą »





DIN rail Arduino klonas (taisyklės)

4 03 2014

Tęsiant DIN įrenginio aprašymo ciklą liko tik aprašyti kaip apsirašomos ir naudojamos taisyklės.  Taisyklės susies įėjimus su išėjimais, t.y. jos tikrins ar įėjimas tenkina taisyklės reikalavimą ir esant tokiai situacijai padarys išėjimą tokį koks numatytas taisyklėje. Viso yra 16 taisyklių kurias dabar pasakosiu kaip konfigūruoju, tikrinu ir pritaikau esant poreikiui.

Struktūra

Taisyklės turi sekančius laukus:

  • Įėjimas – daviklio adresas kurį stebime. Kuomet įėjimas yra nulinis laikome kad taisykle nesukonfigūruota ir jos tikrinti nereikia;
  • Išėjimas – išėjimas kurį keičiame kuomet įėjimas tenkina taisyklės sąlygas;
  • Įėjimo minimali reikšmė – reikšmė nuo kurios taisyklė tenkinama;
  • Įėjimo maksimali reikšmė – reikšmė iki kurios taisyklė tenkinama;
  • Išėjimo reikšmė – esant teisingai taisyklei nauja išėjimo būsena;

Turime net 16 taisyklių, o tik 8 įėjimus ir 8 išėjimus, ne veltui. Kelios taisyklės gali turėti ne tik tą patį išėjimą, bet skirtingus įėjimus, ar skirtingus įėjimų minimalius ir maksimalius rėžius. Atsiranda galimybė vieną išėjimą valdyti atsižvelgiant į kelis įėjimus, arba dar geriau – išėjimo stiprumą (PWM) valdyti priklausomai nuo įėjimo reikšmės. Apdorojant taisykles jos peržvelgiamos grupėmis pagal išėjimus, taip paeiliui nustatomas galutinis stipriausias išėjimas reikalingas šiam išėjimui.

Apdorojant taisykles programa atlieka tokią seką veikimų (trumpos rodyklės reikškia teigiama atsakymą, o ilgos neigiamą arba veiksmo užbaigimą):

Untitled 1 Skaityti pilną įrašą »





DIN rail Arduino klonas (išėjimai)

4 03 2014

Išėjimų aptarimas bus labai trumpas.

Pirmiausia tai mano įtaisas, kaip ir bet kuris kitas Arduino, išėjimams gali generuoti skaitmeninius (on/off) arba PWM impulsinius išėjimus. Viso valdiklyje turime 8 išėjimus iš kurių visi gali būti skaitmeniniais ir 4 iš jų panaudoti galime kaip impulsinius. Bet apie viska iš eilės.

Technika

Išėjimo signalas valdiklyje yra tokios pačios įtampos kaip pagrindinis įrenginio maitinimas. Schemoje panaudota ULN2803 kuri ir konvertuoja Atmega328P signalus. Kiekvienas išėjimo kanalas gali būti apkrautas iki 500mA tik reikia įsitikinti kad tiek sugebės duoti pats maitinimo blokas.

Aš praktikoje beveik visuomet naudoju 12V maitinimą, tad kaip išjimus labai patogu naudoti plačiai paplitusias 12V rėles:

IMG_7781 Skaityti pilną įrašą »





DIN rail Arduino klonas (įėjimai)

3 03 2014

Aptarsiu kaip atrodo įėjimai, arba visokie ten sensoriai ir davikliai.

Sensorių rūšių kol kas tikrai nėra daug, kol kas viso labo 10 vienetų. Jie yra sekantys:

  • DS18B20 temperatūra;
  • DHT11 drėgmė;
  • DHT11 temperatūra;
  • DHT11 drėgmės ir temperatūros santykis (dew point arba kažkas panašaus);
  • Button – trumpalaikis mygtuko/signalo įėjimas;
  • Switch – ilgalaikis mygtuko/signalo įėjimas;
  • Analog In – analoginės reikšmės nuskaitymas;
  • 10K termistoriaus temperatūra;
  • Srovės stiprumo sensorius (savadarbis panaudojus srovės tranformatorių);
  • Generatoriaus įtampos sensorius (0-600V sekimas);

Įėjimų skaičius gali augti pagal situaciją, atnaujinat programinę įrangą. Techniškai pajungti galima dauguma 5V darbinės įtampos daviklius naudojančius vieną laidą duomenims perduoti.

Techninė dalis

Davikliai, kaip jau minėjau techninės dalies aprašyme, yra jungiami per 3 pin jungtis, kurios turi +5V maitinimą, signalo ir GND jungtis. Pati jungtis davikliai lengvai ištraukiama. Keli pvz.:

IMG_20140228_085949

IMG_7775

Šiuo atveju ėmiau ir sujungiau DS18B20 ir DHT11 tiesiai prie kištuko. Liko tik pajungti šiuos sensorius į kontrolerio gale esančius įėjimų lizdus:

IMG_7776 Skaityti pilną įrašą »





DIN rail Arduino klonas (menių ir valdymas)

3 03 2014

Prieš pradėdamas įrašus apie šio įrenginio išėjimus ir išėjimus turiu pirmiausiai pakalbėti apie tai kaip abstrakčiai atrodo vartotojo sąsaja. Pirmoje vietoje štai pasidalinsiu atnaujintu DIN korpuso vaizdeliu kuriame priklijavau šiokias tokias instrukcijas vartotojui:

IMG_7771

Išvaizda neįmantri. Atsirado mygtukų paaiškinimai, įėjimų ir išėjimų adresavimas bei maitinimo poliariškumo nurodymai.

Dabar pereisiu prie savo programos. Trumpame filmuke pamatysite kaip veikia pradinis variantas:

Skaityti pilną įrašą »





Arduino Web serveris ir File Upload per AJAX

23 09 2013

Programuodamas Arduino Mega Web serverį, kurio turinys yra SD kortelėje, susiduriame su viena nemaža problema susijusi su pastoviu HTML bei kitų failų, esančių kortelėje, atnaujinimų. Pastoviai kortelę ištraukti bei įdėti gana nepatogu, tačiau būtina atlikus kiekvieną kodo atnaujinimą. Kiek padirbėjęs su paieškos sistema radau užuominas, kad TinyWebServer biblioteka puikiai suderinti šie dalykai. Pirmiausiai tai puikiame pavyzdyje jau yra scriptas bei visa struktūra kaip viskas daroma, kuomet norime iš PC pasinaudojant CURL.EXE programa failus siųsti į SD kortelę. Failai bus sukuriami, o jei tokie jau yra perrašomi. To man ir reikia. Kaip atrodo HTML atnaujinimas galite pamatyti trumpame filmuke:

Viskas labai nesudėtinga. Curl programa nusiskaito failus iš eilės ir juos susiunčiu generuodama antraštes  su pakatalogiu “upload“ pvz: http://192.168.100.177/upload/config.html. Pakatalogis mums reikalingas ne tam kad žinoti kur saugosime failą, o tik tam kad Arduino žinotu kad failą reikia įkelti į SD kortelę, o ne atvirkščiai.  Skaityti pilną įrašą »





Temperatūros palaikymo įrenginys paremtas Arduino

29 04 2013

Pastaruoju metu susidūriau su keliais buitiškais reikalais kuomet reikalinga tam tikra vienoda aplinkos temperatūra. Bene pats pagrindinis reikalas – naminės giros gamyba. Dar šildymo sezono metu gira gaminti buvo vieni juokai nes kambariuose būdavo pastovi ~22’C temperatūra, o būtent tokios aplinkos ir reikia idealiai fermentuojant tiek gira, tiek žinoma rimtesnį dalyką – alų. Pasibaigus šildymo sezonui reiklai kiek pablogėjo: ankstyva pavasari temperatūra kiek žemesne nei reikiama ir ji vis kinta. Ateis vasara – kambariai galimai bus net pernelyg karšti, o mielėms tai vėlgi negerai nes jos tiesiog pradės “bujoti“. Taigi laikas pasigaminti prietaisą, kuris galės kontroliuoti tam tikros izioliuotos patalpos temperatūra. Pirmoje vietoje noriu pagaminti universalų bei kiek galima lengviau valdoma prietaisą.

img20130429104611 Skaityti pilną įrašą »





Atmega8515 ne savo kailyje arba kaip su Arduino užprogramuoti AVR!

14 02 2013

Neseniai teko poreikis užprogramuoti Atmega8515 mikrokontrolerį. Lengvas darbas bet tik ne šiuo atveju. Tuo pačiu prisiminiau, kad nesu aprašęs savo programavimo įtaiso tad apie viska nuo pradžių.

ArduinoISP

Jau nuo senai visus savo naudojamus Attiny2313 ar Atmega8/16/28 programuoju su štai tokiu savadarbiu Arduino UNO papildymų:
img20130214144008 Skaityti pilną įrašą »





GCode simuliatorius GSim (atnaujinimas)

31 07 2012

Prieš kurį laiką jau pristačiau GCode simuliatoriaus programą kurios paskirtis buvo pasipraktikuoti braižyti linijas pasitelkus GCode instrukcijas čia https://mindogas.wordpress.com/2012/07/13/g-code-simuliatorius/. Kaip jau minėjau programos pradžioje nebuvo planuota jos tobulinti, nes visas šias instrukcijas vėliau perims Arduino. Jame bus programinė įranga panaši į RepRap ar Grbl, kuri per Serial sąsają gautas instrukcijas valdys mini CNC stakles. Tačiau šias instrukcijas kažkas turės jam nusiųsti. Pradžioja galvojau, kad tam sukursiu paprastutę programėlę, tačiau vėliau sugalvojau kodėl gi nepanaudojus GSim šiam reikalui.

Taigi padirbėjus kelias dienas laivu laiku GSim atsinaujino į versiją 1.1 kurioje atsirado šie pakitimai:

  • Programos nustatymai bei pagrindiniai valdymo elementai perkelti į Meniu;
  • Satatistinė informacija (dabartinė instrukcija, progresas procentais, darbo laikas ir likęs laikas) yra pateikiama Status Bar lauke programos apačioje;
  • Intergruotas Serial duomenų siuntimas pasirinktu portu;
  • Pakeista sąsajos spalvos į mėlinos lentos (angl. Blue Board) temą;
  • Atsirado galimybė keisti pieštukų (tiek pagrindinio, tiek orinio) dydžius;
  • Simuliuojamas piešinys piešiamas tokio dydžio koks yra programos langas automatiškai;
  • Simuliuojamas piešinys nedingsta sumažinus ar velkant langą;
  • Galimybė išsaugoti simuliavimo paveiksiuką PNG, BMP ar JPG formatais;
  • Atnaujintas liniju sekimo algoritmas;
  • Keli kosmetiniai pakeitimai (ikona, failo rodymas antraštėje, atidaromų failų filtravimas pagal plėtinius itr t.t.);

Programos langas atrodo taip:

gsimmain Skaityti pilną įrašą »





PWM ventiliatoriaus ir termometras panaudojant Timelapse bėgių kontrolerį

26 07 2012

Neseniai jau parašiau kaip galima panaudoti timelapse bėgių kontrolerio aparatinę įrangą kitais tikslais (https://mindogas.wordpress.com/2012/07/04/timelapse-begiu-kontrolerio-kitoks-panaudojimas/). Buvo paminėtas PWM ventiliatorius, tačiau man to nebuvo gana tad sugalvojau, kad reikia temperatūros informacijos. Taigi radau 10kOhm termistoriu, 10kOhm varžą, atsiverčiau timelapse kontrolerio schemas ir radau kaip lengvai galima viska pajungti.

Termistoriaus pajungimas

Jau seniau esu aprašęs 10kOhm termistoriaus pajungimą prie arduino:

atsisiųsti

Visa tai padaryti kiek sunkiau turint tik kelis įėjimus/išėjimus Timelapse bėgių kontrolerio geležyje:

86564225 Skaityti pilną įrašą »