การติดตั้งเซนเซอร์



The last week

การต่ออินฟราเรดเซนเซอร์กับ บอร์ด AVR butterfly


ทำการเลือกสัญญาณจากตัวรับเซนเซอร์โดยเลือกขา common และ NC จากรีเลย์ ดังรูป
ทำการใส่สัญญาณจากตัวเซนเซอร์เข้าสู่พอร์ต AVR butterfly โดยเลือกให้ PIN B0 ต่อเข้ากับขาสวิซท์ NC และให้ PIN GND ต่อเข้ากับ ขา common ของเซนเซอร์อินฟราเรดตัวรับตามลำดับ


ทำการต่อไฟเลี้ยงให้กับบอร์ด AVR butterflyโดย ในการทดลองนั้นเราใช้ไฟเลี้ยงแบบป้อนไฟตลอดเนื่องจากต้องใช้เป็นเวลานาน โดยใช้ regulator และ หม้อแปลง ต่อตามลำดับ


Regulator

การใช้หม้อแปลงต่อเพื่อทำการแปลงไฟจาก 220 volt ให้เป็นไฟเพียง 12 volt เพื่อนำมาใช้ได้กับบอร์ดเซนเซอร์

หม้อแปลงไฟฟ้า

การทำงานด้าน Software


ทำการเขียนโปรแกรมด้วย code ภาษาซี โดยใช้โปรแกรม AVR studio เพื่อให้การนับค่าจากตัวเซนเซอร์นั้นสามารถแสดงผลได้บนหน้าจอ LCD ของบอร์ด AVR Butterfly

โดยสามารถแสดง code ได้ดังนี้





File........: logger.c

Target......: ATmega169

Compiler....: AVR-GCC 4.1.1; avr-libc 1.4.5

***************************************

%% ทำการ include header file ที่เกี่ยวข้อง

#include

#include

#include

#include

#include
#include "logger.h"

#include "usart.h"

#include "LCD_driver.h"

#include "dataflash.h"

#include "BCD.h"

#include "ADC.h"

#include "button.h"
***************************************

Delay(1000);
Initialization();
char num[10];

DDRB=0x00;
int count=0,realcount=0;

num[0]='0';
num[1]='1';
num[2]='2';
num[3]='3';
num[4]='4';
num[5]='5';
num[6]='6';
num[7]='7';
num[8]='8';
num[9]='9';

%% ใช้งาน loop while เพื่อทำให้การเก็บค่าจากเซนเซอร์เก็บได้อย่างต่อเนื่อง
while(1)
{

if(PINB == 255)
{
realcount++;
while(PINB==255)
{

}
Delay(300);
%% ภาคส่วนของการใช้คำสั่งให้จอ LCD แสดงค่าเป็นตัวเลขดิจิตัลสี่หลัก
} count=realcount;
LCD_WriteDigit(num[count/1000],0);
count=count%1000;
LCD_WriteDigit(num[count/100],1);
count=count%100;
LCD_WriteDigit(num[count/10],2);
count=count%10;
LCD_WriteDigit(num[count],3);

}

Delay(1000); Initialization(); char num[10]; DDRB=0x00;int count=0,realcount=0;
num[0]='0';num[1]='1';num[2]='2';num[3]='3';num[4]='4';num[5]='5';num[6]='6';num[7]='7';num[8]='8';num[9]='9';
while(1){
if(PINB == 255){realcount++; while(PINB==255) {
}Delay(300);
} count=realcount; LCD_WriteDigit(num[count/1000],0); count=count%1000; LCD_WriteDigit(num[count/100],1); count=count%100; LCD_WriteDigit(num[count/10],2); count=count%10; LCD_WriteDigit(num[count],3);

}
}

การทดลองและระยะเวลาในการทดลอง

ในการทดลองนั้นเราใช้เซนเซอร์อินฟราเรด นับจำนวนผู้คนที่ขึ้นและลงอาคารวิศวกรรมศาสตร์โดยใช้ลิฟต์ของอาคาร คณะวิศวกรรมศาสตร์ มหาวิทยาลัยธรรมศาสตร์ ในแต่ละวัน เป็นเวลาทั้งสิ้น สามวัน คือวันศุกร์ที่ 24, วันเสาร์ที่ 25 และวันอาทิตย์ที่ 26 สิงหาคม 2550 และทำการบันทึกจำนวนคนที่ใช้ลิฟต์ตั้งแต่เวลา 9.00 น. ในตอนเช้าจนถึง 18.00 น. ในตอนเย็น โดยทำการเก็บค่าครั้งละหนึ่งชั่วโมง เพื่อนำผลข้อมูลที่ได้มาทำการเปรียบเทียบต่อไป

บริเวณที่ติดตั้งเซนเซอร์



เซนเซอร์ตัวรับ เซนเซอร์ตัวส่ง

ซึ่งผลการทดลองที่บันทึกได้สามารถแสดงได้ดังนี้

แสดงตารางข้อมูลวันศุกร์ที่ 24 สิงหาคม 2550



แสดงตารางข้อมูลวันเสาร์ที่ 25 สิงหาคม 2550

แสดงตารางข้อมูลวันอาทิตย์ที่ 26 สิงหาคม 2550


หมายเหตุ- ข้อมูลในเวลา9.00 - 13.00 น.ของวันที่ 24 และข้อมูลในเวลา 9.00 น. - 12.00 น.ของวันที่25นั้นพบปัญหาในการติดตั้งตัวเซนเซอร์ จึงไม่สามารถทำการเก็บข้อมูลในช่วงเวลาดังกล่าวได้

จากตารางแสดงผลข้อมูลข้างต้นสามารถวิเคราะห์ผลการทดลองได้ดังนี้

สรุปผลการทดลอง จากกราฟเราจะสามารถเห็นได้ว่า ในวันที่ 24 ส.ค. 2550 นั้น จะเห็นได้อย่างชัดเจนว่า ในเวลาช่วง 15.00-16.00 น. มีจำนวนผู้ใช้ลิฟต์มากที่สุดในช่วงเวลาบ่ายเหตุที่เป็นอย่างนี้เนื่องจาก ช่วงเวลาดังกล่าวเป็นเวลาที่เลิกงาน ส่วนเวลาตั้งแต่ 13.00-14.00น.ถึง14.00-15.00น.จะมีผู้ใช้ลิฟต์มากขึ้นเนื่องจาก ใกล้เวลาเลิกงาน ส่วนเวลาตั้งแต่ 16.00-17.00น.ถึง17.00-18.00น.จะมีผู้ใช้ลิฟต์ลดขึ้นเนื่องจาก เป็นเวลาหลังเลิกงาน ส่วนในวันที่ 25 ส.ค. 2550 นั้น จะเห็นได้ว่าตลอดช่วงเวลาบ่ายมีผู้ใช้ลิฟต์น้อย เนื่องจากเป็นวันหยุด แต่จะเห็นได้อย่างชัดเจนว่าเวลา 14.00-15.00น.และช่วงเวลาตั้งแต่ 16.00-18.00น.มีการใช้ลิฟต์มาก เนื่องจาก มีการทำงานของแม่บ้าน และ ในวันที่ 26 ส.ค. 2550 นั้น จะเห็นได้ว่าตลอดช่วงเวลาทั้งวันมีผู้ใช้ลิฟต์น้อย เนื่องจากเป็นวันหยุด และจะเห็นได้อย่างชัดเจนว่าจำนวนผู้ใช้ลิฟต์แทบจะคงที่ตลอดทั้งวันแสดงว่าเกิดกิจกรรมน้อยมากในตึกคณะวิศวกรรมศาสตร์ จะเห็นได้ว่าวันปกติมีผู้ใช้ลิฟต์มากกว่าวันหยุด เสาร์-อาทิตย์

ปัญหาของการทำการทดลองครั้งนี้มีหลายปัจจัยแต่จะสามรถจำแนกเป็นข้อใหญ่ๆได้ดังนี้

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

2.Sensor ที่นำมาใช้ไม่สามารถนับเข้าหรือนับออกได้อย่างใดอย่างหนึ่ง ทำให้ในการวิเคราะห์ไม่สามารถรู้ว่าเข้าหรือออกจากลิฟต์

3.เวลาในการเก็บตัวอย่างข้อมูลน้อยเกินไป เนื่องเขียนโปรแกรมช้า4.ผู้ทำการทดลองไม่ชำนาญในการเขียนโปรแกรม


I.R. REMOTE CONTROL


Third week
I.R. remote control แบ่งได้เป็น 2 แบบ คือ


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

วงจรภาคส่งสัญญาณอินฟราเรด


โดยปกติแล้วเมื่อเราป้อนแรงไฟให้กับอินฟราเรดไดโอด ก็จะทำให้ได้แสงอินฟราเรดซึ่งไม่สามารถมองเห็นได้ด้วยตาเปล่าออกมาแต่ในการใช้งานจริง เราจำเป็นที่จะป้อนสัญญาณพัลซ์ที่มีความถี่ประมาณ 5KHz ให้กับอินฟราเรดไดโอดเพื่อขจัดผลการสัญญาณรบกวนต่างๆ และลดพลังงานที่ป้อนให้กับไดโอดลงด้วย
สำหรับการใช้ภาคส่งชนิดที่มีความแรงสัญญาณสูงมากอาจทำได้ โดยการต่อ เอ้าพุททรานซิสเตอร์พ่วงเข้ามา ทำให้สามารถขับอินฟราเรดไดโอดได้ถึง 3 หลอด
ทั้งนี้ในวงจรค่าความถี่ จะถูกกำหนดด้วยค่า R1, R2 และ C2 โดยที่สัญญาณเอ้าพุทจะมีช่วงสัญญา ออน-ออฟ 1:1
รีซิสเตอร์ R3 เป็นตัวจำกัดปริมาณการไหลของกระแสไฟฟ้าที่ไหลผ่านอินฟราเรดไดโอด มิให้มีค่าเกิน 50 มิลลิแอมป์
จากวงจรจะเห็นว่า ไอซี 555 ทำหน้าที่เป็นตัวกำเนิดความถี่ 5000 เฮิทซ์ เช่นกัน
เอ้าพุทของไอซีจะป้อนให้กับทรานซิสเตอร์ TR1 เพื่อให้สามารถขับอินฟราเรดไดโอดด้วยกระแสสูงถึง 100 มิลลิแอมป์
รีซิสเตอร์ R3 ในวงจรไม่ควรใช้ค่าต่ำกว่า 3.9 โอห์ม เพราะอาจทำให้ TR1 ชำรุดเสียหายได้
R4 และ LED D4 ต่อไว้เพื่อแสดงให้รู้ว่าวงจรได้รับแรงไฟซัพพลายแล้ว

วงจรภาครับสัญญาณอินฟราเรด


วงจรอินฟราเรดรับชุดใหญ่นี้ เป็นวงจรที่ มีประสิทธิภาพในการทำงานสูง สามารถรับสัญญาณได้จากตัวส่งที่มีระยะทางไกลถึง 10 เมตรเลยทีเดียว การทำงาน สามารถใช้งานได้กับแรงไฟตั้งแต่ 9-12V ในกรณีที่ใช้ไฟ 9V ก็เพียงแต่เปลี่ยนรีเลย์เท่านั้นเอง
วงจรนี้สามารถแบ่งออกเป็นสี่ภาคใหญ่ๆ ได้แก่วงจรรับสัญญาณ, วงจรจัดรูปคลื่น, วงจรหาร, และวงจรขับรีเลย์


การทำงานของวงจร

วงจรภาครับประกอบด้วย ไอซี 1 ซึ่งจะทำหน้าที่รับสัญญาณจาก โฟโต้ไดโอด D1 มาขยายแล้วแปลงแรงไฟตรง ป้อนให้กับ ไอซี 2 เพื่อจัดรูปคลื่นใหม่ให้มีการเปลี่ยนแปลงอย่างรวดเร็ว
ความถี่ในการทำงานของไอซี จะกำหนดด้วยค่า L3,C4 ในที่นี้กำหนดไว้ที่ความถี่ 5000 เฮิทซ์
สัญญาณจะป้อนต่อไปยังวงจรหารความถี่ IC3 ซึ่งสามารถโปรแกรมการหารได้ตั้งแต่ 2-256 โดยการจัดแรงไฟที่ ขาคอนโทรลอินพุท ซึ่งมีอยู่ 8 ขา คือขา 4,5,6,7,10,11,12 และ 13
การตั้งค่าการหารจะเป็นในแบบเลขฐาน 2 โดยกำหนดให้ ลอจิค 1 = ไฟบวก และลอจิค 0 = กราวน์
LED L1 จะเป็นตัวบอกให้รู้ว่ามีสัญญาณเอ้าพุทจากวงจรหารดังกล่าว เอ้าพุทที่ได้จะนำไปป้อนให้กับทรานซิสเตอร์ Q1 ให้ทำงานเพื่อขับรีเลย์ตามต้องการ
LED L2 จะเป็นตัวแสดงให้ทราบถึงสถานะการทำงานของรีเลย์
ในกรณีที่ไม่ต้องการให้สัญญาณผ่านวงจรหาร เราสามารถต่อสวิทซ์ นำสัญญาณจากไอซี 2 ที่ขา 10 ไปขับเอ้าพุททรานซิสเตอร์ Q1 ได้โดยตรง


การสร้าง

ให้ประกอบอุปกรณ์ ตามวงจรทั้งหมดลงบนแผ่นปริ้นด์ ประกอบอุปกรณ์ให้ถูกต้องเป็นใช้ได้ จากนั้นให้ทดลองป้อนแรงไฟให้กับวงจร
สิ่งที่ต้องระวังคือจุดบัดกรีต้องติดสนิทไม่ช๊อตถึงกัน ขั้วอุปกรณ์ต้องถูกต้องไม่สลับขั้วโดยเด็ดขาด
ต่อสวิทซ์เลือกการหารไว้ที่ตำแหน่งโดยตรง แล้วนำสัญญาณจากชุดส่ง ส่องเข้ามาที่ โฟโต้ไดโอด สังเกตุ ดูที่รีเลย์จะทำงาน LED L2 จะติด แสดงว่าวงจรภาครับทำงานปกติ ขั้นต่อไปให้ทดสอบการทำงานของวงจรหาร ให้เลื่อนสวิทซ์ไว้ที่ตำแหน่งหาร
ตั้งค่าการหารให้เป็นวงจรหาร2 ทดลองกดสวิทซ์ที่ตัวส่ง สังเกตุได้ว่าเราต้องกดสวิทซ์ 2 ครั้ง จึงจะเปลี่ยนแปลงสถานะการทำงานของรีเลย์


การตั้งค่าจำนวนนับ

ดังกล่าวแล้วว่าการตั้งค่าจำนวนนับทำได้โดยการป้อนแรงไฟที่ขาคอนโทรลอินพุทแบบเลขฐาน 2 ซึ่งเราได้ออกแบบปรับปรุงใหม่ให้ง่ายขึ้นโดยการต่อดิพสวิทซ์ และรีซิสเตอร์ พุลดาวน์ไว้ที่ลอจิค 0

การติดตั้งและการทำงานของเซนเซอร์



การต่อ Power supply ให้กับวงจรภาคส่ง


การต่อ Power supply ให้กับวงจรภาครับ


การส่งสัญญาณอินฟราเรดจากตัวส่งไปยังตัวรับ









หลักการทำงาน

Second week


Light sensor

ตัว Light sensor นั้นวางอยู่เหนือหน้าจอ LCD ของบอร์ด Butterfly โดยใช้หลักการที่ว่าเมื่อความเข้มแสงลดลง ค่าความต้านทานจะเพิ่มมากขึ้น และใช้หลักการของ Voltage divider ในการอ่านค่า Voltage ผ่านทางช่องสัญญาณ ADC

Voltage reader

ตัวบอร์ด Butterfly นั้นสามารถอ่านค่า Voltage ได้ตั้งแต่ 0V - 5V เมื่อมีการต่อสาย Input เข้ากับ Pin เรียบร้อยแล้ว จึงสามารถใช้หลักการ Voltage divider อ่านค่า Voltage ได้ โดยค่าที่อ่านได้นั้นมักจะมีค่า Accuracy โดยประมาณ 0,1 V

Photo detector

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

บทนำ

First week
วัตถุประสงค์ของโครงงาน


-ศึกษาวิธีการใช้บอร์ดAVR Butterfly
-ศึกษาวิธีการใช้ sensor แบบ photodetector เพื่อใช้วัดจำนวนผู้โดยสาร
-เพื่อเปรียบเทียบว่าแต่ละวันมีผู้โดยสารที่ใช้บริการ มีมากน้อยเพียงใดสามารถประยุกต์ใช้เซนเซอร์ที่ได้ในโครงงานการวัดคุม ต่างๆ ได้อย่างมีประสิทธิภาพ

AVR butterfly


AVR butterfly เป็นการพัฒนาอีกขั้นของชุด kit สำหรับ Microcontroller ชุด ATMEGA169 ซึ่งถูกออกแบบมาให้ใช้กับ AVR core และอื่นๆเพื่อให้ใช้ได้ กับ microcontroller ทั่วไป และ LCD controller มีการตรวจสอบพบว่าบอร์ด AVR butterfly นั้นเป็นบอร์ดขนาดเล็กที่มีราคาถูกที่สุดในท้องตลาดอุปกรณ์อิเล็กทรอนิกส์ขณะนี้ซึ่งอ้างอิงข้อมูลจาก Digi-Key (www.digikey.com) ซึ่งมีการจำหน่ายในราคา $19.99 (ปี 2005)
ประกอบขึ้นจากอุปกรณ์ต่างๆ ดังนี้
- หน้าจอ LCD 100 segment
- dataflash memory ขนาด 4 Mbit (512,000 bytes )
- Real Time Clock 32.768 kHz oscillator
- Joystick 4 ทิศทาง พร้อมด้วยปุ่มกดกึ่งกลาง
- Light sensor
- Temperature sensor
- มิเตอร์อ่านค่า ADC voltage ขนาด 0-5 volt
- ลำโพง Piezo สำหรับสร้างเสียง
- หัวเชื่อมต่อกับอุปกรณ์ภายนอก
- converter ขนาด RS-232 level สำหรับเชื่อมต่อกับ PC
- Bootloader สำหรับการออกแบบโปรแกรมใน PC โดยไม่มี hardware พิเศษอื่นๆ
- Pre-programmed demos พร้อม source code
- ขา Built-in ภายใน เพื่อความปลอดภัย

Software ที่เกี่ยวข้อง
-WinAVR compiler คือ เครื่องมือที่ใช้ออกแบบโปรแกรมภาษาซีสำหรับใช้ใน AVR microcontroller
- Programmers Notepad คือ โปรแกรมที่ใช้เขียน software ซึ่งเป็น โปรแกรมที่มาพร้อมกับ package ของโปรแกรม WinAVR
-AVRStudio 4 คือ free program จากบริษัท ATMEL และเป็นโปรแกรมที่มีหน้าที่หลัก 2 ประการ คือ หนึ่ง ใช้ downloadn software ลงสู่ AVR butterfly และสองคือ จำลอง ATMEGA169 ให้ทำงานบน software ได้
-Br@y++’s Terminal เป็น อีกหนึ่ง free programจากเว๊บไซต์http://bray.velenje.cx/avr/terminal




Hardware



บัดกรีในส่วนของ ADC, PORTB, และ PORTD สังเกตุว่า pin 1 นั้นเป็นpad สี่เหลี่ยม และPORTB,PORTD นั้น ไม่จัดว่ามี 10 ขา เพราะในขาที่ 9 และ 10นั้นเป็น pad ของ ground และ power ตามลำดับ
RS-232 Connection:
การเชื่อมต่อ กับ PC นั้นต้องใช้สายเชื่อมต่อหลัก3 สาย คือ TXD, RXD, และ GND โดยที่ TXD คือสายส่งข้อมูลจาก PC ไปยัง Butterfly และ RXD คือ สายรับข้อมูล นั่นคือ ข้อมูลที่มาจาก microcontroller ไปยัง PC นั่นเอง ตามรูป

Photoresistor
Photoresistor หรือ LDR คือ อุปกรณ์ทางไฟฟ้าซึ่งค่าความต้านทานจะลดลง เมื่อค่าความเข้มแสงเพิ่มมากขึ้น หรืออาจเรียกอีกชือหนึ่งว่า light-dependent resistor (LDR) , photoconductor หรือ photocell
Photoresistor ทำมาจาก semiconductor ที่มีความต้านทานสูง หากแสงตกกระทบด้วยความถี่ที่สูงมากเพียงพอ ฟอตอนจะถูกดูดพลังงานใน ตัว semiconductor และจะก่อให้เกิด bound electron ที่มีพลังงานมากเพียงพอซึ่งสามารถกระโดด ขึ้นไปสู่ชั้น conduction band ผลที่ได้คือ free electron และส่วนของ hole จะก่อให้เกิดกระแสไฟฟ้า ดังนั้น ค่าความต้านทานจึงลดลง
Photoresistor มีหลากหลายรูปแบบ อาทิเช่น cadmium sulphide ซึ่งถูกใช้ใน อุปกรณ์จำพวก camera light meters, clock radios, security alarms, street light และ outdoor clock
เป็นต้น

LDR

สร้าง POWER SUPPLY

ในตัวของ Butterfly เองนั้นมาพร้อมกับ CR2450 coin battery ซึ่งเป็นพลังงานที่ใช้แสดงผลของจอ LCD ได้เป็นเวลานาน ๆ แต่การต่อโดยใช้ RS-232 กับคอมพิวเตอร์นั้นกินไฟเป็นอย่างมาก ดังนั้นในการทดลองจึงต้องใช้ ในส่วนของ battery pack เข้ามาช่วย โดยสามารถต่อได้ดังรูป



ตัวรางถ่าน



การต่อ Battery จากภายนอกสู่ตัว Butterfly