Monthly Archives: July 2010

Goalstriker atrakcionas

Teko kiek remontuoti “GoalStriker” atrakcioną. Tai futbolo baudinių imitatorius: žaidėjas spiria tikrą kamuolį į projektoriaus pavaizduotus vartus ir virtualus vartininkas gaudo kamuolį.

Originali konstrukcija matyt kaupdavo prizinį fondą iš visos europos ir geriausias spirdžius 🙂 matyt laimėdavo piniginius prizus. Deja šis variantas buvo pahackintas ir jau ryšio su duomenu baze neturi. Kiek supratau, pats virtualus vartininkas visiškas durnelis ir jis yra tik atsitiktinumo faktoriaus įnešėjas- nes jis “traukia” kamuolius visiškai atsitiktine tvarka.
Tačiau mane domino tik elektroninė dalis, o ne atrakciono logika. Elektroninė dalis mano akimis žiūrint, padaryta debiliškai ir inžinieriškai neprotingai. Visa sistema atrodo maždaug taip:

goalstriker

Kairėje ir grindyse yra IR siustuvai. Čia pagrindinė inžinierinė klaida- siustuvai sriabia gana daug elektros, o jie maitinami nuo 5V maitblokių. Tai jei viename siustuvo gale buna sakysim 4.7V, tai jau kitame jau būna vos 4.2V. O jei pridėti originalaus maitblokio silpnumą ir originalius jungiamuosius laidus, tai vienas elementas maitinamas 3.4V, o kitas tik 2.9V. Siustuve stovi PIC16F627 kontroleriukai kurie generuoja pastovų 48kHz signalą, jie daugiau nieko kito nedaro. Tačiau tokia įtampa jau yra prie PICo darbo apatinės įtampos. O ir IR šviesos diodai šviečia kiek per silpnai. Mano kieme, kur įtampa ir eteris be trugdžių, sistema dar veikia. Tačiau atrakcionų parke, kur važinėja visokie elektromobiliukai, eteris jau pilnas impulsinių trugdžių…
IR signalas kerta vartų lauką ir patenka į imtuvus. Tai paprasčiausiai IR imtuvo moduliai sujungti ir skanuojami tokiais pat PIC16F627 procesoriukais. O čia jau prasideda dar vienas anti inžinierinis sprendimas. Foto detektoriaus numeris perduodamas į centrinį kompiuterį naudojant RS485 lygio signalus, tačiau pačio kamuolio atskridimo detekcija padaryta žymiai durniau- visi vartų PICai per diodinį, TTL lygio ARBA elementą, TTL lygyje perduodami ilgiausiais laidais į kamuolio detekcijos mikrokontrolerį (kuris prabangiai pavadintas Goal PSU). Šis įrenginys tai dar vienas PIC16F627 procesoriukas į kurį ateina ir kamuolio “starto” detektorius. Ką aš žinau, bet TTL lygio signalas kuris eina iš neapsaugoto PIC procesoriuko į kitą neapsaugotą PIC procesorių per ~20 metrų kabelį (kartu su 12V maitinimu) yra kiek keistokas sprendimas…
Dėl tokių nesamonių, ir dėl daviklių išdėstymo nežinojimo atrakcionas “laboratorinėse” sąlygose veikė. Tačiau atrakcionų parke jau ne. Vietiniai specialistai nepaleido, todėl teko praleisti bemiegę naktį Lietuvos pajūryje ir debuginti sistemą. Dėl įžeminimo nebuvimo (!), triukšmingo eterio ir elektros tinklo, teko pašalinti originalius 5V maitblokius ir IR siustuvus pajungti su naujais (ATX) maitblokiais ir sprindiniais laidais. Dabar siustuvas veikia žymiai ryškiau, o imtuvas pradėjau nebegaudyti impulsinių trugdžių. Gal dar kiek padėjo, kad atsijungė vienas “ground loop” per IR siustuvus ir atrakciono fermas. Ir dar kiek pamačyjo, kad atrakciono valdytojai burbuliuodami visdėlto įžemino sistemą.
Atrakcionas tikriausiai jau veiks (jei nupirks projektorių) Palangoje, Basanavičiaus prospekte.

LCD iš HP printerio su UPS051

Į rankas papuola jau ne pirmas HP spalvotas printeris su LCD ekraniuku kurio kontroleris UPS051. Kaip ne keista, internete yra šios mikroschemos datasheetas. Bėda tame, kad mikroschema kaip ir universali, o koks LCD ekraniukas įdėtas į printerį nelabai aišku. Beto mikroschema prilituota prie plokštės ir jos trasavimas nėra labai aiškus. Teko eksperimentuoti ir bandymų kelių paleidinėti ekraniuką.
Mikroschema maitinama 5V, ekrano pašvietimas su CCF lempa nuo tų pačių 5 voltų. Teko pastatyti 7805 čipą su nemenku radiatorium, nes USB portas tokios nesamonės jau nepatraukė.
Vienas išvadas buvo analoginis ir matyt lėmė ekraniuko kontrastą. Aš ji pajungiau prie Vcc ir taip netyčia invertavau LCD ekraniuko vaizdą. Tai žymiai sulėtino mano eksperimentus, nes gana daug laiko nesupratau kodėl vaizdas gaunasi toks kreivas.

LCD ekraniukas pagal visus rastus popierius išdidžiai vadinamas “480×234 color LCD”. Tačiau čia vėl kinai gudrauja. Tai individualių pikselių skaičius- kiekvienas raudonas, mėlynas ar žalias taškelis skaičiuojamas kaip individualus taškas. Iš tikrujų ekranas yra arba 160×234 arba 480×78 (pastarasis variantas pernelyg nelogiškas). Ekraną teko jungti 160×234 (480×234) režime. Spalvos taškeliai išdėlioti ekrana panašiai kaip CMOS ekranos sensoriuje, pagal Bayer spalvų filtro matricą:

GBRGBRGBRGBR…
RGBRGBRGBRGB…
GBRGBRGBRGBR…
…….

“RGB” eilutė kiek paslinkta į dešinę (rodos per pusę pikselio). Tačiau “elektriškai” jos pajungtos kaip surašiau.

UPS051 mikroschemos įpatybė- duomenis priima ir sinchroinpulso metu ir dar (bent jau šioje PCB) x koordinatė “lagina” per 160 clock impulsu. Tai prideda papildomos painiavos. Rekomenduojamas pixelclock 9.78MHz, bet tiek ekranas, tiek mikroschema puikiausiai veikia ir prie žymiai aukštesnio dažnio.

HP printer LCD UPS051
Viską “suprogramavau” ant Altera DE1 plokštės. Todėl, kad ją turiu ir joje yra Flash ROM mikroschema kurioje įrašiau tą įžymų “Your resistance only makes my penis harder!” paveiksliuką kurį visada naudoju LCD ekranų testavimui.

HP printer LCD UPS051
Čia plokštė su UPS051 mikroschema, backlight maitblokių ir kita smulkia logika reikalinga paleisti šį LCD ekraną.

Beja, yra keli neatitikimai su datasheetu arba kažkokios mano klaidos. Pirmiausia, reikia inveruoti duomenis į LCD ekraną. Antriausia, MSB bitas veikia kaip vaizdo invertavimas. Teko naudoti tik 3*7 bitus vaizdo perdavimui, paslenkant baitą per vieną bitą į LSB pusę.

Šiaip ekranas labai prastos kokybės ir turi tendencija į “burn in”. Ir tai ne mano klaidos, o matyt konstrukcijos įpatybė. Nes paleidęs ekraniuką, dar ilgai mačiau Hewlet Packard printerio logotipo vaiduoklį. 🙂

Ir pagaliau Altera Quartus programos archyvas (su “penis harder” paveiksliuko mif failu).