วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556

[เรื่อยเปื่อย][Diary] สัมภาษณ์วิศวะคอมฯ ลาดกระบัง

วันจันทร์ที่ 7 ที่ผ่านมา ก็ได้มีโอกาสไปสัมภาษณ์โค้วต้าช้างเผือกของวิศวะคอมฯ ลาดกระบังมา หลังสัมภาษณ์เสร็จ ก็ทั้งรู้สึกเสียใจกับเสียดายนะ บางอย่างก็ไม่ได้พูด บางอย่างก็ไม่น่าพูด 555555

นัดสัมภาษณ์ 9 โมง ไปถึง ~8:20 หาข้าวกินอยู่โรง L เสร็จสรรพประมาณ 8:45 ก็ไปตึก ECC ต่อ ก็ไปรอหน้าห้องสัมภาษณ์ พี่ๆปีหนึ่งก็มาชวนคุยไปเรื่อยๆไม่ให้เราเกร็ง(บางทีมันก็เกร็งกว่าเดิมนะ ._.) รอเขามาเรียกไปเรื่อยๆ ยิ่งรอนาน ยิ่งหวั่นไหว 5555 แล้วพอคิวเรามาถึง

เรา : สวัสดีครับ ข....
อาจารย์ยกมือเชิญให้นั่งก่อนเลย ยังไม่ทันขอนั่ง
อาจารย์ : อ่ะ เดี๋ยวอาจารย์จะถามคำถามเรา มีเวลาให้ตอบข้อละประมาณ 2-3 นาที ให้คิดก่อนตอบดีๆ (มาซะแนววิชาการเลย)
อาจารย์ : มาจากไหน...  ที่บ้านน้ำท่วมรึเปล่า..
คำถามเปิดตัวเหมือนจะชิวๆแหะ เราก็ตอบธรรมดาไป
อาจารย์ : ไหนลองแนะนำตัวดูซิ
คำถามสุดฮิต..มาแล้ว 55555 เราก็แนะนำตัวไปปกติ
อาจารย์ : ทำไมถึงอยากเข้าวิศวะคอมหรอ?
เรา : ก็เป็นสาขาที่ได้จับทั้งฮาร์ดแวร์แล้วก็ซอฟต์แวร์ ไม่เหมือน IT,ComSci ที่เน้นไปซอฟต์แวร์มากกว่า ฯลฯ
อาจารย์ : ได้สมัครมหาฯลัยอื่นไว้บ้างรึเปล่า?
เรา : ไม่ได้สมัครไว้ครับ ....เอ่อ มีที่ ม.ขอนแก่น อีกครับ (จะพูดอีกทำไมฟร่ะ T^T ไม่น่าเลย)
อาจารย์ :  แล้วเคยไปแข่งอะไรเกี่ยวกับคอมบ้างมั้ย
เรา : ก็เปิดพอร์ตให้อาจารย์ดู ทั้งเกียรติบัตรแข่งแล้วก็พวกเข้าค่าย ,,พวกประวัติส่วนตัว การศึกษา ภาพกิจกรรมนี่ อาจารย์ไม่ได้แตะเลย = =' แล้วก็โยงเข้าไปถึงภาษา perl
อาจารย์ : ทำไมถึงได้เขียน perl ไม่เขียนพวก C หรอ
เรา : ทีแรกก็เขียน C ครับ เขียนได้ซักพัก ก็อยากจะลองภาษาใหม่ ที่ไม่ต้องกังวลกับพวกชนิดตัวแปร ก็เลยได้มาเขียนภาษา perl
อาจารย์ : แล้ว java หละ ?
เรา : ยังไม่เป็นครับ ก็กำลังศึกษาอยู่ 
อาจารย์ : อืมมม.. แล้วเคยใช้ภาษา perl ทำอะไรบ้าง
เราก็ไล่ๆไป ทำอะไรบ้าง แล้วก็มาถึงว่าเคยเล่น raspberry pi
อาจารย์ : มันคืออะไรหรอ
เรา : ก็เป็นบอร์ดคอมพิวเตอร์ครับ ต้องหาจอ เมาส์คีย์บอร์ดมาต่อเพิ่มเอง มันสะดวกที่พกพาได้ง่ายครับ ราคาก็ไม่แพง
อาจารย์ : เท่าไหร่หรอ
เรา : ผมซื้อมาประมาณ 1,300 ครับ (นึกราคาจริงๆไม่ออก แถก่อนละกัน 5555)
อาจารย์ :  แสดงว่าที่บ้านรวยหนิ ,,แล้วอาจารย์ก็เปิดดูเอกสาร เห็นว่าพ่อแม่เป็นครู
เรา : ไม่หรอกครับ ได้เงินมา ก็หารสองเอาไปใช้หนี้ = =
อาจารย์ : แล้วทำไมเราไม่ไปเป็นครู ?
เรา : ผมสอนคนอื่นไม่ค่อยเข้าใจนะครับ พูดไม่ค่อยรู้เรื่อง
อาจารย์ : ที่คุยมา นี่ก็แสดงว่าอาจารย์ไม่รู้เรื่องเลยซิ 55555
อาจารย์ : เคยซ่อมคอมเองมั้ย หรือไม่ก็ประกอบคอมเอง ?
เรา : เคยครับ แต่ยังไม่เคยซื้อคอมมาประกอบเอง
อาจารย์ : ซ่อมอะไรหรอ
เรา : เคยเปลี่ยนฮาร์ดดิสครับ
อาจารย์ : โห ธรรมดาไป
เรา : คือคอมมีปัญหาที่ HDD หน่ะครับ แต่ไม่รู้ว่ามีปัญหาที่อื่นอีกรึเปล่า ยังไม่อยากเปลี่ยนHDDใหม่ ก็เลยรื้อ notebook ทั้งเครื่องออกมา เป่าฝุ่นแล้วประกอบเข้าไปใหม่อยู่ครับ (เอาว่ะ มันคงไม่ธรรมดาแล้ว)
อาจารย์ : แล้วอย่างอื่นหละ เช่น ถ้าหลอดไฟขาดจะดูยังไง
อาจารย์ก็ถามเรื่อยๆ จนตอบไม่ได้ -*- แล้วก็ยังโดนอาจารย์สอนเรื่องบัลลาสต์ด้วย
อาจารย์ : ลองไล่ชื่อพวกบริษัทที่เกี่ยวกับคอมดูหน่อย
เราก็ไล่ไป นึกออกแต่พวกบริษัทผลิตคอมโน๊ตบุ๊คทั้งหลาย
อาจารย์ : รู้จักเยอะนิ ทำไมถึงได้รู้
เรา : ก็ตอบไปว่า ตอนเลือกซื้อโน๊ตบุ๊ค ก็หาพวกยี่ห้อต่างนี่แหละ เลยผ่านตามา
อาจารย์ : แล้วสเปกคอมเราเป็นยังไง
ก็ไล่ๆไป ผิดบ้างถูกบ้าง 5555
อาจารย์ : อืมๆ แล้วอย่างบริษัท หน่วยงานในไทยบ้างหละ
เราก็ตอบพวก nectec sipa ICT แล้วก็ DSI (เกี่ยวมั้ยยย ??)
อาจารย์ : เคยทำงานหนักๆ อดหลับอดนอนบ้างมั้ย ?
เรา : เคยครับ ก็ทั้งเขียนโปรแกรม ทำการบ้าน แล้วก็ทำพอร์ต 55555
อาจารย์ : เอาหล่ะ แล้วถ้าไม่ติดที่นี้ จะทำยังไง
เรา : ผมก็จะมาสอบใหม่รอบรับตรงอีกทีครับ
อาจารย์ : ถ้าสมมติว่า เรียนจบ ป.ตรีแล้ว จะไปทำงาน หรือจะเรียนต่อ
เรา : ทำงานครับ อยากหาเงินก่อน แล้วค่อยกลับมาเรียนใหม่
อาจารย์ : จะเอาความรู้ด้านวิศวะคอมพิวเตอร์ ไปประยุกต์ใช้ให้ประโยชน์กับสังคมในด้านไหน เช่น การแพทย์ การเกษตร...
เรา : ก็ตอบไปว่าทางการแพทย์ ไปประดิษฐ์พวกเครื่องมือที่ต้องการความแม่นยำ เช่นตอนผ่าตัด แล้วก็ทางการทหาร เพราะเทคโนโลยีล้ำๆ ส่วนมากก็มาจากทหารอยู่แล้ว

อาจารย์ : มีอะไรจะถามอาจารย์มั้ย ?
ไอ้เราก็นั่งคิดอยู่ 'เอ่อออ..'
อาจารย์ : จะกลับเลยรึเปล่านิ ?
เรา : (เมื่อกี้ผมยังไม่ทันได้ตอบเลยจารย์) ยังครับ รุ่นพี่เขามีจัดกิจกรรมให้คนที่มาสัมภาษณ์อยู่ ผมจะเข้าร่วมต่อ

แล้วก็ร่ำลากัน พอออกมาหน้าห้อง ก็รู้สึกโล่งนะ แต่ไม่สุด เหมือนทำยังไม่เต็มที่ แต่ก็เต็มที่แล้ว เอ๊า...งง 55555

ก็จบไปเท่านี้ครับ กับการสัมภาษณ์ รับ25 สมัคร115 รอลุ้นผลกันอีกทีนึง..
Ps.ทีแรกบอกรับ25 สมัคร115 ผลออกมา เห็นรายชื่อตั้ง 46 คนแหนะ แต่สุดท้ายก็ WIN :D

วันอาทิตย์ที่ 16 มิถุนายน พ.ศ. 2556

[How to ] enable,disable remote desktop from command line

Enable: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f

Disable: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f


Enable Remote Assistant: reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f

วันเสาร์ที่ 15 มิถุนายน พ.ศ. 2556

[How to] Check last user logon in Windows


สำหรับ วิธีการเช็ควดูรายละเอียดว่า user ในเครื่องนั้น ล็อกออนเข้ามาใช้งานเครื่อง ล่าสุดตอนไหน ใน windows นั้น ให้ใช้คำสั่ง

net user [username]

หรืออีกคำสั่งหนึ่งคือ quser แล้วมองหาตรงเวลา logon time

วันพฤหัสบดีที่ 30 พฤษภาคม พ.ศ. 2556

[How to] disconnect ออกจาก remote desktop


ถ้าเราใช้งาน remote desktop ผ่านบาง app หลังจากปิด app ไปแล้ว แต่ปรากฏว่า session การใช้งานยังค้างไว้อยู่ ถ้าต้องการเช็คว่า มี session id ไหนค้างอยู่บ้าง ให้ใช้คำสั่ง qwinsta หลังจากเจอ user ที่ค้างใช้งานเอาไว้ แล้วต้องการปิด ให้ใช้คำสั่ง rwinsta ตามด้วย หมายเลข id ของแต่ละ session ที่จะปิด

END. ,,:P

วันอังคารที่ 19 มีนาคม พ.ศ. 2556

[Raspberry Pi] ทำเครื่อง รับ ส่ง รหัส morse



หลังจากที่ควบคุมขา GPIO กันได้แล้ว ต่อมา เนื่องจากว่าผมไม่รู้จะทำอะไรกับเจ้าขา GPIO ดี ก็เลยนึกเล่นๆไป ได้เครื่อง รับ-ส่ง รหัสมอสมาครับ

โดยในภาพ (และในสคริป) จะใช้ไฟจากขา #24 แล้วก็จากอีกขาหนึ่งที่มันจ่ายไฟ 3V ได้ เรียกไม่ถูกว่าอะไร 555

GPIO #24 -> ตั้งค่าเป็น output สำหรับจ่ายไฟ จากสคริป
3V -> สำหรับจ่ายไฟ ถ้าเราต้องการกดส่งรหัสมอสเอง
GPIO #23 -> ตั้งค่าเป็น input สำหรับรับรหัสมอส



มาดูที่ฝั่งตัวส่งรหัสมอสกันก่อน

#!/usr/bin/perl
$gpio=24;
$delay=0.25;                   #Delay of send speed
$pause=1*$delay;
$dot_pause=1*$delay;
$dash_pause=3*$delay;
$character_pause=3*$delay;
$word_pause=7*$delay;

print "\n\n";
print " Message >> ";
chomp($text=);
$original_text=$text;
@original_text=split //,$original_text;

$text=~s/ /\//ig;
$text=~s/\./.-.-.- /ig;
$text=~s/,/--..-- /ig;
$text=~s/\?/..-.. /ig;
$text=~s/a/.- /ig;
$text=~s/b/.--- /ig;
$text=~s/c/-.-. /ig;
$text=~s/d/-.. /ig;
$text=~s/e/. /ig;
$text=~s/f/..-. /ig;
$text=~s/g/--. /ig;
$text=~s/h/.... /ig;
$text=~s/i/.. /ig;
$text=~s/j/.--- /ig;
$text=~s/k/-.- /ig;
$text=~s/l/.-.. /ig;
$text=~s/m/-- /ig;
$text=~s/n/-. /ig;
$text=~s/o/--- /ig;
$text=~s/p/.--. /ig;
$text=~s/q/--.- /ig;
$text=~s/r/.-. /ig;
$text=~s/s/... /ig;
$text=~s/t/- /ig;
$text=~s/u/..- /ig;
$text=~s/v/...- /ig;
$text=~s/w/.-- /ig;
$text=~s/x/-..- /ig;
$text=~s/y/-.-- /ig;
$text=~s/z/--.. /ig;
$text=~s/1/.---- /ig;
$text=~s/2/..--- /ig;
$text=~s/3/...-- /ig;
$text=~s/4/....- /ig;
$text=~s/5/..... /ig;
$text=~s/6/-.... /ig;
$text=~s/7/--... /ig;
$text=~s/8/---.. /ig;
$text=~s/9/----. /ig;
$text=~s/0/----- /ig;

print " Sending >> $original_text[0]";
$count_text=1;
foreach (split //,$text) {
    if ($_ eq '.') {
        system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
        select undef,undef,undef,$pause;
        system("echo \"1\" > /sys/class/gpio/gpio$gpio/value");
        select undef,undef,undef,$dot_pause;
    }
    elsif ($_ eq '-') {
        system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
        select undef,undef,undef,$pause;
        system("echo \"1\" > /sys/class/gpio/gpio$gpio/value");
        select undef,undef,undef,$dash_pause;
    }
    elsif ($_ eq ' ') {
        system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
        select undef,undef,undef,$character_pause;
        print "$original_text[$count_text]";
        $count_text++;
    }
    elsif ($_ eq '/') {
        system("echo \"0\" > /sys/class/gpio/gpio$gpio/value");
        select undef,undef,undef,$word_pause;
        print "$original_text[$count_text]";
        $count_text++;
    }
    else { print "\nERROR: $_\n"; exit; }
}
print "\n";




หลักการของมันก็คือ รับตัวอักษรจากเราเข้า แล้วก็แปลงเป็น >> . - 'ช่องว่าง' / << แล้วก็ส่งค่า 0 กับ 1 ออกไปตามจังหวะ พอส่งค่า 1 ออกไปจากขา #24 ไฟ LED ก็จะติด แล้วก็ยังส่งค่าไปที่ขา #23 อีกด้วย(ซึ่งจะเป็นของฝั่งรับสัญญาณ ถ้าต้องการดูแค่ LED กระพริบเป็นสัญญาณ ขา #23 ก็ไม่ต้องใช้)
หรือถ้าเรา จะส่งรหัสมอสเอง อยากได้อารมณ์ของการนั่งกดปุ่มจริงๆ 5555 ก็กดจากสวิตได้เลย เพราะมีไฟจ่ายให้ทาง switch จากแหล่งจ่ายไฟ 3V ตลอดอยู่แล้ว



ทีนี้ มาดูทางฝั่งรับ รหัสมอส

#!/usr/bin/perl
$delay=0.1; #second
$timeout=60;  #loop for exit if didnt get any morse code
$text='';
$gpio=23;

print " Geting >> ";

do {
    open READ,"cat /sys/class/gpio/gpio$gpio/value |";
    $value=;
    close READ;
    select undef,undef,undef,$delay;
    $end=0;
} until ($value == 1);

while (1) {
    open READ,"cat /sys/class/gpio/gpio$gpio/value |";
    $value=;
    close READ;
    if ($value == 1) {
        print '1';
        select undef,undef,undef,$delay;
        $text.='1';
        $end=0;
    }
    else {
        print ',';
        select undef,undef,undef,$delay;
        $text.=',';
        ++$end;
    }
    if ($end > $timeout) {
        print "\n Morse >> ",analys($text);
        print "\n Text >> ",convert(analys($text));
        print "\n";
        exit;
    }
}


sub analys {
    my $text=$_[0];
#    $text=~s/1{3,}/-/g;            #For send speed = 0.125
#    $text=~s/1{1,2}/./g;           #For send speed = 0.125
#    $text=~s/,{11,}/  \/  /g;      #For send speed = 0.125
#    $text=~s/,{4,10}/  /g;         #For send speed = 0.125
#    $text=~s/,{1,3}//g;            #For send speed = 0.125
    $text=~s/1{4,}/-/g;            #For send speed = 0.25
    $text=~s/1{1,3}/./g;           #For send speed = 0.25
    $text=~s/,{11,}/  \/  /g;      #For send speed = 0.25
    $text=~s/,{5,10}/  /g;         #For send speed = 0.25
    $text=~s/,{1,4}//g;            #For send speed = 0.25
    return " ".$text." ";
}

sub convert {
    my $text=$_[0];
    $text=~s/ \.- /a/ig;
    $text=~s/ \.--- /b/ig;
    $text=~s/ -\.-\. /c/ig;
    $text=~s/ -\.\. /d/ig;
    $text=~s/ \. /e/ig;
    $text=~s/ \.\.-\. /f/ig;
    $text=~s/ --\. /g/ig;
    $text=~s/ \.\.\.\. /h/ig;
    $text=~s/ \.\. /i/ig;
    $text=~s/ \.--- /j/ig;
    $text=~s/ -\.- /k/ig;
    $text=~s/ \.-\.\. /l/ig;
    $text=~s/ -- /m/ig;
    $text=~s/ -\. /n/ig;
    $text=~s/ --- /o/ig;
    $text=~s/ \.--\. /p/ig;
    $text=~s/ --\.- /q/ig;
    $text=~s/ \.-\. /r/ig;
    $text=~s/ \.\.\. /s/ig;
    $text=~s/ - /t/ig;
    $text=~s/ \.\.- /u/ig;
    $text=~s/ \.\.\.- /v/ig;
    $text=~s/ \.-- /w/ig;
    $text=~s/ -\.\.- /x/ig;
    $text=~s/ -\.-- /y/ig;
    $text=~s/ --\.\. /z/ig;
    $text=~s/ \.---- /1/ig;
    $text=~s/ \.\.--- /2/ig;
    $text=~s/ \.\.\.-- /3/ig;
    $text=~s/ \.\.\.\.- /4/ig;
    $text=~s/ \.\.\.\.\. /5/ig;
    $text=~s/ -\.\.\.\. /6/ig;
    $text=~s/ --\.\.\. /7/ig;
    $text=~s/ ---\.\. /8/ig;
    $text=~s/ ----\. /9/ig;
    $text=~s/ ----- /0/ig;
    $text=~s/ \.-\.-\.- /./ig;
    $text=~s/ --\.\.-- /,/ig;
    $text=~s/ \.\.-\.\. /?/ig;
    $text=~s/ //ig;
    $text=~s/\// /ig;
    return $text;
}

หลักการทำงานคือ หลังจากรันสคริป มันจะรอเรื่อยๆ จนกว่าจะมีไฟจ่ายเข้าทาง #23 มันถึงจะเริ่มทำงาน โดยมันจะนับเวลาที่มีไฟจ่ายเข้า
  • ถ้าจ่ายเข้าสั้นๆ ก็นับเป็น . (dot)
  • ถ้าจ่ายเข้ายาวๆก็นับเป็น - (dash)
  • ถ้าเว้นว่างระยะหนึ่ง แล้วจ่ายไฟเข้าใหม่ ก็นับเป็นสิ้นๆสุดหนึ่งตัวอัก
  • ถ้าเว้นว่างยาวอีกหน่อย แล้วจ่ายไฟเข้าใหม่ ก็นับเป็นหนึ่งคำ
  • ถ้าเว้นว่างยาวเรื่อยๆ ก็ถือว่าสิ้นสุดการรับส่ง
พอรับมาเป็น . - 'ช่องว่าง' / แล้ว ก็เอามาแปลงเป็นตัวอักษรอีกทีนึง



จบละครับ หลักการง่ายๆ ตอนนี้ยังไม่รู้ว่าทำเสร็จ จะเอาประโยชน์อะไรดี ทำเอาเล่นๆสนุกๆก่อน ใครมีไอเดียวแจ่มๆ ก็มาแชร์กันบ้างนะครับ :P

Download morse-send.pl >> http://pastebin.com/Zi8WKn0L
Download morse-receive.pl >> http://pastebin.com/SidGeJtD

[Raspberry Pi][Perl] ควบคุม GPIO บน RaspberryPi ด้วย perl

อธิบายก่อนนะครับ ว่าอันที่จริง ไม่ใช่ใช้คำสั่ง perl ซักเท่าไหร่ แต่จะใช้ภาษา perl รันคำสั่ง linux ตอนใช้งาน GPIO บน raspberry pi อีกทีนึง ไม่งงนะ = = 55555

สำหรับสคริปนี้ ต้องรันด้วยสิทธิ์ root นะครับ (login ด้วย user root ก่อนรัน หรือใช้คำสั่ง sudo perl file.pl)

print "\n [+]----------------------------------------[+]";
print "\n  |    GPIO Control by using perl on bash    |";
print "\n  |      Test on Raspbian Wheezy [RPi]       |";
print "\n  |                                          |";
print "\n  |   Created by : AssazziN                  |";
print "\n  |   Version 1: 11 Mar 2013                 |";
print "\n [+]----------------------------------------[+]\n";

print "\n >> type h|help for help\n";
do {
    print " >> ";
    chomp($input=);
    if ($input eq 'h' or $input eq 'help') { help(); }

    elsif ($input=~/^export (\d{1,2})$/) {
        system("echo \"$1\" > /sys/class/gpio/export");
    }

    elsif ($input=~/^direction (\d{1,2}) (out|in)$/) {
        system("echo \"$2\" > /sys/class/gpio/gpio".$1."/direction");
    }

    elsif ($input=~/^value (\d{1,2}) (1|0)$/) {
        system("echo \"$2\" > /sys/class/gpio/gpio".$1."/value");
    }

    elsif ($input=~/^unexport (\d{1,2})$/) {
        system("echo \"$1\" > /sys/class/gpio/unexport");
    }

    elsif ($input=~/status/i) {
        @pin=();
        $pin=`find /sys/class/gpio/ gpio*`;
        while ($pin=~/sys\/class\/gpio\/gpio(\d{1,2})/g) { push(@pin,$1); }
        print " All pins that useabled : @pin\n";
    }

    elsif ($input eq 'q' or $input eq 'quit' or $input eq 'exit') {}
    else { print " $input : command not found\n"; }
} while ($input ne 'q' and $input ne 'quit' and $input ne 'exit');



sub help {
    print "\n ** This script requirement ROOT ***\n";
    print " > export [GPIO PIN]                 set gpio pin to useable\n";
    print " > direction [GPIO PIN] [out|in]     set gpio pin direction\n";
    print " > value [GPIO PIN] [1|0]            set gpio pin value\n";
    print " > unexport [GPIO PIN]               set gpio pin to unuseable\n";
    print " > status                            check status of all pin\n";
    print " > q quit exit                       exit script\n\n";
}


Pastebin: [Raspberry Pi] GPIO Control

ส่วนการใช้งานคำสั่งๆจริงๆ แบบไม่ผ่านสคริปนี้ ก็แกะจากโค้ดเอาละกัน ;p

คำสั่งเปิดใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/export
คำสั่งให้ขา gpio #23 เป็นตัว output : sudo echo "out" > /sys/class/gpio/gpio23/direction
คำสั่งให้ขา gpio #23 เป็นตัว input : sudo echo "in" > /sys/class/gpio/gpio23/direction
คำสั่งจ่ายไฟให้ขา gpio #23 : sudo echo "1" > /sys/class/gpio/gpio23/value
คำสั่งหยุดจ่ายไฟให้ขา gpio #23 : sudo echo "0" > /sys/class/gpio/gpio23/value
คำสั่งอ่านค่าสถานะของขา gpio #23 : cat /sys/class/gpio/gpio23/value
คำสั่งเลิกใช้งานขา gpio ขาที่ #23 : sudo echo "23" > /sys/class/gpio/unexport

วันจันทร์ที่ 11 มีนาคม พ.ศ. 2556

[Raspberry Pi] การเปิดใช้งาน ftp ด้วย vsftpd

สำหรับการเปิดใช้งาน ftp บน raspberry pi รู้สึกว่าจะมีให้เลือกใช้บริการหลายเจ้านะ แต่อันที่จริงคือ ผมรู้จักแต่ vsftpd 5555 ;p เห็นว่าตัวนี้ได้รับความนิยมเยอะด้วย ถึงมีปัญหาอะไร ก็จะมีเพื่อนช่วยแก้ให้เยอะด้วย จริงมั้ยหละ ? :)

เอาละครับ มาถึงเวลาลองกันละ
1. ตามสเตปเลย sudo apt-get install vsftpd
2. แล้วก็ไปตั้งค่ากันก่อน sudo nano /etc/vsftpd.conf
   2.1 แก้ตรงบรรทัด anonymous_enable=YES  ให้เป็น  anonymous_enable=NO (เพื่อป้องกันไม่ให้ใครก็ได้ล็อกอินเข้ามาแบบไม่ใส่ user ไม่ใส่ pass)
   2.2 แก้ตรง #local_enable=YES โดยเอาเครื่องหมาย # ออก (เพื่อให้ทุก user ใน /etc/passwd ล็อกอินเข้ามาได้)
   2.3  แก้ตรง #write_enable=YES โดยเอาเครื่องหมาย # ออก (เพื่อให้ user ที่ล็อกอินเข้ามา สามารถเขียนไฟล์ได้)
   (2.3) หรือบ้างคน อาจจะเพิ่มบรรทัด force_dot_files=YES เข้าไปบรรทัดสุดท้ายของไฟล์ด้วยก็ได้ เพื่อให้โปรแกรม ftp แสดงไฟล์ .htaccess
   2.4 ถ้าต้องการแก้ไข default ที่อยู่ของแต่ละ user สมมติว่า เรา ftp เข้าไปด้วย user ชื่อ www-data แล้วที่อยู่ปกติจะอยุ่ที่ /home/pi เราต้องการให้อยู่ที่ /var/www ให้แก้ที่ไฟล์ /etc/passwd หรือใช้คำสั่ง sudo -d /var/www www-data

3. ตั้งค่าเรียบร้อย ก็เปิดใช้งานเลย sudo service vsftpd restart
4. สามารถล็อกอินใช้งานจาก programs ftp ทั่วไปได้แล้ว

Ref : http://spalinux.com/2011/09/install_configure_vsftpd_ftp_server
http://www.voip4share.com/centos-the-community-enterprise-operating-system-f55/vsftpd-ftp-server-centos-t1162.html
http://www.itmanage.info/technology/linux/vsftp_config_read_only.html

วันอาทิตย์ที่ 10 มีนาคม พ.ศ. 2556

[Raspberry Pi] การใช้ vnc เพื่อ remote จากคอมไป raspberyy pi

สำหรับจะทำให้ Raspberry Pi เป็นเครื่อง vnc server ต้องติดตั้งตัว tightvncserver ก่อนครับ
sudo apt-get install tightvncserver  ต่อมาถ้าจะสร้าง 'หน้าต่าง' (ไม่รู้ว่าจะเรียกว่าอะไร 5555) ที่จะให้รีโมตเข้ามา กำหนดค่ายังงี้ครับ >> vncserver -geometry 1366x768 :N ตรง N อันนี้ใส่เป็นตัวเลขนะครับ เลขอะไรก็ได้ ประมาณว่า เป็นหมายเลขของ 'หน้าต่าง' ที่เราใช้งาน ปกติมันจะตั้งค่าละเอียดกว่านี้อยู่หรอก แต่หลักผมก็ใช้เท่านั้นแหละ อยากจะรู้การใช้งานแบบละเอียด ก็ vncserver --help เลย

สำหรับทางเครื่อง PC ,NB ที่จะ remote เข้าไป ถ้าเป็น windows ผมแนะนำโปรแกร ultra vnc viewer นะครับ จากที่ลองมาใช้งานได้ง่ายดี วิธีใช้งานก็แค่ ใส่หมายเลข ip ของ rPi ตามด้วย :N  เหมือนในภาพเลย


[Raspberry Pi] ลง nginx เพื่อทำ pi เป็น webserver

จากที่ลองหาความแตกต่างระหว่าง nginx กับ apache รู้สึกว่า nginx จะเป็นน้องใหม่มาแรง ทั้งความเร็วในการเข้าถึง จำนวน connection ที่รองรับ ขนาดความจำที่ใช้ ในหลายๆด้านจะดีกว่า apache ในบทความนี้ ผมเลยจะเขียนเกี่ยวกับการลง nginx กันนะครับ

อันดับแรกเลย ไม่พ้น sudo apt-get install nginx
หลังจากนั้นก็ sudo apt-get install php5-fpm php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-cgi  เพื่อทำให้ php5 ทำงาน

1. ต่อมาใช้คำสั่ง sudo mkdir /var/www เพื่อสร้างโฟลเดอร์สำหรับเก็บไฟล์ต่างๆของ server
2. ค่า default ของ nginx โฟลเดอร์ของเวปจะอยู่ที่ /usr/share/nginx/www เพราะงั้น เราก็ต้องย้ายโฟล์เดอร์นั้น มาที่ /var/www ก่อน sudo cp /usr/share/nginx/www/*.* /var/www
3. ต่อมา ก็แก้ไขการตั้งค่าอีกนิดหน่อย sudo nano /etc/nginx/sites-available/default
4. แล้วก็เอา #(comment) ข้างหน้า listen   80; ## listen for ipv4; this line is default and implied ออก
6. ที่บรรทัด root /usr/share/nginx/www; ให้แก้เป็นที่อยู่โฟลเดอร์ webserver ของเรา -> root /var/www;
5. เอาเครื่องหมาย # ออกตั้งแต่ location ~ \.php$ {......}  ยกเว้นบรรทัด fastcgi_pass 127.0.0.1:9000;

6. กด Ctrl+x เพื่อออก -> กด y เพื่อบันทึก -> enter
7. sudo service nginx start
8. เข้าใช้งาน web server ของเราได้แล้วว :)

ต่อมา ติดตั้ง mysql กันเพิ่มอีกหน่อย
1. sudo apt-get install mysql-server mysql-client
2. ในระหว่างติดตั้ง มันก็จะให้ใส่ mysql password ก็ตั้งใส่กันไป


เสร็จแล้วก็มายัดสิทธิ์ ความเป็นเจ้าของให้กับ /var/www/ กันหน่อย ผมขอเลือก user ที่ชื่อ www-data ละกัน
sudo chown -R www-data:www-data /var/www

โอเชครับ เท่านี้ก็เสร็จไปครึ่งทางละ เดี๋ยวว่างๆไว้จะมาต่อกันกับการใช้งาน ftp และ phpmyadmin กัน

Ref : http://www.howtoforge.com/installing-nginx-with-php5-and-php-fpm-and-mysql-support-on-ubuntu-11.10
http://en.joscandreu.com/blog/install-nginx-on-raspberry-pi/

[Raspberry Pi] การเปลี่ยน layout keyboard

สำหรับตอนที่ลง OS Raspbian ใหม่ๆ เวลาที่พิม์ " @ # พวกนี้ อักขระมันจะไม่ใช่อย่างที่คีย์บอร์ดบ้านเราเห็นนะครับ เพราะ layout keyboard เดิม มันเป็นของ British เราก็ต้องมาแก้ให้มันเป็นของ US กันซะก่อน

sudo nano /etc/default/keyboard
แก้จาก gb ให้เป็น us
กด ctrl+x เพื่อออก -> กด y เพื่อบันทึก -> enter

แล้วก็ reboot ไปหนึ่งที ก็ใช้งานได้ละครับ

วันอาทิตย์ที่ 3 มีนาคม พ.ศ. 2556

มั่วๆกันต่อกับ Raspberry Pi [เล่นไฟล์ .mp3]~

    ก็เป็นภาคต่อจาก เริ่มต้นกับ Raspberry Pi :3 หลังจากที่เปิดใช้งานกันแล้ว เนื่องจากว่าผมยังไม่ได้ซื้อตัวรับไวรเลสก็เลยต่อสายแลนเอาครับ ต่อมาก็อัพเดทซอฟต์แวร์ต่างๆให้เป็น version ล่าสุดกันก่อน

  • sudo apt-get update
  • sudo apt-get upgrade
    ตามความเข้าใจผมก็คือว่าคำสั่งแรกจะเป็นเช็คว่ามีโปรแกรมตัวไหน ที่จะอัพเดทได้บ้าง แล้วค่อยมาใช้คำสั่ง apt-get upgrade เพื่อทำการอัพเดทมัน หลังจากอัพเดทเสร็จ ก็ไม่รู้ว่าจะใช้งานอะไรต่อดี ก็เลยลองฟังเพลงดูหน่อยละกัน แต่ไม่รู้จะเอาโปรแกรมไหนเปิด 5555+  ก็ค้นๆไป เจอกับกระทู้นี้
http://raspberry-pi-th.blogspot.com/2012/10/raspberry-pi-play-mp3-file.html ขอลองหน่อยละกัน
  • sudo apt-get install alsa-utils 
  • sudo apt-get install mpg321  
  • reboot
  • sudo modprobe snd-bcm2835 
  • sudo amixer cset numid=3 1  
    โอเค ลงโปรแกรมทุกอย่างเรียบร้อย ต่อไปมาลองฟังเพลงกันดู เสียงหูฟังที่แจ็ค 3.5mm ก็ใช้คำสั่ง cd เข้าไปที่เก็บไฟล์เพลง แล้วก็ mpg321 *.mp3 เพื่อเล่นทุกเพลง เท่านี้ก็เรียบร้อยแล้ว แล้วถ้าจะเพิ่มหรือลดเสียง ก็ใช้คำสั่ง alsamixer

    ครั้งต่อไป เดี๋ยวจะมาลองรีโมต RaspberryPi จากเครื่องอื่นกันดู ถ้าไม่ขี้เกียจเขียนนะ ;p


ขอแปะๆลิงค์เอาไว้หน่อยละกัน น่าสนใจๆ :

วันพุธที่ 13 กุมภาพันธ์ พ.ศ. 2556

เริ่มต้นกับ Raspberry Pi :3

          อันที่จริงก็ ได้สอย RaspPi มานานแล้วแหละ 1,950B แต่ก็ยังไม่ได้ทำอะไรเป็นชิ้นเป็นอันซักที วันนี้มาว่างๆก็เลยคิดว่า ก่อนจะทำมาอัพบล็อกซักหน่อยดีกว่า -w-
          ถ้าสำหรับคำถามที่ว่า Raspberry Pi คืออะไร ก็ตามนั้นเลยละกัน ขี้เกียจพิมพ์ 5555+ ง่ายๆว่ามันคือคอมพิวเตอร์แบบจิ๋วๆ ใช้ CPU แบบ arm คือที่ใช้ในสมาร์ทโฟน มีสองรุ่น คือ Model B(ออกจำหน่ายก่อน) กับ Model A โดย ModelB จะราคา 35$ ขายในไทยเท่าที่ผมเห็นถูกสุดนะ ก็ 1,850B ,ModelA จะราคา 25$ ในไทยเท่าไหร่ลืมแล้ว -0-
          สำหรับความแตกต่างของทั้งสองแบบนี้ คือ Model A จะตัดพอร์ต USB ออกไปหนึ่งช่อง กับตัดพอร์ต Ethernet Lan ออก แล้วก็กินไฟ 300mA ซึ่งน้อยกว่า Model A ที่กินไฟ 700mA

          มาถึงตอนที่ได้มันมาดีกว่า ว่าทำอะไรมั่ง (โพสนี้เหมือนกันลืมให้ตัวเอง เผื่อเวลา reset raspi จะได้ไม่ต้องเสียเวลางมใหม่นาน - -;)  อันดับแรกเลย ต้องมี SD Card ที่จะเอามาใช้งานก่อน เพราะ raspberry pi ไม่มี HDD หรือ SDD มาให้ เพราะงั้นก็ต้องอาศัย SDCard ในการเก็บข้อมูลแทน แล้วก็ download image ที่จะเอาเป็น OS ก่อน ผมก็เลือกเจ้าตัว Raspbian “wheezy” มา ในตอนนั้นคือผมจะใช้ windows นะ ในการเขียน Image ลงใน SDCard จะใช้โปรแกรม Win32DiskImager พอเขียนอิมเมจไฟล์เสร็จ ก็เสียบเข้า RaspberryPi หาเมาส์+คีย์บอร์ด+สายแลนมาต่อ สำหรับตัวจ่ายไฟเข้า ผมใช้สายชาร์จของ Samsung นะ
สายชาร์จของ Samsung



ส่วนหน้าจอ ก็มีให้เลือกต่อกับใช้สาย HDMI แต่ผมใช้หัวเหลืองอะ หัว RCA ไม่รู้เรียกถูกมั้ย ต่อกับหน้าจอ 3.5 นิ้ว แต่หัวของทั้ง RasPi กับ หน้าจอ เป็นแจ็คตัวเมียเหมือนกัน เลยต้องหาสายมาแปลง
สาย RCA แบบยาวใช้งานไม่ได้



 

หัวแจ็คสั้นๆแบบนี้ ที่ใช้งานได้
แต่ผลลัพธ์คือ หน้าจอไม่ติด -*- แต่ก็ได้พี่เล็ก Windows98SE มาช่วย พี่แกบอกให้ลองใช้ หัวต่อแบบสั้นๆ ก็สอยมาหัวละ 20B เอามาลองต่อก็โอเค ติดใช้งานได้ แต่หน้าจอตอนที่บูตขึ้นมา ถ้ามองในจอ 3.5" ที่ผมซื้อมานะ มองไม่ออกอะตัวอะไรเป็นอะไร มันเบลอๆไปหมด อันนี้ก็ต้องใช้วิธีปรับขนาดตัวอักษรหน้าจอ console ก็พอมาช่วยแก้ไขได้อยู่ โอเค ทีนี้ก็พร้อมเล่นอันอื่นต่อไปละ

To be continued... ~

วันจันทร์ที่ 11 กุมภาพันธ์ พ.ศ. 2556

[Raspberry Pi] ปรับขนาดหน้าจอ Console ของ pi


คือผมไปสอยหน้าจอ 3.5" มาลองต่อใช้งานดู คือ หน้าจอเราจะมองเห็นเป็นสั่นๆมากครับ ตัวหนังสือเล็กจนเกือบเดาไม่ออกเลยว่าตัวอะไร อย่างตัว S กับเลข 8 ก็ยังแยกกันไม่ค่อยออก  แล้วพอดีไปเจอเวปนี้มาครับ เป็นการปรับขนาดหน้าจอ console ของ raspberry pi (แต่ถ้าใช้งานแบบ GUI ก็ยังคงเล็กอยู่ดี) มาดูวิธีกันครับ ขออนุญาติก๊อปรูปจากเวปต้นฉบับเลยละกัน อิอิ

1.) sudo dpkg-reconfigure console-setup
2.) เลือกเป็น UTF-8


3.) เลือก Guess optimal character set



4.) เลือก VGA


5.) เลือกปรับขนาดหน้าจอ เลือกเป็น 16×28 (framebuffer only)


6.) รอซักแปป แล้วดูผลครับ ;p

วันศุกร์ที่ 8 กุมภาพันธ์ พ.ศ. 2556

[Perl] Bypass counting time ข้ามการนับเวลา adf.ly



     สคริป perl ตัวนี้ ก็เอาไว้สำหรับแปลงลิงค์ short url ของ adf.ly ให้เป็นลิงค์แบบเต็มนะครับ ตามในรูปเลย

วันเสาร์ที่ 19 มกราคม พ.ศ. 2556

[how to] invite เพื่อนใน facebook ทีละมากๆ ในครั้งเดียว

ก็จะคล้ายๆกับบทความที่เคยเขียนไปแล้วใน > http://comfreedom.blogspot.com/2012/10/how-to-add-facebook.html < เลยแหละ
เพียงแต่ตอนอยู่ในหน้าตาให้กดเลือกเพื่อน ให้ใช้ code ตัวนี้แทน :

javascript:function check_all_in_document(doc){var c=new Array();c=doc.getElementsByTagName('input');for(var i=0;i

javascript:elms=document.getElementsByName("checkableitems[]");for (i=0;i < elms.length;i++){if (elms[i].type="checkbox" )elms[i].click()};

ใช้ได้ทั้งสองแบบเลยย

วันจันทร์ที่ 14 มกราคม พ.ศ. 2556

[Android] รวมเวปโหลด เกม แอพ .apk !! :D



   ทีแรกก็กะจะหาโหลดแค่ plant vs zombie แค่เกมเดียวแหละ แต่ทีนี้ เลือกหลายเวปปั๊บ ดันไปเจอเวปดีๆอีกหลายเวป+แอพดีๆอีกหลายแอพเลย เลยขอจดๆไว้หน่อยละกัน เผื่อจะได้มีโอกาสแวะเข้าไปโหลดใหม่ อิอิ



  • http://androclubgames.blogspot.com
  • http://www.apkmania.co
  • http://www.androidapkfull.com
  • http://apkusa.com

*แต่ถ้าชอบจริงๆ ก็แอบสนับสนุนให้ซื้อจากผู้ผลิตโดยตรงดีกว่านะครับ ;p

วันศุกร์ที่ 4 มกราคม พ.ศ. 2556

[linux/ubuntu] Shortcut to past|copy on terminal


To past text : Ctrl + Shift + v
To Copy text : Ctrl + Shift + c


remember remember จดไว้กันลืม :)