Monthly Archives: December 2016

Nauji metai, vėl

Pagaliau baigėsi šie kiek bjauroki 2016 metai, kurie prasidėjo Buviu, Princu, o baigėsi princese Lėja su jos motina… Asmeniškai man šie metai buvo sunkoki, tačiau gal jau baigsis šis juodumo periodas. Todėl linkiu visiems ir sau, kad sekantys metai būtų geresni, šviesesni ir laimingesni.

Ta proga suklijavau animuotą gifą:

2017 year nixie in-18

Tai pačios didžiausios ir gražiausios tarybinės indikatorinės lemputės- ИН-18. Ir pačios brangiausios 🙂
Nei softas, nei hardwaras nevertas paminėjimo. Tai panaudotos standartizuotos mano PCB. O jei prašnekom apie PCB, tai nežinau ar tai jau po visam, ar tai tik akcija: seeedas atpigino PCB gamyba keturis kartus ir už tą pačią kainą leidžia pasirinkti bet kokią PCB spalvą. Dabar vietoje 5×5 PCB už tuos pačius 10 doleriu daro 10x10cm. Visa bėda, kad demo Eagle neleidžia išnaudoti visą plotą- max paišomas dydis 8x10cm free versijoje. O dar Eagle nupirko autokadas… Kai jie ten spręs toliau licenzijavimą aš nežinau, jaučiu padarysis kokį nors “cloud” nesusipratimą ir dar pagėjins visą dizainą… Kai gausiu PCB, parašysiu atskirai.

Švęskit šventes!

Kiniškas niekaliukas arba 4×4 LED kubas

Kažkada vasaros metu užsakiau kinišką rinkinuką surinkti 4×4 LED kubą. Rinkinukas nėra brangus, kažkur puspenkto dolerio su atsiuntimu. Už tai gaunam PCB, kalną mėlynu (gal yra ir ne mėlynu) LEDu, kelis rezistorius, dvi mikroschemos 74HC595, visokios jungtys… Ir labai labai kiniškos instrukcijos kurios nieko nerodo. Todėl litavau pagal save ir padariau kiek atvirkščiai- LEDus pastačiau kita kryptim ir jie kitaip užsidega (softe teko invertuoti). Kaip konstruktorius pradedančiajam tinkamas, tačiau reikia žmogaus kuris turi kantrybę- lituoti ore tuos LEDus tikrai reikia nervų. Dabar mano nervai pašliję (nuo buitinio triukšmo), tai teko lituoti net dvi dienas.

LED 4x4 cube AVR atmega

Kai viską sulitavau, pakuičiau savo lobynus. Deja nei vienos “arduino” PCB neturiu, o kur turiu nesusiderina pinais su šituo rinkinuku. Kad reikia originalaus arduino rodo debilna 0,1″ jungtis pastumpta per pusę žingsnio.
Softas pridedamas prie konstruktoriau irgi ne fontanai… ypač patiko ši optimizacija:

if(value > 19) return;
if(charge != LOW && charge != HIGH) return;
if(charge == LOW)
{
switch (value)
{
case 0: HC_595_Temp &=~_BV(15); break;
case 1: HC_595_Temp &=~_BV(14); break;
case 2: HC_595_Temp &=~_BV(13); break;
case 3: HC_595_Temp &=~_BV(12); break;
case 4: HC_595_Temp &=~_BV(11); break;
case 5: HC_595_Temp &=~_BV(10); break;
case 6: HC_595_Temp &=~_BV(9); break;
case 7: HC_595_Temp &=~_BV(8); break;
case 8: HC_595_Temp &=~_BV(7); break;
case 9: HC_595_Temp &=~_BV(6); break;
case 10: HC_595_Temp &=~_BV(5); break;
case 11: HC_595_Temp &=~_BV(4); break;
case 12: HC_595_Temp &=~_BV(3); break;
case 13: HC_595_Temp &=~_BV(2); break;
case 14: HC_595_Temp &=~_BV(1); break;
case 15: HC_595_Temp &=~_BV(0); break;
case 16: digitalWrite(LED_Pin16,LOW); break;
case 17: digitalWrite(LED_Pin17,LOW); break;
...

ir panašiai. Iš esmės kiniškam softe kiekvienas LED aprašytas atskirai ir daromas 16×4 ciklas užpildyti tuos aštuonis baitus informacijos reikalingus displėjui. Ir dar visokio monstriško softo. Ką jau pasakyti, kad “raštai” surašyti į paprastą masyvą. Nutariau nesikankinti ir pasirašyti savo softą grynam C.
Mano variantas kiek paprastesnis ir kartu sudėtingesnis jei reikia suprogramuoti animaciją. Animacija saugoma baituose. Po du baitus vienam sluoksniui. Kiekvienas bitas atitinka vieną LED. Pati animacija saugoma progmem.
Visas softas sukasi per pertraukimą, pati serial out procedūra klasikinė, netikrinau ar tikrai reikalingos visos komandos (kad ir priverstinis CLK LOW įjungimas po ciklo). Tačiau viskas veikia.

4×4 LED Cube ATMEGA source kodas ir sukompiliuotas hex.

Dar vienas bambesys- dabar jau harwarėje. Kinai pataupė balastinius rezistorius. Suprojektavo tik po vieną rezistorių visam sluoksniui (nors į rinkinuką įdėjo daugiau rezistorių), todėl kai dega visas sluoksnis, LEDai dega silpniau nei tada, kai dega vos keli LEDukai.

LED 4x4 cube AVR atmega
Kairėje kaip padarė kinai, dešinėje kaip daryti geriau. Aišku dešinė schema irgi ne pyragai- viso sluoksnio LEDai teoriškai duoda sakysim 16x20mA=0.32A. O tiek tikrai neina per ATMEGOS vieną koją… ko pasekoje mikroschema dirba nekorektiškam režime. Gerai, kad ji tokia “fool proof” ir veikia, o ne susvyla. Šiaip, kam tada iš viso varginosi su tais rezistoriais… O jei norisi daryti teisingai, čia reikia pakabinti tranzistorių su leistina srove 0,5A ar daugiau ir viskas šviestu tolygiai. Pačios 74HC mikroschemos dirba daugmaž normaliu režimu, nes veikimo metu viena koja “draivina” tik vieną diodą.

Atari 800XL remontas

Dėl statybų nieko gero ir nedarau. Bet vasaros metu nusipirkau seną Atari 800XL kompiuterį ir diskasukį prie jo. Šiaip, pirkau tik diskasukį, nes pats kompiuteris neveikė- nepraeidavo RAM testas (ir rodos ROM), mirgėjo keli simboliai ant ekrano. Visi defektuotos atminties požymiai. Rodos problema paprasta ir išsprendžiama, nes kitą Atarį kompiuterį jau suremontavau.
Padarius skrodimą, paaiškėjo, kad kompiuteris tobulintas vietinių meistrelių- išplėsta atmintis iki 320kb, padarytas OS versijų perjungimas. Patobulinimas padarytas su keliom logikos mikroschemos (nuskusti pavadinimai) ir su RAM čipų “buterbrodais” (kai ant vieno čipo viršaus prilituojamas kitas čipas ir atlenkiamos kojos). Viskas buvo labai chaotiškai ir rusiškai padaryta, todėl nusprendžiau pašalinti visus “upgreidus” ir pradžioje kompiuteriuką atstatyti iki gamyklinės versijos.

Atari 800 xl repair
Continue reading →