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.



2017. Március 03.

Screen space reflections

írta: Xaint

Nemrég játszottam a Battlefield 1-el, és feltűnt, hogy a fejlesztők milyen jól használják a Frostbite motorban a screen space reflection effektet, és, hogy az milyen sokat dob a vizuális élményen. Annyira megtetszett, hogy gondoltam adok neki egy esélyt az én saját gyártású Sponza színteremen - azaz a szoba modellemen! laugh





De előbb jöjjön a Battlefield 1-ből néhány példa, hogy miről is beszélek:
 

        
 

         


Itt pedig egy a teszteléshez használt, sebtiben összedobott teszt színtér: cheeky
 

 

És íme az effekt a szoba modellemen, működés közben (a frissen felmosott padló effekt): broken heart
 

        
 

        

 

Természetesen, képtér alapú effektus lévén az algoritmusnak szüksége van arra, hogy a tükröződő objektum szerepeljen a képen ahhoz, hogy a tükröződést ki lehessen számítani (képtér alapú sugárkövetés). Ha egy adott objektum kikerül a képernyőről, annak tükröződését már nem tudjuk tovább valós időben megjeleníteni, ami miatt az eltűnő, majd az objektum újbóli megjelenése után megint előkerülő tükröződést sokan inkább idegesítőnek találják. Ám ha nem visszük túlzásba, igenis sokat dobhat a valósághű ábrázoláson, ami miatt a legtöbb nagy játékfejlesztő cég egyszerűen nem hagyhatja ki a legújabb játékaikból ezt az egyébként igen erőforrásigényes effektet.

Update (2017.07.20.): crying R.I.P. Chester Bennington.
 



2017. Január 21.

Alerion Engine Update

írta: Xaint

Hosszú idő után (~6 év smiley) belepiszkáltam kicsit a szakdogának szánt játékmotoromba. Először is javítottam jó néhány ismert bugot, közben felfedeztem kb. kétszer annyi újat.

Bekerült a motorba az animált karakterek támogatása, amit jelenleg az MD2 fájlformátum képvisel (Pl:  Quake 2,  Max Payne stb.), de tervezem az MD3 és MD5 modellformátum beépítését is.

A pályaformátumot illetően még mindig (a jól bejáratott) bináris térparticionáló fa adatstruktúra áll rendelkezésre. Az animált karakterek ütközhetnek a BSP fával, illetve egymással. A játék egyéb entitásaival (pl. töltények, rakéták vagy egyéb felvehető tárgyak) való ütköztetés még csak részben megoldott.
 


 

Szegény "ellenséges" karakterek még elég butuskák. Mindössze egy néhány perc alatt összetákolt, bedrótozott mesterséges intelligenciát kaptak, amiben az útkeresés abból áll, hogy szembe fordulnak velem és addig közelednek amíg egy bizonyos távolságon belülre nem érnek.

Legalább elmondhatjuk, hogy hűségesen követnek cheeky :

 

 

 

 



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



2016. Október 04.

Furatfémezés lyukgalvánnal, teszt

írta: Xaint

Mivel addig sem ülhetek tétlenül amíg az ebay-ről rendelt cuccok megérkeznek, kísérletképpen megpróbálkoztam a kétoldalas nyomtatott áramkörök furatfémezésével, galvanizálás segítségével. Az elején leszögezném, hogy ez nem egy tutorial szerű cikk lesz (ez sem smiley), tehát nem célom a teljes folyamatot részleteibe menően leírni, bővebb leírást a furatfémezésről például ezen a linken találsz!

Ezidáig, a kétoldalas nyákok készítésénél a megfelelő furatok vezetővé tételét egy sokak által használt és egyszerű módszerrel oldottam meg. A korábban gyártott nyákok építése során a furatszerelt alkatrészek levágott lábait nem dobtam ki, hanem összegyűjtöttem. Később aztán, ezeket megfelelő méretre vágva, a furatba helyezve, majd mindkét oldalon megforrasztva kész is volt a furatfémezés.

Ez egyszerűbb nyákok esetében nem jelent problémát, a folyamat ugyan lassú, de megbízható eredményt ad. Egy-két tucat lyuk furatfémezését még ki lehet bírni. Mivel azonban az etetőhajóba és a távirányítóba szánt áramkörök kezdenek egyre bonyolultabbá válni, úgy próbálom meg én is DIY gyártási folyamatokat fejleszteni.

A lyukgalvánozásnál a nyers panelt elő kell fúrni, azután a lyukak falát valamilyen módszerrel aktiválni kell (vezetővé kell tenni), végül a galvanizálóba tenni. A panelt azért nem szabad előbb maratni, mert a szükséges rézréteget elektrolízissel visszük fel, amihez a teljes panelnek vezetőnek kell lennie.

A fenti cikkben egyébként az aktiváláshoz egy aktiváló oldatot készítenek, mely egyik hozzávalója a Kálcium-hipofoszfit, igen nehezen beszerezhető (és drága). Ezért én egy másik módszerrel kísérleteztem. A furatok vezetővé tételéhez grafitpor és akril lakk keverékét használtam.
 


Ezek a kellékek bármelyik papír-írószerben könnyedén beszerezhetőek. Megjegyzem, a jobb oldali képen látható akril fényesítő nálam nem vált be, száradás után a keverék ellenállása túlságosan magas volt. Sima akril lakkal azonban ez az érték néhány száz Ω körül mozgott. Az aktivátort végül egy körömlakkos üvegcsébe töltöttem be, amiben ecsetelő is van, amivel a nyáklemezre való feljuttatás is könnyedén megoldható.
 


A gondosan megtisztított, zsírtalanított lemezen előbb ellenőrizzük a furatok tisztaságát. Következő lépésként az ecsetelő segítségével bekenjük a furatokat, amit porszívó (lehetőleg ipari) segítségével keresztülszívunk a lyukakon. Ezt a lemez mindkét oldalán megismételjük. Ezután következik a szárítás, amit én hőlégfúvó segítségével gyorsítottam meg. Ha az elektromosan vezető lakkréteg megszáradt, következik a nyák felületének tisztítása, ami történhet sósavval, és/vagy nedves csiszolószivacs segítségével. A folyamat végeztével valami ilyesmit kapunk:
 

      

      


Ha mindezekkel megvagyunk, következhet a galvanizálás, azaz a permanens, vezető rézréteg felvitele, az egész panelre. Ehhez én a következő galvanizáló kádat dobtam össze (több kép a galériában):
 

     


Sajnos a leglátványosabb lépés, az elektrolízis folyamata közben nem készítettem képeket sad, így be kell érned az üres kád látványával. Ez elektrolitot ugyanis nem tanácsos hosszabb ideig a kádban tárolni. A folyamat közben az elektrolit áramoltatását biztosítani kell, amihez egy mágneses keverőt is összetákoltam, egy 12 cm-es PC ventilátor és néhány mágnes segítségével:

      

 

A keverő extraként kapott még egy LED szalagos világítást. A ventilátor sebessége is szabályozható. A szabályozó segítségével kell beállítani azt a sebességet, aminél az elektrolitban pörgő keverőlapát még a helyén marad, és nem repül le az alatta forgó ventilátorhoz ragasztott két mágnestalpról , illetve aminél a folyadékban már megfelelő sebességű örvény alakul ki.
 


Elektrolitból nekem 4 literre volt szükségem, ami a következőkből áll:

  • 2.8L desztillált víz
  • 320g réz-szulfát
  • 1.2L kénsav (33-37%) 
  • 20-30g Makrogol 3350

Áramforrásként a házilag épített labortápomat használtam, az elektrolízishez ugyanis alacsony feszültség kell, és inkább nagy áram. Kb. 1 A/dm2 áramsűrűségről beszélhetünk.

Az első eredmények mindenképpen bizakodásra adnak okot. A kirakódó rézréteg tapadása jó, csak az egyenletességen lenne még mit javítani. Ennek okozója több dolog is lehet, például:

  • az aktiváláshoz használt grafitréteg folytonossága
  • a folyadék nem megfelelő áramlása
  • furatokban bennragadó légbuborékok
  • nem megfelelő áramerősség
  • az elektrolit összetétele
  • túl rövid ideig tartó elektrolízis

Amint az a fenti felsorolásból látszik, bőven van mivel kísérletezni, hogy végül elfogadható eredményt kapjak, ám ha egyszer megvan a tökéletes módszer, talán végleg elfelejthetem a fentebb már említett manuális furatfémezést.
 

Eddigi eredmény: wink
 

      
 


 

Ami még kérdéses továbbá, az a furatok falára felvitt rézréteg védelme, a panel maratása során. Erre egyelőre két módszer jutott eszembe. Az egyik, hogy az aktiválási folyamathoz hasonlóan, sima festékréteggel vonjuk be a védeni kívánt furatok falát, a másik pedig, hogy a dry fólia képes lesz megvédeni a furatokat a maratás idejére. Esetleg a kettő kombinálva? A gyárak egyébként azt hiszem elektrolízissel felvitt nikkel réteget alkalmaznak a maratás elleni védelemhez.



2016. Szeptember 26.

Etetőhajó projekt fejlemények

írta: Xaint

Az utóbbi időben sajnos nem jutott túl sok idő az etetőhajó építésével foglalkozni. Mivel azonban nem szeretném az egészet veszni hagyni, picit muszáj leszek vele törődni. Ennek fényében rendeltem néhány dolgot ebay-ről, amire feltétlenül szükségem lesz a projekt megvalósításához. Ezek olyan dolgok, amiket eddig még nem használtam nyákgyártás során. Hogy mikről beszélek? Azt is mindjárt elárulom, de előbb jöjjön egy kis történelem... cheeky (nem lesz hosszú...)

Először is, azt tudom, hogy mennyire nehéz a toner transzferes módszerrel reprodukálhatóan jó eredményt elérni a nyomtatott áramkör gyártásakor. Sima egyoldalas nyák esetén még nem is annyira rossz a helyzet. Az évek során én is többféle módszert kipróbáltam a toner rézlemezre való átvitelére, gyártottam nyákot vasalóval, például kisöcsém játékautójának, vagy hajójának felturbózása során. A labortápomhoz tervezett nyákot egy szendvicssütő segítségével gyártottam le, melyhez előbb sarokcsiszoló segítségével vágtam két darab, 5 mm vastagságú vaslemezt, ezek közé került a panel. A szendvicssütő 175°C-os hőmérséklete egyébként elég jó eredményt adott, a labortápomhoz tervezett nyák legyártása, annak nagy mérete ellenére is tökéletesen sikerült. De készítettem nyomtatott áramköröket laminálógép segítségével is, ez azonban gyári állapotában nem melegszik fel eléggé, ezért csak kisebb nyákok gyártásánál hozott kielégítő eredményt.

A toner átvitelénél nekem végül mégis a laminálógép hozta meg a legstabilabb eredményt. Mindezt csak azután, hogy a szendvicssütőre egyik nyákgyártás alkalmával túl nagy erővel sikerült rátérdepelnem, aminek következtében szerencsétlen több darabra tört. Ekkor esett le, hogy a benne lévő 175°C-os termosztátot akár át is tehetném a laminálóba, amiben eredetileg mindössze 120°C-os volt. Az egyetlen gondot már csak a vastag nyáklemez jelentette, amit a lamináló igen nehezen hajlandó "megemészteni".

Mindezeket csak azért írtam le, hogy érzékeltessem, mennyi kísérletezgetés szükséges ahhoz, ha a toner transzferes módszerrel, otthon szeretnénk normális minőségű nyomtatott áramköröket készíteni.

Az etetőhajó építését képzelem az eddigi legösszetettebb projektnek, melynek tervei több módosításon is átestek már, sőt most is folyamatosan változik ez-az. Persze mikor változzon valami, ha nem a tervezési szakaszban... cool

Amit eddig tudok, hogy mind a távirányítóba, mind az etetőhajóba kétoldalas nyákot szeretnék tenni, felületszerelt alkatrészekkel.

Korábbi tervek szerint mindkettőben egy-egy Arduino Pro Mini teljesített volna szolgálatot, Atmega 328P mikrovezérlővel, 32kB flash memóriával. A vezeték nélküli kommunikációt RFM22B-433-S2 transceiver modulokkal terveztem megvalósítani. Volt is egy próbapanelen összeállított, kezdetleges adó/vevő teszt verzió ezekből, kiegészítve egy 1.8" TFT LCD-vel, illetve egy GPS modullal. A távolságtesztek a próbapaneles kivitel ellenére jól sikerültek, simán vitte a 350-400 métert is, bár a kis RF modulok a legnagyobb adóteljesítményen néha kifagytak. Ez a teszt verzió elég sokáig pihent az íróasztalomon, és végül nem érte meg a gyártási szakaszt.

A 433MHz-es transceiver modulokat egy ilyen projekthez mindig is egy kicsit "how ya doin"-nak gondoltam, ma már a sokkal modernebb és energiatakarékosabb 2.4GHz-es modulok a menők. Ezért beszereztem a HESTORE-ból egy pár nRF24L01+PA+LNA modult, antennával, melyek egészen elképesztő >1Km hatótávolsággal rendelkeznek. Ez persze egy picikét overkill, ami a horgászatot illeti, ilyen hosszú damil ugyanis ritkán van egy orsón, de az ilyen modulok adó teljesítményét kódból bármikor változtathatjuk. Vagyis nem kell mindig a legnagyobb áramfelvétellel járó maximális teljesítményen adni, elegendő ha a jelerősség függvényében vagy a távolságnak megfelelően állítjuk be azt. És ha már ezeket a modulokat beszereztem, velük együtt rendeltem még két darab ATmega644P mikrovezérlőt is. Ezek 64kB programmemóriával rendelkeznek, ami egy kicsit barátságosabb, mint az ATmega328P 32kB-ja. A fejemben ugyanis csak úgy záporoztak az ötletek,  hogy mennyi funkciót építhetnék a hajó / távirányító kódjába. És nem szerettem volna, ha a kód számára rendelkezésre álló memória szűk keresztmetszetet jelentene.

Ez a mikrovezérlő felületszerelt, TQFP tokozású, ami egy esetleges tesztáramkör építését, illetve programozását igen megnehezíti. Hacsak nem vállaljuk be azt, hogy előbb egy tesztelés céljából létrehozott nyákra forrasztjuk, azon programozzuk fel, élesztjük, stb, majd dolgunk végeztével leforrasztjuk. Én ezzel nem akartam kísérletezni, ahhoz az ATmega644P túl drága laugh. Mivel van már egy kis tapasztalatom az AVR mikrovezérlők programozásában, tudtam, hogy viszonylag könnyen lehet a létező kódot az egyes típusok között migrálni. Így a programozás kezdeti fázisaiban egy Arduino Uno, Arduino Mega 2560 párost használok.

Huh, egy picikét elkalandoztam...  Térjünk is vissza az eredeti témához.

Szóval arra gondoltam, a toner transzferes nyákgyártás után megpróbálkozom a fototechnikai eljárással. Ezzel az eljárással lehet ugyanis otthoni körülmények között a legpontosabb, legprecízebb nyomtatott áramkört készíteni. Cserébe a gyártási folyamat összetettebb.

Ehhez azonban be kellett szereznem a hiányzó hozzávalókat:

     
 

És ha már egyszer az ember a "Wan Hung Lo" piacról rendel, miért ne tegyen hozzá még egy-két olcsóságot, nem igaz? Így betettem a kosárba még egy UV érzékeny forrasztásgátló maszkot, ha már úgyis levilágítót is tervezek építeni. Olvastam, hogy sokan simán a napból érkező UV fényt használják a levilágításhoz, amit én elég bizonytalan faktornak gondolok. Szeretem a konzisztens eredményeket, amit csak egy rendes, időzítővel ellátott levilágító berendezés adhat. Ezt a levilágítót később használhatom mind a Dry fólia, mind pedig a lötstop levilágításához. Kíváncsi vagyok, hogy az 50db. UV LED-el milyen levilágítási időket kapok majd. Ez körülbelül egy hónap múlva kiderül, ha megérkezik a pakk...



2016. Július 15.

Kamaz 5511 digitális üzemanyagszint jelző

írta: Xaint

A régi Durba-tó megnagyobbításánál használatba vettünk egy a telepen több mint 10 éve rostokoló 5511-es billencs Kamazt. Természetesen a motor felújítása után. Meg a hidraulika felújítása után. Meg a gumik javítása után. Meg a... laugh

A lényeg, hogy ütött-kopott mivolta ellenére ez a gép szállítja el a legtöbb földet, a mezőgazdasági vontató + billenős pótkocsi páros ugyanis csak igen korlátozott mennyiségig terhelhető.

Amiről persze ez a cikk szól, az egy digitális üzemanyagszint jelző gyors bemutatása, mert a régi analóg mérő sajnos megadta magát. A digitális kijelző házának a régi mérőóra házát választottam. Annak számozott előlapja és minden belső alkatrésze mentek a kukába, helyettük egy egyszerű kör alakú nyákot terveztem, amin a kijelzésről egy 7 x zöld és 3 x piros LED oszlop gondoskodik. Ehhez egy LM3914N típusú 10x LED meghajtó IC-t választottam, amihez mindössze néhány ellenállásra van szükség. Az üzemanyagtankban lévő úszó jeladóval történő gyors kalibrációt követően meg is voltak a szükséges ellenállás értékek. A nyákba beépítésre került még egy 7812T feszültségszabályzó IC is. Összeszereléskor az egész nyákot egy vékony fekete műanyaglappal takartam el, melyen mindössze a LED oszlopnak vágtam ki helyet. Mivel a LED-ek mindig világítanak, a műszerfal háttérvilágítását adó vezetékezést is megspóroltam. A kapcsolás tényleg annyira egyszerű, hogy mást nem is nagyon tudnék róla elmondani, inkább beszéljenek a képek:
 


       

 

Az alábbi kép pedig működés közben készült: