Kategória: Elektronika




2017. Május 27.

Durba-tó új adatok szoftverfrissítés után

írta: Xaint

Ma 14:35-kor ismét mintát vettem az eddigi adatokból, tudni akartam, hogyan muzsikál az új vízhőmérő szonda, illetve, hogy sikerült-e a vízmélységmérő szenzor éjszakai kilengéseit korrigálni a frissített szoftverrel.

Egyelőre most úgy tűnik, hogy minden jó. Íme:

 

 

A 25-ei éjfél után még látható egy negyedik, a léghőmérséklettel fordítottan arányos megugrás a vízmélység adataiban, ám 26-án és 27-én annak már nyoma sincs. A léghőmérséklet adataiból egyébként szépen kivehető egy 24-én záporokkal érkező lehűlés.

Az alábbi képen pedig az összes hőmérő, plusz a vízmélység adatai együttesen láthatók (a doboz hőmérséklet az ATmega beépített hőérzékelőjén alapul):

 

 

 

Címkék: , , ,


2017. Május 24.

Durba-tó adatgyűjtő szoftverfrissítés

írta: Xaint

Ma délután feltöltöttem a mérőeszközre a tegnap említett, 32 mérés átlagát figyelembe vevő szoftverfrissítést. Közben ha már felnyitottam a kis dobozkát, ismét készítettem egy mentést az SD-kártyán lévő adatokról.

Most viszont azon gondolkodom, hogy talán a hőmérséklet kompenzációt is be kellett volna építenem a kódba. De akkor mit csinálnék holnap vagy holnap után, nem igaz? cheeky

Mindenesetre a tegnap megjövendölt kicsúcsosodás beteljesedni látszik:

 

 

Remélem a szélesebb átlagolás csökkenti vagy teljesen eltünteti a zavaró csúcsokat. Azért szépen látszik a vízszint emelkedése.

Persze a történetnek itt sajnos még nincsen vége. Íme a vízhőmérséklet grafikonja:

 

 

Azért 2.5 napot kibírt a házilag kreált "vízálló" hőmérő szondám. Utána úgy tűnik, szépen beázott. Sajnos elfelejtettem, hogy a szilikon tömítőpaszta nem tapad valami jól az ugyancsak szilikonból készült csőhöz. Na de semmi baj, már legyártottam egy másik, fém kupakba ültetett, majd epoxi ragasztóval kiöntött szondát. Remélem ez tovább fogja bírni. Sajnos kicserélni csak holnap fogom tudni.

Legalább az akkumulátor töltöttségével nincsen probléma: wink

 

Címkék: , , , ,


2017. Május 23.

Durba-tó előzetes szenzor adatok

írta: Xaint

Ma, azaz kb. 2 nappal a kitelepítés után gyorsan lemásoltam az adatokat a tóhoz rohamtempóban összetákolt kombinált mérő és naplózó eszköz SD kártyájáról. Egyrészt kíváncsi voltam arra, hogy egyáltalán működik-e, és nem kuszáltam össze valamit a nagy sietségben, illetve ha működik a mérőeszköz, nincs-e szükség valamiféle utólagos szoftveres vagy hardveres korrekcióra.

Az előzetes adatokból is már szépen látszanak bizonyos jelenségek. Például, hogy a vízhőmérséklet - a mérőszonda sekély vízben való elhelyezkedése lévén viszonylag gyorsan - de kissé lemaradva követi a levegő hőmérséklet változásait:

 

 

Ám ennél egy sokkal érdekesebb dolgot vettem észre, amikor megnéztem, hogyan emelkedik a vízszint a folyamatos töltés hatására:

 

 

Mikor megláttam a fenti grafikont és összevetettem a léghőmérséklet változásával, rögtön eszembe jutott, hogy a hang terjedési sebessége a levegőben nem állandó, hanem függ a léghőmérséklettől (meg a páratartalomtól, stb.) és, hogy talán ez zavarhatja meg az ultrahangos távolságmérő szenzort. A hang terjedési sebessége ugyanis Celsius fokonként kb. 0.6 m/s-al nő:

 

 

Megoldásként a távolságmérésből származó adatokat az aktuális léghőmérsékletnek megfelelően kompenzálni kellene ( ~0.55 cm / °C) a szoftverben. Egyelőre kísérletképpen megpróbálkozok csupán az átlagoló algoritmus módosításával, a jelenlegi kód ugyanis 15 percenként végez méréseket és az előző 9 méréssel együtt vett átlagot veszi, vagyis ~2.5 óra időintervallummal számol. A mérések számát módosítottam 32-re, így minden mérésbe az előző 8 óra átlaga kerül. Ez kb. a grafikonon is látható csúcsok időtartama. Reméljük ettől majd kisimul az a fránya görbe. laugh

A tó vízszintje naponta megközelítőleg 3.5 cm-t emelkedik, ami elég közel van ennek az egyébként Ebay-ről származó ultrahangos távolságmérő szenzornak a hibahatárához. Ám a fenti két anomáliát leszámítva azért jól látható a várt, növekvő tendencia.

A kódot holnap frissítem, illetve újra lementem az eddigi, immár bő 3 napot magába foglaló mérési eredményeket. Természetesen azokból egy újabb kicsúcsosodásra számítok! cheeky

Címkék: , , , ,


2017. Május 19.

Durba-tó vízszintmérő szenzor

írta: Xaint

Május elejére elkészültünk az új Durba-tó medrének kialakításával, így nem maradt más hátra, mint a vízzel való feltöltése. Ennek apropóján ma összedobtam egy AVR mikrovezérlővel működő naplózó eszközt, ami a következő adatokat rögzíti:

  • dátum és idő
  • vízmélység
  • vízhőmérséklet
  • levegő hőmérséklet
  • akkumulátor feszültsége

Mivel gyorsan kész akartam lenni, ezért az egészet egy próbanyákon állítottam össze, egyedi nyomtatott áramkört tervezni és gyártani ugyanis sokkal időigényesebb. És mivel én mindennek szeretek egyedi nyákot készíteni, így el is felejtettem, hogy a próbapanelos módszer mennyivel egyszerűbb és persze szórakoztatóbb mint napokat tölteni pusztán a tervezéssel. cheeky

    

A kis mérőeszköz egy ATmega328P mikrovezérlőre épül (Arduino Pro Mini), ami egyetlen Li-Ion akkumulátorról működik, van benne egy egycellás töltésvezérlő IC (TP4056), 0.5 wattos napelem, valós idejű óra (DS1307), egy JSN-SR04T ultrahangos távolságmérő szenzor, SD-kártya olvasó, illetve egy 433MHz-en működő adó (MX-FS-03V) ami jelenleg nincs bekötve.

Sajnos az ultrahangos távolságmérő stabil működéséhez 5V tápfeszültségre és meglehetősen nagy áramra (~30mA) van szükség  így egy DC-DC boost konvertert is be kellett építsek, ami természetesen csak a mérések idején aktív, vagyis mindössze néhány milliszekundumig. Épp akadt egy használaton kívüli, összeszerelt boost konverterem ami az MCP1640T IC-re épül. Ennek üzemi árama mindössze 19µA.

A hőmérséklet mérését 1N4148-as egyenirányító diódákkal oldottam meg, "rendes" hőmérő IC-nek ugyanis mindig híján vagyok. Egyszerű diódával és egy néhány k-s ellenállással is elérhető az 1 Cº-os pontosság. 

Az egység egy kiszuperált elektronikai kötődobozba került, amit a tervezett legmagasabb vízszintnél némileg magasabban helyeztem el.

A helyszínen még szükség volt egy gyors kalibrációra, mert a távolságmérő a vízszint távolságát méri az egységhez viszonyítva, nekünk viszont az aktuális vízmélységre van szükségünk. Mivel az ultrahangos adó-vevő épp a doboz aljával egy síkban van, így a kalibráláshoz csak azt kellett leolvasni a mérőoszlopról, hogy a doboz alja milyen magasan helyezkedik el:

Vagyis 280 cm (mínusz a mért érték = aktuális vízmélység). A mérőoszlop a tó legmélyebb pontján mért értéket mutatja.

Jelenleg 15 percenként készülnek a mérések, amiből néhány nap múlva készítek egy-két grafikont is.

Ezen adatoknak persze gyakorlati haszna nem sok van, inkább csak érdekesség, a későbbiekben viszont akár a teljesen automatizált vízszint-szabályozás is megoldható lenne az eszközzel.

De az persze csakis egyedileg készített nyákkal!

Címkék: , , , ,


2017. Április 28.

Etetőhajó vezérlő összerakva

írta: Xaint

Gondoltam megosztok néhány gondolatot a már majdnem teljesen készre szerelt hajóvezérlőről. Volt néhány szabad délutánom, és már alig vártam, hogy végre összeállíthassam az egészet, a legnagyobb kérdés ilyenkor ugyanis mindig az, vajon a végén működni fog-e? laugh

Szóval, a vezérlőhöz egy KM 53 G típusú, füles műszerdobozt választottam. Ez 36 x 115 x 90 mm-es nagyságú, ebbe kellett beleférjen a GPS modul, az RF adó-vevő, a motorvezérlő IC stb.

A GPS modul egy Arduino UNO kompatibilis shield, ami megközelítőleg akkora, mint egy UNO. Mivel a hajóban bőven van hely mindenféle elektronikának, új és kisebb GPS egységet rendelni pedig nem akartam, így gondoltam itt felhasználom ezt. Mivel ez szépen beleül a vezérlőpanelen számára kialakított foglalatba, ezért némileg magasabb házra volt szükség, de annyi baj legyen, amúgy is az RF modult is cserélhetőre terveztem.. A GPS modulon egyébként integrált SD kártya foglalat van, a hozzá tartozó jelszint illesztővel együtt, illetve külső, aktív antennával rendelkezik.
 


A választott adó-vevőt már említettem egy korábbi cikkben, ami egy NRF-8PA-LNA (nrf24l01), 2.4GHz-en működő, kimeneti erősítővel ellátott és ezért >1Km hatótávolság elérésére képes modul, külső antennával. Ehhez be kellett szereznem még egy antenna hosszabbító kábelt, hogy az antennát a hajótesten kívülre tudjam vezetni. Az adó-vevő a GPS modul mellett foglal helyet a vezérlőn.
 


A motorvezérlő IC L298N Dual Full Bridge Motor Driver IC lett, melynek két független kimenetét párhuzamosan kötöttem, így megnövelve a maximális terhelhetőséget. Ez egy akkus fúró 12 voltos motorját hajtja majd meg, ez kerül ugyanis a hajóba (ami ha nem válik be, később még változhat).

A vezérlőn több szenzorcsatlakozási lehetőség is kialakításra került. Például egy GY-65 (BMP085) nyomás és hőfokmérő számára kialakított hely, amelyet vezetékkel csatlakoztathatunk, és amit egy jól kigondolt helyre kellene tennem, hogy a hajótesten kívüli levegő hőmérsékletét mérhesse. Ennek még ki kell alakítanom valamilyen vízhatlan burkolatot is.
 

 

Vízhőmérőnek egy LM335Z hőmérő IC-t  választottam, melyet epoxival egy rozsdamentes acélkupakba ragasztottam be. Ez kerül majd beépítésre a hajótest aljába fúrt lyukba.

Itt megjegyezném, hogy a vezérlőpanelen az ATmega644P minden szabad analóg és digitális lába kivezetésre került, így azokra további érzékelőket lehet kötni. Terveztem például a motorvezérlő IC hőmérsékletét figyelő hőmérő csatlakoztatását is, amely hőmérőt egyszerű 1N4148-as diódából elkészítve olcsó és kellő pontosságú eredményt ad.
 


 

A hajóban két szervóra is szükség van, az egyik a kormánylapátot vezérli, a másik az etetőanyag-tartó rekesz ajtaját nyitja. Erre a feladatra Futaba S3003 általános felhasználásra szánt szervókat választottam. A szervókat PWM-jellel a mikrovezérlő egy-egy lába vezérli. A tápellátásukról eredetileg két darab AMS1117 5 voltos feszültségszabályozó IC gondoskodott (volna). Ezek közül az egyik a kezdeti élesztés során megadta magát (a szervók terheletlenek voltak). Ez a szabályozó IC szolgáltatta a stabil 5V tápfeszt az ATmega644P mikrovezérlő számára is. A másik egyébként a GPS vevőről gondoskodott. Sajnos olyan módon lehelte ki a lelkét a kis drága, hogy a ki és bemenetét rövidre zárta, amivel a bemeneti 12V szépen megjelent a kimeneten is. Mondanom sem kell, ennek sem a mikrovezérlő, sem én nem örültem. Az előbbi az örök vadászmezőkre távozott, az utóbbi meg rendelhetett egy újabb mikrovezérlőt. angel

Olvastam, hogy ezeket a tápfeszültség szabályozó IC-ket is hamisítják... Mert gyakorlatilag lehetetlenség kinyírni őket, annyiféle védelemmel vannak ellátva (túlterhelés, túlmelegedés), melyek élesedésük esetén automatikusan lekapcsolják az IC-t. A hamisítványok viszont inkább rövidre zárják a ki és bemenetüket.

Mivel nem akartam tovább kísérletezni a kétes eredetű AMS1117 IC-kkel, így szépen kiforrasztottam őket, majd a NYÁK-on végzett kisebb módosítások után bedobtam egy LM2596 DC-DC step down szabályozót a buliba. Ez hatékonyabb is mint lineáris társaik, maximális hatásfoka ennek a modulnak 92% is lehet. Ez persze több tényezőtől is függ. A modul viszont már a vezérlő házán kívül kerül elhelyezésre, valahol az akkumulátorok felől érkező kábelre építve. Így az eddigi 12V helyett, onnan érkezik majd a stabil 5V-os tápfeszültség is.

A vezérlőn helyet kapott egy PIEZO buzzer is, ez a GPS shield alatt foglal helyet. Van még rajta továbbá egy az élesztés és hibakeresés során nagy segítséget nyúltó LED, ami egy tüskesor csatlakozóval bármire ráköthető a panelen. Illetve egy másik LED, mely fixen a mikrovezérlőre van csatlakoztatva, és ez is használható hibakeresésre, információ kijelzésre.
 

    
 

Természetesen a modellboltból rendelt alkatrészek is megérkeztek már.

A tönkcső felfogatására gyárilag kialakított furatok pontosan megegyeznek a motoron lévőkkel, így ezzel nem kell foglalkoznom. Ez valami szabvány lehet? smiley

Legközelebb igyekszem valamit a hajóról is megosztani.



2017. Április 16.

Az etetőhajó vezérlőjének gyártása 2.

írta: Xaint

Ma is sikerült némi előrehaladást elérnem  a hajóba szánt vezérlő pár nappal ezelőtt levilágított NYÁK-jával kapcsolatban. Kész a maratás, a fúrás, a kémiai ónozás, de még a forrasztásgátló lakk felvitelével is sikerült végeznem. Ez utóbbi nem sikerült 100%-osra, de a panel azon részein, ahol igazán fontos, ott nincs probléma vele. Valószínűleg valamilyen zsír vagy koszréteg maradhatott a NYÁK azon részén, ahol a forrasztásgátló maszk nem kötött oda. De ez szerencsére csak néhány tüskesor csatlakozó körüli részt érint, a felületszerelt alkatrészeknél jól sikerült (a tisztítással azért alaposabban kell foglalkozzam a továbbiakban). angel

 

      

 

A NYÁK immár forrasztásra készen áll, bár nem tudom mikor lesz lesz időm az összeszerelésre, élesztésre, hibajavításra.

Ui.: Közben rendeltem a hajóba néhány nélkülözhetetlen alkatrészt: kormánylapát, tönkcső, hajócsavar, 2db. szervo, stb., mert a hajótesttel is foglalkoznom kellene. smiley



2017. Április 11.

Az etetőhajó vezérlőjének gyártása

írta: Xaint

Az utóbbi időben szinte semmi időm nem jutott arra, hogy az etetőhajó projektjével érdemben foglalkozni tudjak, ám - többnyire a rossz időnek köszönhetően - most úgy tűnik, akad rá egy-két napom. Mivel a hajóba szánt elektronika NYÁK-terve egy ideje már gyártásra kész állapotban volt, így csak néhány nyugodt órácskára volt szükségem ahhoz, hogy a tervekből végre kézzel fogható dolog szülessen.

Első lépésként ún. illesztési lyukakat kellett fúrjak a már megfelelő méretre vágott NYÁK-lemezbe. Ehhez most dry-fóliát használtam, melyet a NYÁK egyik oldalára laminálva, egy csak a furatokat tartalmazó maszkon keresztül levilágítottam. Előhívás után a NYÁK különböző pontjain néhány lyukat kifúrtam, később ezeket használtam a végleges maszkok illesztéséhez. A feleslegessé vált dry-fóliát aceton segítségével távolítottam el.

Ezután a NYÁK-lemezt folyó víz alatt, extra finom csiszolószivaccsal tisztítottam meg. A szárazra törölt NYÁK-ot izopropil-alkohollal áttöröltem, majd  megfelelően méretre vágott dry-fóliát lamináltam annak mindkét oldalára. Ezután következett a megfelelő maszkok nyomtatása EAGLE-ből, írásvetítő fóliára. A maszkból mindig két-két darabot nyomtatok, melyeket illesztés után pillanatragasztóval ragasztok össze. Erre sajnos azért van szükség, mert az UV levilágítás során egyetlen réteg toner nem biztosít megfelelő takarást (nem elég sötét). Az egyik oldali maszkot a furatokra illesztve következett a levilágítás, melyet a másik oldallal is ugyanígy megismételtem, ügyelve a pontos illesztésre.
 

        

 

A levilágítás után bedobtam a NYÁK-ot egy kis előhívóba (nálam ez víz + szódabikarbóna), melyben addig tartottam, míg a megfelelő (nem levilágított) részekről leoldódott a dry-fólia. Ez kb 20 percet vett igénybe.

Mivel ez egy olyan pont, ahol a munkát biztonságosan abba lehet hagyni, és a NYÁK-ot félre lehet tenni, ezért a maratást, fúrást, stb. egy másik alkalommal fogom elvégezni.



2016. December 08.

Etetőhajó távirányító építés

írta: Xaint

Ugyan az etetőhajó távirányítójába szánt nyomtatott áramkör már régebb óta tervezés alatt állt, ám a gyártásához szükség volt még néhány alapanyag beszerzésére, illetve azok tesztelésére is. Ezek után azonban nem maradt más hátra, mint a távirányító összeszerelése / beüzemelése, amiről alant olvashatsz néhány gondolatot.

Nos a távirányítónak nem sikerült minden egyes funkciója azonnal működőképesre. Azonban, ahogy a hobbielektronikával foglakozók körében emlegetni szokás: szerencsére, ugyanis a hibákból rengeteget tanul az ember.

Sikerült elrontanom például az USB-TTL átalakításához használt PL2303 modul lábkiosztását a NYÁK-on. Illetve egyéb dolgokat is sikerült felcserélnem itt-ott, de semmi olyan amit egy kis átvezetékeléssel ne lehetne megoldani.

Ha az ilyen problémákra már csak az építést / élesztést követően derül fény, akkor általában megpróbálok élni velük és valamilyen megoldást találni rájuk, például az imént említett átvezetékeléssel. Természetesen, ha nagyüzemi gyártásról beszélnénk, akkor ez csak egy amolyan prototípuspanel lenne, amin a felfedezett hibák a végleges gyártósorra kerülés előtt még javíthatók. Itt azonban sorozatgyártásról nem beszélhetünk, ez egy one-off termék, így amennyire csak lehet, törekedni kell az elsőre történő hibátlan kivitelezésre (ami általában nem szokott sikerülni cheeky).

Az elkészült NYÁK tartalmaz tehát egy-két hekkelést, utólagos módosítást, de egyelőre nem gondolkodom az újragyártáson, mert az esztétikai összképet leszámítva minden tervezett funkció működik. (Viszont ez már lehetne egy olyan projekt, ami megérdemelne egy rendes nyomtatott áramkör-gyártó által készített panelt, persze csak a NYÁK-terv hibajavításai után. NYÁK-ot legyártatni még amúgysem próbáltam.)
 

 

A fenti képre tekintve nem sok változás látszik a távirányító eredeti kinézetéhez képest, a különbségeket természetesen a ház belsejében kell keresni. cheeky A kijelzőnek, illetve a tőle balra található két gombnak helyt adó területre még gyártanom kellene valamilyen dizájnos kis előlapot. Ez elfedné a kijelző feleslegesen kilátszó részeit, illetve a távirányítón eredetileg helyet foglaló potenciométer furatát is. Ez utóbbi ugyanis nem került visszaépítésre, nem láttam értelmét. A távirányítón így is 11 gomb, vagy billenő kapcsoló van, amelyek támogatása mind beépítésre került az általam tervezett NYÁK-ba. Ne feledjük, hogy ez eredetileg egy R/C helikopter távirányítója volt, ahol a billenő kapcsolók valószínűleg a különböző trimmelési funkciókat látták el. Nekünk az etetőhajó vezérléséhez ugyan biztosan nem lesz szükségünk mindre, de mivel olyan nagy gondot nem okozott a tervezésnél, így beépítettem őket.

11 gomb kezelése egyébként már önmagában is okozhat némi átláthatatlanságot a kódban, ennek elkerülése érdekében, a gombkezelés számára külön osztályokat hoztam létre:

// Button object responsible for all the button's events handling 
class SButton
{
public:
	bool isPressed() { return is_pressed; }
	bool isHeldDown() { return is_held_down; }

	// Values between lower and upper will set the button's state to pressed
	SButton(int lower, int upper) : lower_thres(lower), upper_thres(upper), 
	hold_down_min_ms(1000), is_released(true) {}

	// Values between lower and upper will set the button's state to pressed
	void setButtonThresholds(int lower, int upper)
	{
		lower_thres = lower;
		upper_thres = upper;
	}

	void setMinHoldDownTime(short min_ms) { hold_down_min_ms = min_ms; }
	short getMinHoldDownTime() { return hold_down_min_ms; }

	void Update(int raw_value)
	{
		// Detect button press
		if (raw_value > lower_thres && raw_value < upper_thres && is_released == true)
		{
			is_pressed = true;
			is_released = false;
		}
		// Detect button hold down (if it is being held down for more than hold_down_min_ms)
		else if (raw_value > lower_thres && raw_value < upper_thres)
		{
			is_pressed = false;
			if (millis() - last_time > hold_down_min_ms)
			{
				is_held_down = true;
			}
		}
		else
		{
			is_pressed = false;
			is_held_down = false;
			is_released = true;
			last_time = millis();
		}
	}
private:
	bool is_pressed;
	bool is_released;
	bool is_held_down;

	unsigned long last_time; // how long the button was held down

	int raw_pin_value;
	short lower_thres, upper_thres;
	short hold_down_min_ms; // The minimum time a button needs to be held down before it sets is_held_down to true
};

 

A 11 gombot tartalmazó, és azok inicializálásáról gondoskodó SButtons osztály:

class SButtons
{
public:
	SButton Button_Red;
	SButton Button_Left_Vertical_Up;
	SButton Button_Left_Vertical_Down;

	SButton Button_Left_Horizontal_Left;
	SButton Button_Left_Horizontal_Right;

	SButton Button_Left_Bottom_Up;
	SButton Button_Left_Bottom_Down;

	SButton Button_Right_Vertical_Up;
	SButton Button_Right_Vertical_Down;

	SButton Button_Right_Horizontal_Left;
	SButton Button_Right_Horizontal_Right;

	SButtons() :
		Button_Red(-1, 1),
		Button_Left_Vertical_Up(500, 520),
		Button_Left_Vertical_Down(680, 710),
		Button_Left_Horizontal_Right(805, 855),
		Button_Left_Horizontal_Left(910, 950),
		Button_Left_Bottom_Up(500, 520),
		Button_Left_Bottom_Down(680, 710),
		Button_Right_Vertical_Up(480, 520),
		Button_Right_Vertical_Down(680, 710),
		Button_Right_Horizontal_Left(900, 950),
		Button_Right_Horizontal_Right(800, 860)

	{}
};

 

Persze a gombok kezelése az egyszerűbb dolgok közé tartozik, hiszen a kódban ezen kívül olyan feladatokkal kell foglalkoznunk mint pl.: 

  • az adó/vevő modul kezelése (megszakítás vezérelten vagy pollozással)
  • különböző adatok küldése a hajó felé (pl.: joystick-ok állása)
  • hajó felől érkező adatok fogadása, kezelése, kijelzése, (GPS, hőmérséklet és légnyomás, stb.)
  • töltésvezérlő IC, akkumulátor figyelés
  • SD kártya kezelés (adatmentés, betöltés)
  • Rajzolás a kijelzőre
  • stb.

A fenti feladatok ellátására már össze is raktam egy kezdetleges kódot, amiben minden működik, már csak valami intuitív módon kellene komplett rendszert alkotni belőlük cool.
 

     


A fenti képen bal oldalt a főképernyő egy lehetséges megvalósítása látható. A radar alján a parttól való távolság, a radar tetején pedig a kiválasztott etetési pont (ha van) távolsága látható. A kis piros pötty jelzi a célt, ami a hajó aktuális haladási irányának megfelelően elfordulhat a kör szélén, illetve, ha a cél közelebb van mint mondjuk 10 méter, akkor a távolságnak megfelelően elindul a kör közepe felé. Látható még rajta a GPS által használt műholdak száma, a HDOP azaz kb. a GPS felbontása (minél kisebb ez a szám, annál jobb), az akkumulátor töltöttség ikon, és annak százalékos kijelzése, illetve az egyéb szenzoroktól érkező adatok (jelenleg csupán random számok). Arra is gondoltam, hogy a beállítások menüben például több előre létrehozott képernyő-elrendezés közül is lehetne választani. (Lehetne éjszakai mód képernyőtéma is...).

Az alapoktól megtervezni egy ilyen összetett rendszert nem könnyű feladat... Mindent magunknak kell kitalálni, például az információáramlás menetét. A kimenő adatcsomagok csoportosítását, küldésük gyakoriságát (mi fontos, és mi nem), vagy  a beérkező adatok kezelését, megjelenítését (mit, mikor, és hogyan jelenítsünk meg), stb. Szükség lesz egy letisztult felhasználói felületre is (bár a mostani sem annyira rossz). A lista hosszú, és még korántsem értem a végére...

Egyébként a hajó vezérlője is készülget már. Lesz benne léghőmérő, vízhőmérő, légnyomásmérő, GPS egység, SD kártya foglalat, meg egyéb nyalánkságok. A beépített GPS segítségével akár egy "return to home" funkciót is meg lehetne valósítani, vagy az etetőanyag / csali automatikus bejuttatását a kijelölt etetési pontra. Persze abban mi az élvezet...smiley

Ha egy halradar szonárját valahogyan be tudnám építeni a hajóba, akkor a távirányítóra érkező vízmélység adataiból egy egyszerűbb halradar funkciót is meg lehetne valósítani. Ha csak a medertörések látszódnak a kijelzőn már az is nagy előnyt jelentene (ezt a medertörést kirajzoló, mozgó grafikont egyébként már meg is valósítottam, a hajó felől egy ultrahangos távolságmérő szenzor adataival tesztelve egész jó lett). Az ilyen extra funkciók későbbi beépítésének lehetőségére is gondoltam, nem szeretem a mikrovezérlők kihasználatlan lábait kivezetés nélkül hagyni, ezért az összes használható láb kapott valamilyen rácsatlakozási lehetőséget. Így a NYÁK utólag is könnyen bővíthető marad.

Akkuként egy 3.7V 1730mAh kapacitású mobiltelefon akkumulátor teljesít szolgálatot, ez éppen befér az eredeti 3 AAA elem helyére. Persze elemek is bármikor használhatóak a tápellátáshoz, az USB-n keresztüli akku töltés ilyenkor nem aktív. A távirányító egy feltöltéssel történő üzemelésének idejéről sajnos csak éles tesztek után fogod többet tudni, az adó-vevő ugyanis az adóteljesítmény függvényében veszi fel az áramot, ami pedig dinamikusan változhat. (A kijelző fényereje is változtatható, ez most jutott eszembe smiley).
 

 

A stabil tápfeszültség előállításáról eredetileg egy TPS61090 DC-DC kapcsolóüzemű IC gondoskodott volna, ami beépítésre is került, ám a tesztek során valahogyan kiszökött belőle az a bizonyos "mágikus füst", ami után nem volt hajlandó tovább működni, ezért a teljes kapcsolóüzemű részt eltávolítottam, és egy készre szerelt kapcsolóüzemű tápegység modult építettem be a helyére. Hogy mi történhetett, abban sajnos nem vagyok teljesen biztos. Az tuti, hogy a VQFN tokozású IC (4mm x 4mm!!!) beforrasztása nem volt egyszerű feladat, illetve a NYÁK-ot a kezdeti élesztés és hibajavítások során többször is kivettem, majd visszaszereltem a házba, amiben az egy picikét szorult is, és az egyik ilyen beszerelés alkalmával picit meghajolhatott a NYÁK-lemez. Ekkor történhetett a baj...

Mindegy, íme a NYÁK-terv, illetve a kapcsolási rajz (ez utóbbi sajnos nem látható valami jól, később töltök majd fel PDF verziót is):
 

   


A hajóról is igyekszem írni nemsokára.cheeky



2016. November 23.

UV levilágító ATmega8-as mikrovezérlővel

írta: Xaint

Elkészült az UV levilágítóm. Sőt! Már a dry fóliához és a forrasztásgátló maszk levilágításához szükséges időket is megkerestem, és betápláltam a kis eszközbe. Ebbe egyébként egy ATmega8-as mikrovezérlő került, 8kB memória bőven elég volt egy könnyen kezelhető, átlátható menürendszer leprogramozására.

 

 

 

A levilágító az alábbi tulajdonságokkal rendelkezik:

  • sima LED világítás, amikor az UV levilágítás nem aktív (LED csíkokkal)
  • Dry fólia levilágítás
  • Forrasztásgátló maszk levilágítás
  • Forrasztásgátló maszk végső levilágítás (final cure)
  • Egyedi levilágítás (egy a többitől függetlenül beállítható időzítő)
  • Hangjelzés a levilágítás kezdetén, végén
  • Hátralévő idő megjelenítése

A levilágítási idők a beállítások menüben bármikor módosíthatóak, melyek az EEPROM-ban tárolódnak, így kikapcsolás után is megmaradnak.
 

      
 

Az UV LED-eket egy 100x100mm-es, forrszemekkel ellátott próba nyákba építettem be, 10x5-ös elrendezésben. A tápellátásról egy 12V-os fali tápegység gondoskodik. Mivel 10db. UV LED-en ~35V feszültség esik, ezért egy DC-DC boost konvertert is be kellett építenem. Az UV LED sorok közé betettem még 5 db. sima, hideg fényű LED szalag darabot is, ezek kellő erősségű fényt biztosítanak, amíg a levilágítandó panel a helyére nem kerül. Az egész fényforrást, a kapcsolóüzemű tápegységgel együtt egy Magnum pálcikás jégkrém dobozának aljába ragasztottam (eredetileg csak ideiglenesen), ami olyan jól bevált, hogy azóta sem nyúltam hozzá. laugh

      
 

Ezt pedig egy "kiselejtezett" szekrény polcába ragasztottam, így nincs útban, nem foglal helyet, és bármikor használatra kész:
 

 

A dry fólia levilágításához szükséges idők megkereséséhez az alábbi maszkot készítettem el:
 

 

A maszkon horizontális irányban pici osztásközök láthatóak, vertikálisan pedig különböző szélességű, a vezetékeket szimbolizáló részek. Ezt a maszkot egy fekete műanyaglappal takartam le úgy, hogy kezdetben csak egyetlen osztásköz legyen látható, majd percenként egyre nagyobb és nagyobb felületet engedtem az UV fénnyel érintkezni. Végül egy olyan levilágított lemezt kaptam, melyen a dry fólia 1 és 18 perc közötti levilágítási időket kapott. Előhívás és maratás után a 7 perces levilágítási időt találtam a legmegfelelőbbnek, így ezt tápláltam a levilágítóba. Így ezzel többet már nem kell bajlódnom. Hasonló módszerrel kerestem meg a forrasztásgátló maszk levilágításához szükséges időket is. A lötstop levilágítása két részből áll. Az elsőben csak annyi ideig tartjuk a maszkkal letakart panelt az UV fény alatt, amíg a nem letakart részek kellően megszáradnak, a letakart területek viszont aceton segítségével még eltávolíthatóak maradnak. A második levilágítási szakaszban a fólia nélkül visszahelyezett nyákot másodszor is levilágítjuk, hogy a forrasztásgátló festék rendesen megszáradjon. Ez az idő annyira nem kritikus, de általánosságban elmondható, hogy minél hosszabb, annál jobb. Én 10 perc körülire állítottam az ehhez tartozó időzítőt.

Íme a levilágító vezérlője, felnyitva:
 

 

A nyákon lévő forrasztásgátló maszkot még manuálisan, próbapanelbe dugdosott UV LED-ek segítségével világítottam le.

 



2016. November 12.

Forrasztásgátló maszk teszt

írta: Xaint

Pár napja megérkezett az ebay-en rendelt csomag. A dry fóliát még nem teszteltem, előbb egy UV levilágítót építek az ugyancsak a csomaggal érkezett 50db. UV LED-del. A forrasztásgátló maszkot azonban kipróbáltam, az egyik korábbi cikkben már bemutatott lyukgalvánozott nyákon. Ennek levilágítását még 10-15db, próbapanelbe dugdosott UV LED segítségével végeztem. A levilágítási időt próba-hiba módszerrel határoztam meg. smiley

Az eredmény biztató, abban már most biztos vagyok, hogy ez egy kihagyhatatlan lépés lesz a felületszerelt nyomtatott áramköreim készítésénél. Nemsokára kész az időzítős, programozható levilágítóm, igyekszem arról is posztolni pár sort, illetve a dry fóliát is igyekszem kipróbálni.
 

        

 

Ui.: A fenti csak egy teszt nyák, amin sem a furatpozíciók precizitására, sem a levilágításkor használt maszk pontos illesztésére nem fordítottam sok figyelmet. cheeky