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

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

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

Tuesday, March 9, 2010

PIC18F458 error $MCLR$ is low. Processor is in reset.




image      โดยปกติแล้ว ในการจำลองการทำงานใน proteus บางอย่างเราไม่จำเป็นจะต้องต่อวงจร อย่างเช่น oscillator หรือวงจรรีเซต microcontroller แต่อย่างไร

ซึ่งปกติผมมักจะชอบ simulate กับ PIC16F877 เป็นประจำ แต่วันนี้ผมทดลองใช้เบอร์ 18F458 ซึ่งต้องการอยากให้มันตรงกันกับบอร์ดที่เราใช้งานอยู่จริง

    ทำการทดลองโค๊ด แสดงตัวหนังสืออกหน้าจอ LCD 20x4 ปรากฏว่าไม่มีข้อความปรากฏเลย แล้วแถมเจอ error message ขึ้นมาเพียบเลย มันโชว์ error ว่า “$MCLR$ is low. Processor is in reset.”

ไอ้เจ้า MCLR มันเป็นวงจรสำหรับเอาไว้รีเซต microcontrller ซึ่งปกติ ผมมักจะไม่ต้องต่อ เมื่อทดลองกับ PIC16F877 แต่พอมาเจอ PIC18F458 ปรากฏว่า มันจำเป็นต้องต่อด้วย ถึงแม้เราจะ simulatre ใน proteus ก็ตาม –_-“

MCLR reset circuit

 LCD 20x4

ทำการต่อวงจร reset เข้าไปที่ขา 1 ของ PIC18F458 ซะ แล้วทดลองโปรแกรมอีกที error หายไปแล้ว หน้าจอ LCD แสดงผลได้ตามปกติ

นิทานเรื่องนี้ สอนให้รู้ อย่าคิดว่า ที่ทำตามๆกันมา มันจะถูกเสมอไป เวลาเปลี่ยน ใจก็เปลี่ยน (เกี่ยวกันไหมเนี่ย)

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

Saturday, January 30, 2010

สาธิตการใช้งาน Proteus เบื้องต้น




PIC16F877 with LCD 16x2 on Proteus หลังจากได้ ไปแล้ว วันนี้ผมมีโอกาสได้ทำวีดีโอสาธิตการใช้งาน Proteus เบื้องต้น เป็นการใช้งานแบบง่ายๆ โดยทำการต่อวงจรสาธิตการแสดงผลผ่านทางจอ LCD 16x2 ด้วยไมโครคอนโทรลเลอร์ PIC16F877

ผมได้พยายามทำวีดีโอสอน และอัพโหลดขึ้น youtube ของผม อาจจะมีปัญหาเรื่องความคมชัดนิดหน่อย ยังหาโปรแกรมแปลงไฟล์วีดีโอดีๆ ยังไม่เจอ หากเพื่อนๆเคยทำการแปลงไฟล์วีดีโอดีเจ๋งๆ บอกผมหน่อยแล้วกัน

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

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

ดาวน์โหลด source code และไฟล์วงจร proteus ได้ ที่นี่

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

Friday, January 29, 2010

Numerical Method ระเบียบวิธีเชิงตัวเลข (ด้วย MATLAB)

การใช้ไฟไนต์เอลิเมนต์เพื่อคำนวณผลกระทบกับ Space Shuttle ก็ผ่านกันไปอีกเทอมสำหรับการศึกษาของผม 1 ในวิชาที่ผ่านมานั้น คือวิชา Numerical Method ซึ่งเป็นวิชาที่ว่าด้วยการประมาณการของผลเฉลยสมการ ซึ่งค่าที่ได้จะมีค่าแตกต่างจากผลเฉลยแม่นตรง จะมากหรือน้อยขึ้นอยู่กับ step size ที่เราต้องการคำนวณ ยิ่ง step size มีค่าน้อยๆ ยิ่งทำให้ค่า error มีค่าน้อยตามไปด้วย ทำให้คำตอบที่ได้มีค่าเข้าใกล้ความเป็นจริง แต่ผลของการคำนวณค่า step size น้อยๆ ก็ทำให้การคำนวณต้องกระทำซ้ำๆ จำนวนหลายๆรอบมากยิ่งขึ้น แต่ด้วยความสามารถของคอมพิวเตอร์ในปัจจุบัน การสั่งให้คอมพิวเตอร์คำนวณด้วยจำนวณรอบเป็นล้านๆครั้ง ไม่ใช่เรื่องที่เป็นปัญหาอีกต่อไป

ระเบียบวิธีการไฟไนต์เอลิเมนต์ก็เป็นระเบียบวิธีการเชิงตัวเลข (Numeriacl Method) วิธีหนึ่งเช่นกัน ซึ่งอันนี้ผมยังไม่ได้เรียน ซึ่งจากการลองดูคร่าวๆแล้วพบว่าวิชานี้น่าสนใจเหมือนกัน เค้านำไปใช้ในการออกแบบของผลิตภัณท์ ซึ่งสามารถจำลองได้ว่าหากเราออกแบบมาอย่างงี้ แล้วเจอกับสภาพแวดล้อมแบบนี้ สิ่งที่เราออกแบบมาจะเป็นอย่างไร ก็หวังว่าวิชา Numerical method ที่เรียนผ่านมาจะทำให้เราสนุกกับวิชาไฟไนต์เอลิเมนต์เช่นกัน

ก็เลยจะอาศัยพื้นที่บนบล๊อกแห่งนี้ เก็บรวบรวมงาน assignment ของวิชา numerical ที่เราได้ทำผ่านไปแล้วไว้สักหน่อย ไม่งั้นเดี๋ยวต้องมาวิ่งหากันอีกแน่ๆเลย

ดาวน์โหลดวิธี Fourth-order predictor-corrector and Two-step Adams-Moulton method

Fourth-order predictor-corrector and Two-step Adams-Moulton method

 

ดาวน์โหลด Second-order predictor-corrector และ Second-order Runge Kutta

Second-order predictor-corrector และ Second-order Runge Kutta

ดาวน์โหลด Laplacian difference equation and Liebmann’s method to solve for temperature

Laplacian difference equation and Liebmann’s method to solve for temperature

ดาวน์โหลด Explicit and Crank- Nicolson method แก้ปัญหาสมการ PDEs

Using Explicit and Crank- Nicolson method

ดาวน์โหลด Implicit method แก้ปัญหาสมการ PDEs Wave Equation

Implicit method แก้ปัญหาสมการ PDEs Wave Equation

ดาวน์โหลด Optimization with Newton’s method

Optimization with Newton’s method

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

Friday, January 15, 2010

Balancing One-Wheeled Scooter ล้อเดียว ซิ่งๆ กันไปเลย

โปรเจค Balancing One-Wheel Scooter       จริงๆเป็นโปรเจคที่มีมานานแล้วแหละ แต่ที่เอามาให้ดูคิดว่ามันยังน่าสนใจอยู่ โดยเฉพาะใครที่คิดจะทำหุ่นยนต์ที่เดินได้ แม้แต่จะเคลื่อนไหวด้วยล้อเพียงล้อเดียว สิ่งหนึ่งที่ขาดไม่ได้เลย คือเรื่องของการทรงตัว โปรเจค Balancing One-Wheel Scooter ก็เป็นตัวอย่างหนึ่งที่น่าสนใจไม่น้อย ด้วยชิ้นส่วนและการทำงานที่ไม่ซับซ้อนมากนัก และยังทำให้เราเพลิดเพลินได้อีกด้วย

      เจ้า scooter ล้อเดียวนี้ เล่นเหมือนคล้ายๆ snow board นั่นแหละ (แต่ผมไม่เคยเล่นหรอก) อาศัยการถ่ายเทน้ำหนักของผู้เล่นไปข้างหน้าหรือไปข้างหลัง ก็จะทำให้ sensor balancing ส่งสัญญาณไปสั่งให้มอเตอร์หนุนไปข้างหน้าหรือข้างหลังเพื่อให้เกิดผลให้เจ้า scooter นี้รักษาตำแหน่งที่จะไม่ทำให้มันเอียงเลยจุดที่จะทำให้มันล้ม

      

ภาพโดยรวมของเจ้า scooter ล้อเดียวนี้ ประกอบไปด้วย

Balancing One-Wheel Scooter

แบตเตอรี่แบบแห้ง DCมอเตอร์  สายพาน และชุดควบคุมมอเตอร์ซึ่งมีชุด balancing sensor ประกอบอยู่ด้วย

Balancing One-Wheeled Scooter

Balancing One-Wheeled Scooter Balancing One-Wheeled Scooter Balancing One-Wheeled Scooter

Balancing One-Wheeled Scooter

แบตเตอรี่

Battery

ใช้แบตเตอรี่ขนาด 12 V 12Ah เป็นแบตเตอรี่แบบตะกั่วกรดแบบแห้ง จำนวน 2 ก้อนแล้วนำมาต่ออนุกรมกันเพื่อทำให้เกิดแรงดันไฟฟ้าขนาด 24 V เพื่อนำไปใช้เป็นแหล่งพลังงานของ DC มอเตอร์

 

 

 

 

DC Motor

DC Motor24V

ใช้ DC motor ขนาดแรงดัน 24V 400 watt เพื่อใช้ในการฉุดสายพานเพื่อหมุนล้อที่ติดอยู่กับเฟือง มอเตอร์นี้ไม่ควรจะกินกระแสไฟฟ้าเกิน 21 A

 

 

 

OSMC - High Current Motor Driver Driver OSMC - High Current Motor

H-Bridge ในการควบคุมทิศทางการหมุนของมอเตอร์ ก็ใช้วงจร H-Bridge เพื่อขับให้มอเตอร์ scooter ซึ่งเป็นวงจรที่นิยมในการขับมอเตอร์มาก ทำงานได้ไว และมีประสิทธิภาพ

 

 

 

 

Controller

ไมโครคอนโทรลเลอร์ที่ใช้ในการควบคุมการทำงานทั้งหมดของ scooter ล้อเดียวนี้ ก็คือ ไมโครคอลโทรลเลอร์จากค่าย Rate GyroscopeMicrochip คือเจ้า PIC16F878 ทำงานที่ความถี่ 20MHz โดยทำหน้าที่ประมวลผลสัญาณที่ส่งมาจาก  ADXRS300 Rate Gyro ซึ่งเป็นเซ็นเซอร์วัดอัตราการโน้มเอียง มีการตอบสนองดีต่อความถี่สูง ส่งสัญญาณออกเป็น อะนาลอก สามารถตอบสนองอัตราเร็วได้ถึง 300 องศาต่อวินาที เมื่ออินทิเกรตสัญญาณจะได้สัญญาณบอกตำแหน่ง

ADXL202

และเจ้าตัวเซ็นเซอร์อีกตัวหนึ่งที่ขาดไม่ได้ ก็คือ ADXL202 คือ ไอซีที่พัฒนาบนพื้นฐานของเทคโนโลยีที่ชื่อว่า MEMS® สามารถวัดค่าความเร่งแบบเต็มค่าสเกลในช่วง -2g ถึง +2g และมีความไวหรือ Sensitivity 12.5% ต่อ g สามารถวัดค่าได้ทั้งความสั่นสะเทือน(dynamic หรือ vibration ) และ วัดค่าความโน้มถ่วง(static acceleration หรือ gravity )โดยทำการป้อนกลับแบบ PID ไปที่ตัวไมโครคอลโทรลเลอร์ด้วยความถี่ 100 Hz เพื่อไม่ให้เจ้า scooter เอียงไปข้างหน้าหรือข้างหลังมากไปจนล้ม โดยการส่งควบคุม PWM เพื่อป้อนให้กับมอเตอร์เพื่อให้มอเตอร์หมุนเพื่อต่อต้านการเอียงที่มากเกินไป

Chassis ตัวโครงรถ

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

Drive Belt สายพานขับเคลื่อน

ใช้เฟืองทดขนาด 4.28:1 จำนวน 14 ฟัน เพื่อทำเป็นมูเล่ย์ โดยสายพาน และ pulleys ถูกจัดจำหน่ายโดย Wyko

ก็หวังคงจะมีประโยชน์บ้างสำหรับใครที่คิดจะเอาไปทำเป็นโปรจคจบนะครับ ถ้ามีโอกาสผมคงหาตัวอย่างโปรเจคมาเขียนลงในบล๊อกให้เพื่อนๆได้อ่านอีกแน่ๆ สุดท้ายได้เอาคลิปวีดีโอการทำงานของ Balancing One-Wheeled Scooter มาให้ดูกันครับ

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

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

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

About Me

My photo

สวัสดีครับ ชื่อเปิ้ลนะครับ ถ้ามีอะไรให้ช่วยเหลือได้ ก็จะช่วยครับ
ผมได้สร้างบล๊อกไว้ เพื่อเก็บรวบรวมความรู้ และประสบการณ์ในการทำงานครับ แวะไปเยี่ยมชมกันได้ครับ http://mechacity.blogspot.com และบล๊อก http://faker-programmer.blogspot.com ครับ

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

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

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