สรุปผลการทดลอง
1.อุปกรณ์วัดความเร็วที่เราได้ทำขึ้นมาสามารถวัดความเร็วได้ค่อนข้างแม่นยำ เนื่องจากในส่วนของการคำนวณ และค่าที่เวลาที่วัดได้ค่อนข้างเที่ยงตรง
ข้อผิดพลาดและข้อเสนอแนะ
1.ระยะที่เซนเซอร์สามารถวัดได้ค่อนข้างสั้น เนื่องจาก เป็นเซนเซอร์ประเภท photo transistor
โดยวิธีแก้ไขคือ เราอาจจะเปลี่ยนเซนเซอร์เป็นประเภทอื่นซึ่งมีระยะในการตรวจจับเพิ่มขึ้นได้
และเซนเซอร์จะต้องเป็นประเภทที่ตรวจจับจากวัตถุเป็นเส้นตรงเท่านั้น
2.โดยตัวโปรแกรมไม่สามารถวัดความเร็วได้เกิน 0.07/0.0078125 = 8.96 m/s
เนื่องจากขีดจำกัดทางตรรกะในการคำนวณ และวิธีในการคำนวณ
วันอาทิตย์ที่ 26 สิงหาคม พ.ศ. 2550
สรุปผลการทดลอง & ข้อผิดพลาดและข้อเสนอแนะ
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 26, 2550
0
ความคิดเห็น
การทดลอง และผลการทดลอง
จากการทดลองในการหาความเร็วจากสิ่งของ เราจะสามารถหาได้จาก
โดยเรากำหนดให้ระยะทางในการทดลองคือ 7 cm
หาเวลาที่วัตถุผ่านเซนเซอร์ทั้งสองตัว โดยที่เราจะใช้ timer interrupt
ในการเป็นตัวนับเวลา ในขณะที่เซนเซอร์ตัวแรกตรวจจับวัตถุได้แล้ว ก็จะ
ให้เริ่มจับเวลาจาก 0 และตัวไทม์เมอร์เคาน์เตอร์จะค่อยๆนับ ๆ จนจะหยุด
นับเมื่อเซนเซอร์ตัวที่สองตรวจจับวัตถุได้
จากโปรแกรมที่เขียนขึ้น เรากำหนดให้ใน 1 วินาที จะเกิดโอเวอร์โฟลว์
128 ครั้ง (สามารถดูการกำหนดค่าได้จาก ฟังก์ชัน timerinit ข้างล่าง)
จากโปรแกรมเมื่อเราให้แสดงค่าเป็นเวลาวินาที ทุกๆครั้งที่เกิดโอเวอร์โฟลว์
128 ครั้ง ก็พบว่าเวลาค่อนข้างตรงกับเวลาที่เทียบจากนาฬิกา
ซึ่งเสกลเวลาที่ต่ำสุดที่สามารถวัดได้คือ 0.0078125 s ซึ่งเมื่อนำไปทดลอง
ก็พบว่าเป็นเสกลเวลาที่ค่อนข้างดีแล้ว
จากสูตร v = s/t เมื่อเราหาเวลาได้แล้ว และทราบระยะทางที่แน่นอน
เราก็สามารถหาความเร็วได้
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 26, 2550
0
ความคิดเห็น
รวมโหมดทั้งหมด
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 26, 2550
0
ความคิดเห็น
การทำงานในอาทิตย์สุดท้าย
ตัวอย่าง จากการทดลองและเก็บค่าลงในดาต้าแฟลช
ตัวอย่าง จากการใช้ mode data load เพื่อโหลดค่าที่เก็บไว้ขึ้นมาดู
โดยค่าที่เก็บไว้ในดาต้าแฟลช จะเก็บไว้เป็นประเภทจำนวนเต็ม เพื่อให้ง่ายต่อการจัดเก็บ
ในการอ่านค่าที่ได้ เช่น 454 จะได้ค่าเท่ากับ 454 x10^-4 m/s
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 26, 2550
0
ความคิดเห็น
วันอาทิตย์ที่ 19 สิงหาคม พ.ศ. 2550
รูปอุปกรณ์ และ ตัวอย่างผลที่แสดงทาง hyper terminal
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 19, 2550
0
ความคิดเห็น
Program วัดความความเร็ว
เป็นฟังก์ชันการทำงานของ fn1_1 ฟังก์ชันนี้เป็นการรับค่าจากsensor ตัวที่1 และตัวที่ 2 มาคำนวณหาความเร็วซึ่งเมื่อคำนวณแล้วจะนำผลออก ทางport serial และ หน้าจอ LCD
เป็นฟังก์ชันtest การรับค่าจาก sensor ตัวที่หนึ่งและสอง และแสดงผลออกทาง port serial
เป็นฟังก์ชันนับเวลาซึ่งจะเข้ามาทำงานในทุกครั้งที่เกิด overflow ของtimer2
โปรแกรมการทำงานทั้งหมดสามารถ download ได้จาก link ทางขวามือ >>>
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 19, 2550
0
ความคิดเห็น
อินเตอร์รัพท์(Interrupt)
การอินเตอร์รัพท์
- ในระบบที่มีอุปกรณ์ต่างๆหลายชนิดนั้นบางครั้งเราอาจจะสงสัยว่าในขณะที่นาฬิกาของเครื่องเดินไปได้ตลอดเวลาพร้อมๆกับที่เราใช้ง านอย่างอื่นโดยที่เวลาเดินไปอย่างไม่ผิดพลาด หรือว่าเครื่องได้อ่านแผ่นดิสก์อยู่ ในขณะเดียวกับที่เราพิมพ์ข้อมูลผ่านทางแป้นพิมพ์ได้ ซึ่งเสมือนว่าเครื่องสามารถทํางานได้หลายๆอย่างในเวลาเดียวกัน ซึ่งการที่จะทําได้เช่นนี้นั้น ซีพียูจำเป็นต้องมีวิธีการติดต่อกับอุปกรณ์ภายนอกต่างๆอย่าง มีประสิทธิภาพ
- ซึ่งก็คือให้ซีพียูใช้เวลาส่วนใหญ่ในการทำโปรแกรมหลัก และหันมาสนใจอุปกรณ์ภายนอกก็ต่อเมื่ออุปกรณ์ภายนอกส่งสัญญาณ ซีพียู จะหยุดจากการทำงานในโปรแกรมหลักและไปทำงานในโปรแกรมย่อยซึ่งอุปกรณ์นั้นๆร้องขอมา เมื่อเสร็จแล้ว ซีพียูก็จะกลับมาทำโปรแกรมเดิมที่ หยุดไปต่อ ไป ลักษณะเช่นนี้เรียกว่า การอินเตอร์รัพท์ (Interrupt)
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 19, 2550
0
ความคิดเห็น
ประเภทของการอินเตอร์รัพท์
การอินเตอร์รัพท์สามารถแบ่งได้เป็น 2 ประเภทใหญ่ๆดังนี้คือ
1.Non-maskable Interrupt (NMI) คือ การอินเตอร์รัพท์ที่ซีพียูไม่สามารถปฏิเสธได้ หากมีการอินเตอร์รัพท์ประเภทนี้มา ซีพียูต้องหยุดการทำงานของโปรแกรมที่ทำอยู่ในขณะนั้นโดยไ ม่มีข้อแม้ และเปลี่ยนไปทำงานให้การอุปกรณ์ที่มีการส่งอินเตอร์รัพท์เข้ามา
2.Maskable Interrupt (INT) คือ การอินเตอร์รัพท์ที่ซีพียูสามารถปฏิเสธได้ โดยปรกติ ซีพียูจะมีการกำหนดว่าในขณะนั้น ซีพียูจะอยู่ในภาวะ Disable Interrupt (DI) หรือ Enable (EI) ถ้าหากว่า ในขณะที่มีการอินเตอร์รัพท์เข้ามานั้น ซีพียูอยู่ในภาวะ Disable Interrupt แล้ว การอินเตอร์รัพท์นั้นก็จ ะได้รับการปฏิเสธไป แต่ถ้าเป็น Enable Interrupt การอินเตอร์รัพท์นั้นก็จะได้รับการสนองตอบ
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 19, 2550
0
ความคิดเห็น
ขบวนการอินเตอร์รัพท์
1. วงจรภายนอกส่งสัญญาณ INT มายังซีพียู
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 19, 2550
0
ความคิดเห็น
วันอาทิตย์ที่ 12 สิงหาคม พ.ศ. 2550
Schematics ที่ช่วยในการศึกษา



Joystick

DataFlash

LCD

measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 12, 2550
0
ความคิดเห็น
ต่ออุปกรณ์ และทดสอบบอร์ด รวมทั้งตรวจสอบความสามารถในตัวอุปกรณ์

1. เชื่อมอุปกรณ์ที่ใช้ทดสอบลงบอร์ด AVR พร้อมทั้งลงโปรแกรมลงบนตัวบอร์ด

2.ใช้LED ในการทดสอบการจ่ายไฟของพอร์ตแต่ละพอร์ต
ด้วยการเขียนโปรแกรมไฟกระพริบ

3.ทดลองต่อ Sensor เข้ากับ AVR เพื่อดูค่าที่แสดงออกมาเมื่อมีวัตถุผ่านตัว Sensor

4.ไฟเลี้ยงบอร์ด AVR ซึ่งเราใช้ค่าความต่างศักยที่์ 4.5V
เซนเซอร์ที่เราใช้ในการทดสอบจะเป็นเซนเซอร์อินฟราเรด ซึ่งเป็นช่วงแสงที่ตามนุษย์ไม่สามารถมองเห็นได้ ซึ่งผลการทดลองต่อเซนเซอร์ ให้ผลออกมาเป็นที่น่าพอใจซึ่งสามารถอ่านค่าออกมาได้ และแบ่งแยกช่วงที่เห็นได้ออกมาอย่างชัดเจน โดยเราจะใช้ฟังก์ชัน ADC_READ() ; ในโปรเจกต์ที่ได้รับมาจากอาจารย์
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 12, 2550
2
ความคิดเห็น
การเชื่อมต่อAVRผ่านทางพอร์ตUSART
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 12, 2550
0
ความคิดเห็น
วันอาทิตย์ที่ 5 สิงหาคม พ.ศ. 2550
การเชื่อมต่อบอร์ด AVR โดยผ่านทาง JTAG Interface
ET-AVR JTAG (RS232) V1.0 เป็นบอร์ดที่ออกแบบมาเพื่อใช้ในการดาวน์โหลด Hex File และ ดีบัก ให้กับ MCU ตระกูล AVR ของ Atmel โดยผ่านทาง JTAG Interface ซึ่งสามารถใช้ได้กับ MCU ที่มีโมดูลJTAG Interface เท่านั้น โดยต้องใช้ร่วมกับโปรแกรม AVR Studio 4.XX
คุณสมบัติของ ET-AVR JTAG (RS232) V1.0
1. มีคุณสมบัติเทียบเท่า AVR JTAG ICE ของ ATMEL
2. สนับสนุนการดีบักแบบเรียลไทม์
3. โปรแกรมและดีบัก MCU ที่มีโมดูล JTAG Interface
4. สามารถอัพเกรด Firmware โดยตรงผ่านโปรแกรม AVR Studio 4
เพื่อให้สามารถใช้กับMCUเบอร์ใหม่ ๆ ได้ ซึ่ง Firmware จะติดมากับโปรแกรม AVR studio 4
5. สามารถใช้ได้กับระบบไฟเลี้ยงตั้งแต่ 2.7V – 5.5V
6. ใช้แรงดันจากบอร์ด Target
7. การติดต่อสื่อสารผ่านพอร์ตอนุกรม (RS232)
8. มี LED แสดงสถานการณ์ทำงาน Power , Activity
การเชื่อมต่อ ET-JTAG AVR กับไมโครคอนโทรลเลอร์ AVR

แสดงตำแหน่งขาสัญญาณของ ET-AVR JTAG

แสดงการเชื่อมต่อ ET-AVR JTAG กับ ET-AVR START KIT V1.0/EXP
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 05, 2550
0
ความคิดเห็น
บอร์ด AVR Butterfly
สเปคของ cpu ATmega169
- 16KB Flash
- 512B EEPROM
- 1KB Internal SRAM
- JTAG Interface
- 4 x 25 Segment LCD Driver
- Two 8-bit Timer/Counters
- One 16-bit Timer/Counter
- Real Time Counter
- Four PWM Channels
- 8-channel, 10-bit ADC
- USART
- SPI
- Universal Serial Interface
- Watchdog Timer
- Analog Comparator
- Power-on Reset and Brown-out Detection
- Internal Calibrated Oscillator
- Five Sleep Modes:
- Idle, ADC Noise Reduction, Power-save, Power-down, and Standby
- 53 Programmable I/O Lines and 1 Input Line
- 64-lead TQFP and 64-pad MLF
- Operating Voltage:
>>>>>1.8 - 3.6V for ATmega169V
>>>>>2.7 - 3.6V for ATmega169L
- Temperature Range:
>>>>>0°C to 70°C
- Speed Grade:
>>>>>0 - 1 MHz for ATmega169V
>>>>>0 - 4 MHz for ATmega169L
- Ultra-Low Power Consumption
- Active Mode:
>>>>>1 MHz, 1.8V: 300μA
>>>>>32 kHz, 1.8V: 20μA (including Oscillator)
>>>>>32 kHz, 1.8V: TBD (including Oscillator and LCD)
- Power-down Mode:
>>>>>0.5μA at 1.8V
pin ต่างๆ ในบอร์ด
บัดกรีใส่จัมเปอร์ตัวผู้ลงไปที่ขา ADC , PORT B , PORT D และอย่าลืมว่าแพดที่เป็นสี่เหลี่ยมจะเป็นขา 1ของทั้ง PORT B และ PORT D และจะเห็นว่าทั้งสองพอร์ตมี 10 ขา แต่ไม่ใช่ ขาที่ 9 และ 10 เป็นขาไฟเลี้ยงและกราวนด์ (ดูรูปประกอบ)
การเชื่อมต่อผ่าน RS-232
การเชื่อมต่อกับคอมพิวเตอร์ต้องการสาย 3 เส้น ประกอบด้วย TXD, RXD และ GND โดยที่
- TXD จะเป็นขาส่งข้อมูลจากคอมพิวเตอร์ไป Butterfly
- RXD จะเป็นขารับข้อมูลจาก Butterfly เข้าสู่คอมพิวเตอร์
- GND จะเป็นขาคอมมอนกราวนด์
และขอให้เข้าใจว่าขา RXD ของคอมพิวเตอร์ คือ ขา TXD ของ Butterfly
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 05, 2550
1 ความคิดเห็น
แนะนำสมาชิกกลุ่ม Velocity Measurement
1. นาย เจยวัฒน์ ตั้งศิริวัฒนวงศ์ รหัส 4810611477
Tel: 089-986-2633 E-mail: jediedark@hotmail.com
2. นาย ทนงศักดิ์ สังขโบสถ์ รหัส 4810611964
Tel: 081-590-6542 E-mail: sungkabod@hotmail.com
3. นาย ปัญญา เอื้อรักษ์โอฬาร รหัส 4810611972
Tel: 085-948-2598 E-mail: shadow_72692@hotmail.com
กลุ่มพวกเราทำ Project เรื่อง Velocity Measurement(วัดความเร็วของอุปกรณ์ขนาดเล็ก)โดยใช้บอร์ด AVR Butterfly และ Sensor ที่ใช้ในการตรวจจับ โดยพวกเราได้แบ่งการทำงานออกเป็น 4 ช่วง คือ
สัปดาห์ที่ 1 : ศึกษาการทำงานและการใช้งาน บอร์ด AVR Butterfly และส่วนอื่นที่ใช้ในการทำงาน
สัปดาห์ที่ 2 : ต่ออุปกรณ์และทดสอบบอร์ดรวมทั้งตรวจสอบความสามารถในตัวอุปกรณ์ที่นำมาใช้ว่าเหมาะสมหรือไม่
สัปดาห์ที่ 3 : เขียนโปรแกรมในการโปรแกรมบอร์ดAVR Butterfly
สัปดาห์ที่ 4 : ทำการทดลอง เก็บข้อมูล และสรุปผล
measurespeedsensor
สมาชิกในกลุ่ม
ที่
วันอาทิตย์, สิงหาคม 05, 2550
0
ความคิดเห็น