Kaunas, Eiguliai, darželis, dailė, šokiai, elektronika, 486DX, LŽŪU, linux, fotografija, dviratis, automobiliai, akvariumai, žmona, dukra...

12th
MAR

Terminis spausdintuvas BTP-2002NP

Parašė dinux kategorijoje Kita, Linux

Šis spausdintuvas naudojamas prie POS (Point Of Sale) pardavimo taškas. Iš jo lenda čekis. Praktiškai bet kurioje parduotuvėje galime rasti tokį kur naudojamos kompiuterizuoti kasos aparatai.
BTP-2002 Printer

Būtent šie modeliai būna su trijų tipų interfeisais, COM (serial rs232), USB arba LAN. Man į rankas papuolęs yra su COM prievadu. Tikslas, pajungti jį prie linux’inio kompiuterio naudojant USB <-> COM perėjimą ir pasiųsti jam kažkokį tekstą spausdinimui. Teko matyti kažkurioje picerijoje, kad kepėjams užsakymus taip perduoda 🙂

Taigi vienas iš svarbiausių momentų tai yra prisijungimo parametrai. Jei nors vienas parametras bus kitos, spausdintuvas nereaguos į siunčiamus duomenis (bent man nereagavo).
* Device (įrenginys): /dev/ttyUSB0 Gali būti kitoks, jei jau pajungti keli perėjimai ar pajungtas tarkime Vodafone/Tele2 ar kažkoks kitoks GSM modemas ar jungiama tiesiai į COM jungti be perėjimo.
* Baud rate (ryšio greitis): 38400 Būtinai toks ir ne kitoks.
* Data bits (duomenų paketo dydis?): 8
* Stop bits: 1
* Parity: none
* Handshake (“pasisveikinimas”): Hardware Tik Hardware, nejungti Software ar nejungti abiejų iš karto.
Pasijungus ir rašant tekstą, spustelėjus enter tekstas atspausdinamas ant čekiuko.

Programą rašiau Lazarus (FPC – Free Pascal Compiler).
Biblioteka bendravimui per COM naudoju http://synapse.ararat.cz Beje labai geras puslapis, yra tikrai gerų modulių kurių gali prisireikti rašant kažkokią programą. Visa dokumentacija http://synapse.ararat.cz/doc/help/

Susikuriu katalogą šiam projektui, išsaugau jame lazarus projektą ir į tą patį katalogą išpakuoju aukščiau minėtą archyvą.

Kodo pradžioje prie uses įterpiu Synaser
Prie var pridedu ser: TBlockSerial;
Kaip komunikuoti su lazarus puikūs pvz pateikti čia: http://wiki.freepascal.org/Hardware_Access

ser:=TBlockSerial.Create;
ser.Connect('/dev/ttyUSB0');
ser.config(38400, 8, 'N', SB1, false, True);

Atkreipiam dėmesį į trečią eilutę. Būtent tokie turi būti prisijungimo parametrai (gal kažkokiam kitam modeliui ir kitokie).

Tekstą spausdiname su:

Ser.SendString ('siunciamas tekstas keliauja cia');

Taip pat šis aparatas turi kirpimo funkciją t.y. jo priekyje yra “peilis” kuris atkerpa čekį. Kirpimui reikia pasiųsti komandą:

Ser.SendString (char(27)+'@'+char(29)+'V'+char(1));

Atspausdinus teksto porciją ir vykdant kirpimą, čekis nukerpamas ne po tekstu, o kiek aukščiau, todėl, kad kirpimas būtų po tekstu, būtent mano atveju reikia tekstą pakelti per penkias eilutes. Šis skaičius gali skirtis, nes tam tikrais įrankiais (Utils) galima keisti šrifto dydį, tarpą tarp eilučių. Tiesa tam yra speciali komanda kuri paslenką būtent tiek, kad nukirptu po tekstu, bet man jos pasiųsti į spausdintuvą nepavyko. Taigi aš pasiunčiu penkis eilutės pabaigos simbolius:

Ser.SendString (char(10)+char(10)+char(10)+char(10)+char(10));

Taip pat į šio spausdintuvo atmintį su tam skirtais įrankiais galima įkelti logitipą, monochrominį bitmap’ą. Begooglindamas radau, kad kiti modeliai gali turėti atmintyje ir du, tris logotipus. Logotipo spausdinimui naudojame:

Ser.SendString (char(28)+char(112)+char(1)+char(72));

Beieškodamas internete, buvau radęs cups’ui visus reikalingas bylas. Pridėti spausdintuvą pavyko, bet bandant pasiųsti paprasčiausią tekstą rezultatas būdavo nulinis. Bet rašant savo kažkokį projektėlį vargu ar patogų per cups spausdinti, tikrai paprasčiau ir aiškiau valdyti situaciją per COM’ą.

9th
MAR

Xfce 4.12

Parašė dinux kategorijoje Linux

Po dviejų su puse metų pagaliau buvo išleistas xfce 4.12 versija. Naujovių gal nelabai daug, bet kai kurios labai naudingos.

Nelabai naudingas atnaujinimas, bet žingsnis link modernumo. ALT+TAB dialogas rodo langų miniatiūras.
Ekranvaizdis_2015-03-09_22-08-59

Panelės seniau galėjo būti visada matomos arba pasislepiančios. Dabar atsirado trečias tipas – protingas (intelligently) pasislėpimas. Tiesa jos protingumo suprasti nelabai pavyko.

Atsirado keletas smagių pakeitimų kurie naudoja du monitorius (aš naudoju du tiek namuose tiek darbe). Darbalaukio fono keitimas (paveiksliuko) suveiks tam darbalaukiui, kuriam šiuo metu yra dialogas. Norint pakeisti kairiojo dialogas turi būt kairiam monitoriui, atitinkamai dešiniojo dešiniam. Taip pat atsirado patogus dialogas ekranų konfiguracijoms keisti.
Ekranvaizdis_2015-03-09_22-19-14

Kas naudoja nešiojamuosius kompiuterius pastebės, kad pilnai perdarytas energijos valdymas (Power Manager). Paspaudus ant baterijos piktogramos galima šliaužiklio pagalba pasireguliuoti ekrano ryškumą. Taip pat pakeistas visas energijos valdymo dizainas.

Thunar nuo šiol turi korteles (tabs). Ant katalogo paspaudus dešinį pelės klavišą galima pasirinkti Open in New Tab. Taip pat galima pažymėti keletą katalogų ir/ar bylų ir paspaudus dešinį klavišą bei pasirinkus savybės pamatyti bendras pažymėtų objektų savybes (dydį, teises). Senesnėse versijose pažymėjus keletą objektų jų bendro dydžio pamatyti nepavykdavo. Kas windows operacinėj buvo turbūt nuo pat 95 versijos (gal buvo ir ankščiau, nebepamenu jau). Pažiūrėjus particijos savybes rodoma užimtos/laisvos vietos juostelė.

Į panelę iki šiol galima pridėti programų menių kuris lyg astodavo windows start menių, bet dabar atsirado dar vienas goodies Whisker meniu. Skirtumas nuo ankstesniojo, kad šis savo funkcijomis primena beroc nuo windows vista atsiradusi menių. Veikia greita programų paieška ir pati naršymo po menių logika pasiskolinta iš windows.
Ekranvaizdis_2015-03-09_22-30-46

Atsinaujinusi užduočių tvarkyklė (Task Manager). Atnaujintas dizainas, didesni ir aiškesni resursų (CPU, RAM) grafikai. Galima filtruoti procesus pagal frazę. Tiesa gnome-system-monitor man vis dėlto patogesnis ir aiškesnis.

Taip pat atnaujintas media grotuvas Parole ir tekstų redaktorius Mouse Pad. Nė vieno iš jų nenaudoju. Video groti naudoju nemirtingąjį mplayer (http://www.mplayerhq.hu), o tekstams (html, php ir panašiai), kodui redaguoti Geany (http://www.geany.org).

Grįžo mano labai pamėgta ir 4.10 versijoje dingusi dėl klaidos funkcija, kai naudojami keli virtualūs darbastaliai ir vienam iš jų, kuris dabar nėra aktyvus, langas įgauna “svarbaus” lango būseną t.y. lango užrašas užduočių juostoje pradeda mirksėti. Pagaliau šis mirksintis langas mirksi visuose virtualiuose darbastaliuose ir tarkime jei aš dabar esu pirmame darbastalyje, o ketvirtame yra paleistas skype ir man kažkas parašė, jis užduočių juostoje pradeda mirksėti, bet seniau to matyti nebūdavo įmanoma. Dabar gi, ta mirksinti užduotis mirksi visuose darbastaliuose ir ant jos paspaudus, ekranas persijungia būtent į tą darbastalį kur yra “svarbi” programa. Šiuo atveju skype.

12th
FEB

Grafinis įrankis disko naudojimo analizavimui

Parašė dinux kategorijoje Linux

Ir jis vadinasi baobab. Archlinux’e instaliuojam

sudo pacman -Sy baobab

Programa labai naudinga kaip reikia susigaudyti kur dingo disko vieta. Aišku tokį lygį kaip dingsta Windows OS’e čia pasiekti vargu ar galima, bet ir čia prisireikia kartais pasi žiūrinėti po root particiją. Maniškė root particija yra SSD diske kuris yra vos 60Gb dydžio ir 6Gb jo jau užima android-sdk. Taip nejučia diskas ir užsipildo 🙂

Ekranvaizdis_2015-02-12_20-12-12

10th
FEB

Linux (windows) + DLNA + TV + android

Parašė dinux kategorijoje Android, Linux, Windows

Turimas Samsung UE40EH6030 (ne “smart”) televizorius turi LAN jungtį ir puikiai sugebantis atvaizduoti media iš DLNA serverio.

Linux’iniam kompiuteryje yra media kurią norima peržiūrėti su minėtu TV. Tam reikia DLNA serverio. Aš naudoju Serviio. Tam skirtų serverių yra ir daugiau, bet pabandžiau šį, veikia taip kai noriu, tai kam ieškoti kažko daugiau. Beje ši programa veikia ir windows’uose.

Archlinux’e instaliuojam:

yaourt -S serviio

Patį serviio aš visada paleidžiu root teisėmis (taip tinginystė krapštytis). Paleidus serverį reikia pasileisti serviio-console ir jame reiktu susidelioti medijos katalogus. Visas interfeisas paprastas ir aiškus, pasiklysti tikrai nesigaus. Kortelėj (tab) Library spaudžiam Add local.. ir pridedame katalogus. Pats įrankis atpažins kokio tipo media pasirinkta, visa tai galima pačiam susipaukščiuoti (video, autio, foto).

Kortelėje Online sources galima prisidėti ir internetinį šaltinį, pvz M1+ internetinės transliacijos adresą.

Taigi išsaugojus nustatymus serveris pradeda skenuoti pasirinktus katalogus ir televizoriuje (mano atveju) pasirinkus AllShare pultelio pagalba galima pradėti naršyti po katalogus.

Turint namuose Android planšetę/telefoną visą šį turinį galima peržiūrėti ir mobiliam įrenginyje. Savaime suprantama reikia būti prisijungus prie namų tinklo. Po DLNA serverį naršyti aš naudoju AnDLNA (nuoroda į Google Play) programėlė tikrai mažutė ir turi tik viena aiškia funkcija, nėra visiškai jokių nustatymų ir reklamų.

Video turiniui peržiūrėti galima naudoti ir “gimtus” video grotuvus, bet išlenda įvairios problemos, tai garso nėra, tai garso takelio negalima pasirinkti (jei tai kelių takelių video). Tam aš naudoju MX Player (nuoroda Google Play).

Su kai kuriais DTS/AC3 takelius turinčiais video būdavo bėdų, nebūdavo (nemokėdavo iškoduoti) garso takelio. Šiai problemai spręsti reikia apsilankyti adresu Custom Codec with DTS & AC3 Support Visos instrukcijos ką daryti yra pateiktoje nuorodoje. Tik reiktu neužmiršti, atsinaujinus pačiam mx grotuvui, reikia išnaujo nueiti šiuo adresu ir pasitikrinti ar nėra naujos kodeko versijos, nes naujas grotuvas ne visada veikia su senesniu dekoderiu.

2nd
FEB

Samsung Galaxy S5 wifi atsijunginėjimai

Parašė dinux kategorijoje Android

Žmona turi Samsung Galaxy S5 telefoną. Telefonu ji patenkinta (man tai jis nelabai, todėl aš naudoju Sony Xperia Z1), bet pastarąja savaitę išlindo toks įdomus dalykas. Telefonas prisijungęs prie belaidžio (wifi) tinklo, po 3-4min. atsijungia. Praėjus dar minutei vėl pasijungia… ir taip be sustojimo. Problemos sprendimas, atjungimas wifi persijunginėjimo tarp 2.4GHz ir 5GHz dažnio. Nežinau kodėl jis tai daro, nes namuose naudojamas Mikrotik 5GHz dažniu nedirba.

Žemiau pateikiu ekrano nuotrauką kurią varnelę reikėjo nuimti. Pastebėjimas tik toks, kad ekrano nuotrauka daryta jau su Android 5.0. Ta proga, kad telefonas pateko į mano rankas, buvo suinstaliuotas ir atnaujinimas. Pasirodo UK jis jau gera savaitė kaip yra. Gal ir Lietuvoj ne pirma diena, bet tik dabar buvo pastebėta.

Screenshot_2015-02-02-20-34-33

28th
JAN

ATmega fuse nustatymai

Parašė dinux kategorijoje Atmega

Pirmą kartą bandant nustatyti fuse pagal šį puslapį http://www.engbedded.com/fusecalc kažką sumaišiau ir kontroleris patapo neveiksnus. Nusipirkus antrą kontrolerį ir po kiek laiko vis dėlto vėl prisireikė didesnio dažnio ir čia visai netyčia atradau AVR8 Burn-O-Mat: a GUI for avrdude. Archlinux’e galima įdiegti:

yaourt -S avr8-burn-o-mat

Programa paprasta ir aiški. Antras bandymas pasisekė ir dabar mano kontroleris dirba su išoriniu kvarcu.

Ekranvaizdis_2015-01-27_23-38-27

26th
JAN

ATmega16 jungimas su kompiuteriu (USB)

Parašė dinux kategorijoje Atmega

Pirmiausia pramokus šiek tiek kaip elgtis su LED’ais, mygtukais prijungtais prie ATmegos, greitai atsiranda noras surinkta informaciją atiduoti kompiuteriui arba iš kompiuterio pasiųsti tam tikras komandas, kad kontroleris galėtu jas vykdyti.

Taigi pirmasis bandymas buvo pasinaudojus MAX232 ir COM <-> USB perėjimu perduoti/priimti informaciją su kontroleriu. Nežinau tai buvo litavimo klaida, o gal sugebėjau kažkaip sugadinti MAX232, bet niekaip nepavyko priimti duomenų iš ATmegos. Išsiųsti sekėsi puikiai, kontroleris junginėjo LED’us pagal kompiuterio siunčiamas komandas.

Pasibaigus kantrybei buvo nuspręsta atsisiųsti jau pagaminta UART’ą. DealExtreme e parduotuvė čia puikiai pasitarnavo. Pajungus viskas iškarto veikė. Duomenys vaikščiojo į abi puses.

Linux’as įrenginį atpažysta taip:

[ 7884.863380] usbserial: USB Serial support registered for generic
[ 7884.864737] usbcore: registered new interface driver cp210x
[ 7884.864756] usbserial: USB Serial support registered for cp210x
[ 7884.864798] cp210x 2-5:1.0: cp210x converter detected
[ 7884.864951] usb 2-5: cp210x converter now attached to ttyUSB0

Pirma klaida dėl kurios galima ilgam strigti tai RX sujungimas su RX, o TX su TX. Teisingas jungimas būtų ATmegos16A RXD (14’ta koja) reikia jungti su UART’o TX’u, o ATmega16A TXD (15’ta koja) reikia jungti su UART’o RX’u. Reiktu neužmiršti sujungti ir trečiojo laido tai GND.

Kad būtų patogiau, panaudojau laidus iš kompiuterinio korpuso.

IMGP9853.PEF_MLSZSX

Testavimui susikompiliuoju tokį kodą:

// Kvarco taktinis dažnis
#define F_CPU 4000000UL
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>

// Susijungimo greitis
#define USART_BAUDRATE 9600UL
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)


void USARTInit(uint16_t ubrr_value)
{
   //Set Baud rate

   UBRRL = ubrr_value;
   UBRRH = (ubrr_value>>8);

   /*
   >> Asynchronous mode
   >> No Parity
   >> 1 StopBit
   >> char size 8
   */

   UCSRC=(1<<URSEL)|(3<<UCSZ0);

   //Įjungiam gavima ir siuntimą
   UCSRB=(1<<RXEN)|(1<<TXEN);


}



//Funkcija naudojama duomenims nuskaityti
//Ši funkcija lauks tol kol atsiras kažkokie duomenys
char USARTReadChar()
{
   while(!(UCSRA & (1<<RXC)))
   {
      //Nieko nedarom
   }
   return UDR;
}

//Rašom duomenys į UART'ą
void USARTWriteChar(char data)
{
   while(!(UCSRA & (1<<UDRE)))
   {
      //Nieko nedarom
   }
   UDR=data;
}


void main()
{
   // Kintamasis
   char data;

   // Susijungiam
   USARTInit(BAUD_PRESCALE);

   // Amžinas ciklas
   while(1)
   {
      // Nuskaitom simbolį
      data=USARTReadChar();

      // Nuskaitytą simbolį gražinam atgal tik
      // jį apskliaudžiam laužtiniais skliaustais    

      USARTWriteChar('[');
      USARTWriteChar(data);
      USARTWriteChar(']');

   }
}

Rezultatas:
Ekranvaizdis - 2015.01.26 - 20:49:41

25th
JAN

Mikrotik. Iš vidaus į vidų

Parašė dinux kategorijoje Kita

Bet kokiam namų routeryje apsirašius prievado (port) nukreipimą iš išorės į vidų (NAT) taisyklę ta taisyklė veikia ir iš vidinio LAN. Papaišiau tokį brėžinį:
vidus_is_vidaus

Išorinis adresas 88.88.88.88
Vidinis routerio adresas 192.168.0.1
Turime tinkle serverį 192.168.0.100
Turime tinkle tris kompiuterius 192.168.0.10, 192.168.0.20, 192.168.0.30

Taigi turint tipinį Dlink’ą ir iš kažkurio kompiuterio kreiptumėmės į išorinį adresą (šiuo atveju 88.88.88.88) sėkmingai prisijungtumėm prie 192.168.0.100. Tas pats įvyktų jei kreiptumėmės iš išorės. Bet jeigu mūsų routeris yra Mikrotik ir jame aprašyta NAT’inimo taisyklė, prisijungti iš išorės pavyks, bet iš vidaus suvedus išorinį adresą susijungimas nepavyks. Problema tame, kad atsakimą jis atiduoda ne į vidinį, o į išorinį interfeisą. Problemai spręsti reikia apsirašyti dar vieną taisyklę.

Taigi abi taisyklės turėtu atrodyti taip:

/ip firewall nat add chain=dstnat action=dst-nat dst-address=88.88.88.88 protocol=tcp dst-port=80 to-port=80 to-address=192.168.0.100
/ip firewall nat add chain=srcnat action=masquerade src-address=192.168.0.0/24 dst-address=192.168.0.100

Dabar iš vidaus kreipiantis 88.88.88.88 sėkmingai pasiekiam 192.168.0.100

29th
MAY

Pirmi žinksniai su ATmega16

Parašė dinux kategorijoje Atmega

Apie šitą gėrį skaičiau jau senokai, bet niekaip neprisiruošdavau. Bet išaušo ta diena.

Pirmiausia užsisakiau programatorių. Kainavo pilnai su siuntimu ~28LTL. Pirktas iš ebay, USBasp klonas (http://www.fischl.de/usbasp/). Atkeliavus programatoriui jau gumos netempiau, nes labai norėjosi išbandyti kaip viskas veikia. Susipirkau ko reikia ir susilitavau schemą pateikta elektronika.lt puslapyje.

Pora pakeitimų, tai šviesos diodai jungti ne per 1…2K kaip parodyta schemoje, o per 330Ω Dar vienas mažas nukrypimas, kad aš nedėjau jokio mygtuko. Pirmoji mintis ir užduotis buvo išmokti junginėti diodus.

Nepaslaptis, kad naudoju Archlinux, to pasekoje programos kodas pateiktas ankščiau minėtam elektronika.lt puslapyje netiko – nesikompiliavo. Su programa Gnome-avrdude įrašius HEX’ą diodai mirksėjo. Taigi mano supratimu problema buvo tame, kad gcc-avr kompiliatorius veikia truputi kitaip nei winavr ir/ar kiti windows’iniai.

Padraugavus su Google pavyko parašyti ir sukompiliuoti štai tokį kodą:

#define F_CPU 1000000UL
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>

void sleep()
{
   _delay_ms(50);

}

int main(){

DDRD = 0b11111111;

while (1) {
 PORTD = 0b10000001;
 sleep();
 PORTD = 0b01000010;
 sleep();
 PORTD = 0b00100100;
 sleep(); 
 PORTD = 0b00011000;
 sleep(); 
 PORTD = 0b00011000;
 sleep(); 
 PORTD = 0b00100100;
 sleep(); 
 PORTD = 0b01000010;
 sleep(); 
 }
}

Programą kompiliavau štai tokiomis komandomis (programos kodas parašytas test.c byloje):

avr-gcc -mmcu=atmega16 -Os test.c -o test.o
avr-objcopy -j .text -j .data -O ihex  test.o  test.hex

C kodą rašau su Geany (http://www.geany.org/)
Gnome-avrdude konfiguracija USBasp programatoriui yra tokia:

Programmer laukelyje USBasp pasirinkimo nebuvo, todėl jį įvedžiau ranka.
Spustelnam Open, pasirenkame paruošta HEX bylą ir ją atveriame. Atvėrus spustelnam mygtuką kur parodyta mikroschma su rodykle nukreipta į ja. Jei viskas gerai sujungta turite pamatyti štai tokį (ar panašų) rezultatą:

Programa iškarto pradeda veikti. Aukščiau pateiktas kodo rezultatas youtubo filmuke (atsiprašau už kokybe, neturiu jokio geriau filmuojančio aparato):

4th
MAR

Archlinux atnaujinimas po ~1metų pertraukos

Parašė dinux kategorijoje Linux

Taip gavosi, kad nešiojamą kompiuterį naudoju retokai. Įsigijus Samsung Galaxy Mini, kompiuterį vežiotis pradėjau dar rečiau, nes paprastiems pašto bei interneto pasiskaitymams užtenka ir telefono. Vakar buvo ta diena kai prireikė ir nešiojamo kompiuterio. Operacinės sistema pas jį žinoma Archlinux.

Keliuose forumuose teko skaityti nuomonę, kad jei Archlinux’o neatnaujinsi ilgiau tai turėsi tikrą bėdą. Štai ir puiki proga išbandyti. Pastarasis kompiuteris neatnaujintas jau geri metai. Branduolys 2.6.* serijos (dabartinė versija 3.2.8). Ofiso paketas vis dar OpenOffice ir panašios kitos senienos 😉 Panašų, kad OS buvo neatnaujinta apie metus laiko.

Taigi po sudo pacman -Syu matau, kad teks atnaujinti nei daug nei mažai – 1022 paketus. Pirmasis ir vienintelis kabliukas, tai, kad buvo 3-4 klaidos apie sistemoje jau egzistuojančias bylas, dėl kurių negali įvykti atnaujinimas. Jas pašalinus prasidėjo ilgas ir varginantis atsinaujinimo procesas (kompiuterio procesorius P4 1.8 GHz Mobile).

Perkraunu kompiuterį ir… viskas veikia kaip ką tik suinstaliuotas. Jokių problemų, jokių klaidų pranešimų. Viskas veikia.

Vienintelis man nepatikęs reikalas tas, kad sistemoje atsirado Pulseaudio. Nepatinka man tokie dalykai todėl šalinam Pulseaudio:

pacman -Rdd pulseaudio pulseaudio-alsa

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close