mọi người tải về nhấn đúp con vi điều khiển và nạp lại code là chạy bình thường nhé. cảm biến vị trí bàn đạp phanh là 1 con biến trở thể hiện cho độ mở của bàn đạp phanh. ở 100% tức là mở hoàn toàn. động cơ encoder thể hiện cho vận tốc của bánh xe. khi tác động 1 lực phanh hợp lý, bánh xe sẽ dừng lại.
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ Ô TÔ - BÀI TẬP LỚN CHUYÊN ĐỀ HỆ THỐNG NHIÊN LIỆU ĐỀ TÀI: ỨNG DỤNG PHẦN MỀM PROTEUS VÀ CODEVISIONAVR MÔ PHỎNG MẠCH ĐIỀU KHIỂN HỆ THỐNG HỖ TRỢ PHANH KHẨN CẤP BRAKE ASSIST TRÊN Ô TÔ TOYOTA VIOS 2019 Giáo viên hướng dẫn: Ts Nguyễn Thành Bắc Sinh viên thực hiện: Đỗ Nhật Sáng - 2018606823 Lê Văn Sơn - 2018606801 Hoàng Thế Thắng - 2018606708 Nguyễn Ngọc Tú - 2018606752 Nhóm : 02 Lớp : AT6005.7 Hà Nội:…/…/2021 Mục lục Chương 1: Tổng quan hệ thống an tồn tơ 1.1 Các loại hệ thống an toàn ô tô 1.1.1 Hệ thống an toàn chủ động 1.1.2 Hệ thống an toàn thụ động Chương 2: Hệ thống hỗ trợ phanh khẩn cấp BA (Brake Assist) 10 2.1 Lịch sử phát triển 10 2.1 Cấu tạo hệ thống 10 2.2 Nguyên lí hoạt động 11 Chương 3: Mô mạch điều khiển 13 3.1 Vi điều khiển Atmega16 13 3.1.1 Đặc tính 13 3.1.2 Sơ đồ chân chức chân Atmega 16 14 3.2 Màn hình LCD (Liquid Crystal Display) 15 3.2.1 Mô tả chung 16 3.2.2 Tính 17 3.2.3 Sơ đồ chân 17 3.3 Mô mạch hệ thống hỗ trợ phanh BA 19 3.4 Lập trình codevision 19 Danh mục hình ảnh Hình 1-1: Hệ thống đèn chiếu sáng tơ Hình 1-2 Mơ tình tránh chướng ngại vật có khơng có ABS Hình 1-3: Lực phanh có khơng có EBD Hình 1-4: Mơ tình vào cua có khơng có ESC Hình 2-1: Cấu tạo hệ thống hỗ trợ phanh BAS 11 Hình 2-2: Ngun lí hoạt động hệ thống 11 Hình 3-1: Vi xử lý Atmega 16 14 Hình 3-2: Màn hình LCD 16 Hình 3-3 Sơ đồ chân hình LCD 18 Hình 3-4 Mạch mơ hệ thống hỗ trợ phanh BA 19 Lời nói đầu Trong q trình sử dụng phương tiện ô-tô thực tế không tránh khỏi trường hợp phải giảm tốc độ đột ngột nhằm mục đích tránh va chạm, tai nạn xảy Với việc di chuyển tốc độ cao mà đột ngột dừng xe lại, theo quán tính khiến người điều khiển lao phía trước, dễ gặp chấn thương nghiêm trọng Vậy để giảm thiểu tối đa tác động đảm bảo an tồn cho người dùng tơ hệ thống hỗ trợ phanh khẩn cấp BA đời Mục đích đề tài : - Phân tích lý giải hệ thống vi điều khiển Atmega16 mô mạch hệ thống hỗ trợ phanh khẩn cấp BA - Phân tích chức năng, nguyên lý cấu trúc hệ thống vi điều khiển Atmega16 mô mạch hệ thống hỗ trợ phanh khẩn cấp BA Thơng qua việc làm đề tài góp phần cho sinh viên củng cố lại kiến thức học tập cho sinh viên cách nghiên cứu làm việc độc lập, tạo điều kiện thuận lợi cho công việc sau người kỹ sư tương lai Chương 1: Tổng quan hệ thống an tồn tơ 1.1 Các loại hệ thống an tồn tơ Hệ thống an tồn tô chia thành loại: Chủ động thụ động 1.1.1 Hệ thống an toàn chủ động Hệ thống chiếu sáng hệ thống đèn sử dụng xe nhằm mục đích chiếu sáng, tín hiệu thơng báo Đèn pha (far) - cốt (cos): Đèn đặt đầu xe, làm nhiệm vụ chiếu sáng đường phía trước điều kiện trời tối, giúp người lái quan sát tình trạng giao thơng chướng ngại vật để xử lý Đèn pha có chức chiếu sáng khoảng cách xa, đèn cốt chiếu sáng khoảng cách gần trước đầu xe Đèn xi-nhan: Giúp người lái báo hiệu hướng di chuyển xe cho phương tiện người tham gia giao thông khác qua việc bật/tắt đèn theo hướng muốn Ngoài ra, loại đèn cịn có nhiệm vụ cảnh báo nguy hiểm đồng thời bật/tắt liên tục thông quan nút bấm hình tam giác bảng điều khiển Hình 1-1: Hệ thống đèn chiếu sáng ô tô Đèn sương mù: Giúp tăng khả nhận biết phương tiện phía trước sau điều kiện thời tiết nhiều sương đường xá nhiều bụi làm giảm khả quan sát người lái Vị trí đèn sương mù thường đặt thấp phần đầu xe Đèn hậu: Đặt đuôi xe, quy định sử dụng màu đỏ, làm nhiệm vụ tăng khả nhận biết cho phương tiện phía sau cảnh báo người lái đạp phanh, giúp giảm thiểu va chạm từ phía sau Hệ thống chống bó cứng phanh ABS (Anti-lock Braking System) Là tính an tồn quan trọng trang bị phổ biến mẫu xe Hệ thống hỗ trợ q trình phanh xe an tồn xác hơn, đặc biệt trường hợp phanh gấp Lý giải cách đơn giản, hệ thống bóp nhả phanh liên tục người lái đạp phanh gấp, giúp bánh xe khơng bị bó cứng mà đảm bảo độ bám đường, ngăn ngừa tình trạng bánh dẫn hướng bị cứng gây lái ABS kích hoạt tình phanh khẩn cấp chân phanh rung giật để báo cho tài xế biết Ngày nay, hệ thống trở thành tính tiêu chuẩn xe trang bị phanh tang trống lẫn phanh đĩa Hình 1-2 Mơ tình tránh chướng ngại vật có khơng có ABS Hệ thống phân bổ lực phanh điện tử EBD (Electronic Brakeforce Distribution) Phần lớn tơ sử dụng cho mục đích lại thơng thường có động đặt phía trước nên tải trọng tác dụng lên bánh trước lớn bánh sau Đồng thời, trình phanh, lực quán tính nên tải trọng tăng lên bánh trước giảm bánh sau Ngoài ra, xe vào cua, tải trọng tăng hai bánh phía ngồi, cịn giảm phía trọng Tất trường hợp cần phân phối lại lực phanh cách hợp lý để đảm bảo hiệu phanh Bằng cách tính tốn tốc độ, tải trọng độ bám đường bánh, hệ thống EBD điều chỉnh cân lực phanh giúp trình phanh trở nên tối ưu Hình 1-3: Lực phanh có khơng có EBD Hệ thống hỗ trợ phanh khẩn cấp BA (Brake Assist) Khi phát tài xế có hành động phanh gấp, hệ thống BA tự động trợ giúp để trình diễn nhanh Chẳng hạn trường hợp xe lưu thông đường nhiên gặp chướng ngại vật, người lái đạp phanh theo phản xạ, bất ngờ nên lực đạp phanh không đủ mạnh để xe dừng lại, hệ thống hỗ trợ phanh khẩn cấp BA tự động bù thêm lực phanh đủ mạnh kịp thời giúp xe dừng lại, tránh xảy va chạm Hệ thống thường với hệ thống ABS EBD, hỗ trợ cho đảm bảo hiệu phanh gấp tối ưu bề mặt trơn trượt Hệ thống cân điện tử ESC (ESP, VSC, VSA ) Trong trường hợp ngưới lái đánh lái nhanh để tránh chướng ngại vật vào cua tốc độ cao đường trơn trợt dẫn đến tình trạng xe bị điều khiển trượt sang hai bên, ESC tác động lên hệ thống phanh giúp điều chỉnh lại hướng lái, đồng thời tự động giảm công suất động giúp người lái có thời gian giành lại quyền kiểm sốt xe ESC không làm việc xe vận hành đường ẩm ướt hay băng hoạt động tốt xe tăng tốc hay vào cua Yếu tố cốt lõi ESC giúp phát nguy trượt bánh xe trước điều trở thành mối de dọa thực Hình 1-4: Mơ tình vào cua có khơng có ESC 1.1.2 Hệ thống an tồn thụ động Túi khí: Là hệ thống túi tự động bơm đầy khí bung khoảng thời gian nhỏ có va chạm/tai nạn xảy nhằm giảm thiểu mức độ chấn thương người ngồi xe va đập với chi tiết nội thất Túi khí trước có tác dụng giảm chấn thương vùng đầu, cổ, ngực mặt người lái hành khách ngồi kế bên xe bị va chạm từ phía trước Túi khí gắn bên sườn xe hoạt động có va chạm bên sườn thân xe, làm nhiệm vụ bảo vệ đầu vai tránh bị tổn thương Tuy nhiên, cần trang bị túi khí người ngồi bên xe tránh thương vong trường hợp tai nạn Dây đai an toàn: Đây trang bị so với hàng loạt công nghệ ô tô nay, tầm quan trọng tính mạng người ngồi xe lại đặt lên hàng đầu Khi xe phanh gấp, người ngồi xe bị nhào phía trước lực quán tính, xe chạy với vận tốc lớn lực nhân lên nhiều lần, dẫn đến va chạm chấn thương Một dây đai an tồn đạt tiêu chuẩn gồm dây vịng ngang hơng dây vắt chéo qua vai, đầu dây gắn chặt vào khung xe, có khóa nối giúp cài dây Khi thắt đúng quy cách, dây có công dụng giữ cho hành khách không bị văng khỏi ghế, lao phía trước xe dừng đột ngột Bên cạnh hệ thống an toàn trên, hãng xe bổ sung thêm nhiều tính an tồn tiên tiến cảnh báo điểm mù, cảnh báo va chạm trước, cảnh báo chệch đường, phát người giúp giảm thiểu tối đa rủi ro tham gia giao thông Tuy nhiên, tính xuất số mẫu xe cao cấp theo dạng tùy chọn, chưa phổ biến mẫu xe phổ thông nước khó phát huy hết tác dụng điều kiện đường xá đặc thù Việt Nam Chương 2: Hệ thống hỗ trợ phanh khẩn cấp BA (Brake Assist) 2.1 Lịch sử phát triển BA - Brake Assist (hay BAS) phát triển lần hãng Daimler-Benz TRW/Lucas-Verity từ năm 1992 đến1996, áp dụng hai dòng xe Mercedes-Benz S-Calss SLK-Class Sau Merecedes, hãng BMW Volvo gấp rút cho đời hệ thống tương tự Đáng chú ý Volvo phát triển hệ thống phanh tự động theo cảnh báo va chạm (Collision Warning with Auto Brake - CWAB) mẫu S80 vào năm 1998 CWAB nhờ trang bị thêm radar nhận diện vật cản vòng 150 m cảnh báo cho tài xế, trường hợp tín hiệu bị bỏ qua (không tắt báo động, không giảm tốc ), hệ thống phanh tự động kích hoạt tùy theo khoảng cách cịn lại trước vật cản Khơng dừng lại đó, Mercedes tiếp tục khẳng định vị trí tiên phong cơng nghệ an tồn nâng cấp BAS lên BAS Plus - hệ thống có trang bị thêm rada làm nhiệm vụ đo tốc độ khoảng cách tương đối xe với vật thể phía trước với chế hoạt động giống CWAB Volvo 2.1 Cấu tạo hệ thống Hệ thống BA bao gồm thành phần chính: cảm biến kiểm sốt trạng thái bàn đạp phanh, phận khuếch đại lực phanh điều khiển ECU trung tâm 10 - Chức chân Atmega16 gồm có 40 chân: Chân đến : Cổng nhập xuất liệu song song B ( PORTB ) đc sử dụng chức đặc biệt thay nhập xuất liệu - Chân : RESET để đưa chip trạng thái ban đầu - Chân 10 : VCC cấp nguồn nuôi cho vi điều khiển - Chân 11,31 : GND chân đc nối với nối đất Chân 12,13 : chân XTAL2 XTAL1 dùng để đưa xung nhịp từ bên vào chip Chân 14 đến 21 : Cổng nhập xuất liệu song song D ( PORTD ) đc sử dụng chức đặc biệt thay nhập xuất liệu Chân 22 đến 29 : Cổng nhập xuất liệu song song C ( PORTC ) đc sử dụng chức đặc biệt thay nhập xuất liệu - Chân 30 : AVCC cấp điện áp so sánh cho ADC - Chân 32 : AREF điện áp so sánh tín hiệu vào ADC Chân 33 đến 40 : Cổng vào liệu song song A ( PORTA ) ngồi cịn đc tích hợp chuyển đổi tín hiệu tương tự sang tín hiệu số ADC ( analog to digital converter) b, Đặc tính điện - Điện áp nguồn cấp: 2.7V - 5.5V (max 6V) - Dòng vào/ra port: cỡ 15mA - Tần số thạch anh hoạt động: Thạch anh nội 4MHz, thạch anh ngoại 8MHz 3.2 Màn hình LCD (Liquid Crystal Display) Có nhiều loại hình LCD hiển thị số lượng ký tự khác nhau, tất có chung cách thiết lập sử dụng Có hai loại LCD thơng dụng: Loại hiển thị ký tự gọi Text LCD loại hiển thị điểm ảnh gọi Graphic LCD Trong đề tài này, em chọn loại Text LCD có khả hiển thị dòng, dòng 16 ký tự theo bảng mã ASCII 15 3.2.1 Mô tả chung Text LCD loại hình tinh thể lỏng nhỏ dùng để hiển thị dòng chữ số bảng mã ASCII Không giống loại LCD lớn, Text LCD chia sẵn thành ô ứng với hiển thị ký tự ASCII Mỗi ô Text LCD bao gồm “chấm” tinh thể lỏng, việc kết hợp “ẩn” “hiện” chấm tạo thành ký tự cần hiển thị Trong Text LCD, mẫu ký tự định nghĩa sẵn việc điều khiển Text LCD tương đối dễ dàng graphic LCD Kích thước Text LCD định nghĩa số ký tự hiển thị dịng tổng số dịng mà LCD có Ví dụ LCD 16x2 loại có dịng dịng hiển thị tối đa 16 ký tự Một số kích thước Text LCD thông thường gồm 16x1, 16x2, 16x4, 20x2, 20x4… Hình 3-2: Màn hình LCD 16 Text LCD có cách giao tiếp nối tiếp (như I2C) song song, điều khiển chip HD44780U hãng Hitachi HD44780U thường coi chuẩn chung cho loại Text LCD, giao tiếp LCD có kích thước hiển thị khác, cần quan tâm đến toạ độ theo dòng cột theo datasheet cung cấp nhà sản xuất HD44780U điều khiển cho Text LCD dạng ma trận điểm (dotmatrix), chip dùng cho LCD có 1, dịng hiển thị HD44780U có chế độ giao tiếp bit bit Nó chứa sẵn 208 ký tự mẫu kích thước font 5x8 32 ký tự mẫu font 5x10 (tổng cộng 240 ký tự mẫu khác nhau) Tuy nhiên, số ký tự theo bảng chữ tiếng Nhật 3.2.2 Tính Định dạng hiển thị: 16 ký tự x dòng Ký tự trắng xanh dương Hoạt động nhiệt độ -10oC ~ +60oC Điện áp vận hành 4.5V ~ 5.5V Dòng cung cấp 1.3mA Dòng cung cấp dùng đèn 18mA 3.2.3 Sơ đồ chân Các Text LCD theo chuẩn HD44780U thường có 16 chân 14 chân kết nối với điều khiển chân nguồn cho LED Thứ tự chân thường xếp sau: 17 Hình 3-3 Sơ đồ chân hình LCD Chức Ground Nguồn Tương phản Điều khiển Chân Tên Vss Vdd Vcc RS R/W Logic 1 Dữ liệu / lệnh E 10 11 12 13 14 D0 D1 D2 D3 D4 D5 D6 D7 Từ xuống 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 18 Mô tả +5V - Vdd D0 - D7: Lệnh D0 – D7: Dữ liệu Ghi: Từ AVR vào LCD Đọc: Từ LCD vào AVR Vơ hiệu hóa LCD LCD hoạt động Bắt đầu ghi/đọc LCD Bit LSB Bit Bit Bit Bit Bit Bit Bit MSB 3.3 Mơ mạch hệ thống hỗ trợ phanh BA Hình 3-4 Mạch mô hệ thống hỗ trợ phanh BA 3.4 Lập trình codevision /***************************************************** This program was produced by the CodeWizardAVR V2.05.0 Professional Automatic Program Generator © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l http://www.hpinfotech.com Project : Version : Date : 5/22/2021 Author : NeVaDa Company : Comments: 19 Chip type : ATmega16 Program type : Application AVR Core Clock frequency: 16.000000 MHz Memory model : Small External RAM size :0 Data Stack size : 256 *****************************************************/ #include #include // Alphanumeric LCD Module functions #include #include unsigned int ADC0; unsigned int ADC1; unsigned int ADC2; unsigned int Dis; unsigned int Voltage; unsigned char P; unsigned int Xung=0; unsigned int PHANH; unsigned char chuoi[16]; // External Interrupt service routine interrupt [EXT_INT0] void ext_int0_isr(void) { 20 // Place your code here Xung=Xung+1; } // External Interrupt service routine interrupt [EXT_INT1] void ext_int1_isr(void) { // Place your code here } // External Interrupt service routine interrupt [EXT_INT2] void ext_int2_isr(void) { // Place your code here } #define ADC_VREF_TYPE 0x00 // Read the AD conversion result unsigned int read_adc(unsigned char adc_input) { ADMUX=adc_input | (ADC_VREF_TYPE & 0xff); // Delay needed for the stabilization of the ADC input voltage delay_us(10); // Start the AD conversion ADCSRA|=0x40; 21 // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCW; } // Declare your global variables here void DocADC0(void) { ADC0=read_adc(0); PHANH=(ADC0)/10.23; } void DoMoBanDapPhanh (void) { sprintf(chuoi,"DOMOPHANH:%3d%%",PHANH); lcd_gotoxy(0,0); lcd_puts(chuoi); } void DocADC1(void) { ADC1=read_adc(1); } void HienThiApSuatDau (void) { Voltage=5000.0f/1023*ADC1; P=0.111111*Voltage/5+9.555f; 22 sprintf(chuoi,"A/S DAU:%3d kPa",P); lcd_gotoxy(0,1); lcd_puts(chuoi); } void DocADC2(void) { ADC2=read_adc(2); } void KhoangCach (void) { ADC2=read_adc(2); Dis =7019.168/(ADC2)-5.5685; sprintf(chuoi,"DISTANCE:%2d cm",Dis); lcd_gotoxy(0,2); lcd_puts(chuoi); } void HienThiXung (void) { sprintf(chuoi,"Xung:%5d",Xung); lcd_gotoxy(0,3); lcd_puts(chuoi); } void main(void) { // Declare your local variables here 23 // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 24 PORTD=0b00000001; DDRD =0b00000001; // Timer/Counter initialization // Clock source: T0 pin Falling Edge // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x06; TCNT0=0x00; OCR0=0x00; // Timer/Counter initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon // OC1B output: Discon // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; 25 ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: On // INT1 Mode: Rising Edge // INT2: On // INT2 Mode: Falling Edge GICR|=0xE0; MCUCR=0x0E; MCUCSR=0x00; GIFR=0xE0; 26 // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 1000.000 kHz // ADC Voltage Reference: AREF pin // ADC Auto Trigger Source: ADC Stopped ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x84; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; 27 // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTC Bit // RD - PORTC Bit // EN - PORTC Bit // D4 - PORTC Bit // D5 - PORTC Bit // D6 - PORTC Bit // D7 - PORTC Bit // Characters/line: 16 lcd_init(16); // Global enable interrupts #asm("sei") while (1) { // Place your code here DocADC0(); DoMoBanDapPhanh(); DocADC1(); HienThiApSuatDau(); DocADC2(); KhoangCach(); HienThiXung(); if (PHANH