Monday, January 17, 2011

Beginning with PIC เริมต้นที่ไหนดี

พอดี วันนี้ เพื่อนเมล์มาถามว่าถ้าจะเล่น PIC microcontroller จะเริ่มตรงไหนดี ใช้ภาษาอะไรในการคอมไพล์ แล้วใช้บอร์ดรุ่นไหนในการเริ่มต้นดี คุณเชื่อหรือไม่ คำถามแบบนี้ มันสุดจะคลาสสิคจริงๆ คือเป็นคำถามที่ถามกันมาทุกรุ่นทุกสมัยเลยก็ว่าได้ แต่ก็ไม่ได้มีคำตอบที่ชี้ชัดลงไปได้หรอกว่า แบบไหนดีที่สุด เหมาะที่สุด เพราะถ้ามันมีคำตอบที่ดีที่สุดอยู่แล้ว มันจะมีคนมาถามแบบนี้ทำไม ทำไมเราไม่บรรจุลงในหลักสูตรมัธยมให้มันรู้แล้ว รู้รอดไปเลยหล่ะ จะมาให้งงกันอยู่ทำไม จริงไหม

มาเข้าประเด็นกันดีกว่า กับคำถามที่ถามไปข้างต้น ผมว่าเรื่องนี้ ถ้าในมานั่งพูดกันมันก็ยาวไม่ใช่น้อย มันเป็นเรื่องอยู่เหมือนกัน ถึงแม้คำถามจะค่อนข้างสโคปให้แคบแล้วก็ตาม โดยเราจะมุ่งไปที่ PIC ของบริษัท Microchip เท่านั้นก็ตาม แต่คำตอบของปัญหาก็ยังมีมากมายอยู่เหมือนเดิม เอาเป็นว่า เรามาว่ากันทีละขั้นก็แล้วกัน

ต้องทำความเข้าใจก่อนว่า งานที่เราต้องการใช้ไมโครคอลโทรลเลอร์นั้น เป็นงานประเภทไหน เพราะต้องเข้าใจนิดนึงว่า ทางไมโครซิฟเอง เค้าก็ผลิตไมโครคอลโทรลเลอร์ออกมาให้หลากหลายกับงานแต่ละประเภทอยู่แล้ว

ลองคลิกเข้าไปดูที่รูป PIC แต่ละตระกูล มันก็ยังประกอบไปด้วยแต่ละเบอร์ คิดแล้วน่าปวดหัวไหมหล่ะ ถ้าจะถามว่าจะต้องใช้เบอร์ไหนหล่ะ มันก็ต้องถามกลับไปว่า แล้วงานของคุณมันต้องการอะไรมั่งหล่ะ ช่องการแปลงสัญญาณ A/D , จำนวนพอร์ตดิจิตอล , memory หรือว่า ฟังก์ชั่นที่เกี่ยวข้องกับ   DSP อะไรจำพวกนี้ ล้วนเป็นสิ่งที่ต้องเอามาพิจารณาทั้งนั้น

PIC Microcontroller 

แล้วถ้าเราไม่รู้หล่ะ ถ้าเป็นพวกมือใหม่ อยากเอาไปศึกษาหล่ะ ถ้าเป็นมือใหม่จริงๆ ขอแนะนำ PIC ตระกูล 18F ก็แล้วกัน เพราะเบอร์นี้ มันกำลังคาบเกี่ยวกันระหว่าง 8 บิต และ 16 บิต อยู่ สามารถทำอะไรได้หลายอย่าง น่าจะเพียงพอสำหรับการเรียนรู้ได้นานพอสมควร ลองดูจาก Application Note ของทางไมโครซิฟ ว่าเค้าทำไรได้มั่ง

PIC18 Architecture

PIC18 Block Diagram

  • 83 (16-bit wide) powerful C-optimized instruction
  • Up to 2 MB addressable program memory
  • 4K Bytes RAM (max)
  • 32 level hardware stack
  • 1 (8-bit) File Select Register
  • Integrated 8x8 hardware multiply
  • Highest performance 8-bit architecture

ซึ่งในตระกูลของ PIC 18F เองก็ยังมีตั้งมากมายหลายเบอร์ คลิก

แต่ถ้าถามว่าจะเอาเบอร์ไหนมาเล่นก่อน ก็อยากจะบอกว่า เอาเบอร์ที่มีขายในบ้านเราเหอะ อย่าไปเพิ่งไปแอดวานซ์มากนัก เดี๋ยวให้เก่งกว่านี้ก่อน

ที่นี้ ก็มาถึงปัญหาย่อยของปัญหาหลักเรื่องเบอร์ไมโครคอลโทรลเลอร์ ว่าเราจะซื้อแบบบอร์ดทดลองแบบไหนดี  เท่าที่เห็นในบ้านเรา ก็มีให้เลือก สองแบบหลักๆ ก็คือ บอร์ดที่มีแต่ไมโครคอลโทรลเลอร์แล้วก็ช่อง I/O ของไมโครคอลโทรลเลอร์ กับแบบ บอร์ดที่มีทั้ง I/O และวงจรทดลองสำเร็จรูป ที่ต่อไว้ให้อยู่แล้ว เหลือแค่เพียงต่อสายไฟเชื่อมเข้าหากันเท่านั้น

แบบแรก ข้อดี คือว่า ราคาถูกกว่าแบบที่สอง ข้อเสีย คือต้องหาอุปกรณ์ต่อทดลองเอาเอง

บอร์ดไมโครคอลโทรลเลอร์ PIC18F

แบบที่สอง คือ อุปกรณ์ต่อทดลองครบครัน ไม่ต้องไปหาเพิ่ม มีอุปกรณ์ให้ทดลองเท่าที่จำเป็น ถึงจะไม่ครบทุกอย่างก็ตาม เหมาะสำหรับมือใหม่ แต่ข้อเสียก็คือ มันแพง

บอร์ดทดลองไมโครคอลโทรลเลอร์สำเร็จรูป แต่ทั้งคู่ก็มีข้อเสียเหมือนกันอยู่อย่างหนึ่งก็คือ มันไม่สามารถที่จะเปลี่ยนเบอร์ไมโครคอลโทรลเลอร์ได้มากนัก อาจจะได้อยู่เบอร์หรือสองเบอร์ หรืออาจจะเปลี่ยนไม่ได้เลยก็ได้

ถ้าเป็นอย่างงี้ เราจะทำอย่างไร จากประสบการณ์ ผมขอแนะนำ อุปกรณ์ที่เรียกว่าเครื่องโปรแกรมไมโครคอนโทรลเลอร์ตระกูล PIC ของ บริษัท MICROCHIP ซึ่งก็ยังมีหลายตัวอีกนั่นแหละ เอาเป็นว่า ตัวที่ใช้ได้กับ PIC 18F แล้วกัน ของไทยทำก็มีหลายเจ้า จะเป็นแบบทำเอง หรือว่าแบบซื้อเอาก็ได้

ET-PGM PIC USB V2

ซึ่งเจ้าตัว ET-PGM PIC USB V2 ผมก็ซื้อมาเหมือนกัน เพราะขี้เกียจทำเอง หลังจากได้ตัวโปรแกรมไมโครคอลโทรลเลอร์มาแล้ว เราก็สามารถที่จะไปโปรแกรมลงบนคอนโทรลเลอร์เบอร์อะไรก็ได้ ตามที่มันสามารถรองรับได้ โดยต่อไปที่ขาของไมโครคอลโทรลเลอร์ ตามที่ระบุในดาต้าชีท

 

ตัวอย่างการโปรแกรมที่ขาของไมโครคอลโทรลเลอร์ 

ตัวอย่างการโปรแกรมที่ขาของไมโครคอลโทรลเลอร์

ส่วนโปรแกรมที่ใช้เบิร์นไมโครคอลโทรลเลอร์ก็ใช้ PICkit 2 V2.55.01 Install  หรือ
PICkit 2 V2.55.01 Install with .NET Framework
ก็ได้

Pickit 2 Program

ทีนี้ ก็มาว่ากันถึงโปรแกรมที่จะใช้ในการเขียนโค๊ดเพื่อคอมไพล์ให้ได้ hex file เพื่ออัดลงไมโครคอลโทรลเลอร์กันเหอะ ในที่นี้ ขอแนะนำอยู่ สามตัวก็พอ เพราะตัวอื่น ยังไม่เคยลอง

ถ้าเรามีพอจะเข้าใจภาษาซี อยู่แล้ว ขอแนะนำ MPLAB C18 , CCS C Complier แล้วก็ Hi-tech C ถ้าถามว่าตัวไหน ดีกว่ากัน จากที่ฟังผู้รู้มา

เค้าว่ากันว่า CCS C Complier นั้น โค๊ดที่เขียนออกมาแล้วคอมไพล์ จะเล็กที่สุด และมีไลบรารี่ ค่อนข้างเยอะ ทำให้การพัฒนางานได้เร็ว ผู้ใช้ไม่ต้องศึกษามาก ก็สามารถที่จะทำงานออกมาได้แล้ว แต่นั่นก็เป็นข้อเสียให้มือใหม่หลายคนมาแล้ว เพราะจะทำให้ยิ่งไม่เข้าใจ ไปกันใหญ่

สำหรับ MPLAB กับ Hi-Tech C ผมแนะนำ MPLAB C18 ดีกว่า เพราะ ค่ายเดียวกันกับเบอร์ PIC Microcontroller เพราะต่างก็มาจาก MIcrochip เหมือนกัน ย่อมได้เปรียบมากกว่า ไม่ว่าจะเป็น โค๊ดตัวอย่าง หรือการนำไปใช้งาน ตลอดจนเอกสารต่างๆ ของ MPLAB ทำได้ค่อนข้างดีกว่า เยอะกว่า เวลามีปัญหา จะได้ไม่เหงา มีคนคอยปรึกษาได้

จริงๆ เรื่องของไมโครคอลโทรลเลอร์ มันยังมีรายละเอียดปลีกย่อยอีกมากมาย นี่เรายังมาไม่ถึงครึ่งทางของมันเลยนะ ต้องหาความรู้อยู่กันตลอด เพราะเจ้าตัวไมโครคอลโทรลเลอร์เอง ก็ผลิตออกมาเบอร์ใหม่ๆมาเรื่อย

แหล่งความรู้ที่สำคัญที่ดังๆ ของไทยก็มีเยอะ ไม่ว่าจะเป็น Electoday , PANTIP หรือว่า เว็บพี่สันติ ก็มีให้เข้าไปฝากคำถาม หรือข้อสงสัยกันได้ แต่อย่างหนึ่งที่อยากย้ำก็คือ การที่เราต้องมีพื้นฐานมาบ้างสมควร ไม่ใช่ว่าจะให้คนอื่นแสดงให้ดูตั้งแต่ต้นเลย แบบนี้ก็ไม่ไหว เพราะเราเองก็ไม่ได้จ้างเค้ามาเป็นที่ปรึกษา ทุกคนก็มีภาระหน้าที่ด้วยกันทั้งนั้น อย่าเกริยน พี่เค้าขอร้อง

ส่วนบล๊อกที่ผมกำลังพยายามรวบรวมความรู้ ก็คือ 123 Microcontroller ก็พยายามเขียนอยู่ ก็หวังว่าจะมีประโยชน์บ้าง ไม่มากก็น้อย ฝากเนื้อฝากตัวด้วยแล้วกันครับ

อ่านเพิ่มเติม...

Thursday, October 14, 2010

Hot-Cool Stage by Peltier

Peltier Project เสร็จไปอีกหนึ่งผลงานกับแท่น ร้อน-เย็น ( Hot-Cool Stage) ไม่รู้ว่าจะตั้งชื่อว่าอะไร เอาเป็นว่าเจ้าแท่นนี้ มีหน้าที่ทำร้อน หรือทำเย็นก็ได้ ตามที่เราต้องการ (แต่ผมจำกัดอุณหภูมิไว้ที่ 0 – 75 องศาเซลเซียส) 

ใจจริงอยากทำต่อ พัฒนาให้มันดีกว่านี้ แต่ว่าโปรเจคนี้ทำมานานแล้ว ก็เลยต้องจบมันเอาไว้ตรงนี้ก่อน ถ้ามีเวลาจะเอามันมาพัฒนาต่อสักหน่อย มีหลายอย่างที่ยังคาใจอยู่

ซึ่งอุปกรณ์ที่ใช้ทำร้อน หรือเย็นที่ต้องการนั้น เราใช้ ThermalElectric  หรือที่เราเรียกว่า Peltier นั่นแหละเป็นพระเอกในการทำร้อน-เย็น การใช้งานของมันง่ายมากๆ เพียงแค่คุณจ่ายไฟกระแสตรงให้มัน จะทำให้ด้านหนึ่งของ Peltier ร้อน และด้านตรงข้ามจะเย็น ในทำนองเดียวกัน หากคุณกลับขั้วไฟจากที่ต่อในครั้งแรก คุณจะพบว่าด้านที่เคยเย็นจะร้อน และด้านที่เคยร้อนจะเย็น เห็นไหมหล่ะ ใช้งานง่ายจะตาย

แต่ที่ยากของมันก็คือ การระบายความร้อนของมันต่างหาก เพราะถ้าในขณะที่เราต้องการความเย็นจากด้านที่เย็น จนถึงขนาดเป็นน้ำแข็งเกาะแล้วหล่ะก็ คุณจะต้องระบายความร้อนด้านที่ร้อนของมันให้ได้เร็วที่สุด ไม่งั้น Peltier พังแน่นอน (พังมาหลายอันแล้ว T_T )

อุปกรณ์หลักๆ ของงานนี้ก็คือ

  • Peltier TEC1-12710 จำนวน 2 แผ่น ตัวผลิตความร้อน ความเย็น
  • Corsair Hydro Series H50 2 เครื่อง ตัวระบายความร้อนชั้นยอด
  • บอร์ดไมโครคอนโทรลเลอร์ PIC16F877 เป็นตัวควบคุม
  • บอร์ด H-Bridge เอาไว้กลับทิศทางกระแสไฟฟ้า
  • Switching Power supply จ่ายกระแสไม่ต่ำกว่า 15 แอมป์

Peltier Project

ผลการทดสอบ สามารถทำความร้อนได้เกือบร้อยองศา แต่ผมว่า อย่าดีกว่า เพราะกาวที่ใช้ยึดของผมมันละลายเลย ก็เลยต้องเขียนโค๊ดดักไว้ ให้ไม่เกิน 75 องศา ส่วนโหมดทำความเย็น สามารถทำให้น้ำแข็งเกาะแท่นอลูมีเนียมได้สบายๆ ดูคลิปวีดีโอสาธิตการทำงานก็แล้วกันครับ

อ่านเพิ่มเติม...

Saturday, September 25, 2010

AVR+VB.NET+WEB จาก Hardware สู่ WEB

VB.NET+RS232+MySQL หายไปนานสำหรับ บทความนี้ พอดีช่วงนี้ยุ่งสุดๆ ทั้งสอบ ทั้งงาน ทั้งโปรเจค โอ้ยเยอะ เอาเป็นว่ายุ่งหล่ะกัน แต่ก็อยากเอามาแชร์ๆ กันมั่ง

พอดีมีโอกาสได้ทดลองเขียนโปรแกรมด้วย VB.NET express รับค่าจาก AVR ซึ่งคอยเช็คว่ามีวัตถุมาบัง sensor หรือยัง แล้ววัตถุออกไปตอนไหน จากนั้นก็จะเก็บค่าไว้ใน memory ของ AVR จากนั้น ก็รอให้ โปรแกรม Counter v1.0 มารับค่าไป เพื่อนำค่าที่ได้ไปบันทึกลงดาต้าเบส MySQL นั่นคืองานในส่วนของ VB.net กับ AVR ซึ่งจะทำงานแบบนี้ไปเรื่อยๆ

ในส่วนของ WEB PAGE จะใช้ PHP + SAJAX เพือทำการดึงข้อมูลจากดาต้าเบส MySQL แล้วทำการส่งออกทางหน้าเว็บบราวเซอร์ ในส่วนนี้ เราจำเป็นต้องพึ่งพา SAJAX เพื่อทำให้หน้าเว็บแสดงผลแทบจะ Realtime ซึ่งตรงนี้ เราสามารถปรับแต่งค่าได้ ว่าจะให้หน้าเว็บ refresh ถี่ขนาดไหน

นี่ก็เป็นคอนเซ็บต์คร่าวๆนะครับ พอดี หน้าเว็บผมยังแต่ไม่เสร็จ อาจจะดูแล้วลูกทุ่งไปหน่อย เพราะอยากทดลองก่อนว่าระบบสามารถทำงานได้ไหม  ส่วนความสวยงานค่อยแต่งทีหลังก็ได้

อ่านเพิ่มเติม...

Wednesday, March 10, 2010

New Engineer, Listen to him




       วันนี้ ก็ยังมึนตื๊บกับ mini project microcontroller ไปเรื่อยเปื่อย ตามประสาคนเก่ง(แบบเป็ด อย่างผม) ในขณะกำลังหาข้อมูลอยู่ พอดีไปเจอเข้ากับเว็บๆหนึ่ง ซึ่งเค้ามีคลิปวีดีโอสัมภาษณ์วิศวกรท่านหนึ่ง ซึ่งค่อนข้างจะอาวุโสสักหน่อย

      โดยส่วนตัวแล้ว ผมไม่ได้รู้จักมักจี่ กับพี่เค้าเท่าไหร่เลย ไม่ได้จบสถาบันเดียวกันด้วย แต่เหตุผลที่นำมาให้ดู นั่นก็เพราะว่าไปสะดุดคำสอนท่อนๆหนึ่ง ที่พี่เค้ากล่าวไว้ เรื่องเกี่ยวกับวิศวกรที่จบมาใหม่หลายๆคน ผมเห็นบางคนทำงานได้ไม่นานก็เปลี่ยนที่ทำงานใหม่ บางคนเข้ามาทำงานแล้วก็มีปัญหากับคนเก่า บางคนเข้ามาแล้ว ก็ค่อนข้างจะถือตัวว่าข้านี่แหละแน่ ข้าจบวิศวะมา แต่อยากจะให้ฟังสักนิด ผมว่าพี่เค้าพูดได้ดี และพูดได้ตรงมาก โดยเฉพาะกับวิศวกรไทย(สไตล์เด็กเกาหลี) จบใหม่ทั้งหลายแหล่ “เจ้าจงมาฟังไว้”

อ่านเพิ่มเติม...
 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

Blog อื่นๆของฉัน

ผู้ติดตาม Blog นี้

เว็บเพื่อนบ้าน