Phần mềmUSBASP DRIVER được sử dụng trong việc nạp dữ liệu cho chip avr .
Tính năng mạch nạp
Mạch nạp AVR ISP giao tiếp với máy tính qua cổng USB với driver dạng HID tự động nhận không cần cài đặt. AVR ISP hỗ trợ nạp các loại chip ATmel AVR, 8051 (họ AT89S) và EEPROM.
Sơ đồ chân mạch nạp AVR ISP và chân nạp ISP trên bo mạch:
Tính năng:
- Hỗ trợ hệ điều hành Windows XP, Vista, 7, Linux 32 và 64 bit - Tốc độ nạp lên tới 5KB/s
- Cho phép nạp chương trình cho cả Flash và EEPROM - Hỗ trợ nạp Fuse bit, Lock bit và khóa chip
- Dải điện áp từ 3.3 đến 5.5V - Giao tiếp với máy tính qua USB - Có thể cấp nguồn cho mạch đích
CHƯƠNG 4
TỔNG QUAN VỀ CẢM BIẾN MMA7361 VÀ L3G4200D
4.1.Tính năng của cảm biến MMA7361.
- Tính năng.
Tích hợp dưới một ic 14 chân theo gói LGA
Dòng tiêu thụ thấp: ~400uA
Chế độ ngủ tiết kiệm điện: ~ 3uA
Điện áp hoạt động thấp: 2.2 – 3.6V
Độ nhạy cao: ±1.5 g, ±6 g
Thời gian đáp ứng nhanh
Tự kiểm tra phát hiện rơi tự do
Chế độ 0g-Detect
Thiết kế rắn chắc, chống xốc cao
Thiết kế theo chuẩn RoHS
Sơ đồ khối chức năng của MMA7361
Mô tả chức năng từng chân của MMA7361L
Chân Xout, Yout, Zout (2,3,4) là các chân giá trị đầu ra của cảm biến của 3 trục x,y,z, và đây là tín hiệu analog
Vss: là chân được nối đất, hay nguồn âm của nguồn
VDD: điện áp cung cấp cho cảm biến hoạt động
Sleep: chân này dùng để thiết lập chế độ ngủ cho cảm biến
Og-Detect: chân cho ra tín hiệu nếu 3 trục đang ở vị trí 0g
g-Select: chân này dùng để thiết lập các mức đo (g)
Self Test: chân để thiết lập chế độ tự kiểm tra
Chức năng của cảm biến
0g-Detect: Cảm biến MMA7361L cung cấp tính năng 9g-Detect sẽ đưa ra mức logic cao khi cả 3 trục x,y,z đang ở 0g. Tính năng này được sử dụng trong các ứng dụng truyến tính bảo vệ rơi tự do nếu tín hiệu đó kết nối với chân ngắt của vdk
Self Test: Tính năng self test-tự kiểm tra cho phép xác minh sự toàn vẹn về cấu trúc và mạch điện của cảm biến. Tính năng này khá quan trọng trong các hiết bị hoạt động trong thời gian dài.
G-Select: chức năng này cho phép lựa chọn giữa 2 dải đo, tùy vào độ nhạy cần thiết. Tùy thuộc vào mức logic tại chân 10, khi đó cảm biến sẽ hoạt động ở chức năng tương ứng với dải đo ±1.5 g hoặc ±6 g.
Tính năng này rất hữu ít cho các thiết bị để lựa chọn thích hợp dải đo để phù hợp với độ nhạy cần thiết và ngoài ra còn tạo hiệu quả làm việc tối ưu nhất.
Thiết lập dải đo có thể thiết lập lại bất kỳ lúc nào trong quá trình hoạt động của cảm biến.
Sleep Mode: Cảm biến cung cấp chế độ ngủ, đây là chức năng rất lý tưởng cho chế độ tiết kiệm năng lượng cho các thiết bị sử dụng pin. Khi ở chế độ ngủ cảm chân 7(Sleep Mode) sẽ đưa thiết bị về chế độ ngủ và khi đó dòng tiêu thụ rất thấp (~3uA)
Khi cảm biến đang ở chế độ biến sẽ ngắt tín hiệu đầu ra, tạm ngừng quá trình đo đạc nên năng lượng cung cấp giảm đáng kể.
Tín hiệu logic mức thấp trên ngủ và muốn kích hoạt cảm biến hoạt động lại bình thường thì chỉ cần đặt mức logic cao trên chân 7.
Filtering:
4.2. Cảm biến L3G4200D
TÍNH NĂNG:
Đầy đủ 3 thang đo :250/500/2000 dps
Giao tiếp ngõ ra kỹ thuật số: I2C và SPI
Dữ liệu output 16bit giá trị đo của cảm biến
8 bit temperature data output
Có hai đầu ra kỹ thuật số: ngắt và báo dữ liệu sẵn sàng
Tích hợp bộ lọc thấp và cao để người dùng có thể lựa chọn băng thông thích hợp
Rất bền vững và ổn định với nhiệt độ và thời gian
Điện áp cung cấp rộng: 2.4-3.6V
Điện áp tương thích với IOS : 1.8V
Embedded power-down and sleep mode
Embedded temperature sensor
Embedded FIFO
Khả năng chống xốc cao
Hoạt động trong dải nhiệt rộng: -40 – 80*C
SƠ ĐỒ KHỐI.
MÔ TẢ CHỨC NĂNG CỦA MỖI CHÂN.
CHƯƠNG 5
MÔ HÌNH THỰC TẾ VÀ CHƯƠNG TRÌNH
5.1. Chương trình.
#include <mega8.h> #include <delay.h>
// Alphanumeric LCD Module functions #include <alcd.h>
#include <delay.h> #include <stdio.h>
#define ADC_VREF_TYPE 0x40 unsigned char i;
unsigned int trucx,trucy,trucz; unsigned char hienthi[16];
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input) {
// Delay needed for the stabilization of the ADC input voltage delay_us(10);
// Start the AD conversion ADCSRA|=0x40;
// Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10; return ADCW; }
// Declare your global variables here void main(void) { PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; ASSR=0x00;
TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; UCSRB=0x00; ACSR=0x80; SFIOR=0x00; ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x83; SPCR=0x00; TWCR=0x00; lcd_init(16); while (1) {
// Place your code here for(i=0;i<4;i++)
{
delay_us(10); }
trucx=trucx/40; for(i=0;i<4;i++)
{
trucz += read_adc(1); // Get results of AD conversion delay_us(10);
}
trucz=trucz/40; for(i=0;i<4;i++)
{
trucy += read_adc(3); // Get results of AD conversion delay_us(10);
} trucy=trucy/40; lcd_gotoxy(0,0);
// sprintf(hienthi,"Truc X:%u Truc Z: %u",trucx,trucz); sprintf(hienthi,"X:%u; Z: %u",trucx,trucz);
lcd_gotoxy(0,1); sprintf(hienthi,"Truc Y:%u",trucy); lcd_puts(hienthi); delay_ms(1000); trucx=0; trucy=0; } } 5.2.Hình ảnh mô hình. Hình 1
KẾT LUẬN
Đồ án tập trung và tìm hiểu xây dựng Modul đo lường quán tính sử dụng cảm biến MMA7361, L3G4200D và ATMEGA8. Về cơ bản đồ án đạt được mục tiêu đề ra. Chúng em đã hiểu và úng dụng của cảm biến hiển thi lên LCD là tiền đề phát triển robot thăng bằng.
Định hướng Phát Triển:
Hoàn thiện các chức năng đã xây dựng tích hợp tốt nhất
Hệ thống mới chỉ xây dựng đọc và hiên thị lên máy tính. Trong tương lại chúng em hoàn thiện thành 1 hệ thông như robot thăng bằng….
Tìm kiếm để đưa ra các ứng dung của hệ thống phục vụ tốt cho tương lai sau này
TÀI LIỆU THAM KHẢO
1. Ngô Diên Tập, “Vi điều khiển AVR”, NXB KHKT 2003
2. Mohamed Gad-el-Hak, “The MEMS handbook”, CPR Press, New York,2002 3. Digchip.com/datasheets/parts/datasheet/311/MPX50.php
4. http://tranthiendong.wordpress.com/2013/05/22/tim-hieu-cam-bien-gia-toc-3-
5. http://kme.com.vn/cms.php?id_cms=11