Thiết kế và xây dựng hệ thống ETCS-I

Một phần của tài liệu Hệ thống bù ga tự động và Hệ thống điều khiển tốc độ không tải (Trang 36)

3.1. Phân tích và lựa chọn linh kiện sử dụng

3.1.1. Vi điều khiển

Để thực hiện nhiệm vụ thu thập và xử lý dữ liệu ta cần tính chọn vi điều khiển thích hợp. Trong hệ thống gạt nước mưa tự động thì chỉ cần thu thập và xử lý dữ liệu từ cảm biến để từ đó kích hoạt động cơ gạt nước hoạt động cũng như điều khiển động cơ gạt nước hoạt động nhanh hay chậm. Với lí do trên, chúng ta chỉ cần chọn loại vi điều khiển mức độ trung bình, giá thành rẻ và được bán rộng rãi trên thị trường. Các dịng vi xử lí, vi điều khiển đó bao gồm: 8051, PIC, AVR, MSP430, Arduino…

ECU Mở Lò xo hồi Motor ĐK bư ớ m ga C ả m bi ế n v ị trí bư ớ m ga Chính Ph ụ Cả m biế n vị trí bàn đ ạ p ga Chính Phụ Vịi phun IC đánh lửa

- 8051: Giá thành rẻ nhất trong các loại vi xử lí nêu trên nhưng nhược điểm là 40 hạn chế về ROM và RAM, tích hợp ít chức năng. Vì vậy khi sử dụng chức năng mở rộng phải có module ghép nối dẫn đến đẩy giá thành lên cao và phức tạp trong chế tạo phần cứng…

- AVR của hãng ATMEL quen thuộc với 89C51, ATmega, tốc độ nhanh, nhiều hỗ trợ, giá rẻ, mạch nạp rẻ, phần mềm lập trình mạnh mẽ với AVRstudio và CodeVisionAVR. Nhưng nhược điểm của nó là ít sản phẩm để lựa chọn. AVR thường được dùng nhiều trong học tập và nghiên cứu cho sinh viên.

- PIC có ưu điểm là tích hợp nhiều chức năng, hỗ trợ tốt, phần mềm lập trình thân thiện bằng PIC C, giá rẻ, đặc biệt PIC có rất nhiều chủng loại để lựa chọn nên với mỗi mục đích sử dụng có thể chọn được một sản phẩm có 8 độ tương đồng cao, ít bị lãng phí chức năng. Vì vậy PIC được dùng phổ biến trong công nghiệp. Tuy nhiên nhược điểm của PIC là mạch nạp khá đắt.

- MSP430 của TI có ưu điểm là tiết kiệm năng lượng, nguồn nuôi chỉ cần 3,3V, sản phẩm đa dạng nhưng giá thành cao, công cụ hỗ trợ và cộng đồng hỗ trợ hạn chế hơn so với AVR và PIC.

- Arduino:

+ Có ưu điểm dễ tiếp cận, cộng đồng người sử dụng đông đảo trên khắp thế giới, không cần mạch nạp riêng biệt khi sử dụng nạp chương trình.

+ Ngồi ra đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngơn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.

+ Arduino cũng có rất nhiều kích thước khác nhau, phù hợp cho nhiều mục đích sử dụng. Thơng dụng nhất hiện nay là Arduino Uno.

+ Arduino rất đơn giản, dễ sử dụng, dễ code (ngôn ngữ tương tự như C++). Một trong những cái hay nhất của Arduino là nó hỗ trợ rất nhiều thư viện, rất tiện lợi. Ngồi ra trên mạch

có ký hiệu rất rõ ràng, đầy đủ các chân, cực kỳ thuận tiện trong quá trình sử dụng.

+ Khi làm việc với Arduino thì giúp ta rút ngắn được một số công đoạn khi thiết kế… Bằng việc đưa ra những phân tích về đặc điểm cũng như những ưu, nhược điểm 41 của từng loại vi điều khiển khác nhau như vậy, ta lựa chọn sử dụng Arduino làm vi điều khiển chính trong hệ thống để làm nhiệm vụ nhận tín hiệu từ cảm biến và sau đó tác động lên cơ cấu chấp hành là động cơ DC.

Nói về Arduino thì có rất nhiều loại khác nhau như: Arduino Mega, Arduino Due, Arduino Uno, Arduino Nano….Mỗi loại có một đặc tính, số chân, chức năng, giá thành khác nhau. Do nhu cầu sử dụng của đề tài thì ta thấy Arduino Uno là phù hợp nhất. Vì nó chứa tất cả mọi thứ cần thiết để hỗ trợ cho việc nhận tín hiệu và điều khiển động cơ, số chân chức năng đủ để sử dụng. Đặc biệt là Arduino Uno là Board mạch rất phổ biến trong các dòng Arduino hiện nay với giá thành phù hợp.

Lựa chọn Arduino Uno là phù hợp nhất vừa đảm bảo về mặt chức năng, vừa đảm bảo về mặt yêu cầu, giá thành phù hợp => hiệu quả về mặt kinh tế.

a) Tổng quan về Arduino Uno

Arduino thật ra là một bo mạch vi xử lý được dùng để lập trình tương tác với các thiết bị phần cứng như cảm biến, động cơ, đèn hoặc các thiết bị khác. Đặc điểm nổi bật của Arduino là môi trường phát triển ứng dụng cực kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình. Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm.

Arduino Uno sử dụng chip Atmega328. Nó có 14 chân digital I/O, 6 chân đầu vào (input) analog, thạch anh dao động 16Mhz. Một số thông số kỹ thuật như sau:

b) Sơ đồ chân của Arduino Uno

Hình 3.1: Arduino Uno

USB (1)

Arduino sử dụng cáp USB để giao tiếp với máy tính. Thơng qua cáp USB chúng ta có thể Upload chương trình cho Arduino hoạt động, ngồi ra USB cịn là nơi để cấp nguồn cho Arduino.

Các chân nguồn (2 và 3)

Arduino UNO có thể được cấp nguồn 5V thơng qua cổng USB hoặc cấp nguồn ngồi với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V. Thường thì cấp nguồn bằng pin vng 9V là hợp lí nhất nếu khơng có sẵn nguồn từ cổng USB. Nếu cấp nguồn vượt quá ngưỡng giới hạn trên sẽ làm hỏng Arduino UNO.

Khi không sử dụng USB làm nguồn thì chúng ta có thể sử dụng nguồn ngồi thơng qua jack cắm 2.1mm (cực dương ở giữa) hoặc có thể sử dụng 2 chân Vin và GND để cấp nguồn cho Arduino.

Bo mạch hoạt động với nguồn ngoài ở điện áp từ (5 – 20)V. Chúng ta có thể cấp một áp lớn hơn tuy nhiên chân 5V sẽ có mức điện áp lớn hơn 5V. Và nếu sử dụng nguồn lớn hơn 12V thì sẽ có hiện tượng nóng và làm hỏng bo mạch. Khuyến cáo nên dùng nguồn ổn định là 5 đến dưới 12 volt.

Các chân năng lượng:

● GND (Ground): Cực âm của nguồn điện cấp cho Arduino UNO. Khi dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.

● 5V: cấp điện áp 5V đầu ra. Dòng tối đa cho phép ở chân này là 500mA.

● 3.3V: Cấp điện áp 3.3V đầu ra. Dòng tối đa cho phép ở chân này là 50mA. Chân 5V và chân 3.3V (Output voltage): Các chân này dùng để lấy nguồn ra từ nguồn mà chúng ta đã cung cấp cho Arduino. Lưu ý: không được cấp nguồn vào các chân này vì sẽ làm hỏng Arduino.

● Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino UNO, nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.

● IOREF: Điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này. Và dĩ nhiên nó ln là 5V. Mặc dù vậy ta khơng được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó khơng phải là cấp nguồn.

● RESET: Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ.

Vi điều khiển

Hình 3.2: Vi điều khiển trên board Arduino Uno

Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328. Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác.

Bộ nhớ:

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

• 32KB bộ nhớ Flash: Những đoạn lệnh ta lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển. Thường thì sẽ có khoảng vài KB (0.5KB) trong số này sẽ được dùng cho bootloader.

• 2KB cho SRAM (Static Random Access Memory): Giá trị các biến khai báo khi lập trình sẽ lưu ở đây. Ta khai báo càng nhiều biến thì càng cần nhiều bộ nhớ 48 RAM. Khi mất điện, dữ liệu trên SRAM sẽ bị mất.

• 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): Đây giống như một chiếc ổ cứng mini – nơi chúng ta có thể đọc và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM.

Input và Output (4, 5 và 6)

Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu, sử dụng các hàm pinMode(), digitalWrite() và digitalRead() để điều khiển các chân này. Chúng chỉ có 2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA. Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này khơng được kết nối).

Một số chân digital có các chức năng đặc biệt như sau:

● 2 chân Serial: 0 (RX) và 1 (TX): Dùng để gửi (transmit – TX) và nhận (receive – RX) dữ liệu TTL Serial. Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này.

● Chân PWM (~): 3, 5, 6, 9, 10, và 11: Cho phép xuất ra xung PWM với độ phân giải 8bit (giá trị từ 0 → 28 -1 tương ứng với 0V → 5V) bằng hàm analogWrite(). Nói một cách đơn giản, ta có thể điều chỉnh được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.

● Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ngoài các chức năng thơng thường, 4 chân này cịn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác.

● LED 13: Trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L). Khi bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu. Nó được nối với chân số 13. Khi chân này được người dùng sử dụng, LED sẽ sáng.

Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210^10-1) để đọc giá trị điện áp trong khoảng 0V → 5V. Với chân AREF trên board, ta có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog. Tức là nếu ta cấp điện áp 2.5V vào chân này thì ta có thể dùng các chân analog để đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.

các thiết bị khác.

Reset (7): Dùng để reset Arduino.

3.1.2. Thiết bị điều khiển

Ở đây thiết bị điều khiển chính là động cơ điện. Động cơ điện có rất nhiều loại khác nhau như: Động cơ một chiều DC, động cơ bước, động cơ Servo… Mỗi loại động cơ có tốc độ quay, cách điều khiển, cũng như các ứng dụng khác nhau trong thực tế. Vì thế để thuận tiện trong quá trình điều khiển và dễ dàng thiết kế trong mơ hình này thì em lựa chọn động cơ Servo DC để làm thiết bị điều khiển. Còn trong trường 42 hợp ứng dụng trên ơ tơ thì ta vẫn sử dụng động cơ gạt nước sẵn có trên ơ tơ để giảm giá thành và phù hợp với xe.

Sau đây là một số loại động cơ phổ biến trong thực tế và những so sánh về những đặc trưng cơ bản của chúng để từ đó giúp ta có thể lựa chọn được loại động cơ phù hợp với yêu cầu thiết kế.

Động cơ một chiều DC

Hình 3.3: Động cơ một chiều DC

Động cơ một chiều DC (DC là từ viết tắt của "Direct Current Motors") là động cơ điều khiển trực tiếp có cấu tạo gồm hai dây (dây nguồn và dây tiếp đất). DC motor là một động cơ

một chiều với cơ năng quay liên tục. Khi cung cấp năng lượng động cơ DC sẽ bắt đầu quay và chuyển điện năng thành cơ năng. Hầu hết các động cơ DC sẽ quay với cường độ RPM rất cao (số vòng quay/ phút), và các động cơ DC đều được ứng dụng để làm quạt làm mát máy tính, hoặc kiểm soát tốc độ quay của bánh xe…

Để điều khiển tốc độ quay của động cơ DC, người ta dùng điều biến độ rộng xung (kí hiệu là PWM), đây là kỹ thuật điều khiển tốc độ vận hành bằng việc bật và tắt các xung điện.

Động cơ điện một chiều DC có một số đặc điểm sau: - Tốc độ nhanh, động cơ xoay vòng liên tục.

- Được sử dụng cho các thiết kế cần phải có một thiết bị quay với tốc độ RPM, ví dụ như trục bánh xe ô tô, cánh quạt máy,vv...

Động cơ Servo

Hình 3.4: Động cơ Servo SG90

Một số nhận xét về động cơ Servo: +) Ưu điểm:

- Tốc độ nhanh, mơ-men xoắn cao, ln chuyển chính xác trong một góc giới hạn. - Là một động cơ có hiệu suất cao để thay thế cho động cơ bước.

- Nếu tải đặt vào động cơ tăng, bộ điều khiển sẽ tăng dòng tới cuộn dây động cơ giúp tiếp tục quay. Tránh hiện tượng trượt bước như trong động cơ bước.

- Có thể hoạt động ở tốc độ cao. +) Nhược điểm:

- Giá thành cao.

- Khi dừng lại, động cơ Servo thường dao động tại vị trí dừng gây rung lắc.

a) Tổng quan về động cơ Servo SG90

Hình 3.5: Động cơ Servo Mini SG90

Servo là một dạng động cơ điện đặc biệt. Không giống như động cơ thông thường cứ cắm điện vào là quay liên tục, Servo chỉ quay khi được điều khiển (bằng xung PWM) với góc quay nằm trong khoảng bất kì từ (0 – 180) độ. Mỗi loại Servo có 53 kích thước, khối lượng và cấu tạo khác nhau. Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mơ hình), có loại thì sở hữu một momen lực lớn (vài chục Newton/m), hoặc có loại thì khỏe và chắc chắn,...

Mặt khác, động cơ Servo được thiết kế cho những hệ thống hồi tiếp vịng kín. Tín hiệu ra của động cơ được nối với một mạch điều khiển. Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này. Nếu có bầt kỳ lý do nào ngăn cản chuyển động quay của động cơ, cơ cấu hồi tiếp sẽ nhận thấy tín hiệu ra chưa đạt được vị trí mong muốn. Mạch điều khiển tiếp

tục chỉnh sai lệch cho động cơ đạt được điểm chính xác.

Động cơ Servo có nhiều kiểu dáng và kích thước, được sử dụng trong nhiều máy khác nhau, từ máy tiện điều khiển bằng tay cho đến các mơ hình máy bay và xe hơi. Ứng dụng mới nhất của động cơ Servo là trong các robot, cùng loại với các động cơ dùng trong mơ hình máy bay và xe hơi.

Các động cơ Servo điều khiển bằng liên lạc vô tuyến được gọi là động cơ Servo R/C (radio- controlled). Trong thực tế, bản thân động cơ Servo không phải được điều khiển bằng vô tuyến, nó chỉ nối với máy thu vơ tuyến trên máy bay hay xe hơi. Động cơ Servo nhận tín hiệu từ máy thu này. Như vậy có nghĩa là ta khơng cần phải điều khiển robot bằng tín hiệu vơ tuyến bằng cách sử dụng một động cơ Servo, trừ khi ta muốn thế. Ta có thể điều khiển động cơ Servo bằng máy tính, một bộ vi xử lý hay thậm chí một mạch điện tử đơn giản dùng IC 555. b) Thông

số kỹ thuật

Một số thơng số chính của động cơ Servo SG90 ● Điện áp cung cấp: 4.8 ~ 7.2V.

● Tốc độ: (4.8V không tải): 0.11 giây/độ ● Momen xoắn: 2kg/cm

● Dải nhiệt độ: (0 ~ 55)0 C ● Góc quay: 1800

● Chất liệu bánh răng: Nhôm hợp kim. ● Khối lượng: 13.6g.

● Kích thước: 22.8 x 12.2 x 28.5mm.

● Dây cam, đỏ, đen lần lượt là: dây xung, VCC, GND c) Cấu Tạo của một động cơ Servo

Các thành phần chính của động cơ Servo gồm:

Hình 3.6: Cấu tạo động cơ Servo mini SG90

Trang 51 Bắt đầu Cảm biến tốc độ động cơ

Cảm biến vị trí bàn đạp ga Cảm biến vị trí bướm ga Cảm biến nhiệt độ nước làm mát

Cảm biến lưu lượng khí Cảm biến áp suất

Một phần của tài liệu Hệ thống bù ga tự động và Hệ thống điều khiển tốc độ không tải (Trang 36)

Tải bản đầy đủ (PDF)

(80 trang)