Sunday, December 21, 2008

หรอย.คอม

หรอย.คอม หรือ http://hroyy.com เป็น Social Network น้องใหม่ล่าสุดของวงการ punkky ก็ไปเปิด blog ไว้ที่ http://punkky.hroyy.com ซึ่งจะเป็นเรื่อง Electronics ล้วนๆ และอีก blog คือ http://nihon.hroyy.com ซึ่งจะเป็นเรื่องราวเกี่ยวกับญี่ปุ่น ยังไงก็ลองไปใช้งานกันดูครับ

Monday, December 08, 2008

การต่อขา Power Supply ของ Device ใน Eagle

โปรแกรม Eagle นั้น เป็นโปรแกรมที่ใช้ประจำในการออกแบบวงจรที่ผมทำเล่น มีปัญหาหนึ่งที่เจออยู่บ่อยๆคือ วางอุปกรณ์แล้วมันไม่มีขาสำหรับต่อ Power Supply หรือ VCC, GND ให้ ตัวอย่างเช่น LM324 พอวางไปในวงจรมันจะเป็นตัว OpAmp เฉยๆ

วิธีการเอาขา Power Supply ออกมาคือ กดปุ่ม Invoke ดังรูป




จะมีหน้าต่างโผล่ขึ้นมาถาม ให้คลิกไปที่อันล่างสุด Gate: P, Symbol: PWR+- ตามภาพ เพื่อเลือกให้แสดงขา Power

พอคลิก OK แล้วมันจะมีขา 4 และ 11 ออกมา แล้วเราก็ต่อ VCC เข้าขา 4 และ GND เข้าขา 11 เป็นอันเสร็จพิธี พอเปลี่ยนไปเป็น Mode PCB มันก็จะต่อขาสองขานี้เข้ากับ Power Supply ให้โดยอัตโนมัต

Sunday, December 07, 2008

เครื่องมือสำหรับงานเล็กๆ

หามานานสำหรับเครื่องมือที่ใช้เจาะรูเล็กๆ ของแผ่นวงจรพิมพ์ (สว่านเจาะแผ่นปริ้นท์)ปกติก็มักเป็นชุดสำหรับทำพวกโมเดลต่างๆ อยากได้อันที่มีโต๊ะสำหรับวางชิ้นงานด้วย เคยเห็นของช่างนาฬิกามันก็เล็กดีแต่ก็ไม่รู้หาซื้อที่ไหน ถามช่างดูเค้าบอกว่าที่ไหนก็มี (?) ซึ่งก็ไม่รู้ว่าที่ไหน อันนึงพันกว่าบาทมั้ง วันนี้ลองนั่งหาดูก็พบว่ามีเครื่องมือประมาณที่ต้องการ ขายอยู่ที่อเมริกา
ราคา
USD 47.35 สำหรับชุดโต๊ะ
USD 66.90 สำหรับตัวสว่าน
USD 57.50 สำหรับหม้อแปลงไฟ (110V -> 12V DC)ถ้าเอามาใช้เมืองไทยก็ต้องซื้อหม้อแปลงเพิ่มอีก
รวม USD 171.75 ประมาณ 6200 บาท ...อืมม์ แพงจัง นี่ยังไม่รวมค่าส่งอีก อยากได้แต่คงไม่ซื้ออ่ะ
ใครทุนหนาอยากลองเล่นดูก็ไปซื้อได้ที่ Micro-Mark



ลองดูๆไปเห็นมีชุดเครื่องกลึงไม้สำหรับงานเล็กๆด้วย น่าเล่นจริงๆ (Apprentice Woodworking Machine) เครื่องนึง USD 107.95 ก็สามพันกว่าบาท ในชุดมีสว่านแบบ Drill Press ด้วยน่าสนเหมือนกันแฮะ ซื้อมาไว้เผื่อลูกอยากทำ Doll House

Thursday, December 04, 2008

.htacess ต้องเป็น UTF-8 เหรอ?

เมื่อวานนี้ลง Wordpress Mu สำหรับเว็บไซต์ของบริษัท ลงเสร็จแล้วเจอแต่ 500 Internal Error ไปดู error log ของเว็บ server ก็เห็น error เต็มไปหมดโดยเป็น error เหมือนๆกันคือ

[Wed Dec 3 09:29:38 2008] [alert] [client xxx.xxx.57.122] /home/Naliga/public_html/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration


ตอนแรกคิดว่าเป็นเพราะ server ไม่มี rewrit_mod แต่ก็ลองไปลองมาก็คิดว่าไม่เกี่ยวมั้ง สุดท้ายก็เจอว่าตรง \xef\xbb\xbfRewriteEngine เป็นตัวปัญหา มันหมายถึงว่ามีการ encoding ที่ผิดปกติของไฟล์ .htaccess. หาข้อมูลดูก็เหมือนกับว่า ไฟล์ .htaccess ต้องเซฟเป็น UTF-8 หรือ Latin1 จึงจะเวอร์ค ก็ลองเปิดไฟล์นี้ด้วย Notepad แล้วเซฟใหม่ให้เป็น UTF-8 คราวนี้ก็ใช้งานได้เป็นปรกติ

ทีนี้ก็จำไว้เองว่า .htaccess ควรต้องเป็น UTF-8

Monday, December 01, 2008

เปิดบริการเว็บโฮส์ติ้ง Web Hosting

ไม่รู้เป็นยังไงมายังไงอยู่ๆตอนนี้ punkky ก็ให้บริการเว็บโฮส์ติ้งด้วยแหละ ราคาเริ่มตั้งแต่ 350 บาท/เดือน ถ้าสนใจก็ email ถามได้ที่ punkky@gmail.com มีบริการออกแบบเว็บไซต์ SEO และ ทำ Internet Marketing ด้วย ช่วงนี้เศรษฐกิจไม่ดีคนไม่ค่อยอยากออกจากบ้าน ยังไงการตลาดทาง Internet ก็เป็นทางเลือกที่ดี ในการใช้เงินอย่างมีประสิทธิภาพ

Monday, November 24, 2008

Technique สลับตำแหน่ง Title จากผลการค้น Google

ไปเจอมา เจ๋งดี รายละเอียดอยู่ที่ How to Swap your Blogger (Blogspot ) blog Title ? น่าจะมีประโยชน์สำหรับให้คนเข้า blog จากการ Google มากขึ้น

คุณแม่ไม่เป็นอะไรมาก

จากโพสต์ อาการเส้นเลือดตีบในสมอง เมื่อวันที่ 10 เดือนตุลาคม 2551 ได้ผลการทำ MRI มาตั้งนานแล้ว ไม่เป็นอะไรมาก ไม่ได้เป็น alzheimer ไม่ได้อุดตัน มีเส้นเลือดในสมองบางเส้นตีบแต่ยังไม่ถึงกับตัน ใช้ยา แอสไพริน ก็บรรเทาอาการได้ โล่งใจมากๆ อาการอย่างอื่นแข็งแรงดีมาก

Friday, November 14, 2008

วงจรจับเวลา 99 วินาที ใช้ Microcontroller

โดยส่วนตัวชอบนาฬิกาที่จับเวลาได้เป็นหลักอยู่แล้ว นาฬิกาที่สะสมส่วนมากจะเป็นนาฬิกาแบบนี้ พอดีเขียน Blog ที่วิชาการ.คอมเกี่ยวกับวิธีทำนาฬิกา ซึ่งได้ยกวงจรจับเวลา 99 วินาทีนี้เป็นตัวอย่างในการทำความเข้าใจ ซึ่ง จุดเด่นของวงจรนี้คือ ไม่มีปุ่มกดจับเวลา หรือว่า หยุดจับเวลา และก็ไม่มีปุ่ม Reset อิ อิ :)
วงจรเป็นดังรูปข้างล่างนี้
99 Second Timer Counter Chronograph

ส่วนโปรแกรมที่เป็นภาษาซี เขียนด้วย MikroC ก็เป็นดังข้างล่างนี้ครับ
//PIC16F627A
//4MHz Internal OSC
// Two Digit Counter
// 13/11/2008
// Punkky@gmail.com
#define Digit1 PORTA.F0
#define Digit2 PORTA.F1

unsigned short tick;
unsigned short x1;
unsigned short x2;
void interrupt () //Interrupt จะถูกเรียกทุกครั้งที่ Timer1 เกิดการ Overflow นั่นคือจะถูกเรียกทุกวินาทีนั่นเอง

        PIR1.TMR1IF = 0;        // clears TMR1IF
        TMR1H = 0x80//ตั้งค่าเริ่มต้นของ Timer1 เป็น 0x8000 โดยตั้งเฉพาะสองบิตแรก
        tick = 1; //tick เป็น 1 ทุก 1 วินาที
}

void main(){ 
  CMCON = 0x07;   //Digital I/O for PORTA
  TRISA = 0x00;
  PORTA = 0x00;
  TRISB = 0x00;
  PORTB = 0x00
  T1CON = 0x0F
         
  // Prescaler 1:1   external clock 
  PIE1.TMR1IE = 1;  // enable interupt to start the clock 
  INTCON = 0xC0;   // Set GIE, PEIE 
  TMR1L = 0x00
  TMR1H = 0x80
  PCON.OSCF = 1//Internal Clock 4MHz 
  x1 = 0; //หลักสิบของวินาที 
  x2 = 0//หลักหน่วยของวินาที
  tick = 0;

  while(1){
    if(tick){ //เมื่อเวลาผ่านไป 1 วินาที ค่า tick จะเป็น 1
       tick = 0;
       x2++; //เพิ่มหลักหน่วยของวินาทีขึ้น 1
       if(x2>9){ //ถ้าหลักหน่วยมากกว่า เก้า ก็ให้เซ็ตเป็น ศูนย์ และนับหลักสิบขึ้น 1
          x2 =0;
          x1++;
          if(x1>9){ //ถ้าหลักสิบมากกว่า เก้า ก็ให้เซ็ตเป็น ศูนย์ เพื่อกลับไปนับจาก 00 ใหม่
             x1 = 0;
          }
          PORTB = x1; //นำค่าของหลักสิบไปแสดงผล
          Digit1 = 1; //สั่งให้ CD4543 นำข้อมูลจาก PORTB ไปแสดงบน 7-Segment
          Digit1 = 0; //สั่งให้ CD4543 คงค่าของตัวเลขไว้ โดยไม่ต้องสนใจค่าของ PORTB อีก
       }
       PORTB = x2; //นำค่าของหลักหน่วยไปแสดงผล
       Digit2 = 1; //สั่งให้ CD4543 นำข้อมูลจาก PORTB ไปแสดงบน 7-Segment
       Digit2 = 0; //สั่งให้ CD4543 คงค่าของตัวเลขไว้ โดยไม่ต้องสนใจค่าของ PORTB อีก
   }
  }
}


จำลองการทำงานด้วย Proteus ได้ตามภาพข้างล่าง
Simulation of 99 second counter timer

Saturday, November 08, 2008

ทำนาฬิกา Digital เล่นๆ (นาฬิกาจริงๆ ไม่ใช่ Flash)

ไปเขียนวิธีทำนาฬิกา Digital เอาไว้ที่
นาฬิกา Digital ทำเองได้ ยังไม่เสร็จ เอามาแปะไว้ก่อน :)

รูปหน้านาฬิกาที่จะทำก็ประมาณนี้
นาฬิกา Digital ทำเอง

Saturday, October 18, 2008

Laco Black Pilot Watch Limited 50 pcs. มาถึง (ตั้งนานแล้ว)

นาฬิกา Laco Black Pilot Watch Limited 50 เรือนทั่วโลก มาถึงเมืองไทยแล้ว เชิญทุกท่านเป็นเจ้าของได้ หาไม่ได้อีกแล้ว และก็ไม่รู้ว่าเมื่อไหร่จะมี Limited แบบนี้ออกมาอีกครับ
Laco Black Pilot Watch Limited 50 pcs.
Laco Black Pilot Watch Limited 50 pcs.

Saturday, October 11, 2008

นาฬิกาทำเองหลายๆแบบ My Digital Clock Collection

Hobby ใหม่อันนึงเพิ่มเริ่มได้ไม่นานคือ ทำนาฬิกาอิเล็คทรอนิคส์เล่น เริ่มจากความต้องการนาฬิกาตรงมากๆเพื่อมาให้เป็นเวลาอ้างอิงในการตั้งนาฬิกาและอื่นๆ ทำไปทำมาตอนนี้ก็มีอยู่หลายอันเน้นที่การใช้การแสดงผลด้วยอุปกรณ์ต่างๆกัน นาฬิกาที่ทำมาเป็นในรูปแบบ Prototype คือเป็นบอร์ดแล้วโยงสายไฟเอา ยังไม่ได้ทำลงกล่องสวยงามอะไร บางอันก็แยกชิ้นส่วนไปเป็นเรือนใหม่ๆ วันนี้เอารูปที่เคยถ่ายไว้มาให้ดูกัน
อันนี้เรือนแรกที่เริ่มทำ



อันนี้เป็นนาฬิกาที่ใช้ฐานเวลาจากดาวเทียม GPS ความเที่ยงตรงสุดยอดระดับนาฬิกาอะตอมครับ ใช้จอ LCD แสดงผล ตัวนี้ผมกำลังจะ upgrade จอไปเป็นจอแบบ OLED ที่สวยกว่า ได้จอมาแล้วแต่ยังไม่มีเวลาทำครับ นาฬิกาจะแสดง เวลา วัน วันที่ และจำนวนดาวเทียมที่เห็นตอนนี้ จริงๆแล้วได้ข้อมูล ละติจูด และ ลองจิจูด มาด้วย น่าจะคำนวณ Moon Phase (ข้างขึ้นข้างแรม),พวกน้ำขึ้นนำลง และ equation of time ได้ เอาไว้ทำเป็นโปรเจ็คต่อๆไปครับ



อันนี้ใช้จอ HDSP-211x ของ HP เป็นจอ Vintage ตอนนี้แค่จอนี้ตัวใหม่ก็หลายพันบาทครับ แสดงผลสีเหลืองสวยดี ตัวเลขแสดงเวลาจะวิ่งผ่านหน้าจอทุก 5 วินาที จออันนี้ตอนแรกผมว่าจะเอามาทำนาฬิกาข้อมือ แต่ติดปัญหาเรื่องกินไฟมาก 



อันนี้ล่าสุด เป็นจอแบบ Led Dot Matrix ขนาด 8x8 จุด ขนาดประมาณ 2x2cm ใช้แสดงเวลาโดยเวลาจะวิ่งผ่านหน้าจอไปช้าๆ ตอนนี้ผมเพิ่งสั่งอันใหม่ขนาดจิ๋วทำตัวเลขสูงประมาณ 3mm ไป น่าจะได้นาฬิกาที่เล็กดี



เวลาแสดงผลมันก็วิ่งแบบนี้แหละครับ

เทียบขนาดของ HDSP กับ Led Dot Matrix 8x8 และ Project I


ทีนี้มาดูความเที่ยงตรงของนาฬิกาพวกนี้กัน นาฬิกาที่ผมทำนี้ใช้ตัว Crystal (หรือว่า Quartz นั่นเอง) ในการกำเนิดความถี่ (ยกเว้นตัว GPS clock ที่รับความถี่จากดาวเทียมโดยตรง) ความเที่ยงตรงตาม specของมันอยู่ที่ บวกลบ 1.5 วินาทีต่อวัน เท่าที่ผมลองวัดดูก็อยู่ประมาณนั้นแหละ ตัว Crystal ที่ใช้เป็นของ CITIZEN ครับ หน้าตาแบบนี้แหละ


แกะนาฬิกาข้อมือ(Quartz)ออกดูก็จะเห็นตัวประมาณนี้อยู่ในเครื่องนาฬิกา ซึ่งความเที่ยงตรงระดับนี้ผมยังไม่พอใจเพราะมันยังผิดเป็นนาทีถ้าวางทิ้งไว้เป็นปี ลองหาๆดูก็เจอ Crystal ที่มันเที่ยงตรงมากแบบผิดไปประมาณไม่กี่วินาทีในหนึ่งปี แต่ราคามันก็เอาเรื่อง (ตัวนึงเป็นหมื่น) ผมคงไม่เอามาลองหรอกครับมันแพงเกิน

นาฬิกาพวกนี้ผมทำแบบมือสมัครเล่น ดังนั้นท่านที่เป็นมืออาชีพด้านอิเล็กทรอนิสค์โดยตรงก็กรุณาชี้แนะด้วยครับ
ขอบคุณที่เข้ามาอ่านครับ

Friday, October 10, 2008

อาการเส้นเลือดตีบในสมอง

สัปดาห์ที่แล้วคุณแม่บอกว่าอยากจะพูดชื่ออาหารที่ซื้อมาแต่พูดไม่ออก เพราะลิ้นแข็ง เป็นอยู่สัก 15 นาที ก็หายเป็นปกติ ฟังแล้วก็ตกใจเพราะว่าอาการทำนองนี้เคยรู้มาว่าเป็นอาการจากสมอง ก็เลยรีบนัดหมอที่ร.พ.พระรามเก้า วันนี้มาหาหมอตามนัด หมอตรวจดูแล้วก็เป็นอย่างที่คาดคือ อาการที่ว่านี้เป็นการเตือนของการเริ่มตีบของเส้นเลือดในสมองด้านซ้าย แต่ขอตรวจMRI ก็เลยต้องมาตรวจ MRI ที่ รัชวิภา เอ็ม อาร์ ไอ ตอนนี้นั่งรอเพื่อเข้าเครื่องอยู่ ขออย่าให้เป็นอะไรมากกว่าที่คิดเลย ปกติถ้ากินยาน่าจะช่วยให้ไม่เลวร้ายลงไปกว่าที่เป็นอยู่

Tuesday, October 07, 2008

ลองใช้ Flickr

เห็นเพื่อนใช้กันหลายคนเลยลองสมัครดู ตอนนี้ก็ใส่รูปนาฬิกากับพวก MCU projects ที่ทำๆไว้ จะค่อยๆทยอยเอาขึ้นไว้ที่ Punkky's Flickr
นาฬิกาในรูปคือ Laco Black Pilot's Watch มีขายที่เดียวในโลกที่ WatchKzy.com

Saturday, October 04, 2008

5x7 Led Dot Matrix ใช้ Microcontroller ตัวเดียว

ทำไว้สักพักนึงแล้ว นาฬิกาใช้ 5x7 Led Dot Matrix ตัวเล็กๆตัวนึงกับ Microcontroller PIC16F887 ตัวนึงไม่ถึงร้อยถูกกว่าตัว PIC16F877 ซึ่งตัวนึงสองร้อยกว่าบาทตั้งเยอะแถมยังมี Internal Oscillator 4MHz, 8MHz อีกด้วย ใช้แทนกันได้แทบทันทีเพราะขาก็เรียงเหมือนกัน แต่ยังไงก็ตามต้องดู Datasheet เพื่อความแน่ใจอีกครั้งถ้าจะใช้แทนกัน

สำหรับนาฬิกานี้ใช้ปุ่มสองปุ่มในการตั้งเวลา ถ้าใครสนใจอยากทำก็ส่ง comment ด้วยครับ จะได้เอารายละเอียดวิธีทำมาลงในนี้

Rolex 1665 Comex


เพิ่งได้มาใหม่ (แต่เป็นนาฬิกาเก่านะ) Rolex 1665 Comex รายละเอียดเดี๋ยวมา update
Rolex 1665 Comex

Saturday, September 06, 2008

Microcontroller

ตอนนี้ไม่รู้เป็นไรบ้า PIC Microcontroller มาก ทำนาฬิกาออกมาหลายอันแล้ว รายละเอียดเอาไปแปะไว้ที่ http://picnote.blogspot.com และจะมาแปะที่นี่ด้วย โปรดติดตามครับผม :)

Tuesday, June 03, 2008

WDT: Watchdog Timer

I am now addicted to PIC Microcontroller projects. Last week, I just completed a prototype of my GPS controlled digital clock. The clock was running very nice and ,of course, it is one of the most accurate clock in the country :). I was very happy with it and thinking of putting more features to the clock. But... when I saw the clock this morning, I was shocked!. The clock was not running! it stopped last night around 00:23:xx . So, I pressed the reset button and the clock came back. Now, it is running happily (waiting for another Freeze in the future :p )

But, there are some questions. Why my clock stopped? Will it happend again? How to overcome the problem?. After google around, I think I found a potential answers to the questions. I was thinking that microcontrollers are just electronics devices that will work as they promise as long as you provide power to them. But, I was wrong. PIC Microcontrollers can Hang Up or Freeze just like your computers. So, my clock can Freeze just like my PC :) .

Will it happend again?
Yes, it will happend again but nobody knows when.

How to overcome the problem?
Now, the hero is WDT or Watchdog Timer. It just like a dog who keeps comming to see the PIC every certain period of time. If the PIC can kick the dog (by clearing WDT register with CLRWDT command), the dog will go back and will come to see the PIC again next time. But if the PIC cannot kick the dog (the PIC is engaging infinity loop or just freezing), the dog will reset the PIC. One nice thing is that you don't have to wait until the dog comes before you can can kick it. You can kick the dog anytime you want but you have to make sure that you kick it before it resets the PIC. By using WDT, I think I can make my clock running helthly without human reset when it hang up.

How to use WDT?
I am no expert on PIC. So, I will show what I did and explain what I understand.

  1. Set CONFIG word to enable WDT

  2. I use mikroC compiler, so I uncheck the default WDT_OFF = $3FFB and check _WDT_ON = $3FFF

  3. In the code I set up 2 functions: FeedDog() and KickDog()


  4. void FeedDog(){ //Setting WDT
    OPTION_REG = 0x0F; //0b00001111 = Prescalar 1:128 .. reset every 2.3 sec. please consult data sheet for other presacalars
    asm{CLRWDT} //Clear WDT
    }

    void KickDog(){
    asm{ CLRWDT } //Clear WDT before the dog resets the PIC
    }

  5. Placing FeedDog() and KickDog() in the main program

  6. I put FeedDog() around the begining of the program to set up WDT and put KickDog() wherever I think the dog will come. If the program is very long, I can put KickDog() in many places as I want if I think the dog will come after that line of code. It is upto me to calculate where to put the KickDog(). In my case, the dog keeps comming every 2.3 sec so I have to kick the dog before 2.3 sec after each kick. My clock update every second, so if it freeze and cannot kick the dog in 2.3 sec the PIC will be reset.
    Putting KickDog() in the wrong place can make your program running incorrectly. Please be careful.

    void main(){
    .. Set up program ..
    FeedDog();
    .. Set up some more things..

    while(1){
    ...
    .. Do tasks ..
    KickDog();
    ...Do tasks..
    ....
    }

    }


To be revised with images and more details

Wednesday, April 09, 2008

Laco Black Pilot Watch Limited 50 pcs.


กำลังจะมาใหม่ Laco Black Pilot Watch Limited 50 pcs.
Spec คร่าวๆ
- ตัวเรือนขนาด 42mm ออกแบบใหม่เพื่อให้กระชับข้อมือมากขึ้น เสริมความดุดันและความคงทนต่อสภาพแวดล้อมโดยการชุบแข็ง PVD ดำด้าน
- หน้าปัดแบบนาฬิกา B-Uhr (observers watch) อ่านเวลาง่ายดาย
- กลไก ETA 2824-2 จาก Swiss
- กระจก Domed Shappire พร้อมเคลือบกันแสงสะท้อน
- เม็ดมะยมขนาดใหญ่ ง่ายต่อการใช้งาน
- Made in Germany
- ราคายังบอกไม่ได้แต่อยู่ในช่วง 30k บวกลบนิดหน่อย (น่าจะไปทาง ลบ ) :)

สนใจดู update ได้ที่ WatchKzy.com