Kaip aš džynaudą dariau

Posted: 2014-08-18 in Darbeliai
Žymos:, , ,

Va neseniai rašiau apie tai, kaip su mikrovaldikliu stebėti įtampą. Tiksliau, apie būdą, kuris man tinka ir patinka. O kas toliau?

O toliau situacija tokia. Stovi laukuose namelis, o jame junginėjasi dvi elektros linijos, t.y. relės. Kartais kažkas įvyksta ir tos relės neišsijungia. Iki artimiausio namo — apie 60-70 metrų. Na, tai kilo mintis pabandyti sulipdyti kažką bevirvėlaidžio, o konkrečiai — panaudoti JeeNode klonus. JeeNode yra gan geras ir nebrangus sprendimas su RFM12B radijo moduliuku. Taip pat JeeLabs sukūrė puikią kodo biblioteką, su kuria išsprendžiama krūva problemų, pavyzdžiui, duomenų „teisingumas“ ir šiaip patogumas naudotis.

Man dar taip pat labai pasisekė, kad nereikėjo pačiam projektuotis plokščių. Vienas draugas JeeNode seniai domisi ir turėjo pasigaminęs krūvelę universalių plokščių su krūva skylučių kokiems nors davikliams/jutikliams ir kitoms nesąmonėms prilituoti:

JeeNode klono plokštės | Elektronika | Darau, blė

Jis taip pat turėjo ir visų reikalingų komponentų (taip pat ir RFM12B moduliukų) Tad kai išsiaiškinau, kaip galėčiau stebėti tinkle įjungiamą įtampą, sėdau lituoti plokščių.

Pradžiai dar reikėjo išsitraukti kelis senus ATX maitinimo blokus:

Išardyti ATX maitinimo blokai | Elektronika | Darau, blė

Nesgi pajutau 100 nF talpos kondensatorių badą. Jie kažkaip labai sueina į visokius darbelius triukšmų apvalymui. Gerai, kad viename jų buvo per akis:

Iš ATX maitinimo blokų išlituoti 100 nF talpos kondensatoriai | Elektronika | Darau, blė

Lituoti pradėjau, kaip visada, nuo žemiausių detalių. Šiuo atveju tai buvo RFM12B moduliukas. Jį sugalvojau laikinai prispausti kanceliariniu spaustuku (nes, nu, vis dar neturiu padoraus visokių lituotojų laikiklio su daug „rankyčių“):

RFM12B radijo modulio litavimas prie JeeNode klono plokštės | Elektronika | Darau, blė

Sulitavus vaizdas va kažkoks toks:

Bandomasis sulituotos JeeNode klono plokštės įjungimas per USB TTL adapterį | Elektronika | Darau, blė

Čia dar toks reikalas, kad plokštė suprojektuota su keraminiu rezonatoriumi, kuris turi viduje ir į „žemę“ įjungtus du kondensatorius. Aš tokių iš bičiulio neprigriebiau, o pirkti kažkaip pagalvojau, kad neverta. Tai teko ten kvarco rezonatorių ir du kondensatorius kažkaip sugrūsti. Jie nuotraukoje matosi apačioje, po procesoriaus mikroschema.

Jungiu per savo seną atsitiktinai gautą USB TTL adapterį. Niekas neveikia. Hm. Tada pačiupinėju plokštę, o ji karšta kai velnias… 3,3 V reguliatorius kaista kaip pasiutęs.

Puoliau ieškot galų, galvoju, gal kažkur kažką užtrumpinau. Su testeriu „perskambinau“ biškį ir žiūriu, kad 3,3 V linija kažkaip tai užtrumpinta į „žemę“…

Rasti pavyko gan greitai, nes vienas kondensatorius man pasirodė beesąs įtartinoj vietoj. Draugas davė kartu ir schemas, tad pradėjau tyrinėti. Schema kaip ir gera, o va plokštės brėžinyje radau rankos sudrebėjimą, kuris kondensatoriaus skylutę „sukabino“ su via į „žemę“… va tai tau. O vizualiai nelabai matosi.

Plokštę teko apipjaustyti, gerai, kad litavimo aikštelės atskirtos, o ne vientisos. Čia aš truputį nuvaliau ir laką, ir piešinėlius, ir aikštelės padengimą, kad geriau galus rasčiau:

Peiliu pataisyta elektroninė plokštė | Elektronika | Darau, blė

Kitoje pusėje, aišku, tas pats.

Šitą sutvarkius įtampos atsirado ten, kur reikia. Bet tada atradau, kad mano USB TTL adapteris neveikia. Naudojant vietoj adapterio Arduino plošktę viskas ok:

JeeNode plokštė prijungta per Arduino kaip serijinį keitiklį | Elektronika | Darau, blė

Įtariu, kad dėl 3,3 V ir RESET linijos adapteryje. Galvojau, gal pakeliamuosius rezitorius į 5 V padarysiu RX/TX linijoms, bet nepadėjo. Po kurio laiko pasikrapštęs aptikau, kad USB TTL adapteris suveikia, kai įjungimo į USB lizdą metu užtrumpino jo RESET koją ir 5 V. Paskui jau galima atjungti, veikia ir taip. Dar RX/TX buvau supainiojęs, bet šitą atradau laikinai susilitavęs antrą plokštę tik su procesoriumi ir 5 V maitinimu:

JeeNode plokštė su procesoriumi ir laikinu 5V maitinimu | Elektronika | Darau, blė

Užbaigiau abi plokštes, susirankiojau bibliotekas ir va, guli du bevirvėlaidžiai prietaisėliai ir „šnekasi“ eteriu:

Dvi JeeNode klono plokštės komunikuojančios radijo bangomis | Elektronika | Darau, blė

O va čia abiejų prietaisėlių konsolės. Kairėje imtuvas parodo, kokius skaičiukus eteriu gavo, o dešinėje siųstuvėlis rodo, ką išsiuntė. Kairėje pirmas skaičiukas yra kintantis, o du antri — tiesiog įhardkodinti:

JeeNode plokščių serijinės konsolės su pavyzdiniais duomenimis | Elektronika | Darau, blė

Na, džiugu, kad pradžia yra ir eteriu bangos sklinda taip, kaip norisi. Dabar reikės atstumo testą daryti ir jau tada galutinai spręsti, ar projektas turi galimybę būti įgyvendintas. Šiaip smagu padaryti kažką su radijo bangomis. Juo labiau, kad yra gatavi moduliai, plokštės ir bibliotekos… tikras džiaugsmas tinginiams. Nors kai kurie turbūt net ir lituoti tų plokščių nesiryžtų, pirktų gatavas, surinktas 😀 O aš kol kas negaliu be kanifolijos kvapo…

Komentarai
  1. mindogas parašė:

    Žiūrių, žiūrių ir tik dabar suvokiau kad anas per 3,3V įtampa 16Mhz iš ATmega spaudžia. Tai ne vien Itead firma taip turbina atmegas 😀

  2. Kiborgas parašė:

    Kiets tu, eina sau. Norėčiau ir aš taip mokėt.

  3. Vytautas Valaitis parašė:

    Aš va tokį workflow išmokau, panašius devaisus gamindamas:
    1. Sulituojam viską, išskyrus procą.
    2. Patikrinam ar VCC ir GND neužtrumpinta.
    3. Pajungiam maitinimą ir patikrinam ar procas gaus reikiamą įtampą.
    4. Lituojam procą ir bandom toliau.

    USB-UART adapteris panašus į šitą:

    Kažkada patys pigiausi ebay buvo. Jie turi dvi nesąmones:
    1. RX ir TX atvirkščiai pažymėta.
    2. Reset atvestas vidinis CP reset, kuris niekam nereikalingas, reikia pjaut takelį, kuris pažymėtas reset ir pajungt prie DTR ar RTS pin’o, tada ir su standartiniais Arduino pro veikia:).

    • Darau, Blė parašė:

      Jo, aš panašiai darau… dažniausiai 😀 Lituoju gabaliukais, pradedant nuo maitinimo ir tikrinu. Čia tik pagalvojau, kad gerai suprojektuota gamyklinė plokštė… o nė velnio.

      Va dėl DTR ir CP reset tai žinau, aš savo adapterį persidariau. Bet man įdomu, kodėl neveikia paprastas PL2303 adapteris, kuris iš viso turi tik VCC, RX, TX ir GND, jokių ten resetų ir dtr’ų pajungtų?

      • Vytautas Valaitis parašė:

        Man tie PL visada su draiveriais durniuodavo, ypač windows’uose, dėl to stengiuosi nenaudot jų kiek įmanoma. O tiesiog užtrumpinus Rx su Tx veikia?

        • Darau, Blė parašė:

          Aš dirbu su Linux. PL adapterius naudoju rūterių konsolėms debuginti. Teoriškai turėtų tas pats šūdas būti ir su AVR, bet ne. Tiesa, TX (irgi supainiotas) švieselė mirksi, kai AVR’as kažką siunčia, bet konsolėj tuščia nyku — nepareina bitukai į screen’ą. CP tai suveikė reset’ą užkėlus, tai kaip ir gerai. Hm, gal čia pačios mikroschemos bajeris, kad tas CP Reset turi būti high?

      • Vytautas Valaitis parašė:

        Pala, o tame custom boarde Arduino bootloaderis? Tada jam gali reikt ir resetą nuspaust su RTS/DTR koja iš adapterio.

        Dėl CP, tai lygiai tokį adapterį turiu, nereikėjo nieko papildomai dėl reset modifikuot.

        • Darau, Blė parašė:

          Jo jo, ten Arduino. Šiaip, aš jau ne kartą esu tas plokštes visokias litavęs ir tas pats CP adapteris man veikė. Ir čia veikė, kol buvau trumpam įtampą 5 V padaręs. Kai prijungiau 3,3 V reguliatorių — nustojo veikti. Suveikia, jei prieš įkišant į USB būna RESET prie 5 V prijungtas. Aš taip įtariu, kad kadangi AVR’o RESET plokštėje turi pull-up’ą, tai jis suveikdavo ir adapteriui. Nu toks backfeed’as biškį, netiesioginis. Jei visai nepajungiu RESET’o, tai komunikacija nevyksta ir nesuprantu, kodėl. Teoriškai gi turėtų RX/TX ir GND užtekt, jei kitas galas atskirą maitinimą turi. O va serial komunikacija neįvyksta be to adapterio reset’o pakėlimo… nu kažkoks čiūdas.

          P.S. Įkėlinėti firmwarus man per adapterį nelabai rūpi, tad tas DTR funkcionalumas toks antrinis… galutiniam projekte turėtų vienas JeeNode gulėt prie kompo per tokį adapterį pajungtas, bet tik serial’ui, daugiau niekam.

      • Vytautas Valaitis parašė:

        Na, keista, būtų įdomu sužinot kaip baigsis istorija:).
        Dar viena mintis – ar tik plokštė nuo adapterio neužmaitinta? Jei taip, tai srovės trūksta paprasčiausiai.

  4. mindogas parašė:

    Man dar vienas įdomus dalykas – o kokiais tikslais tarp DTR ir AVR Reset buvo panaikintas kondensatorius ir vietoje jo įdėta viela? Esu ne karta skaitęs, o ir pats patyręs kai programos rašymas nevyksta vien dėl elementaraus kondensatoriaus nebuvimo. Tai paaiškintu aišku tik programos įrašymo sutrikimus, kai DTR signalas pernelyg trumpa aktyvuoja Reset, o kondensatorius reikalingas Reset aktyvavimo signalui užlaikyti kiek ilgėliau.

    • Darau, Blė parašė:

      Kondensatorius pas mane pačiame adapteryje, tai antro nereikia.

      • mindogas parašė:

        Jasna tada. Anyway, kondensatoriaus nebuvimas butu paaiškinęs kodėl su Uno adapteriu viskas veikė – ten 100nF kondensatorius yra garantuotai.

        • Darau, Blė parašė:

          Nieko tas nepaaiškina. Kodėl nėra serial ryšio? Jam gi DTR apskritai nereikia… o kodėl bakstelėjus adapterio RESET tas ryšys staiga atsiranda? Va kur įdomumas.

  5. Robchiz parašė:

    Ikišiu savo trigrašį : seksas gerai tik nelabai pagaunu kampo kuo tas RFM12B modulis geras, nesuperpigus, lituoti nevisiems patogu, reikia daug proco koju, Pats neseniai zaidziau su APC220, ~300 metru netiesioginio matomumo neproblema, gali veikti multipointu, didelis buferis (gerai kokiam modbus protokolui) zodziu supergeris tik kaina didoka.

    • Darau, Blė parašė:

      Hmm… man regis, lyginate truputį skirtingus dalykus: radijo modulį ir visą sukomplektuotą ryšio mazgą. RFM12B nėra kažkuo geras ar ypatingas, bet turi ir gerų savybių. Na ir kaina nėra jo tokia didelė, o aš iš viso už dyką gavau. Be to, mano poreikiams tai yra tobulas pasirinkimas, nes reikia pasiųsti vos kelis bitukus kas kažkiek laiko. Visą kitą laiką tiek procas, tiek modulis gali sau miegoti ir mažai elektros valgyti.

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti /  Pakeisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti /  Pakeisti )

Connecting to %s

Brukalų kiekiui sumažinti šis tinklalapis naudoja Akismet. Sužinokite, kaip apdorojami Jūsų komentarų duomenys.