Phần mềm lập trình cho Arduino là phần mềm Arduino IDE. Hiện nay phần mềm Arduino IDE mới nhất là Arduino IDE 1.8.12.
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
2.2.7. Module L298N
Giới thiệu về module điều khiển động cơ L298N.
Module L298 là mạch điều khiển giúp có thế điều khiển tốc độ và chiều quay của động cơ DC một cách dễ dàng. Mặt khác, để kiểm soát chiều quay chỉ cần đảo chiều dòng điện một chiều qua động cơ và cách dễ dàng nhất là sử dụng mạch cầu H.
Cấu tạo:
Chân cấp nguồn trực tiếp đến động cơ là 2 chân 12V và chân 5V. Chân GND của nguồn có thể cấp cho Arduino.
ENA và ENB dùng để điều khiển mạch cầu H trong L298N. Gồm có 4 chân Input, IN1, IN2, IN3, IN4.
Output A nối với động cơ A và Output B nối với động cơ B.
Hình 2.19. Module L298.
Mạch cầu H là một mạch khá đơn giản có 4 phần tử chuyển mạch, với tải ở trung tâm, các phần tử chuyển mạch thường là các bóng bán dẫn hai cực hoặc MOSFET
Nguyên lý hoạt động:
Mạch cầu H có 2 loại, mạch cầu H dùng BJT và FET. Hai dạng mạch cầu H này có nguyên lý hoạt động giống như nhau, chỉ khác nhau là linh kiện cấu tạo nên mạch cầu H như thế nào và việc đóng mở Transistor hay FET.
Mạch cầu H điều khiển bởi 4 tín hiệu đóng và mở các van đó là các tín hiệu 1, tín hiệu 2. Mạch cầu H điều khiển được 2 chiều quay của động cơ.
Khi ENA = 0: Động cơ quay với mọi đầu vào. Khi ENA = 1:
+ INT1 = 1; INT2 = 0: Động cơ quay thuận. + INT1 = 0; INT2 = 1: Động cơ quay nghịch. + INT1 = INT2: Động cơ dừng.
Với ENB cũng tương tự với INT3, INT4. .
Hình 2.20. Sơ đồ nguyên lý mạch cầu H.
Thông số kỹ thuật:
Điện áp đầu vào : 5~30V DC. Cơng suất tối đa : 25W 1
Dịng tối đa cho mỗi cầu H là: 2A.
Mức điện áp logic: Low: -0.3V~1.5V, High: 2.3V~Vss. Kích thước: 43 x 43 x 27mm.
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Hình 2.21. Các chân tín hiệu của Mạch cầu H.
2.2.8. Động cơ NF5475 và bánh xe
Thông số kỹ thuật: Điện áp: 12-24V DC. Cơng suất: 32W.
Tốc độ: 4500 vịng/ phút.
Encoder: 200 xung, 2 kênh A B, điện áp 5V DC.
Hình 2.22. Động cơ NF5475 và bánh xe.
2.2.9. Cảm biến con quay hồi chuyển và cảm biến gia tốc góc
Giới thiệu cảm biến MPU6050.
Cảm biến GY-521 MP6050 là một cảm biến 6 trục, có chứa một gia tốc kế có 3 trục và con quay hồi chuyển có 3 trục được tích hợp trên một con chip. Hoạt động với nguồn điện 3.3V và giao tiếp I2C với tốc độ 400kHz.
Hình 2.24. Cảm biến MPU6050.
Cảm biến MPU6050 sử dụng bộ chuyển đội tương tự số 16-bit cho ra các kết quả chi tiết về góc quay, tọa độ. Để theo dõi độ chính xác của chuyển động nhanh và chuyển động chậm, các bộ phận này có thang đo chính quy có thể lập trình với giá trị vận tốc góc trong khoảng ±250, ±500, ±1000, ±2000 degree/ sec(dps) và giá trị gia tốc trong khoảng ±2g, ±4g, ±8g và ±16g. Ngồi ra cảm biến có sẵn bộ đếm dữ liệu 1024 byte cho phép vi điều khiển phát lệnh cho cảm biến và nhận về dữ liệu sau khi cảm biến MPU6050 tính tốn xong.
Hình 2.25. Sơ đồ chân cảm biến MPU6050.
Chân giao tiếp MPU6050: - VCC: 3.3V-5V. - GND: 0V.
- SCL: Chân SCL trong giao tiếp I2C. - SDA: Chân SDA trong giao tiếp I2C.
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
- XDA: Chân dữ liệu (kết nối với cảm biến khác). - XCL: Chân xung (kết nối với cảm biến khác). - AD0: Bit 0 của địa chỉ I2C.
- INT: Chân ngắt.
Giao tiếp I2C ( Inter – Intergrated Circuit) Giới thiệu về I2C:
Giao thức giao tiếp I2C được phát triển bởi Philips Semiconductors vào đầu năm 1980. Chuẩn giao tiếp nối tiếp 2 dây được gọi là I2C. I2C là tên gọi viết tắt của cụm từ Inter – Intergrated Circuit. I2C dùng để truyền dữ liệu giữa một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường truyền tín hiệu. Mặc dù I2C được phát triển bởi Philips nhưng nó đã được rất nhiều nhà sản xuất IC trên thế giới sử dụng. I2C trở thành một chuẩn công nghiệp cho các giao tiếp điều khiển, ngồi Philips ra cịn nhiều người phất triển I2C như là Texas Intrument (TI), MaximDallas, analog Device, National Semiconductor,… Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại IC khác nhau như các loại vi điều khiển 8051, PIC, AVR, ARM,… chip nhớ như RAM tĩnh (Static Ram), EEPROM, bộ chuyển đổi tương tự số (ADC), số tương tự (DAC), IC điều khiển LCD, LED,…
Đây là một loại giao thức giao tiếp nối tiếp đồng bộ, truyền dữ liệu theo từng bit theo một khoảng thời gian nhất đều đặn được thiết lập bởi tín hiệu đồng hồ tham chiếu.
Đặc điểm:
- Hai đường bus (dây) chung để điều khiển bất kỳ thiết bị trên IC nào trên mạng I2C.
- Tốc độ truyền dữ liệu có thể được điều chỉnh bất cứ khi nào cần thiết. Không giồng như trong giao tiếp UART.
- Cơ chế truyền dữ liệu đơn giản.
- Sử dụng hệ thống địa chỉ 7 bit để xác minh một thiết bị trên IC cụ thể trên bus I2C.
- Các mạng I2C dễ dàng mở rộng. Các thiết bị mới có thể được kết nối đơn giản với hai đường bus chung.
Cấu tạo và nguyên lý hoạt động:
Hình 2.26. Cảm biến MPU6050 giao tiếp I2C với Arduino Nano.
I2C sử dụng hai đường truyền tín hiệu:
- Một đường xung nhịp đồng hồ (SCL) chỉ do Master phát đi (thông thường ở 100kHz và 400kHz. Mức cao nhất là 1MHz và 3.4MHz).
- Một đường dữ liệu (SDA) theo 2 hướng.
Có rất nhiều thiết bị có thể cùng được kết nồi vào một bus I2C,tuy nhiên sẽ không xảy ra chuyện nhầm lẫn giữa các thiết bị, bởi mỗi thiết bị sẽ được nhận ra bởi một địa chỉ duy nhất với một quan hệ chủ/ tớ tồn tại trong suốt thời gian kết nối. Mỗi thiết bị có thể hoạt động như là thiết bị nhận hoặc truyền dữ liệu hay có thể vừa truyền vừa nhận. Hoạt động truyền hay nhận còn tùy thuộc vào việc thiết bị đó là chủ (master) hãy tớ (slave).
Một thiết bị hay một IC khi kết nối với bus I2C, ngoài một địa chỉ (duy nhất) để phân biệt, nó cịn được cấu hình là thiết bị chủ hay tớ. Tại sao lại có sự phân biệt này? Đó là vì trên một bus I2C thì quyền điều khiển thuộc về thiết bị chủ. Thiết bị chủ nắm vai trị tạo xung đồng hồ cho tồn hệ thống và quản lý địa chỉ của thiết bị tớ trong suốt q trình giao tiếp. Thiết bị chủ giữ vai trị chủ động, còn thiết bị tớ giữ vai trò bị động trong giao tiếp.
Về lý thuyết thực tế I2C sử dụng 7 bit để định địa chỉ, do đó trên một bus có thể có tới 2^7 địa chỉ tương ứng với 128 thiết bị có thể kết nối, nhưng chỉ có 112, 16 địa chỉ cịn lại được sử dụng vào mục đích riêng. Bit cịn lại quy định việc đọc hay ghi dữ liệu (1 là write, 0 là read).
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Điếm mạnh của I2C chính là hiệu suất và sự đơn giản của nó: một khối điều khiển trung tâm có thể điều khiển cả một mạng thiết bị mà chỉ cần hai lối ra điều khiển.
2.2.10. Module Bluetooth HC-05
Giới thiệu về module bluetooth HC-05.
Bluetooh là chuẩn truyền thông không dây để trao đổi dữ liệu ở khoảng cách ngắn. Chuẩn truyền thơng này sử dụng sóng radio ngắn (UHF radio) trong dải tần số ISM (2.4 tới 2.485 GHz). Khoảng cách truyền của module này là khoảng 10 m.
Hình 2.27. Module Bluetooth HC-05.
Thơng số kỹ thuật:
Điện áp hoạt động: 3.3V~5V DC.
Mức điện áp chân giao tiếp: 3.3V và 5V DC.
Tốc độ baudrate mặc định: 9600, 8bit dữ liệu, 1 bit stop.
Tốc độ Baud: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200. Giao thức Bluetooth: Bluetooth specification v2.0+ERD.
Tần số: 2.4GHz. Độ nhạy: -84 dBm.
Tốc độ: 2.1 Mbs(max)/160 Kbps. Kích thước: 15.2 x 35.7 x5.6 mm.
Mật khẩu kết nối mặc định 1234 hoặc 0000.
Giao tiếp Module Bluetooth HC-05 với Arduino Mega 2560. VCC: 5V.
GND: GND. Tx: TXD1.
2.2.11. Mơ hình thực tế
Sau khi lắp ghép 3 tầng lại em đã hồn thiện được mơ hình xe hai bánh tự cân bằng hồn chỉnh.
Sản phẩm mơ hình thực tế:
Hình 2.28. Mơ hình thực tế.
2.3. Thiết kế bộ điều khiển
2.3.1. Lý thuyết về bộ điều khiển PID
Hình 2.29. Sơ đồ khối bộ điều khiển PID.
Có thể nói trong lĩnh vực điều khiển, bộ điều khiển PID được xem như một giải pháp đa năng cho các ứng dụng điều khiển tương tự hay điều khiển số. Hơn 90% các bộ điều khiển trong công nghiệp được sử dụng là bộ điều khiển PID.
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Nếu được thiết kế tốt, bộ điều khiển PID có khả năng điều khiển hệ thống đáp ứng tốt các chỉ tiêu chất lượng như đáp ứng nhanh, thời gian quá độ ngắn, độ quá điều chỉnh thấp, triệt tiêu được sai lệch tĩnh.
Luật điều khiển PID được định nghĩa:
0 1 ( ) ( ) P ( ) ( ) D t I de t u t K e t e t dt T T dt [2.27]
Trong đó u t( )là tín hiệu điều khiển, e t( )là sai lệch điều khiển(e t yspy). Tín hiệu điều khiển là tổng của 3 phần: tỉ lệ, tích phân và vi phân.
Hàm truyền của bộ điều khiển PID:
1 1 1 s P I D P D PID s i s U G K K K s K T s E s T s [2.28]
Các tham số của bộ điều khiển là K KP, I(hoặc 𝑇𝑖) và 𝐾𝐷(hoặc 𝑇𝐷). Thành phần tỉ lệ:
P
u t K e t [2.29]
Tác động của thành phần tích phân đơn giản là tín hiệu điều khiển tỉ lệ tuyến tính với sai lệch điều khiển. Ban đầu, khi sai lệch lớn thì tín hiệu điều khiển lớn. Sai lệch giảm dần thì tín hiệu điều khiển cũng giảm dần. Khi sai lệch 𝑒(𝑡)=0 thì u(t)=0. Một vấn đề là khi sai lệch đổi dấu thì tín hiệu điều khiển đổi dấu.
Thành phần P có ưu điểm là tác động nhanh và đơn giản. Hệ số tỉ lệ 𝐾𝑃 càng lớn thì tốc độ đáp ứng càng nhanh, do đó thành phần P có vai trị lớn trong giai đoạn đầu của quá trình quá độ.
Tuy nhiên, khi hệ số tỉ lệ 𝐾𝑃 càng lớn thì sự thay đổi của tín hiệu điều khiển càng mạnh dẫn đến dao động lớn, đồng thời làm hệ nhạy cảm hơn với nhiễu đo. Hơn nữa, đối với đối tượng khơng có đặc tính tích phân thì sử dụng bộ P vẫn tồn tại sai lệch.
Thành phần tích phần (I): 0 ( ) ( ) t I u t K e t dt [2.30]
Với thành phần tích phân, khi tồn tại một sai lệch điều khiển dương, ln làm tăng tín hiệu điều khiển, và khi sai lệch là âm thì ln làm giảm tín hiệu điều khiển, bất kể khi sai lệch đó nhỏ hay lớn. Do đó ở trạng thái xác lập thì sai lệch bị triệt tiêu
𝑒(𝑡)=0 đây là ưu điểm của thành phần tích phân.
Nhượt điểm của khâu tích phân là do mất phải một thời gian để đợi 𝑒(𝑡) về 0 nên đặc tính tác động của bộ điều khiển sẽ chậm hơn.
Ngồi ra, thành phần tích phân đơi khi cịn làm xấu đi đặc tính động học của hệ thống, thậm chí có thể làm mất ổn định. Người ta thường sử dụng bộ PI hoặc PID thay vì bộ I đơn thuần vừa để cải thiện tốc độ đáp ứng, vừa đảm bảo yêu cầu động học của hệ thống. Thành phần vi phân (D): ( ) D de t u t K dt [2.31]
Mục đích của thành phần vi phân là cải thiện sự ổn định của hệ kín. Do động học của quá trình, nên sẽ tồn tại một khoảng thời gian trễ làm bộ điều khiển chậm so với sự thay đổi của sai lệch e(t) và đầu ra y(t) của q trình. Thành phần vi phân đóng vai trị dự đốn đầu ra của q trình và đưa ra phản ứng thích hợp dựa trên chiều hướng và tốc độ thay đổi của sai lệch e(t), làm tăng tốc độ đáp ứng của hệ.
Một ưu điểm nữa là thành phần vi phân giúp ổn định một số q trình mà bình thường khơng ổn định được với các bộ P hay PI.
Nhược điểm của thành phần vi phân là rất nhạy với nhiễu đo hay của giá trị đặt do tính đáp ứng nhanh nêu ở trên.
Bộ điều khiển PID số:
Trong thực tế cơng nghiệp, các bộ điều khiển PID có thể được cấu thành từ các mạch tương tự hoặc các cơ cấu chấp hành. Tuy nhiên với yêu cầu cao về độ chính xác và chống nhiễu tốt thì các bộ điều khiển như vậy chưa đáp ứng được yêu cầu. Cùng với sự phát triển của các ứng dụng nhúng hay trên nền vi xử lý, thì điều khiển số cũng là một lĩnh vực quan trọng.
CHƯƠNG 2: ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU
Các bộ điều khiển được số hóa để có thể thực thi với tốc độ cao và chính xác hơn. Đồng thời việc xây dựng các bộ điều khiển trên nền máy tính số hay vi điều khiển cũng đơn giản hơn nhiều.
Dưới đây ta trình bày về việc xấp xỉ bộ PID trên miền thời gian sang dạng PID số. Việc lựa chọn tham số cho bộ PID số cũng tương tự như trên miền thời gian. Ngoài ra ta cần quan tâm đến một tham số quan trọng là chu kì lấy mẫu của vi điều khiển.
Từ công thức [2.27] ta sử dụng các cơng thức xấp xỉ tích phân lùi và phi phân lùi với chu kỳ lấy mẫu T như sau:
1 0 ( ) ( ) t n k e t dt Te kT [2.32] ( ) ( ) ( ) de t e kT e kT T dt T [2.33] Khi đó cơng thức [2.27] trở thành: 0 1 ( ) ( ) ( ) ( ) n P D k i T e kT e kT T u kT u K e kT e kT T T T [2.34] Viết gọn lại thành: p k i k i k, 1 d( k k 1) p k, i k, d k, u k K e K e u K e e u u u [2.35] Trong đó: up k, K e up k; i k, K ei k ui k, 1;ud k, K ed( kek1) Chỉnh định tham số bộ điều khiển PID
Do từng thành phần của bộ PID có những ưu nhược điểm khác nhau, và không thể đồng thời đạt được tất cả các chỉ tiêu chất lượng một cách tối ưu, nên cần lựa chọn, thỏa hiệp giữa các yêu cầu chất lượng và mục đích điều khiển. Việc lựa chọn tham số cho bộ điều khiển PID cũng phụ thuộc vào đối tượng điều khiển và các phương pháp xác định thơng số.
Có nhiều phương pháp để lựa chọn tham số cho bộ điều khiển PID. Trong bài này em chỉ trình bày về phương pháp điều chỉnh theo kinh nghiệm là phương pháp Ziegler–Nichols. Được đưa ra bởi John G.Ziegler và Nathaniel B. Nichols vào những năm 1940.
Phương pháp này ban đầu cho độ lợi 𝐾𝑖 và 𝐾𝑑 về 0, khâu P được tăng độ lợi 𝐾𝑝 từ khơng lên cho đến khi nó tiến tới độ lợi giới hạn, 𝐾𝑢, ở đầu ra điều khiển bắt đầu dao động. 𝐾𝑢 và chu kỳ dao động 𝑇𝑢 được dùng để gán độ lợi như sau:
Dạng điều khiển 𝐾𝑝 𝐾𝑖 𝐾𝑑
P 0.5𝐾𝑢
PI 0.45𝐾𝑢 1.2𝐾𝑝/𝑇𝑢
PID 0.6𝐾𝑢 2𝐾𝑝/𝑇𝑢 𝐾𝑝𝑇𝑢/8
2.3.2. Phần mềm điều khiển
Chương trình lập trình trên phần mềm Arduino IDE 1.8.12. Phần mềm viết App Bluetooth.
- Sử dụng phần mềm viết App Bluetooth MIT APP INVENTOR điều khiển qua điện thoại.
Thiết kế giao diện sử dụng phần mềm Bluetooth MIT APP INVENTOR rất đơn giản. Bên trái là các Control bao gồm: User Interface, Media, Sensor,….Ở giữa là Screen mơ phỏng màn hình ứng dụng của chúng ta, bên phải là của sổ quản lí các Component, Media và Property cho từng Control.
Chỉ cần thao tác kéo thả các Label, Button đặt vào các Layer để được giao điện như (hình 2.31). Cần chọn thêm Control Bluetooth Client trong phần Connectivity để có thể giao tiếp được qua sóng Bluetooth.
Hình 2.30. Phần mềm Bluetooth MIT APP INVENTOR trên Android.
Phần viết code cho App điều khiển bấm vào Tab “Blocks” ở góc trên bên phải.